Not everything intended for .NET 3.5 made it into this year's Visual Studio rev. Microsoft is expected to release .NET 3.5 SP1 this month, and it includes improvements to the .NET framework including a faster install and numerous database development updates. Improved data handling features should prove compelling for .NET developers, but there may be a steep learning curve, and there is a strong chance that established alternatives will co-exist with Microsoft's latest effort to change the data development paradigm.
The features promise to speed development efforts for applications, which can be served to Windows clients or to any browser using a .NET server. Among the key improvements are SQL Server 2008 support, ADO.NET Entity Framework including LINQ to Entities, ADO.NET Data Services, ASP.NET Dynamic Data, and an ASP.NET routing engine.
Christopher Swenson, Senior Strategy Manager of the Developer Division at Microsoft, pointed out that with the new ADO.NET features, developers can query the data model rather than the database directly. This means that developers can create an abstraction layer to represent the data, rather than stepping through previous tools like wizards to get at the database. The dynamic services minimize the number of roundtrips between the client and the server, providing better application performance and enabling developer to create more readily understandable queries and filters.
Improved ADO.NET object-oriented capabilities made a significant difference in a recent project for a healthcare system, said Galen Murdock, President and CEO of Veracity, a 40-person software development shop. Murdock said that the Veracity developers used .NET 3.5 SP1 for the development of FreeNatal, a Web-based application for Misys Healthcare Systems that provides prenatal care providers with an easy-to-use, secure interface for managing patients' records. Murdock said that the improved object oriented database capabilities enabled them to increase development speed by 60%.
Veracity evaluated a number of technologies, including Ruby, PHP, and older versions of .NET, before beginning the project. The company had also considered using NHibernate for the database integration portion of the application, which its developers have used in a number of other projects. But Murdock concluded that the version of .NET had all of the features, particularly the database integration components, required to provide the best software infrastructure.
Although most of Veracity's development efforts have been in .NET, Murdock admitted that they found issues with ASP.NET Ajax or Web Forms, and that they had misgivings about the server-based model that ASP.NET was oriented toward. They instead used an ASP.NET Model View Controller (MVC) approach, which Murdock called "technology done right." It is a better serverside programming model than traditional ASP.NET, and the developer does not have to deal with view state and other encumbrances traditionally imposed, in Murdock's view.
Veracity developers were able to obtain a development speed improvement by modeling the data using Entity Framework, which could automatically generate the database and create a C# representation of it. This representation could then be consumed by the ADO.NET services with minimal programming. The streamlined process facilitated Veracity's Agile style of development by simplifying the generation of new databases and the glue code with each iteration of the development cycle. The REST style of development enables the database to retrieve data using a standard URL.
In green field development applications are built from scratch, while in brown field development the developer must make changes to the existing database. This can complicate the development effort because of the changes that need to be made to both the database and the .NET application. Agile development patterns face the same challenges as brown field development because a basic application is typically created and then modified in rapid succession.
Murdock said that previous versions of Entity Framework were only good at green field development because of limitations in the ability to automatically update changes to the application and database. However, with SP1, the entity framework update tools do a better job at automatically detecting table changes and updating the code. "Now entity framework is our data model of choice for products like FreeNatal," he said.
Murdock notes there are still better frameworks for complete abstraction of your data for persistence. For example, NHibernate has been on the street longer and is more mature; it would have been the database abstraction framework of choice a year ago. But a lot of thought has been put into Entity Frameworks, and most of Murdock's concerns have been addressed.
"Entity Frameworks does not try and be all things to all people," Murdock assessed. "But for the majority of database applications, whether Oracle or SQL Server, an Entity Framework makes the most sense."
Of course, for many, NHibernate and other OR/Ms have proved, tried and true. For his part, Christian Hassa, a managing partner at TechTalk, which makes the Genome O/RM, raised some concerns about the value proposition of the new data features in SP1. "Astoria's current release focuses on integrating with Entity Framework, but it appears that its extensibility is still unstable when it comes to other frameworks," he said.
Hassa also believes that Microsoft overstretched the mark in terms of the complexity of the new Entity Framework. He said, "There is the potential that the proposed development model and abstraction required by Entity Framework is overkill for certain applications."
For developers ready to try out SP1, a key feature is a core 27-MByte download, compared to a 197-Mbyte download for previous versions of the full .NET 3.5 package, noted Ian Ellison-Taylor, General Manager, Presentation Platform and Tools at Microsoft. Furthermore, the whole installation process is kicked off by a .5-Mbyte boot-strapper program, compared to a 2-Mbyte version in previous editions.
Ellison-Taylor indicated that the core client profile provides the lion's share of the functionality required for most applications, and programmers can use a compatibility tool to ensure that their code compiles to the basic features. What it boils down to is that end-users, particularly consumers, will be able to run new applications with less hassle.