Monday, March 05, 2007

Dot Net development the free way

There is a new trend catching up... More mainstream application targeted towards the x86-architecture tend to move towards the Dot Net platform as compared to Java since a few years back. With majority of the users holding their roots to Windows, Dot Net seems to be better in terms of performance as well as integration with the OS.

That's why I decided to learn Dot Net programming. With learning to programming using the Dot Net framework, comes the question of getting a compiler, editor or an IDE.

Microsoft has provided the framework SDK for free for anyone to install. But unfortunately this comes along with command-line tools like the raw compiler or the console based debugger. Agreed, Visual Studio 2005 is there. But, it does not justify the cost to just learn a new programming model.

The alternatives?

A few exists. SharpDevelop, an open source IDE is available for those who are interested in a true blue open sourced IDE. But it has many kinks the last time I checked. Being an OSS product, it is under constant development. So I decided to lay it to rest for some time until the product is mature and / or has most of the features I require.

In the mean time, Microsoft has also announced Visual Studio Express 2005 which is available for download here. It is technically free, but requires you to register with Passport and MS may collect some information on the usage of the tool to enhance the user experience in future editions.

Read here for a comparison of SharpDevelop and VS Express. Both match each other feature wise, where SharpDevelop seems to have an edge on simplifying programming (like plug-in support, language conversion etc) where as VS leans towards database support and integration.

VS Express

I chose to install the C# version (separate downloadables are available for ASP.NET, J#, VB.NET and event C++.NET). You can choose to include the MSDN documentation, SQL Server Express Edition and the Dot Net 2 Runtime if not already installed.

After a couple of hours of downloading, I had the development environment set up on my laptop and was able to develop simple applications.

A nice benefit of using VS Express is, you also get a few 3rd party controls that you can start using in your applications. Those include a spreadsheet control, a ribbon-bar control like those you see in Office 2007, a charting control and more. There are commercial products which are given away for free with VS Express. Indeed, a great way to start development!

Going forward...

So, what am I going to do with VS Express? I have a few ideas to implement, starting with:

A simple mileage calculator - which would help you record your vehicle's performance and draw charts on how your monthly burn rate. It would relay on a simple serializable data model or standard CSV format which will eventually be migrated to SQL Server express as the data becomes huge.

A kid's CBT framework - I used to find GCompris (http://www.ofset.org/gcompris) useful when I am in the Linux environment. Unfortunately, lack of documentation to create new activities that are relevant to my kid's current educational needs is not available. Further, I have to learn GTK programming.

I heard and read that Dot Net has very good GDI+ support which would allow creating a simple framework that can be controlled by editing simple XML scripts rather than get into the build and release cycle of normal programming. That would help in releasing a simple test module quickly during the exam cycle or a small game to satisfy my kid's needs.

Microsoft has recently provided the XNA Game development framework for Visual Studio Express users. It is a DotNet wrapper for game development that can deploy games for Windows XP as well as the XBox 360 using the same codebase.

UML modeler - There are no good free tools that does diagrams well as compared to Rational (IBM) Rose. I had tried out ArgoUML (http://argouml.tigris.org/) which is plagued with UI issues and Umbrello (http://uml.sourceforge.net), the KDE based modeler that does not have a lot of support for some of the diagrams. I had always been fascinated with Visio and other diagramming tools and would be implementing a framework based on that to allow for UML and the Rational Unified Process.

A traffic simulator - I am always unhappy the way the traffic signals operate. Most of the time, I see the signals taking too long or short on some roads at Chennai. The signals at Anna Salai proclaim that they use synchronizing technology, but I still fail to see any difference. The movement you start from an intersection, and reach the next, the red shows up. Based on the estimated speed on the lane, shouldn't the next signal switch to green when we arrive? A simulator could simulate traffic patterns on all major roads so as to find the optimal wait time before it changes to green.

Expect to see the sources at SourceForge soon!

Conclusion

Overall, a great way to program DotNet application. But don’t expect to use the same from work as you would be expected to purchase the full blown VS 2005 and you would not not want to send your sources or at least portions of it to Microsoft as part of their data-collection activity.

No comments: