Web Developer's Virtual Library: Encyclopedia of Web Design Tutorials, Articles and Discussions


WDVL Newsletter

Active Server Pages
JSP/Java Servlets
Microsoft SQL Server
Daily Backup
Dedicated Servers
Streaming Audio/Video
24-hour Support    

jobs.webdeveloper.com

Hiermenus


e-commerce
Partner With Us















Developer Channel
FlashKit.com
JavaScript.com
JavaScriptSource
Developer Jobs
ScriptSearch
StreamingMediaWorld
Web Developer's Journal
Web Developer's Virtual Library
WebDeveloper.com
Webreference
Web Hosts
XMLfiles.com

internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers


Additional Key Design Goals - Page 6

April 13, 2001

Simpler, Safer Deployment

It's hard for an experienced Windows component developer to see how anything can work without registration, GUIDs, and the like, but the CLR does. Applications produced in the .NET framework can be designed to install with a simple XCOPY. That's right – just copy the files onto the disk and run the application. We haven't seen this since the days of DOS (and some of us really miss it). This can work because compilers in the .NET framework embed identifiers (in the form of metadata, discussed below) into compiled modules, and the CLR manages those identifiers automatically. The identifiers provide all the information needed to load and run modules, and to locate related modules.

As a great by-product, the CLR can manage multiple versions of the same component (even a shared component), and have them run side-by-side. The identifiers tell the CLR which version is needed for a particular compiled module because such information is captured at compile time. The runtime policy can be set in a module to use the exact version of a component that was available at compile time, to use the latest compatible version, or to specify an exact version. The bottom line is that .NET is intended to eradicate "DLL Hell" once and for all.

This has implications that might not be apparent at first; for example, if a program needs to run directly from a CD (without first running an installation program). This was not feasible in Visual Basic after version 3, but the capability will reappear with Visual Basic.NET.

Another significant deployment benefit in .NET is that applications only need to install their own core logic. An application produced in .NET will not need to install a runtime, for example, or modules for ADO or XML. Such base functionality will be part of the .NET Framework, which will be installed separately and only once for each system. Those four-diskette installs for a VB "Hello, world" program will be a thing of the past!

Making all of this work automatically requires a sophisticated security infrastructure. The .NET Framework captures the origin of a piece of code, and the publisher of a module can be identified with a public encryption key. This allows a system to be set up so that it doesn't run untrusted software, which provides mechanisms to block viruses like the infamous ILOVEYOU. A method of a component, no matter how deep it is in the object model, can demand proof of authorization to run all the way back along the call chain that got to it.

Scalability

Since most of the system-level execution functions are concentrated in the CLR, they can be optimized and architected to allow a wide range of scalability for applications produced in the .NET Framework. As with most of the other advantages of the CLR, this one comes to all applications with little or no effort.

Memory and process management is one area where scalability can be built in. The memory management in the CLR is self-configuring and tunes itself automatically. Garbage Collection (reclaiming memory that is no longer being actively used) is highly optimized, and the CLR supports many of the component management capabilities of MTS/COM+ (such as object pooling). The result is that components can run faster, and thus support more users.

This has some interesting side effects. For example, the performance and scalability differences among languages become smaller. All languages compile to a standard byte code (IL – the Microsoft Intermediate Language), and there is discussion below on how the CLR executes IL. With all languages compiling down to similar byte code, it becomes unnecessary in most cases to look to other languages when performance is an issue. The difference in performance among .NET languages is minor – Visual Basic, for example, gives about the same performance as any of the other .NET languages.

There are early-stage plans for the CLR to be available on a wide range of devices. Eventually the vision is for .NET to be running at all levels, from smart palm-tops all the way up to web farms. That means the same development tools should work across the entire range – news that will be appreciated by those who have tried to use Windows CE development kits. Of course, this is an ambitious plan and may be subject to changes and retractions.

Key Design Goals - Page 5
Introducing .NET
Metadata - Page 7


Up to => Home / Authoring / Tools / NET




Jupiter Online Media: internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and Jupiter Online Media

Jupitermedia Corporate Info


Legal Notices, Licensing, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers