COM+

1. Scalability

2. State Management

// OleDbSample.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Xml.Serialization;

public class MainClass {
    public static void Main ()
    {
            // Set Access connection and select strings.
            string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\..\\BugTypes.MDB";
            string strAccessSelect = "SELECT * FROM Categories";
 
            // Create the dataset and add the Categories table to it:
            DataSet myDataSet = new DataSet();
            OleDbConnection myAccessConn = null;
            myAccessConn = new OleDbConnection(strAccessConn);
            
            OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect,myAccessConn);
            OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
 
            myAccessConn.Open();
            myDataAdapter.Fill(myDataSet,"Categories");
 
            myAccessConn.Close();
.......   

3. Simpler Security

4. Fault Tolerance

5. Ease of Development

Supported programming languages by .NET
APL Fortran Pascal
C++ Haskell Perl
C# Java Language Python
COBOL Microsoft JScript® RPG
Component Pascal Mercury Scheme
Curriculum Mondrian SmallTalk
Eiffel Oberon Standard ML
Forth Oz Microsoft Visual Basic®

6. Help With Deployment

"In Visual Basic 6.0, you typically used the Package and Deployment Wizard to create a script-based Setup.exe for your application. The Package and Deployment Wizard could be run as a stand-alone tool or as an add-in to Visual Basic; it could only be used with Visual Basic projects.

In Visual Basic .NET, you use a deployment project to create an installer (.msi file) for your application. Unlike the script-based setups, the installer uses Microsoft Windows Installer technology to manage the installation for you. For example, the installer automatically rolls back installation when something goes wrong. " -- from MSDN