Saturday, October 11, 2008

dot NET? What's dat?

Simply put .NET is a new and innovative architecture that has a wide variety of uses. It makes mobile devices, connectivity and information a lot more accessible and easy to handle. 

It's a programming infrastructure for the net and a whole new user experience.

.NET is aimed at making your data simultaneously available on your PC and on all your wireless devices like PDAs and cell phones. It promises to bring together the functionality of various software applications like Word and Excel through the magic of XML. It introduced new concepts and new terminologies.

Web Services, another part of the .NET architecture, allows software to be put on the web and immediately become accessible to other software that need similar services. Word and Excel for example, would become Web services, and everyone connected to Web Service can use them. It comes with the promise of allowing functionality of different applications from within each other (like using a spreadsheet within Word) without opening up a new application.


A few glimpses of what .NET can do is gleaned through products that are coming soon from Microsoft:
The Samsung Smart Phone promises to turn your phone into something like a PDA, letting you access your data (contact information, e-mail, etc.) even when the phone is switched off.


The Tablet PC is a computer that looks like a flat-screened magazine for reading e-books. It allows you to annotate pages in your own handwriting, and search through your handwritten notes.



Statements of intent aside, it's hard to explain what .NET is all about if you do not have a qualified background. Let me try to describe .NET to non-technical people. 

Inside all computers, there is a constant cycle of program modules asking other modules questions, and getting back answers. Mouse clicks, keyboard key-clicks, or any other ways of input to the computer launch thousands of these software conversations. Similar to any other conversation, the conversationalists must agree on a common language. If one knows German, and the other doesn't, there can be no conversation. In IT, these modules are called Procedures. When one Procedure asks another Procedure something, it is said to "call" it. 

When computers are put on a network, all that is happening is one Procedure asking a Procedure sitting on another machine. These are called Remote Procedure Calls, or RPCs. Until .NET came out, it mattered very much which language software was written in, or on what Operating System it was meant to run under. Windows, Macintosh, Unix, all talked different languages. So like the German in Australia, they could connect at some level (for example the web) but to have a more sophisticated conversation, there had to be a better agreement between them. 

Until .NET came along, conversation between technologists was more like a playground conversation. Sun said, "You have to use Java". Microsoft said "Use DCOM". Everyone else sat back waiting for something interesting to happen. SOAP was one common language agreed on by many technologists. Everybody at the playground started saying, "Lets work together. Lets agree that this is the way Procedure Calls are made over the Internet. Let's standardize."

Whatever Microsoft says to the contrary, not much progress has been made by .NET. In many respects, it is still a case of playground conversation. All that Microsoft is now saying is:

"We now have a common language. We want to talk this language. Would you all like to talk with us?". 

This is not much different from earlier assertions like "You have to use Java", et al. But let us not haggle. Let us see what they want to talk about. They say that information can be stored in a single place, and made accessible through, for example, Microsoft Passport. The question is, do we want to give out our personal information to Microsoft? Can we agree with Microsoft on how they do this? Can we operate a Microsoft Passport compatible server? 

There are many other things that they want to talk about. Please check out the Microsoft website for more information. To make a long story short, .NET is yet another attempt at a common language.

Back to top

 

Here is what Microsoft's press release had to say about Windows.NET:
 

"Windows.NET is the next generation of Windows. Windows.NET will be a product that supports productivity, creativity, management, entertainment, and much more. It's designed to put users in control of their digital lives. It incorporates new .NET user experience technologies, is tightly integrated with .NET building block services -- including identity and search -- and provides integrated support for digital media. 

Windows.NET will be self-supporting, featuring services that provide ongoing support and updates as users need them. Windows.NET will provide a rich foundation for developers who want to create new .NET applications and services. It will offer a programmable user experience that can be customized by corporations and individuals and programmed by .NET services, including MSN.NET, bCentral for .NET and Office.NET, as well as a host of third-party .NET services. 

The first release of Windows to incorporate .NET elements is scheduled to be available in 2001. Microsoft will also continue to offer support for versions of the Windows platform without .NET services." 

This sounds good. 

Another part of the .NET architecture is the .NET Framework which combines the power and strength of all the accumulated experience of Microsoft in programming languages. It therefore has the power of many programming languages rolled into one. 

It is not just a programming language, it is more than that. It does not have a fixed language that you need to code for it. You can code in C, C++, Java, COBOL, VB, or any language of your choice. .NET Framework is the base that allows all those languages to be compiled to what is known as IL-Code (Intermediate-Language code). 

IL is a new terminology that simply describes an application or service in a structured language, similar to assembly. This then goes through an interpreter which, in turn, compiles and executes it on the fly. The concept is very similar to Java's Class Files. IL code allows wide portability across platforms that support Common Language Runtime (CLR). CLR is basically the .NET Framework itself, which include base classes and other components needed to create applications of such sorts. 

Another feature implemented into the CLR is the garbage collector. It's a very useful feature that releases heaps of unused memory allocated to processes that have run out their lifecycles. It automatically collects and frees memory used by obsolete threads, processes and database connections. 

The real glitch, then, is with regard to Microsoft itself. The public perceives Microsoft as a sneaky company - with a few things they've done like including adding tracking code to Word DOC files. .NET definitely shares this negative image. The whole thing is not going to be seen as a 24 x 7 world of online bliss. Instead it's seen as a 24 x 7 version of "Big Brother Watching". People don't like being monitored. Not because they have anything to hide. But because it is plain and simple creepy. Humans don't like staring and being stared at.

All in all, sounds interesting! Happy .NET-ing

No comments: