看看这个,希望有用:
http://www.microsoft.com/china/msdn/library/dndotnet/html/DesignNetApp.asp

解决方案 »

  1.   

    .net remoting 
    web service
      

  2.   

    多看看MSDN关于分布式系统的帮助就会了解,具体的不明白再上CSDN问问
      

  3.   

    .net 对分布式系统的支持最大的发展在于ado.net和.net remoting两方面,ado.net支持无连接数据集,这使得数据服务层可以从业务逻辑层独立出来。而.net remoting为业务逻辑层的部署提供了新的途径,com+下面部署业务逻辑层简直是恶梦(虽然说起来很方便),public void GetTable(String SqlCmd,out DataTable dataTable){
    SqlConnection sqlConn=new SqlConnection(GetConnStr());
             SqlDataAdapter sqlDataAdapter=new SqlDataAdapter(SqlCmd,sqlConn); dataTable=new DataTable();
    try{
    sqlConn.Open();
    sqlDataAdapter.Fill(dataTable); }
    catch(System.Exception ex){
    throw ex;
    }
    finally{
    sqlConn.Close();
    }
    }
    public void UpdateDBFromTable(String cmdString,ref DataTable dataTable){
    SqlConnection sqlConn=new SqlConnection(connString);
    SqlDataAdapter sqlDataAdapter;
    SqlCommandBuilder cmdBuilder;
    SqlTransaction tran=null;
    SqlCommand cmd;
    try{
    sqlConn.Open();
    tran=sqlConn.BeginTransaction();
    cmd=new SqlCommand(cmdString,sqlConn);
    sqlDataAdapter=new SqlDataAdapter(cmd);
    cmdBuilder=new SqlCommandBuilder(sqlDataAdapter);
    cmd.Transaction=tran;
    DataTable dtAdded=dataTable.GetChanges(DataRowState.Added);
    if(dtAdded!=null)sqlDataAdapter.Update(dtAdded);
    DataTable dtModified=dataTable.GetChanges(DataRowState.Modified);
    if(dtModified!=null)sqlDataAdapter.Update(dtModified);
    DataTable dtDeleted=dataTable.GetChanges(DataRowState.Deleted);
    if(dtDeleted!=null)sqlDataAdapter.Update(dtDeleted); tran.Commit();
    }
    catch(System.Exception ex){
    tran.Rollback();
    throw ex;
             }
    finally{
    sqlConn.Close();
    }
    }
    public void ExecuteNonQuery(String cmd){
    SqlConnection sqlConn=new SqlConnection(connString);
             try{
    sqlConn.Open();
    SqlCommand sqlCmd=new SqlCommand(cmd,sqlConn);
    sqlCmd.ExecuteNonQuery();
    }
    catch(System.Exception ex){
    throw(ex);
    }
    finally{
    sqlConn.Close();
    }
    }
    public void ExecuteNonQuery(String cmd,ref SqlConnection sqlConn,ref sqlTransaction tran){
    if(sqlConn==null){
    sqlConn=new SqlConnection(connString);
    sqlConn.Open();
    }
    if(tran==null)tran=sqlConn.BeginTransaction();
    try{
    SqlCommand sqlCmd=new SqlCommand(cmd,sqlConn,tran);
    sqlCmd.ExecuteNonQuery();
    }
    catch(System.Exception ex){
    if(tran!=null)tran.Rollback();
    sqlConn.Close();
    throw ex;
    }
    }
    这是一个简单的数据服务层例子,业务逻辑层可以通过这些方法访问数据库,完全不用处理事务、连接等问题
      

  4.   

    http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/createNETArchitecture.asp#sec1