2004.11.27.What"s New in Delphi 2005
2004.11.27.What"s New in Delphi 2005 What's New in Delphi 2005
Delphi 2005 contains the following new features for developing Delphi, Delphi for .NET, and C# applications.
IDE
The IDE now provides support for Delphi for .NET, Delphi for Win32, and C# application development. An icon in the IDE toolbars indicates the current development environment: Delphi for .NET , Delphi for Win32 , or C# . Updating and saving files in the IDE now creates multiple backup files in the hidden __history directory of the current directory. Use the new Create backup files and File backup limit options on the Tools Options Editor Options page to control the creation of backup files. By default, up to 10 backup files are created. The new History Manager page lets you see and compare prior versions of a file, including multiple backup versions, saved local changes, and the buffer of unsaved changes for the active file. You can revert a prior version to the current version and use synchronized scrolling to navigate two file versions. The new Structure View shows the hierarchy of source code and HTML displayed in the Code Editor, or components displayed on the Designer. When displaying the structure of source code or HTML, you can double-click an item to jump to its declaration or location in the Code Editor. When displaying components, you can double-click a component to select it on the form. If you code contains syntax errors, they appear in the Errors folder of the view. The Import Component Wizard lets you import existing ActiveX, .NET, or VCL components to a new or existing package. A new environment option lets you choose whether VCL forms are displayed on the Design tab or in an undocked, floating window. Choose Tools Options Environment Options Delphi Options VCL Designer and uncheck the Embedded Designer option to enable the floating VCL form. The Object Inspector now retains form information when the Code Editor is displayed. The Tool Palette Search text box has been replaced with the filter icon . To filter the items displayed in the Tool Palette, click anywhere in the Tool Palette and begin typing the item name you want to find. To remove the search filter, click the filter icon. The new Tool Palette and Colors pages in Tools Options control the appearance of the Tool Palette and replace several of the Tool Palette context menu commands.Code Editor
Refactoring features allow you to restructure and modify your code in such a way that the intended behavior of your code stays the same. Refactoring lets you streamline and improve code readability and performance. Refactoring in Delphi 2005 includes Extract Method, Symbol Rename, Declare Variables and Fields, Find Units and Namespaces, and more. The new Sync Edit feature lets you simultaneously edit duplicate identifiers in code. If you select a block of code that contains duplicate identifiers, for example, label1, and click the Sync Edit Mode icon that appears in the left gutter, all of the duplicated identifiers are highlighted and the cursor is positioned to the first identifier. Code Editor bookmarks are now preserved when you close a file. The Code Editor context menu Clear Bookmarks command removes all bookmarks from a file. The new Enable Error Insight option is available on the Tools Options Editor Options Code Insight page. Error Insight automatically highlights invalid code and HTML with a red wavy underline. Passing the mouse over the highlighted text displays a hint window containing the probable cause of the error. The new Help Insight option is available on the Tools Options Editor Options Code Insight page. Passing the mouse over a symbol in the Code Editor displays a short description of the symbol in a hint window. The hint window contains links to additional information where available. CTRL+/ can now be used to comment a selected block of code in the Code Editor. Each line in the code block will be prefixed with //. Pressing CTRL+/ will add or remove the slashes based on whether the first line of the code block is prefixed with //. When using the Visual Studio or Visual Basic key mappings, use CTRL+K+C.Debugging
The IDE now supports both the Borland .NET Debugger and the Borland Win32 Debugger. The IDE will automatically use the appropriate debugger based on the current project type. However, when attaching to a process (using Run Attach to Process) or loading a process (using Run Load Process), you can manually select either of the debuggers. A new IDE command line switch, debugger=[borwin32|bordonet], lets you select either the Borland Win32 Debugger or Borland .NET Debugger when debugging from the command line. Cross-platform (Win32 and .NET) debugging within a project group is supported and, where possible, the debuggers share a common user interface. The new Borland.dbkasp.dll provides improved debugging for ASP.NET applications. The Modules window now displays multiple application domains as separate processes. Clicking a domain node displays a scope tree view of the namespaces, classes, and methods in the right pane of the window. The modules pane within the Modules window can now be sorted by module name, base address, or path by clicking the appropriate column heading. The Local Variables window now supports viewing local variables from a non-current frame when debugging Delphi Win32 applications (previously this feature was only available when debugging Delphi .NET, C#, and C++ applications). Additionally, the variable name and value are now displayed in separate columns for readability. TheBreakpoint List window has a new check box for enabling and disabling individual breakpoints and a toolbar for managing breakpoints. Additionally, the
Breakpoint List window supports in-place editing of the condition, pass count, and group by clicking on the current value in those fields.
When debugging Delphi Win32 applications, the Call Stack window now includes information for stack frames that do not have debug information. When customizing breakpoints in theBreakpoint Properties dialog box, the new Log Call Stack check box lets you to display part or all of the call stack in the debug event log when a breakpoint is encountered.
The Debugger Exception Notification dialog box now includes options to break or continue execution, show the Debug Inspector for the exception object, and show the CPU View. When debugging managed code, the CPU window now displays Microsoft Intermediate Language (MSIL) instructions. The CPU window context menu has a new Mixed IL Code command to toggle the display of MSIL code. The FPU window now displays Streaming SIMD Extensions (SSE) registers in the SSE pane. You can use the SSE pane context menu Display As command to display the register content as quad, double-quad, single, or double words. All of the debugger windows are now Unicode-enabled, allowing them to display and process international characters.ECO Framework
The ECO framework is now supported in ASP.NET and ASP.NET web service applications. The ECO Space designer now contains a tool that allows you to generate code and an object-relational mapping for an existing (non-ECO) database. The ECO Space designer contains a tool to upgrade an existing ECO project to the current release. See the topic Upgrading an ECO framework Project from a Prior Release for more information. In the ECO Package Selection dialog box, the flyover hint for selected packages now displays all classes in that package. Flyover hints for the components on the ECO Space designer show tasks that have been done, and that need to be done. You can create an ECO model in a DLL, and then reference that DLL in another project. The new PersistenceMapperProvider code template generates a class that allows thread-safe pooling of database connections, and sharing a single PersistenceMapper among multiple ECO Space instances.HTML
A new DOM-based HTML formatter provides improved HTML formatting. The HTML Tag Editor now lets you edit the entire tag, not just the inner HTML. The HTML Tag Editor can now be used to edit most HTML tags, with the exception of body, tbody, tr, caption, and tfoot. Syntax highlighting and Code Completion (CTRL+SPACE) are now available for Cascading Style Sheet (CSS) files. The new Structure View shows the hierarchy of the HTML displayed in the Code Editor. Double-clicking an element in the Structure View jumps to its location in the Code Editor. The product includes the August 2004 version of HTML Tidy.ASP.NET Web Development
The ASP.NET Deployment Manager can be added to an ASP.NET application to assist in the deployment process. The Deployment Manager determines which files are required for deployment, lets you modify the file list as needed, and then copies the files to the destination directory of your choice. The new Borland.dbkasp.dll provides improved debugging for ASP.NET applications. The DB Web Controls now provide a Navigation API and a Navigation Extender component, which allow you to transform standard web controls into navigation controls at design time. The DB Web Sound component allows you to add sound to your applications by taking advantage of your installed media player. Supported sound formats include .wav, .mp3, .wma, and others. The DB Web Video component allows you to add streaming video to your applications by taking advantage of your installed media player. The DB Web Control Wizard provides the ability to extend existing DB Web controls or to create your own DB Web controls, using a template-driven approach. You can build individual controls for both Delphi and C#. You can also create DB Web Control Libraries that contain multiple web controls. DB Web Controls now include an ECO-enabled data source component that allows you to use DB Web Controls in your ECO applications. The ECODataSource control provides a bridge between the ECO persistence layer and DB Web Controls. Template editors are now available on context menus for both the DataList and DataGrid controls. The Project Manager context menu contains new commands for creating a folder within the project folder ( New Folder), creating additional files in the project ( New Other), and showing all of the files in the project folder (Show All Files). The new Select URL dialog box provides greater control over URL references. The dialog box is displayed when you click the ellipsis in the Object Inspector for a URL property, such the ImageURL property of the Image Web Control. You can specify and preview a user specified, document relative, or root relative URL. The new Run As Server Control command converts an HTML element to a server control, enabling programmatic control of those elements. The command adds the id="id" and runat="server" attributes to .aspx file and declares the element in the code-behind file. Right-click an HTML element on the Designer to use the command. You can now select and move multiple controls on a Web Form by pressing SHIFT key and dragging the controls.Database Development
Many changes have been made to improve support for database application development in Delphi 2005.
BDP.NET Updates
BDP.NET has been updated in several areas to provide added features and improved support for data providers:
Stored Procedure dialog—when you set the CommandType property for a BdpCommand component to StoredProcedure, clicking Command Text Editor in the Designer Verb area at the bottom of the Object Inspector to open the Stored Procedure dialog box. This dialog box lets you specify the stored procedure you want to use, set input parameters, and execute the stored procedure. If there are output parameters, they are displayed when the stored procedure is executed. Sybase 12.5 support—BDP.NET includes the Borland.Data.Sybase namespace to support Sybase 12.5 as a provider. This gives you the benefits of BDP.NET, such as its rich set of component designers, live data at designtime, when you develop a database application for Sybase. Provider enhancements—multiple updates have been made to improve the reliability and performance for supported providers. BdpCopyTable—the BdpCopyTable class lets you programmatically migrate data from one provider to another. BdpCopyTable maps the data structure, creates the primary key, and copies data. This class does not currently support creating foreign keys or copying dependent objects. Multi-table resolving—the added DataHub and DataSync classes let you connect your database application to multiple data providers through a collection of DataAdpaters. The DataSync class lets you specify the commit behavior for resolving transactions across multiple tables. Data remoting—the DataHub and DataSync classes can be used in conjunction with the added RemoteConnection and RemoteServer classes to develop a multi-tier, distributed database architecture, where applications running on different machines or domains can communicate with each other. The DataHub and RemoteConnection classes are part of the client application, and they connect to the remotely located DataSync and RemoteServer classes. Table and column mapping support for the BdpDataAdpater has been added.Data Explorer Updates
Numerous enhancements have been made to the Data Explorer to help you design and develop BDP.NET database applications:
The Data Explorer supports data migration from one data provider to another. The context menu for tables includes Migrate Data, Copy Table, and Paste Table commands, which let you copy a table of data from one provider and paste it as a new table into another provider. Drag-and-drop stored procedures—stored procedures can be dragged from a provider in the Data Explorer onto a form in the Designer. This adds and configures a BdpConnection and a BdpCommand component and automatically populates the acquired stored procedure parameters. Metadata services—the Data Explorer provides a variety of metadata services that allow you to view and modify your database schema. Using the context menu in the Data Explorer, you can retrieve data from a table for viewing, add a new table, drop an existing table, or alter the data structure of an existing table. You can retrieve data associated with a view. You can also view and modify (input only) the parameters for a stored procedure, and execute the stored procedure.VCL for .NET Database Support Updates
Many updates and additions have been made to enhance database support for VCL applications for .NET:
BDE for .NET—BDE for .NET has been updated to provide dynamic loading of DLLs without specifying a path, to improve performance for handling BLOBs, and to include classes that were previously missing in the .NET implementation ( TUpdateSQL , TNestedTable , and TStoredProc ). dbExpress—the updates for dbExpress include core driver enhancements, metadata improvements for schema name discovery and other bug fixes, TSimpleDataSet ported for .NET, enhanced Command Text Editor, TSQLStoredProc performance improvements, and a new TDataSet component that consumes IListSource. dbGo—dbGo has been ported to .NET to support migration of ADO database applications to the .NET framework. DataSnap—the following DataSnap components have been ported to .NET: TLocalConnection , TConnectionBroker , and TSharedConnection .Additional Database Suppport Updates
The following updates simplify database application development:
Typed dataset support improvements—typed datasets now compile to standalone assemblies without having to compile the entire project. Typed datasets support datasets from Web Services. Access to the Relation Collection Editor and the Table Collection Editor has been added to to the Program Manager context menu to simplify modifying a typed dataset. Easy access has been provided for the .NET DataSet Properties dialog box for viewing the structure, properties, and constraints for a typed dataset. The Object Inspector provides access to a connection string editor for the ConnectionString property for SQLConnection components.Visual Component Library (VCL)
Many of the Win32 VCL components have been updated to support the .NET framework. These include WebSnap and IntraWeb.Delphi Language Enhancements
Delphi has a new for-in-do statement that you can use to iterate over containers. See the Delphi Language Guide topic Declarations and Statements for more information. The compiler now supports function and procedure inlining. See the Delphi Language Guide topic Calling Procedures and Functions for more information. The Delphi language has been expanded to include alphabetic and alphanumeric Unicode characters in identifiers. Note: Unicode characters are not allowed in identifiers in published sections of classes, or in types used by published members. The language now supports the aggregation of multiple units within a namespace. See the topic Using Namespaces with Delphi for more information. The Delphi for .NET compiler now supports dynamically allocated multi-dimensional arrays. See the Delphi Language Guide topic Structured Types for more information.Source Control Integration
The StarTeam integration provides access to the most critical StarTeam features and functions so you can perform version control and configuration management tasks from within Delphi 2005. The integration connects to the StarTeam Server using the TCP/IP (Sockets) protocol. The integration also provides some Delphi 2005-specific features to allow you to easily manage Delphi 2005 project source files.
The StarTeam integration lets you put Delphi project groups, as well as Delphi projects, under source control. The StarTeam integration incorporates large portions of the StarTeam Client user interface into the Delphi 2005 development environment. These embedded StarTeam elements provide access via context menus and tabbed panes to most of the commands and information available in the client's main window (also called the project view window). To open the embedded StarTeam elements, choose StarTeam Embedded StarTeam. The StarTeam integration works together with the Delphi 2005 History Manager to display both local and StarTeam version information for the active file.Testing
Delphi 2005 integrates the capabilities of DUnit and NUnit, open source testing frameworks. DUnit provides the capability to add test cases and test suites to your Delphi projects. DUnit includes a GUI test runner that you can invoke from within the IDE to interactively run your project tests. Additionally, DUnit provides a console mode testing capability. NUnit provides the capability to add test cases and test suites to your C# projects. NUnit includes a GUI test runner that you can invoke from within the IDE to interactively run your project tests. Additionally, DUnit provides a console mode testing capability. You can build DUnit and NUnit test fixtures with the Test Case Wizard. You can add individual test cases to test suites with the Test Suite Wizard.Translation Tools
The Translation Tools options have been incorporated into the Tools Options dialog box. The Translation Tools windows are now docked within the IDE.