Re: Is Borland QA *really* lacking?

From: Jeff Overcash (TeamB) (jeffovercash_at_mindspring.com)
Date: 10/12/03


Date: Sun, 12 Oct 2003 13:57:29 -0400


Ronald McDonald wrote:
>
> In fairness Jeff, web services isn't something that has really ever been well
> catered for in the Professional versions of Delphi. If I remember correctly, the
> ability to create SOAP clients was only added in a Delphi 6 update.
>
> But I note that you didn't mention Delphi 7 being innovative - there are very
> few features present in Delphi 7 that are not present in Delphi 6, if you
> exclude the 3rd party components.
>

Some of the new things in D7

Compiler messages

The new View|Additional Message Info command displays a Message Hints window
from which you can download and view information about compiler messages from
Borland's Web site.
        The new Project|Options|Compiler Messages page gives you greater control over
which compiler warnings are generated.

Component palette changes

There is a new CLX-only version of the System page displayed when you open a CLX
application in Delphi. It includes several directory and file components. In
previous releases, the System page was displayed only for VCL applications and
included components for system-level access.
        The new Indy Intercepts and Indy I/O Handlers pages provide open source
Internet protocol components. (Professional and Enterprise editions)

The new IW Standard, IW Data, IW Client Side, and IW Control pages provide
IntraWeb components for developing Web-based applications.
        The new Rave page provides components for adding report generation to your
applications.
        If a component page can be scrolled horizontally to display additional icons, a
new drop-down menu button can also be used to list the additional icons.

Code Insight changes

Code completion is now faster and lets you browse to the declaration of items in
the code completion list by using Ctrl+click on any identifier in the list.
        New HTML code completion automatically displays valid HTML elements and
attributes in the Code editor. (Professional & Enterprise editions only)
        You can create customized code completion managers by using the OpenTools API.
See Extending the IDE for details.

The Tools|Editor Options|Code Insight page lets you set colors for the symbols
displayed in the Code Insight tools.

Debugger changes

The Watch List now has:

multiple tabs, allowing you to organize watches into distinct watch groups for
easier debugging. To add a watch group, right-click the Watch List and select
Add Group.
        a Watch Name column and a Value column. To show/hide the column headers,
right-click the Watch List and select Show Column Headers.
        a checkbox to enable or disable individual watches.

The Tools|Debugger Options|Event Log page has the following new options:

Use Event Log Colors lets you display different types of event messages in color
in the event log.
        Module messages writes a message to the event log each time a module (exe, dll,
ocx, etc.) is loaded or unloaded by the process that you are debugging.
Previously, the Process messages option controlled whether these events were
logged.

The Run Parameters dialog box has a new option, Working Directory, that lets you
specify the name of the directory to use for the debugging process.

Miscellaneous improvements

>From the Project Manager, you can partially compile projects within a group by
right-clicking on any project and choosing Make All from Here or Build All from
Here.
        The Message view has multiple tabs for displaying different types of messages
(Build, Search, and so on).
        The View|Component List command lets you multiselect components by pressing the
Ctrl key.

The new Tools|Editor Options|Source Options page lets you:

set different editor options for different source types, such as Pascal, C++,
C#, HTML, and XML.
        display tab and space characters in the Code editor.
        edit code templates.

Several of the options on the new page were formerly on the General, Display,
and Code Insight pages of the Editor Properties dialog box.
        The Tools|Editor Options|Color page has two new options, Foreground Color and
Background Color, instead of a color grid, for setting colors in the Code
editor.
        Pressing Alt+Page Down and Alt+Page Up cycles through tabbed views such as the
Code editor, Watch Window, and Message view. These keyboard shortcuts are
included in the Default, IDE Classic, and BRIEF key mappings.

Delphi now displays a two-tone main menu.

Web Services

Web Services includes the following enhancements.

New UDDI browser

A new UDDI browser lets you locate and import WSDL documents based on the
entries in a UDDI registry.

SOAP headers

