It is not surprising to understand or shall I put it, hard to believe! Many coders have not yet plunged into the world of .NET. Why? Well, who knows! Anyway, here is my take for those who are still thinking rather than swimming. I got hooked from version 1.0, currently, it is version 4.5.1, and can't wait for version 33.44.278, in case we still hand-code software by that time.
I was chatting with a buddy who happens to be a sort of a Java guru, I asked him to code in .NET also, he was like, why? I am like why not? This is how this article was born. Yes, I am biased about the technology :) Here are a few highlights IMHO.
- .NET Framework is based on Object-Oriented Programming from the get-go, so as the programming language C# and so on.
- It is practically language independent. That is, the framework can be coded with either Visual Basic, C#, or managed C++ if you like, all of them compile to a common Intermediate language (CIL).
- Folks who got burned with the DLL hell appreciated the assembly concept. Codesharing has been greatly simplified by facilitating versioning of the code and the ability to do the side-by-side deployment.
- A great deal of thinking went into securing the assemblies. Individual assemblies can have built-in security information that can be used to precisely control what process can do what, like certain users can call certain methods from certain classes. That is what I call a fine degree of control.
- Will it take two weeks of deployment for my one week of coding? Hell, no, if you know how to use CTRL+C & CTRL+V, you are good. It is a piece of cake, as easy as pie or it is already done! Assemblies are of two types basically, shared and private. Mostly the private assemblies that are the result of your coding, is entirely self-contained. All you need to do is copy it from your development environment to an appropriate file system folder on the production machine. Shared assemblies are common libraries that are used across your various projects, Telerik is one such, my favorite.
- What about data? How does it help me here? Yes, ADO.NET to the rescue, a set of components that allows efficient access to all sorts of data sources, be it relational or otherwise. Built-in support to manage file systems, directories, XML. Other sources that come as JSON objects are well managed too.
- OK, I get it, it is cool, but what kind of software can I develop with .NET? Well, anything, from a Tic-Tac-Toe game to serious business applications. .NET is used to develop desktop, web, and services-based solutions. For instance, you can develop the coolest web applications using ASP.NET that are dynamic web pages that also support technologies such as Ajax and many popular JavaScript frameworks, like jQuery. The ability to target from the desktop to hand-held mobile devices makes .NET device-independent too.
- I hate paying for software development tools, most of us anyway. :) No worries, the express editions are Microsoft's answer to freeware nirvana! You can practically build all the software using these express editions, however, if you can shell out some Vitamin M then you can get your hands on a full version of Visual Studio loaded with extra goodies to make your coding easy and more productive.
Ok, I am ready to wet my feet (we all do this before our first swim, right?). Is it C# or VB.NET, I can imagine you are asking me this. So, my answer is if you are from a Java background, don't even attempt VB.Net and just stick to C#. If you have too much time on hand, you can be a bilingual guy who is in high demand when you must convert old VB6 code to .NET.
That is fair enough to say for my 10+ years of experience. .NET has never let me down, whether I developed a process without a UI or heavy-duty desktop and web solutions with it. Common, if you haven't given it a try, give it a try, it is
cool.
Here you go, start from here:
http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
Happy dotnetting!