A client once greeted me with a barrage of complaints about Microsoft, product costs, and so forth. They wondered aloud whether they ought to assemble a strategy for moving to an open source platform to save money. Now, I'm not one to start an argument about the merits of consumer vs. open source. Rather, I took the opportunity to point out the open source route available to .NET connoisseurs.
The application mix
For the sake of this article, I'll concentrate on client/server applications. These applications usually consist of the following parts:
For the most part, the client portion is beyond the developer's control (the exception is an intranet application). On the other hand, there are options available for the database and application servers with the backend database being the most obvious.
Using an open source database
Utilizing an open source database backend with a .NET application is a snap with two freely available database engines:
Installing one of these open source database systems on a Linux server introduces huge cost savings, but individuals familiar with these systems (along with Linux) will be necessary to keep everything running smoothly.
Connecting the database to .NET
With the database platform selected, it must be properly connected with the .NET application. You can utilize the generic ODBC connector or a connector designed for the database system.
The PostgreSQL system doesn't offer a native connector, so you must use the vanilla ODBC connector. By default, it's included with the .NET Framework so this isn't a problem. The mySQL database system offers its own connector. This allows you to natively connect to mySQL. Programming these connections does require the .NET Framework or possibly an open source alternative like Mono.
The Mono Web site describes Mono as "a comprehensive open source development platform based on the .NET Framework that allows developers to build Linux and cross-platform applications with unprecedented productivity." I'll let you discover whether the productivity claim is true, but it does bring .NET development to non-Windows systems (Windows is supported as well). The product supports only C# (the ECMA standard), as well as the Common Language Infrastructure (CLI).
With a development platform installed, you may choose to develop applications with the command line and a text editor. Another choice is a freely available development tool like #develop. It allows you to develop applications using a graphical interface similar to Visual Studio .NET.
The snag with using #develop is the fact that it requires the Microsoft .NET SDK, so this creates problems if Mono is being utilized.
In addition to visual development, there are other freely available tools like the following:
Many people immediately think of high prices and lack of options when they think of .NET development. The combination of Microsoft's submission of C# as a standard and its embracement by the open source community has opened numerous non-Windows options.
TechRepublic's free .NET newsletter, delivered each Wednesday, contains useful tips and coding examples on topics such as Web services, ASP.NET, ADO.NET, and Visual Studio .NET. Automatically sign up today!
Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a production environment on a daily basis.