New classes and interfaces let you read or insert headers into the SOAP
envelopes that transmit messages between clients and servers. For more
information, see Defining and using SOAP headers and Processing headers in
client applications.

Attachments

Web Services applications (both client and server) can now handle attachments.
Attachments (TSOAPAttachment descendants) are sent with SOAP-encoded messages as
part of a multipart form. When an application receives the attachment, it saves
it to a temporary file, which is then available to your application.

Type support

You can now customize the conversion between remotable classes and their SOAP
representation by overriding two new virtual methods that were added to
TRemotable: ObjectToSOAP and SOAPToObject.
        Exception objects for exceptions that occur when responding to a Web Service
request (ERemotableException instances) now contain more information from the
SOAP fault packet.

Type definitions are automatically registered with the remotable type registry
when you register an invokable interface.
        TXSDecimal has a new AsBcd property for easier conversion between XML and
native types. Similarly, TXSHexBinary has a new AsByteArray property. Remotable
classes that represent time values now let you work with fractional seconds
rather than milliseconds.

Other enhancements

New events on THTTPReqResp let you to intercept the HTTP message before it is
sent, and to monitor progress while sending or receiving long messages.
        THTTPSoapPascalInvoker now publish events that let you write code to execute
before or after the invoker executes a requested method call.
        You now have more control over the mapping between invokable interfaces and
WSDL documents. TWSDLHTMLPublish now publishes several events to let you control
the generated WSDL. You can also identify the mapping between function return
values and parameter names, the use of namespaces, and default SOAP actions. On
the client side, literal encodings are now supported as well as RPC-style
encoding.

A new interface, IRIOAccess lets you access the remote interfaced object that
implements an invokable interface.
        The IOPConvert interface has a new property: Encoding. This allows you to
specify the character set to use for encoded messages that are passed between
the client and Web Service provider.
        There are changes to Web Services that affect DataSnap applications. See
Database technology changes for details.

The TLinkedRIO constructor now automatically generates separate file names for
each method you call, making debugging easier.

TOPToSoapDomConvert now has two new events that you can use when debugging the
deserialization of SOAP packets.
        You can now use overloaded methods on invokable interfaces that you define.

Database technologies

The dbExpress drivers have been updated for Informix SE, Oracle 9i, DB2 7.2,
InterBase 6.5, and MySQL 3.23.49. A new driver is available for MSSQL 2000.
        There are several new and changed database components. See Component library
changes for details.
        Borland has deprecated SQL Links; no further enhancements will be made to SQL
Links and it will not be included with Delphi after 2002. Borland recommends
using dbExpress for SQL server database access in Delphi.

DataSnap (Enterprise edition only)

In DataSnap applications, the use of IAppServer has been changed to
IAppServerSOAP, which avoids some ambiguities in the IAppServer interface. The
UseSOAPAdapter property of TSoapConnection can be used to write clients for
servers written with earlier versions of Delphi. TSoapConnection also publishes
several new events for you to customize your client applications at various
points in the process of executing a Web Service request.

You can now identify a specific SOAP data module in an application server that
has multiple data modules. Use the SOAPServerIID property or add the data
module's interface to the end of the URL.
        You can now use the SOAP connection component to call extensions to the
application server's interface. Use the SOAPServerIID property and the
GetSOAPServer method.
        DataSnap no longer supports CORBA connections.

Windows XP Themes support (Professional and Enterprise editions)

VCL applications now include components that enable support for Windows common
controls version 6. Your application will automatically use the new Windows
controls on Windows XP systems if it finds a suitable manifest file. For more
information, see Common controls and XP themes.

New unit

The new DBClientActns unit contains three new action components for working with
client datasets: TClientDataSetApply, TClientDataSetUndo, and
TClientDataSetRevert.

New components

The dbExpress page of the Component palette includes TSimpleDataSet for use with
simple, two-tier database applications (TSimpleDataSet replaces
TSQLClientDataSet).
        The Dialogs page of the Component palette includes TPageSetupDialog for
providing a Windows standard page setup dialog box.
        The Additional page of the Component palette includes TXPColorMap,
TStandardColorMap, and TTwilightColorMap for colorizing menus and toolbars.

The new CLX version of the System page of the Component palette includes new
directory and file components.
        The new Indy Intercepts and Indy I/O Handlers pages on Component palette
provide Internet protocols. (Professional and Enterprise editions)

Changed components

The CLX versions of TOpenDialog and TSaveDialog have been expanded to support
additional features such as file previewing.
        The VCL version of TCustomForm has two new properties, ScreenSnap and
SnapBuffer, which control whether a form snaps to the edge of the screen when
the form is moved.

TCustomComboBoxEx has a new AutoCompleteOptions property that enables a combo
box to respond to user keystrokes.
        CLX dialog objects that descend from TOpenDialog and TQtDialog can now use
Windows Common Dialogs in place of Qt Dialogs. This behavior is controlled by
the UseNativeDialog property, which defaults to true.

Classes unit

A new exception class, EFileStreamError, has been added. EFileStreamError and
EFOpenError descend from this class. This new class may take a FileName
parameter. As a result, the exception message text now contains the name of the
file the error occurred on.
        The TStrings class has two new properties, ValueFromIndex and
NameValueSeparator.
        The TThread.CheckThreadError methods have been promoted from private to
protected visibility.

Math unit

The Math unit has a new default parameter, RaisePending, in the ClearExceptions
procedure.

StdConvs unit

The StdConvs unit now includes stones in the supported weight units.

StrUtils unit

The StrUtils unit contains the following changes related to multi-byte character
set (MBCS) support:

Previously, LeftStr, RightStr, and MidStr each had an AnsiString parameter type
and return type, and did not support MBCS strings. Each of these functions has
been replaced by a pair of overloaded functions, one that takes and returns
AnsiString, and one that takes and returns WideString. The new functions
correctly handle MBCS strings. This change breaks code that uses these functions
to store and retrieve byte values in AnsiStrings. Such code should be updated to
use the new byte-level functions described below.

New functions LeftBStr, RightBStr, and MidBStr provide the byte-level
manipulation previously provided by LeftStr, RightStr, and MidStr.
        New functions AnsiLeftStr, AnsiRightStr, and AnsiMidStr are the same as the new
AnsiStr LeftStr, RightStr, and MidStr functions, except that they are not
overloaded with equivalent WideString functions.

The StrUtils unit has a new string-searching function called PosEx.

SysUtils unit

The SysUtils unit now includes thread-safe overloads of routines that format and
parse numbers, date-time values, and currency. The new routines are thread-safe
because they obtain their localization information from a TFormatSettings data
structure instead of from global variables. This data structure must be
populated before being used; a new function, GetLocaleFormatSettings, is
provided to populate the data structure from a specified locale.

VarCmplx unit

The VarCmplx unit has new functions: VarComplexLog2, VarComplexLog10,
VarComplexLogN, VarComplexTimesImaginary, and VarComplexTimesReal.

Variants unit

The VarIsError and VarAsError functions have been added.
        The EVariantError exception is now a base class for finer grained exception
classes that are thrown from variants code.
        Several new global Variant control variables have been added: NullEqualityRule,
NullMagnitudeRule, NullStrictConvert, NullAsStringValue, and PackVarCreation.

Pluse the .NET preview compiler.

> This is why I believe that Delphi 7 will be the last release of Delphi for
> win32. Innovation has all but dried up.
>

Since Borland has stated that there will still be updates to the Win32 Delphi
and Danny Thorpe has stated that there are changes already in place for the
Win32 compiler for the next release, I'd take Borland statements over your
guesses any day. They know what they are talking about, you can only guess with
your bias obviously highly slanting the way you are guessing.

-- 
Jeff Overcash (TeamB) 
      (Please do not email me directly unless  asked. Thank You) 
If there is somebody up there could they throw me down a line.  Just a
little helping hand just a little understanding.  Just some answers to the
questions that surround me now.  If there's somebody up there could
they throw me down a line.               (Fish)