Goodies and Bugs in Delphi XE

marcocantu.blog - пн, 06/09/2010 - 15:50

This post is actually a collection of small ones (should probably start an "small tidbits" series of posts like Nick Hodges does -- congrats on the new job, by the way).

1. There is a nice article about "Goodies in Delphi XE" by Jan. Short and effective, a good read to learn why bother about XE.

2. There have been many discussions about the number of bugs in Embarcadero's Quality Central (including some long standing ones) being fixed, marked as fixes, closed and all of that. The system is not free of failures, probably also due to the fact that this is an external bug tracking different from the internal "real" one. Still, the effort they've put into clearing the bugs backlog nas been significant, much mroe than in the past. Also a number of bugs I've opened have been fixed and have been closed. Good. Of course, we'd want more...

3. Another interesting issue related with bugs is that soon after shipping XE, a user noticed a memory-draining bug in the IDE, as you can read in this thread... and in a very short time R&D members mentioned having a a patch ready for internal testing. No software product is bug free, but acting on a report promptly is what matters most, in my opinion. 

4. My last blog post on BlackFIsh SQL raised many interesting comments. Seems SQLite is getting very popular among Delphi developers... Will probably blog again on this.

 


Категории: Все ленты

BlackFish SQL Gone in Delphi XE, What About a Replacement?

marcocantu.blog - пт, 03/09/2010 - 16:20

BlackFish SQL, the .NET database installed with recent versions of Delphi, is not part of Delphi XE... and it seems Embarcadero pulled the plug on it.

BlackFish SQL Gone

According to the Delphi XE FAQ:

Is Blackfish SQL still included with Delphi? Blackfish SQL is no longer included with Delphi as of the XE version. We recommend InterBase which is available in multiple configurations is a great choice as an embedded database.

BlackFish SQL started with JBuilder, was a complete SQL database written in Java, great for small or embedded applications, and was ported to C# with an automatic tool to create a fully compatible .NET version. Nice for small demos, you had to pay for deployment, and while it could be used for Delphi .NET development, it made little sense to use a managed database engine for a native Delphi application. I guess very few licences were ever sold and that it will be discontinued, sold, open-sourced (in case some developers really care), or anything like that. I doubt many Delphi developers will ever notice.

Delphi and Local Database Engines

Still, this opens up an interesting topic. In the early days, for simple applications (and even some large ones) the natural choice for Delphi developers was Paradox. Later on (with Paradox disappearing) many developers used another simple local database, Microsoft Access (and many still do). At the same time, the company pushed for migrating towards full relational databases, including their very own Interbase. Many Delphi developers picked that direction, but for some it was way too complex for the task at hand.

In parallel, there has been a lot of interest around fast and powerful ISAM databases that added fast SQL processing without giving up their navigational nature. Unlike a relational DB, with a navigational one you can open a million records table in a grid and let the user browse it (not that this is a great idea, though). This makes porting existing code incredibly faster and minimize changes in the user interface of classic applications. Two good Delphi-related examples (out of dozens, sorry for those I'm not mentioning) are Advantage Database Server and Nexus DB. Before you ask, similar tools don't lack much of the features of big brothers, work on networks and over the Internet, provide hot backups, replication, triggers and stored procedures, encryption, and much more.

While far from common for enterprise applications (in which you might have to comply with the database choice of the customer), similar databases are really great for ISV and web applications and in many other circumstances. I really think Delphi has lacked a local and simple option, and suggesting people to buy the cheap "Interbase To Go" or pick the free Firebird Embedded still doesn't address the original concern. With Delphi core dataset classes and data-ware controls still bound to a navigational model, a navigational database can really make simple applications fast to write and fast to execute.

Any Room for a Local Delphi DB?

So I still hope Embarcadero can address this issue in the future, offering a nice local engine (a third party one or on open source one could do) for the Professional version... and maybe a future free or very cheap version of the product, as it was in the early days. Having removed most dbExpress connectivity options from the Professional versions, the current best options are still Microsoft Access, third-party databases with custom components, or third-party data access components. Sure, we like options, but I think this something far from optimal for the product, particularly at an entry level. So I ask, is there room for a local Delphi database in the box?

 


Категории: Все ленты

Delphi XE Released

marcocantu.blog - чт, 02/09/2010 - 17:16

While I was still in vacation (in Denmark), Delphi XE has been released. So this is now old news, but still deserves being blogged about. Given the detailed previews of the past few weeks (with the videos still available on http://www.embarcadero.com/rad-studio-xe-preview), there haven't been many surprises in terms of product features, but I'm sure we'll see more and more blog posts in the coming weeks offering more details and nice hidden features of the product. It is very good that besides new features there has been a large effort to address existing issues, like those related with the generics support of the compiler.

The official press release is here. The product page is at the usual location at http://www.embarcadero.com/products/rad-studio. (If you live in Italy, you can buy Delphi XE on my online shop).

Comments and Comments

OK, what about adding a few comments? First, there are still several features I'm investigating, so this is only a limited point-of-view for now. Certainly, the product delivers less than many developers were hoping or anticipating (64 bit or Mac support). But on the other hand it is a very strong Win32 release, with many bugs fixed, lots of small but relevant features added, some great third-party tools embedded and available for free, significant improvements to the DataSnap and REST support, and the start of "cloud support". So I stand with my previous comments, a new Delphi 7 . In a couple of weeks, I'll probably be able to update my position, having delved more into some of the features.

Beside my personal comments, which are the public ones? Certainly the blog sphere has been very quite, lacking a "grand announcement". The exception is this nice blog post: http://tech.turbu-rpg.com/181/first-look-at-delphi-xe. There are, of course, several other blog posts at http://blogs.embarcadero.com/. Newsgroups reactions? Some are here.

Little Tidbits

Don't want to provide a list of features as I already blogged about some and the official sites have the complete list. Just wanted to point out to a few tidbits:

  • Examples are on SourceForge under version control. Nice idea, given the subversion integration. Guess you still get a standard local copy, though.
  • There is a demo DataSnap server in the cloud you can try connecting to.
  • If you buy Delphi XE, you can also previous versions (from Delphi 7) for free.
  • There is a discounted Professional Upgrade price until the end of September.
Events I'll Attend: Paris, Rome, Milan

A world tour of launch events by many speakers is ongoing. I'll be at the event in Paris on September 9th (with David I, who's touring Europe on an impossible schedule), and the two Italian events in Rome and Milan on the 21st and 22nd of September (in Rome there should be also David I, at both events myself, Daniele Teti, and other Bitime speakers). Later on I might also run a class in Piacenza, to offer a more in-depth view of the product.

More to Come, Book Included

That's all for now. As mentioned, I'll delve into it, also because there is a book on Delphi XE new features coming from your truly. In the meanwhile I plan covering a few features on the blog and record some demonstration videos.

 

 


Категории: Все ленты

Delphi XE Third Preview Video and More

marcocantu.blog - вт, 24/08/2010 - 23:58

The next version of Delphi will be called Delphi XE... and there is a third (and last) preview video available online, focused on datasnap and REST support. Specifically, as you can read in the announcement at http://edn.embarcadero.com/article/40768, the new video covers:

  • Cloud computing access to Windows Azure services
  • Quick deployment to Amazon EC2 cloud servers
  • Extended multi-tier development with new wizards, new protocol support, encryption and compression, cloud servers, and PHP/JavaScript clients
  • The inclusion of RadPHP XE, IP*Works and IntraWeb, which provide new choices for Web app development

 Here is the video from YouTube (you can find it also at http://www.embarcadero.com/rad-studio-xe-preview):

Plus there is more, probably deserving a separate blog post, but here it goes:

  • "Sons of Kahn: The Apocrypha" by Verity Stob is yet another great story about the recent changes to the Delphi road map. It mentions David I, Allen Bauer (#34ed saying "Let he who hath never slipped a project cast the first pointer."), and many others you can recognize. It is very funny as usual. Read it on The Register at http://www.theregister.co.uk/2010/08/23/verity_stob_kahn_apocrypha/. The snippet I love best is the song of the Delphi developers:

MS lost its mojo, 

Jobsy mashed up Flash, 

Oracle's strangling Java, 

But Delph will never crash!

That's all for this condensed post, I've finished packing, will leave tomorrow early morning for a week in Denmark. Offline. Likely no update to blog, probably no comments approved.

 

 

 


Категории: Все ленты

Delphi XE Beta Blogging: New in the RTL

marcocantu.blog - пт, 20/08/2010 - 12:25

In this third "beta blog" I'll just provide a (partial) list of new RTL classes and functions. I've picked just half a dozen of new things in the RTL I find very useful, but the complete list accounts for several dozens of significant changes.

In case you don't know, "Delphi beta blogs" are authorized blog posts by independent bloggers covering features of a beta version of Delphi. This means I was given a specific permission to post about this topic and I'm discussing a feature of a pre-release version. Notice also that the official RAD Studio XE Preview page is at   http://www.embarcadero.com/rad-studio-xe-preview  . Since this is a pre-release, there is no guarantee it will work the same in the final version (or will actually be in the product).

Here is a partial list of  new classes in Delphi XE RTL (compared to Delphi 2010):

  • TBinaryReader and TBinaryWriter somewhat counterparts of the TTextReader and TTextWriter introduced in Delphi 2009
  • TTimeZone is a little helper for managing time zone and computing time differences
  • TInterlocked, TSpinWait, TSpinLock and many other new core synchronization classes help you push your multi-threaded code further and make it more cross-platform (as these classes have a native implementation, based on only core OS support). The TThread class has been also extended with direct execution of anonymous methods inside a temporary thread and several other features.
  • TRegEx is the core record implementing native regular expressions support. This is a big step forward, despite many developers already used third party libraries for regular expressions.

Other notable changes, beside new classes, include:

  • The addition of a DefaultEncoding to TStrings, which lets you pick for Unicode format when a list of strings to a text file. There is also support for converting string lists to and from arrays of strings.
  • The TPath record in IOUtils has a new GetHomePath class method, which on Windows returns the applications data folder, “AppData\Roaming”). The method calls a corresponding new function in SysUtils. There are actually a lot of improvements in file management, for example with the inclusion on TSymLink, and abstraction... all due to the coming cross platform support.
  • Finally, I'd like to mention one of the new functions, SplitStrings. This is quite fast, compared with other techniques I used in the past for splitting strings. Another small nice addition.

Again, this is a very partial and limited list of features, nothing revolutionary but many welcome additions.


Категории: Все ленты

David I Underwater Challenge

marcocantu.blog - чт, 19/08/2010 - 11:45

A new funny marketing site for Embarcadero, http://www.embarcadero-xe.com/, features David I as a scuba diver, and you can win prizes, too. On the home page, you can see a video of David I diving with one of his incredible teeshirts:

    

There is more fun in terms of downloads, as you get get paper-based games in PDFs in the page http://www.embarcadero-xe.com/fun/index.html. For example you can get the following page to cut to obtain a standing figure:

Last but not least there are a couple of games. One is a more serious trivia, the second an underwater game you play but making David I jump away from fishes and sharks. Here are a few images:

  

When you are done, you can send you results to Twitter or Facebook, for a change to win a prize. 

PS. There is a hidden trick that let's you go over unlimited levels and never die, so don't take results too seriously. Right now I'm on level 20 and 190680 points, I guess I'll let it go some more and than post it to Twitter.


Категории: Все ленты

Delphi XE Second Preview Video

marcocantu.blog - ср, 18/08/2010 - 09:17

 The next version of Delphi will be called Delphi XE... and there is a second preview video available online, focused on third party tools. As per the video announcement (at http://edn.embarcadero.com/article/40773) after the first preview focused on Subversion integration, this second preview covers some of the third party tools that will be part of Delphi XE:

  • FinalBuilder, used to manage the build process
  • The ability to invoke IDE operations (like audits, metrics, code formatting) from the command line, and so invoke them from external tools like FinalBuilder
  • The integrated version of profiling tool AQTime
  • The logging support provided by CodeSite, a nice tool written by Ray Konopka.

Here is the video, in the version you can find on YouTube:

Finally, I wanted to point out that there has been some clarification to the roadmap (http://blog.marcocantu.com/blog/delphi_roadmap_aug2010.html) regarding 64-bit support offered by Allen Bauer in the Embarcadero forum and reported by Jeroen Pluimers: Pulsar (the version of Delphi following XE) should have a fully capable and integrated Win64 bit compiler, with full RTL and VCL support. This is expected "sometime in 2011". Notice though, that this is rephrasing some newsgroups posts, so it lacks any formal backing.


Категории: Все ленты

Delphi XE Beta Blogging: Search for Usages

marcocantu.blog - вт, 17/08/2010 - 18:27

In this second "beta blog" I'll discuss a very simple and nice feature, only partially new to Delphi XE.

In case you don't know, "Delphi beta blogs" are authorized blog posts by independent bloggers covering features of a beta version of Delphi. This means I was given a specific permission to post about this topic and I'm discussing a feature of a pre-release version. Notice also that the official RAD Studio XE Preview page is at  http://www.embarcadero.com/rad-studio-xe-preview  . Since this is a pre-release, there is no guarantee it will work the same in the final version (or will actually be in the product).

 

The Search for Usages command in Delphi XE is available for projects that don't have Modeling support enabled. Differently from "Find References", "Search for Usages" is more flexible. If you search for a type it includes members and derived types, plus variables of the given type. If you search for a method it includes overridden ones. Actually, you can filter out what to search for and whether you want a full inheritance graph by picking some of the options in the dialog that brings you to that feature:

 That's all for now, might have more time in the coming days.


Категории: Все ленты

Delphi Roadmap, August 2010 Update

marcocantu.blog - пт, 13/08/2010 - 15:31

Delphi Product Manager Mike Rozlog has uploaded a "much awaited" Delphi Roadmap, officially showing that Mac and cross-platform support has been shifted to the next release and won't be in Delphi XE (see the most recent posts on this blog for info about it). You can find the roadmap at http://edn.embarcadero.com/article/39934.

Mac and 64-bit, but When?

The most significant piece of news is that the coming Delphi XE version (previously indicated with the codename Fulcrum) is not going to have Mac and cross platform support, nor the long awaited 64-bit compiler. The good news for those waiting these new features is that the rest of the roadmap (even if far from clear) won't delay them as much. The preview 64-bit compiler is still indicated with a "first half of 2011" like it was and future versions should have both 64-bit and Mac support, although from the slides it is not clear which features actually go into Pulsar ("Introduction of 64-bit and cross-platform to the RAD Studio product line"), Wheelhouse ("Extending support for 64-bit and additional platforms"), and Commodore ("Full support for 64-bit compilers for Windows, Mac OS, and Linux"). Part of the differentiators comes from the fact Delphi language will be there before C++, according to come of the details.

Now there is no timeline in the roadmap, which is partially reasonable (given the current missed promises), but somewhat disappointing: will we get a fully working IDE in a couple of years or less... or should be read "one year for each project" ending in late 2013? I certainly hope the former is true.

More Info on Delphi XE

The roadmap provides for the first time a rather complete list of features for the coming version, Delphi XE (partially announced early this week):

  • Datasnap extensions ("key new functionality") and related cloud support (Microsoft Azure and Amazon EC2 are mentioned), plus improved REST server support
  • Source code management (the subversions integration already showcases in a video)
  • Performance profiling and logging support (which I don't think I've seen publicly mentioned previously, see later in this post for the details)
  • Sequence diagram generation
  • More support for generics
  • Additional development tools (quite vague, I have to say)
  • Plus various enhancements

In the RAD Studio package there will be also a new Delphi Prism with full Silverlight support and the latest version of the Embarcadero PHP IDE.

AQTime and CodeSite Bundled, Plus More

Some extra features show also in the post "What Beta Testers are Saying" by Time Del Chiaro (http://delphi-insider.blogspot.com/2010/08/what-beta-testers-are-saying-about-rad.html). This post adds to the "profiling and logging" bullet point by #34ing:

“It's great to see that tools such as AQTime and CodeSite will now be part of the default setup"

Both AQTime and Ray Konopka's CodeSite are two highly regarded third-party tools and their addition to Delphi increases the value of the product. Some people might claim "I already have those" but they are quite a minority. I hope this is not a one-time bundle but these add-ins will be kept over time, like it happened in the past with other external tools.

In a different message on the company forum, Mike Rozlog adds more, including RegEX library, and some IP*Works components:

The updated Generics works is awesome, the new RegEX library is really cool, and the new tools added to the environment. AQtime is really awesome and has a great set of base features. Raize CodeSite is really cool, if you have ever implemented logging before, one time with this and you will see the coolness. There are updates from VCL for the Web (IntraWeb), TeeChart, and InterBase Express. Plus new components from IP*Works, and of course integration with Beyond Compare, but there is even more great things...  the DataSnap proxy generator (it currently generates Delphi, C++, JavaScript and now PHP code)... 

A Final Comment

Let me finish with a comment. I've seen a lot of debate about the delay of Mac support. It clearly shows that the company could not keep up to its promises (made just a few months ago, in May). On the other hand, it shows they'd rather take responsibility and delay it rather than cracking out a half-baked and buggy tool. Given the choice, I'm happy this was the decision. Of course, I would have preferred a timely version with tons of new features... but being a software developer myself I can see the struggle. In the past Borland would have shipped (and did ship) what it had at hand. Remember Delphi 4 or Delphi 8 for .NET?

Will this leave Delphi XE as a minor update? It certainly is at the language level, but I'm sure that the focus on bug fixing and quality, along with the integration of third party tools will make it a rather nice and valuable version. Those of you with a few years of Delphi on their back might remember an old version of Delphi, which provided only some fixes (and not as much) and some third party additions (not as many)? That was Delphi 7, which considering how much is being used today after so many years can be considered one of the key versions of the product. Maybe in a few years will remember Delphi XE (the last Win32 Delphi) as such a version.

PS. If I don't approve all comments right way don't take it personally, as I'm taking a few days of "very reduced online activity" for the mid-August Italian holidays...

 


Категории: Все ленты

Delphi XE Beta Blogging: Code Formatting

marcocantu.blog - чт, 12/08/2010 - 17:35

In this first "beta blog" I'll discuss an IDE feature that's not covered in the first beta video, namely improvements in code formatting . I picked this specific topic not because it it the most important feature of the product, but because it is a tiny gem that I can easily discuss in a blog post. Covering something like the extensive subversion integration in a blog post is quite hard, I have to say.

In case you don't know, "Delphi beta blogs" are authorized blog posts by independent bloggers covering features of a beta version of Delphi. This means I was given a specific permission to post about this topic and I'm discussing a feature of a pre-release version. Notice also that the official RAD Studio XE Preview page is at http://www.embarcadero.com/rad-studio-xe-preview . Since this is a pre-release, there is no guarantee it will work the same in the final version (or will actually be in the product).

Source Code Formatting

Source code formatting was introduced in the Delphi 2010, but it had a couple of weaknesses that limited its usefulness. First, you could format the selected lines of a unit or a full unit, but not all of the units of a project at once. Second, if you customized the format settings there was no obvious way to copy the settings to another computer or share them with the other members of your team, to keep the source code format consistent.

New: Format Project

Delphi XE addresses both issues, adding some further formatting options. The first and more obvious change is that you can now use the Project | Format Project Sources menu item or the corresponding entry of the Project Manager local menu (on a project node). As the name implies, this applies the current source format settings to all of the units of the current project, after showing a confirmation dialog.

As you reformat a project you get some status information on a dialog which you can barely glance to (more or less like when you compile), but this is all added to a specific tab of the Messages pane, like in the following simple case:

Starting format sources in project C:\Users\Marco\Documents\RAD Studio\Projects\Project5.dpro Formatting C:\Users\Marco\Documents\RAD Studio\Projects\Project5.dpr ... Formatting C:\Users\Marco\Documents\RAD Studio\Projects\Unit8.pas ... Format project sources finished

If you format an individual unit, instead, the dialog below will let you disable further confirmations and won't output its status to the Messages pane:

 

Formatter Profiles

The Formatter | Profiles and Status page of the Options dialog box mentioned in the message box above contains the specified settings and also the option to disable the code formatter, removing the corresponding menu items.

Its main goal, though, is to let you manage the active settings of the formatter, picking one of the predefined options, updating it, and saving the current settings to a custom file. If you save the files in the Delphi user's “roaming” folder, like in my case:

C:\Users\Marco\AppData\Roaming\Embarcadero\BDS\8.0

and it's named with the pattern “Formatter_*.config” it will be picked by the IDE and listed in combo box at the top of the page, if not you can still locate it with a File Open Dialog. The top of the page is shown below:

Interestingly enough, a formatter profile is a rather plain XML file you might even edit or process directly. At the beginning there are the global settings, followed by the specific settings for each language, grouped by category using some comments:

That's all for this first post. Will find time for a few more in the coming days and weeks.

PS. Before you ask about the overall features of Delphi XE and the potentially missing features, we'll have to wait for the road map update that Product Manager Mike Rozlog said he's close to release in this thread. Until that information becomes public, there is nothing I can comment upon.


Категории: Все ленты

Delphi XE First Preview Video

marcocantu.blog - ср, 11/08/2010 - 10:50

With a breaking change from the recent numbering scheme (based on years, but one year in advance) the next version of Delphi won't be called Delphi 2011, as a few anticipated, but will be called Delphi XE, along with the new naming rule for all Embarcadero products. Of course there will also be a RAD Studio XE, which will include Delphi XE, C++Builder XE, and Delphi Prism XE (as usual) along with RadPHP XE, a new entry in the suite (formerly known as Delphi for PHP).

The Partial Announcement

There is no formal announcement of the product, but only the indication of a first set of features demonstrated in the video and detailed in the document at http://edn.embarcadero.com/article/40766:

  • Full subversion integration in the IDE, including as a plugin a differencing viewer based on Beyond Compare (a favorite tool of mine). From the video this looks very nice indeed.
  • New debugging features.
  • Modeling improvements, with more powerful class diagrams and (noticeably) the ability to generate sequence diagrams directly from the code of your methods.

A few more features are mentioned by the product manager in his blog at http://blogs.embarcadero.com/michaelrozlog/2010/08/10/37149/, and from those I noticed a relevant feature for teams like the ability to save and share the customizes formatting options.

This is not a complete features list, but only a list of features demonstrated in the video. Three more videos are expected in the coming weeks, followed by more formal online presentations in the first week of September and face-to-face events around the world in September (as mentioned by David I on his blog at http://blogs.embarcadero.com/davidi/2010/08/10/40083/).

Having said this, the features covered in this video hardly match what was in the last public roadmap, as questioned by Tim Anderson on his blog.

The Video

There is a first preview video available online in a number of places, including Facebook, YouTube, and the Embarcadero site at http://www.embarcadero.com/rad-studio-xe-preview (the home page for this and coming previews). You can also start the embedded version below:

What is XE?

But what does XE mean? It is not an acronym, but a marketing terms global to Embarcadero, and tied to a change in the product strategy (one license for multiple databases, rather than a specific license for each) but a more generic meaning associated with it for developer tools. In the words of Andreano Lanusse

"XE in few words means:

Heterogeneous database support with no additional cost

 

ToolCloud enable which will help you to management and distribute our Tools in your organization

Easy way to upgrade do All-Access XE and get access for all Embarcadero database and developer Tools"

Temporary Conclusion

This first announcement shows a very limited set of the new Delphi XE features, so it is hard to comment on them in full. I appreciate the integration of third party tools (like Beyond Compare, which is itself written in Delphi) and hope there will be more. Stay tuned, despite the summer time and vacations (which I find a very bad time for products announcements).


Категории: Все ленты