Forum Moderators: open
There is no simple answer to that question. It is basically a Microsoft strategy more than anything. Here are some of the pieces:
.NET Framework: A very large class hierarchy that programs are built on top of. It provides a layer of abstraction over the operating system, making .NET programs platform independent. Eventually there will be the .NET framework for other processors, starting with the .NET Compact Framework for PDAs.
Common Language Runtime (CLR): Programs are compiled to an intermediate language, not directly to native code. All .NET languages (and there are more than 20, including COBOL) compile to the same intermediate language. Then, the first time the program is run, the Just-in-Time (JIT) compiler compiles it to native code. That means that (in theory) a .NET program will run on any platform that the .NET framework resides on.
.NET languages--Visual Basic .NET (VB.NET) and C#: Visual Basic .NET is a new language based off some of the ideas in Visual Basic 6.0, allowing relatively easy porting of Visual Basic code to .NET. C# (pronounced C-Sharp), is another new language based off some of the ideas in C, C++, and Java, that strips out all of ugly and dangerous stuff and leaves a clean elegant modern language. However, since both compile to the same CLR, there is almost nothing that you can do in one language that you can't do in the other.
Web Services: I think of them as Dynamic Link Libraries that you can call over the Internet. There are technologies for finding them, discovering their calling mechanism, calling them, and using the results. The underlying technology is called SOAP (Simple Object Access Protocol). This marshalls (binds up) the info to be passed as XML (eXtensible Markup Language) and sends it over the Internet using the HTTP (HyperText Transfer Protocol). The code runs on the server, then info is passed back the same way.
Visual Studio .NET: The easiest way to build .NET applications. A very good (and stable) development platform for writing, debugging, and maintaining .NET applications.
ADO.NET: A new communication mechanism for talking to databases, primarily designed for stateless, disconnected information. Once the info has been downloaded, the client disconnects from the server while processing it. Then reconnects to deliver any changes to the data back to the server.
ASP.NET: A new web page hosting platform that runs on top of IIS (Internet Information Server). Pages are designed in a HTML-like front end, with code behind it provided by one of the .NET languages such as C#. Provides facilities for handling many of the tedious things about complicated page design such as postbacks and caching.
.NET also has extensive support for backwards compatibility. So you can use older ActiveX controls and DLLs, standard DLLs, and call into the Windows API. But the eventual goal is to code only to the .NET framework. I have an application that I am planning to write that I want to work on the Web, on Windows, and on Pocket PCs. With .NET, I should be able to write that app once and have it work on all three platforms if I am careful.
So how does this all apply to us lowly web site designers? Can you give us a few more practical examples of how or why we might use this?
How would this apply to the Mom and Pop type client interested in a web site? It goes beyond web sites significantly, or so it sounds...
If necessary, the control even looks at the user agent and cloaks the correct HTML down to the client. So the same control could produce different HTML for IE, Netscape, and a PDA.
1) XML now displays OK in Netscape. At last removing this obstacle. Now all web developers can use xml without worrying about loosing some visitors from older Netscape browsers.
2) Nice graphics libraries, so we can resize graphics, crop, turn, label, colourize etc, without needing to use additional (and £££'s) asp components - with all of the bother of getting your webspace provider to approve the components. They are in the standard libraries. We can now also generate new graphics on the fly!
On the negative side, there seems little similarity with syntax and structure, a whole new language to learn!
The framework is wonderful, with many many built in server controls which do a lot of work for you.
As example, form validation is built-in now, with 6 different validations, inlcuding regular expressions. What a great time saver this is.
Also, the .NET can code the validation based on the users browser, so you won't have to worry if the client has javascript disabled or not.
For mom and pop web sites you won't need this new framework. good ole HTML still works. This is really for the upper end of things - data manipulation, dynamic sites, etc.