What are the advantages of the Microsoft .NET platform?

You may have heard about Microsoft's new .NET platform. If so, there's a good chance that you are a bit perplexed as to what it is and what it can do for you.

.NET is actually a broad set of technologies. At its core is a set of common services for all types of software development. These services offer things like automatic memory management (thus avoiding dreaded memory leaks) and an excellent security model. Built on top of these common services are revolutionary new ways to develop a broad spectrum of applications, including Windows applications, Web applications, and Web services. Here are the .NET advantages that aided the most in the development of Aquifer.

Sophisticated web applications

Up until now, it has been extremely difficult to develop rich, complex applications for the web. The main reason for this is that fundamentally, the web is stateless. If there was truly no way to maintain state information, it would mean that when you are navigating the web, each page would have no idea what happened on previous pages. Obviously, designing an application around a particular workflow would be impossible. Several techniques have evolved over the years that can give web pages state information, such as passing parameters in the site's URL, cookies, server-side databases, client-side scripting, Java and a Microsoft technology called ASP (meaning active server pages, not application server provider, the more common use of the acronym). Nonetheless, keeping state information was always burdensome, and many tasks that would be trivial in a regular Windows application were surprisingly complicated in a web application.

Another big problem is that because a web application's content and business logic were all delivered in a single HTML file, it made using object oriented and n-tier development architectures extremely difficult. These architectures are essential in the construction of complex yet maintainable applications. Thus, most healthcare companies decided (correctly) that they could not acceptably reproduce their flagship product's functionality in a native web application, and relegated web development projects to niche duties, or to supply a basic front end to their legacy applications.

However, .NET changes the equation. It has a vastly improved version of ASP, dubbed ASP.NET. ASP.NET has sophisticated, easy to employ, state management. It also allows the business logic, content and presentation components of the application to be separated. With ASP.NET, developing a complex application for the web is not significantly more difficult than developing a traditional client/server application.

Scalable, reliable, XML-aware data access

The .NET platform contains a new data access technology called ADO.NET. ADO.NET allows highly scalable database interaction because it heavily makes use of what is termed a disconnected paradigm. This means it fetches data in an organized data structure called a dataset and can then disconnect because sophisticated data manipulation is allowed directly in ADO.NET. Only when it is necessary to update the data back to the database does a connection need to be reestablished. This enormously improves the availability of your database server.

Another big feature of ADO.NET is that is can automatically convert data in datasets to and from extensible markup language (XML), the emerging standard for electronic data communications. This makes it incredibly easy to support XML communications with other applications. Because the next major version of HL7 (v3.0) will be a subset of HL7, this should greatly promote the straightforward interfacing of healthcare applications.

Web Services

Web services have received much attention in the last two years. A web service is a service that runs securely on the web that takes input and sends output in the form of HTML and/or XML. Web services allow disparate systems to be integrated regardless of what platform they run on and  their geographic location. Web services can greatly empower the application service provider model. Previously, major technical and security problems were introduced if an application that was ASP-hosted needed to communicate with an application that wasn't. Click here to read more about how web services are used to resolve this issue.

Because web services make it easy for completely different systems to talk to each other, a world of new functionality should be opened up. For instance, if a web service existed for giving a competitive price list for medications, an Aquifer add-on could be established where with a single click, a user can find the best prices for all of their medications. Or, if a doctor registry web service was established, Aquifer could use this to, with a single click, find a nearby doctor that specialized in the patient's particular condition.