E:\web\learnaspcom\htdocs\freebook\learn\ubtoc.xml LearnAsp.com - ASP ASP.net Free Lessons
Search Search

#1 worldwide
FREE Coding Lessons

since 1996
   THE BEST WAY to learn ASP & Asp.net!
Advertise Here!
click for details
Credits Host:
DiscountASP.net
Server Admin:
The "Team"
Contact Info.
Charles M. Carroll
<Asp.net blog>
<personal site>
xxx

ASP and Asp.net Differences Summarized

A SUMMARY OF CLASSIC ASP and ASP.net DIFFERENCES

Classic Asp Objects support:

  • 6 objects, see:
    http://www.learnasp.com/start/objects.asp
    which are components that make web-development dynamic. The objects are interface based, not object based so are often called components.
  • Can be extended with COM objects or COM+ (including transactions) that can interact with ASP objects. Supports default interface COM programming, not multiple interfaces. COM and COM+ objects tend to need GUI tools that automate their creation.

Asp.net Objects Support:

  • Can consume COM and COM+ objects. Can be used to create objects that support interfaces and inheritance. Languages can inherit and override methods of objects created in DIFFERENT languages. These can be built with text editors and GUIs are a convenience not a necessity.
  • Can make its components into SOAP listeners and proxies with trivial amounts of work by just setting a few attributes.
  • The "guts" of the component glue and framework are not tied to INTEL or WINDOWS. The first release is Windows but porting to other computing environments is feasible.
  • The NGWS Framework which has ALL the facilities needed to build a ROBUST commercial product of the scope of Office 2000. NGWS is a huge library with thousand of objects that are self-documenting and can be programatically interogated. They range from browser interaction to cryptography to GDI/GDI+ libraries. Sockets and Higher-Level constructs.
    look at: /learn/pngmake.aspx which
    shows making a PNG, GIF, TIF, BMP file on the fly without 3rd party components for example. The class browser at:

    /quickstart/aspplus/samples/classbrowser/vb/classbrowser.aspx
     
    demonstrates the rich object model that is available and how it can even be programatically accessed via reflection. 

Classic ASP Language Support:

  • 2 built-in script languages (VBscript, Jscript) that are NOT compiled. some 3rd party languages: Perlscript, Python but not so robust and actually tend to crash the server.

ASP.net Language Support:

  • 3 built in COMPILED languages (has NO scripting languages): VB7 / VBNET, C# and JScript / JSNET
  • To blow your mind check out:
    /learn/visualinheritance.aspx
    which shows how graphic designers can work on one file and programmers another SEPARATE file.

Classic ASP Database Support:

  • Database support via ADO which communicates with ODBC and OLEDB databases. Most database display is done through recordsets and loops. Most database manipulation requires code coupled to back-end database that may fail if drivers are switched and needs to be written carefully.

ASP.net Database  Support

Classic ASP Scalability:

  • Scalability without work is limited because 2 of the core objects (session, application) don't scale on web-farms. Those objects must be replaced with home-brewed or commercial objects if that functionality is wanted on webfarm. Scalability, multi-tier application building and transactional applications are possible to be build but the programmer has few tools to make the task simple. It is just hard work and the programmer must have experience building such systems in the past to build an effective one today.

ASP.net Scalability:

  • Sessions and all features were built with web-farms and supports "web gardens" (1 computer with multiple CPUs) as assumed environment.
  • Several kinds of caching see:
    /learn/caching.aspx
    reduces database access and code execution dramatically without requiring page-level changes. 

Classic ASP Third party support

  • Some essential COM components that are needed to build websites (browser detection, etc.) -- Simple but useful. Most sites with complex needs will have to build or buy many COM components to complete tasks.

ASP.net Third party support

  • ??

Classic ASP Browser Support

  • Browser neutral.

ASP.net Browser Support

  • Validators and built-in components use detection to render GUIs that behave consistently on a variety of browsers. ASP.net has lots of facilities so that controls can detects the browser and renders the GUI very differently depending on what browser requests the page without having to expose this sensing to higher level callers.

Classic ASP Execution Environment

  • Tightly coupled to IIS.
  • The ASP engine is undocumented so that it cannot easily be extended and only low-level ISAPI filters can be created to accomplish tasks that ASP will not support easily.
  •  In "classic ASP" the first person to access a script compiles it but if the compiled script cache fills scripts are removed and if a machine physically restarts or a service restarts the compilation process is triggered by first user access.

ASP.net Execution Environment

  • Loosely coupled to IIS to ensure that it runs on any webserver without requiring any IIS infastructure.
  • Extremely extensible and high-level utilities called HTTP Handlers can accomplish the most complex of tasks without inheriting the ENTIRE ASP+ infastructure or bloat.
  • Components and scripts have their compiled image written to disk so that compilation persists.

Classic ASP Deployment:

  • Once an application is created it's settings reside in the Windows Registry, Binary Metabase, MTS catalogs, IIS settings. Transferring /copying a app from server is a complex tedious job with few automatic tools. Component registration is done via a variety of doftware packages all of which require a system adminstrator run these utilities. see:
    /learn/config.aspx
    for more details. 

ASP.net Deployment:

  • Huge complex applications store their settings and components in ASCII files and copying these ASCII files from server to server will result in a perfectly deployed application with no effort. Their are no component registration tools because components do not make any registry entries nor do they need to be compiled before being copied to server. All configuration/security options rely in ASCII/XML files.

Classic ASP Versioning approach:

  • New versions of components required stopping and starting the server.
  • Once new component versions were deployed, old versions were replaced.

ASP.net Versioning approach:

  • If a component is rewritten to have a new version, the next user accessing a page that accesses the new version runs on a new thread. The previous versions and new versions co-exist in memory since a fully running component live on a thread. Of course the ASP.net worker process will eventually finish all user requests communicating with old component and quietly quit wasting memory on it.
  • aspx or any programs can target any version of an assembly since side-by-side execution is supported.

Classic ASP Stability:

  • Environment assumes code and libraries are written carefully and debugged and stress tested. Flaws in codes or component or memory leaks cause system deterioration and may require soft and hard reboots.

ASP.net Stability:

  • ASP+ worker process assumes all components and code are likely to crash, leak memory and have bad code (infinite loops, forgetting to advance recordsets). The ASP+ worker process notices bad code and then isolates the thread the code is on, allows no new code to run on same thread and then destroys the thread and all bad code. If code leaks memory, ASP+ worker can create a new instance of itself to run requests and tear down the previous instance that has memory leaks without ever rebooting. see:
    /learn/crashproof.aspx
    for more info. 

Classic ASP Debugging:

  • No debugging tools unless Visual Interdev is editor. Debugging tools are crude and have limits on how deep they can examine the system. 
  • Error trapping in all languages has severe limits. VBscript has ON ERROR RESUME NEXT and not ON ERROR GOTO. Javacript on server has TRY/CATCH but no other language does.

ASP.net Debugging:

  • Powerful debugging, millisecond timing and profiling are built-in. These can be done without GUIs. see:
    /learn/debug2.aspx
    for a sample.
  • All current page requests can be logged and inspected after the fact. see:
    /trace.axd 
    for a live example on our server. (normally such things would be password protected on YOUR sites so only coders could access)
  • Debugging can also be done with GUI tools that are not married to any editor specifically.
  • Error trapping at code level is easy because there are many error trapping directives (about 8 x as many as Classic ASP). Most languages support TRY/CATCH and several other robust error trapping styles.
There are many worthy charities!!. But perhaps help starving children in Africa or South America AND help Charles too. a $5 tip buys him lunch at McDonalds, a $20 tip buys his kid Hitoshi a new computer game, a $39 tip buys his daughter Michiko a few nice outfits. See our donor list.