Of .NET Versions and Application Porting
Microsoft recently released .Net 4.0. It is to the credit of Microsoft, which has made constant improvements in their .Net versions, shown below. Here is a small infographic that shows their progress from version 2.0 through 4.0.
I do not see 4.0 as a package that is full of new features, but what I do see is that there are important improvements in performance, and a stress on doing more parallel processing and multi tasking. This is in contrast to version 3.0 release, which was outstanding with new features like Windows Presentation Framework, Windows Communication Foundation and Workflow. Regardless, it is interesting to see the overall developments, and what all we got from 2.0 to 4.0 as a whole.
Recently, we migrated one of our applications from .Net version 2.0 to .Net 4.0. We were very excited to be able to use all the latest features, and making the application more secure, user friendly, faster and scalable for our client. Visual Studio does take care of many things, and .Net itself provides high level of backward compatibility, which helps.
Out of the many available enhancements, the very first things we wanted to offer our client was Windows Communication Foundation, and to dump their conventional Web services approach. Among the features they wanted to have but could not due to technology limitations were:
- Support for transport protocols like TCP, HTTP, Named pipes and Message queuing (MSMQ)
- Customizable services to their different clients (With .NET 4.0, you can provide different versions of your application to different customers just with different end point. Standard endpoint is an another good feature which is pre-defined endpoint where one or more of their properties (address, binding, contract) fixed.
- Same service can be exposed with different contracts for different types of Clients/Users in more secure way
These features have made life much easier for developers to build great applications for clients. According to me, the highlights of .NET 4.0 are:
- Dynamic lookup – This allows a unified approach to invoking things dynamically. We no longer need to worry about the type of an object when assigning values returned from methods or expressions; the runtime performs the necessary binding for us according to the returned value’s type
- Garbage collection – .NET 4.0 provides background garbage collection.
- ADO.Net entity framework features – Making life easier for creating a data access application more in terms of an application-centric conceptual model.
- Performance and Diagnostics – .NET Framework 4.0 provides improvements in startup time, working set sizes, and faster performance for multi-threaded applications.
- Profiling – In .NET 4.0, you can attach profilers to a running process at any point, perform the requested profiling tasks, and then detach.
- Reflection – The .NET Framework 4.0 provides the capability to monitor the performance of your application domains using Application Domain resource monitoring.
- Improvement in Microsoft AJAX Library – Script loader, JQuery integration, Client data access etc.