Understanding .NET - The Easiest Way
All of you up till now must have heard about the new paradigm for software distribution and use. Yes, I am talking about .NET platform: Software as a Service. That's Microsoft's popular message. You will no longer pay for software, but subscribe to it. How many of you have read articles, heard speeches and ventured into documentation...... But you can't get a simple answer! What is .NET?
In this article, I would attempt the impossible -- "Making .NET Understandable".
Defining Some Terms
As .NET is all over a new paradigm, it has many new confusing terminologies being slung around. Before diving into much deep details, read about a few terminologies:
- Microsoft .NET or Microsoft Initiative:- Another of Microsoft's high level marketing monikers for getting focus. You may see future version of Windows as "Windows.NET" (May be). Its essentially "A New Way" at Microsoft and thus want its users to also change according to it. Its like "DNA". .NET has not replaced it but however it has superceded it and made it obsolete. So you know DNA before reading this article. It is now Microsoft .NET.
- .NET Framework:- This is the core of .NET initiative. This is the software on which Microsoft has been working on for the past three years.
- .NET Enterprise Servers: All of the Enterprise Servers from Microsoft like SQL Server, Exchange Server and all of the others will be a part of the whole .NET initiative. Now, please don't ask me to explain me all these servers at this stage. Only remember that all of Microsoft's application software will be opened up in a new way that was never possible with COM & OLE Automation.
The .NET Framework: Frame By Frame
Did I tell you that .NET is a very vast framework consisting of many pieces? If you have a compiler, you can even plug your compiler to .NET and generate MSIL (Microsoft's Intermediate Language) code. ohhhhh! Did I go very deep into it? Don't worry, you would understand it after reading the whole article.
Common Language Runtime (CLR)
CLR actually is a very intricate piece of software. It is not IDE (Integrated Development Environment) but rather it is a very intelligently written software to enable programmers to easily develop their software without getting to involve much in the technical details. Suppose you have defined an array of 5 elements and tries to access the 6th element, CLR would not allow you to do so. If you have created an object and forgets to destroy it, CLR would destroy it. In short, CLR is a very managed and safe software development environment. Its job is to keep you out of trouble.
The Common Language Runtime has derived its name from the fact that you can plug in programming languages you want to use with it. Several languages come with the framework, including Visual Basic, C++ and C# (pronounced "see-sharp"). Many third party developers are right now eagerly building a raft of new languages that will plug into CLR. And once this happens, they would also gain the ability to interact with each other which was never possible before. Now it would become very easy to develop a multi language project. You can call a Visual Basic function from C#, pass an argument and get back the results, all without any hassles. How could this be possible? Yes, it is because CLR provides a common set of data types, that all languages use. So no matter what language you're in, an integer has the same meaning.
Finally, when you complete an application, how are you going to deploy it? Have you heard of XCOPY in DOS which copies the entire directory and contents to the destination? One of the simplest and the most exciting features of CLR is called XCOPY Deployment (Old is Always Gold). All you have to do is to copy the files to the target machine and run it. All the .EXEs & .DLLs and also the metadata files that make up your application. OOPS! Sorry I forgot to tell you. What is a metadata file?
Do you know that .NET supports multi-platform. However you would not have heard about this any where on Microsoft's website because Microsoft works on different strategies and also its in beta stage and has not released .NET platform for other OSs such as Linux. Ohhhh! again I went away from the track. We were talking about metadata file. Isn't it? Metadata stores all the stuff that needs to be stored in the registry. Actually to design an application to run on multiple platforms there was need of such implementation which could be supported by all platforms. Registry works fine with Windows but what about Linux ? So Microsoft realized the use of metadata files. Now I think nothing is left to explain about the Metadata file :).
The .NET Class Libraries
You know APIs? In the past, Microsoft has provided APIs for a wide variety of applications. To access databases, it provided OLEDB and on top of that ADO. For XML, it provided MSXML. For Windows level drawing routines, it provided the GDI. These APIs are very helpful and provided access to features that would otherwise have required a lot of plumbing type code to access.
The .NET class libraries take all of those APIs and consolidate them into one comprehensive collection of objects. Now all the things necessary to accomplish all of the common tasks in modern business applications are at your finger tips. You just have to add a reference to those libraries on top of your source code and they are immediately available to your application.
ASP.NET is a new competitor for server side scripting languages. If you are new to this technology, then let me explain to you first, what is server side scripting?
You must have created an email account on any of the free e-mail services available on the net. What did you do to create it? You first registered on that web-site. Isn't it? When you fill the registration form and click submit, the contents of that page are send to another page where the connection is made to a database and all the information provided by you are stored into the database. So, how do they do that? All this and much more is possible through Server Side Scripting. In short, Server Side Scripting is used to automatically generate dynamic web-pages. I think now you must have understood the concept behind Server Side Scripting Languages.
Now if you thought that the above paragraph was meant for kids then I bet that you must have developed a Server Side Script. Haven't you? You're going to be surprised at what's in store for your favorite web development platform. ASP.NET is a very different beast.
Further more, the interface for interacting with users has changed dramatically. Now, instead of handling forms with
Request object, you use web forms. Web forms consists of sever controls that sends out its own HTML user interfaces. These server controls have properties, methods and events. So now, if you want to do something when the user clicks the mouse button, you write that code in the button click event, just as you do in Visual Basic. So, if you have done Visual Basic in the past, then you'll feel right at home with this new approach.
In the past, there has often been a need for application on one machine to call a function running in an application on another machine. The term often used for this is Remote Procedure Call or RPC. RPCs have been implemented in a broad variety of ways in the past, but they all usually worked in the specific circumstances for which they were designed.
The .NET framework now includes a new generic method for RPCs called Web Services. Web Services allow an application to call a function in another application running anywhere on the Internet. It uses SOAP (Simple Object Access Protocol) to communicate over the net. GEEKS ! GEEKS ! GEEKS ! All time new terminologies. Don't worry, all these terminologies which sound complicated are very easy, but to understand you should be a PSYCHO. :))
Anyway, SOAP is a protocol which works on HTTP and sends XML formatted or encoded messages. The .NET framework includes all the code for creating and using web services virtually automatic and so you don't have to learn XML or SOAP. All you have to do is identify which methods in your class should be available as a web-service, and the rest is handled for you automatically.:)
Once this technology becomes commonly available, it promises to usher a new level of application communication and interaction which Microsoft is popularizing as "Software As A Service".
Visual Basic has not just changed its name to Visual Basic .NET but has also undergone some fantastic transformations. VB.NET includes full encapsulation, inheritance, overloading and parameterized constructors. Also, now you can create threaded applications that divide up their work load and do some tasks simultaneously.
Exception handling in VB has also come of age with complete Java like
Finally structure to replace the old
Goto. There are also various minor changes been made in the new VB.NET.
C# is the brand new language which is as easy as Visual Basic and is as powerful as C++. It has deepest roots in C++ with which it shares its system. It is completely object oriented. Nothing more to say about it now but you would definitely love my forth coming articles on C#. (For more information, you read 'Psycho.Net' - A Magazine for Psycho Programmers. Contact - firstname.lastname@example.org.)
What is ADO? ADO stands for ActiveX Data Objects which is an API used to access data. Microsoft has made many significant changes in ADO and hence newly named ADO.NET. The most significant shift here is a move away from the connected
Recordset as the primary way of interacting with your data. Now, instead of
Recordset, the focus is now on
DataSet. The data is retrieved and the connection to the database is closed.
Also the support for XML has increased dramatically. In fact, there's a nearly seamless interaction between relational data and XML data in a
Visual Studio .NET
Sitting on top of .NET platform is a brand new version of Visual Studio. It gives a programmer an intelligent IDE (Integrated Development Environment).
What's it like? Imagine it as using Visual Basic forms designer for every supported language. And imagine creating ASP.NET web pages just as easily as dragging and dropping objects.
Visual Studio is not necessary to develop software on .NET platform but it is simply a front end to simplify the programmers job.
Please rate this article and also add your comments on it. Read my other articles: