Tuesday, April 7, 2009

The Dark Side (of the moon) or Not?

For the past couple of months we have been doing a fairly in depth review of Delphi Prism. We have a 6-8 month project that we need a fairly complex web service. Our past experience with Delphi for .NET and C# we knew that the API's in .NET would be a big advantage to our project.

Since we already own RAD Studio, it was time to review and see if Prism was the right technology or if we should just move back to Delphi Native only. The flip-flopping on the .NET side of Delphi has driven me crazy.

We decided to start with something simple but complex enough to test the needs of our project. If the technology did not prove it's self then we would not be out a ton of time.

The IDE in Prism is Visual Studio but I found the transition to the different IDE fairly easy, of course I have done quite a bit of C# work in the past.

Overall I have to say I am impressed. We have been able to build a solid web service in short time. The language being Pascal based is a huge win as it requires far less training that switching to entirely different language. I also liked several of the language features that C# does not have. Specifically Sets and the colon operator.

The one drawback I noticed was that there was not direct support for LINQ to SQL. If you have the full VS.NET product you can build a LINQ to SQL assembly and use it fine in Prism. However, Microsoft does not support Oracle which is the Database we use. Microsoft only supports SQL Server. If the DBX team could conquer LINQ to SQL for DBX it could be a huge win. But then again I think the designers only ship with the VS product and not with the Shell, which has been major reason for the flip-flopping of Delphi in the .NET world in the past.

Will we be using Prism for anything other than ASP.NET technologies? Well at this point I doubt it. I still am a huge fan of native code development. It does work well in the ASP.NET environment and we will be using it for our 6-8 Month project we were reviewing the technology for.