怎样用VS进行三层结构应用程序的开发.docx

上传人:b****6 文档编号:8875890 上传时间:2023-02-02 格式:DOCX 页数:13 大小:19.65KB
下载 相关 举报
怎样用VS进行三层结构应用程序的开发.docx_第1页
第1页 / 共13页
怎样用VS进行三层结构应用程序的开发.docx_第2页
第2页 / 共13页
怎样用VS进行三层结构应用程序的开发.docx_第3页
第3页 / 共13页
怎样用VS进行三层结构应用程序的开发.docx_第4页
第4页 / 共13页
怎样用VS进行三层结构应用程序的开发.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

怎样用VS进行三层结构应用程序的开发.docx

《怎样用VS进行三层结构应用程序的开发.docx》由会员分享,可在线阅读,更多相关《怎样用VS进行三层结构应用程序的开发.docx(13页珍藏版)》请在冰豆网上搜索。

怎样用VS进行三层结构应用程序的开发.docx

怎样用VS进行三层结构应用程序的开发

 用VS2005.NET进行三层结构应用程序的开发

1.三层之间的关系:

三层是指:

界面显示层(UI),业务逻辑层(Business),数据操作层(DataAccess)

文字描述:

Clients对UI进行操作,UI调用Business进行相应的运算和处理,Business通过DataAccess对DataBase进行操作。

 优点:

1、增加了代码的重用。

DataAccess可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。

2、使得软件的分层更加明晰,便于开发和维护。

美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。

2.DataAccess的具体实现:

DataAgent类型中变量和方法的说明:

 

privatestringm_strConnectionString;//连接字符串

privateOleDbConnectionm_objConnection;//数据库连接

 

publicDataAgent(stringstrConnection)//构造方法,传入的参数为连接字符串

privatevoidOpenDataBase()//打开数据库连接

privatevoid#regionCloseDataBase()//关闭数据库连接

publicDataViewGetDataView(stringstrSqlStat)//根据传入的连接字符串返回DataView

 

具体实现代码如下:

 publicclassDataAgent

      {

          #regionVariables

         privatestringm_strConnectionString;

         privateOleDbConnectionm_objConnection;

          #endregionVariables

          #regionFunctions

          #regionDataAgend

         ///

         ///InitialFunction

         ///

         ///

         publicDataAgent(stringstrConnection)

          {

              this.m_strConnectionString=strConnection;

          }

          #endregionDataAgend

          #regionOpenDataBase

         ///

         ///functiontoopendatabase

         ///

         privatevoidOpenDataBase()

          {

              try

               {

                   this.m_objConnection=newOleDbConnection();

                   this.m_objConnection.ConnectionString=this.m_strConnectionString;

                   if(this.m_objConnection.State!

=ConnectionState.Open)

                    {

                       this.m_objConnection.Open();

                    }

               }

              catch(Exceptione)

               {

                   throwe;

               }

          }

          #endregionOpenDataBase

          #regionCloseDataBase

         ///

         ///thefunctiontocloasedatabase

         ///

         privatevoidCloseDataBase()

          {

              if(this.m_objConnection!

=null)

               {

                   if(this.m_objConnection.State==ConnectionState.Open)

                    {

                        this.m_objConnection.Close();

                    }

               }

          }

          #endregion

          #regionGetDataView

         ///

         ///Executethesqlandreturnthedefaulttableview

         ///

         ///SelectString

         ///DataViewoftheDataTable

         publicDataViewGetDataView(stringstrSqlStat)

          {

              try

               {

                   this.OpenDataBase();

                    OleDbDataAdapterobjDataAdapter=newOleDbDataAdapter(strSqlStat.Trim(),this.m_objConnection);

                    DataSetobjDataSet=newDataSet();

                   objDataAdapter.Fill(objDataSet);

                   returnobjDataSet.Tables[0].DefaultView;

               }

              catch(Exceptione)

               {

                   throwe;

               }

              finally

               {

                   this.CloseDataBase();

               }

          }

          #endregionGetDataTable

          #endregionFunctions

      }

3.Business的具体实现:

建立名为Base的类,此类作为其他事务类的基类,其中定义了一个DataAgent的实例。

其他所有的Business类都从该改类派生。

在该类中添加对DataAgent的引用,使所有的事务类都能使用DataAgent中的方法。

 

Base.cs源代码:

 

publicabstractclassBase

{

#regionDataAgent

privateDataAgentm_objDBAgent;

 

protectedDataAgentOleDBAgent

{

get

{

if(this.m_objDBAgent==null)

{

this.m_objDBAgent=this.CreateAgent();

}

returnthis.m_objDBAgent;

}

set

{

this.m_objDBAgent=value;

}

}

#endregionDataAgent

 

publicBase()

{

}

 

#regionCreateAgent

///

///CreateanewDataAgent

///

///theDataAgent

privateDataAgentCreateAgent()

{

stringstrConnection=ConfigurationSettings.AppSettings["ConnectionString"];

returnnewDataAgent(strConnection);

}

#endregionCreateAgent

}

准备好了数据操作层和事务层的基类,底下就可以正式地开始业务逻辑类的开发了,如有一个显示新闻的类News,其中包含了一个GetNewsLsit()的方法,该方法用来获取所有的新闻标题列表,代码如下:

 

publicclassNews:

Base

{

publicNewsContact()

{

 

}

 

publicDataViewGetNewsList()

{

stringstrSql;

strSql="";

strSql+="SELECTTop10NewsId,NewsTitle";

strSql+="FROMTb_News";

strSql+="WHERENewsEnable=1";

strSql+="ORDERBYNewsId";

 

returnbase.OleDBAgent.GetDataView(strSql);

 

}

}

 

由于数据库结构比较简单,在此就不再给出详细的表结构。

 

4.UI层对Business中接口的调用

首先,在页面中添加对News类的引用。

然后,在页面中添加一个(DataGrid)dgNews用来显示新闻列表。

在PageBehind的Page_Load方法中添加如下代码:

 

NewsobjNews=newNews();

this.dgNews.DataSource=objNews.GetNewsList();

this.dgNews.DataBind();

 

至此,大功告成!

    publicclassDataAgent

    {

 

        #regionVariables

/////////////////////////////////////

用VS2005.NET进行三层结构应用程序的开发

1.三层之间的关系:

三层是指:

界面显示层(UI),业务逻辑层(Business),数据操作层(DataAccess)

文字描述:

Clients对UI进行操作,UI调用Business进行相应的运算和处理,Business通过DataAccess对DataBase进行操作。

优点:

1、增加了代码的重用。

DataAccess可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。

2、使得软件的分层更加明晰,便于开发和维护。

美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。

2.DataAccess的具体实现:

DataAgent类型中变量和方法的说明:

privatestringm_strConnectionString;//连接字符串

privateOleDbConnectionm_objConnection;//数据库连接

publicDataAgent(stringstrConnection)//构造方法,传入的参数为连接字符串

privatevoidOpenDataBase()//打开数据库连接

privatevoid#regionCloseDataBase()//关闭数据库连接

publicDataViewGetDataView(stringstrSqlStat)//根据传入的连接字符串返回DataView

具体实现代码如下:

     publicclassDataAgent

     {

         #regionVariables

         privatestringm_strConnectionString;

         privateOleDbConnectionm_objConnection;

         #endregionVariables

         #regionFunctions

         #regionDataAgend

         ///

         ///InitialFunction

         ///

         ///

         publicDataAgent(stringstrConnection)

         {

              this.m_strConnectionString=strConnection;

         }

         #endregionDataAgend

         #regionOpenDataBase

         ///

         ///functiontoopendatabase

         ///

         privatevoidOpenDataBase()

         {

              try

              {

                   this.m_objConnection=newOleDbConnection();

                   this.m_objConnection.ConnectionString=this.m_strConnectionString;

                   if(this.m_objConnection.State!

=ConnectionState.Open)

                   {

                       this.m_objConnection.Open();

                   }

              }

              catch(Exceptione)

              {

                   throwe;

              }

         }

         #endregionOpenDataBase

         #regionCloseDataBase

         ///

         ///thefunctiontocloasedatabase

         ///

         privatevoidCloseDataBase()

         {

              if(this.m_objConnection!

=null)

              {

                   if(this.m_objConnection.State==ConnectionState.Open)

                   {

                        this.m_objConnection.Close();

                   }

              }

         }

         #endregion

         #regionGetDataView

         ///

         ///Executethesqlandreturnthedefaulttableview

         ///

         ///SelectString

         ///DataViewoftheDataTable

         publicDataViewGetDataView(stringstrSqlStat)

         {

              try

              {

                   this.OpenDataBase();

                   OleDbDataAdapterobjDataAdapter=newOleDbDataAdapter(strSqlStat.Trim(),this.m_objConnection);

                   DataSetobjDataSet=newDataSet();

                  objDataAdapter.Fill(objDataSet);

                   returnobjDataSet.Tables[0].DefaultView;

              }

              catch(Exceptione)

              {

                   throwe;

              }

              finally

              {

                   this.CloseDataBase();

              }

         }

         #endregionGetDataTable

         #endregionFunctions

     }

3.Business的具体实现:

建立名为Base的类,此类作为其他事务类的基类,其中定义了一个DataAgent的实例。

其他所有的Business类都从该改类派生。

在该类中添加对DataAgent的引用,使所有的事务类都能使用DataAgent中的方法。

Base.cs源代码:

     publicabstractclassBase

     {

         #regionDataAgent

         privateDataAgentm_objDBAgent;

         protectedDataAgentOleDBAgent

         {

              get

              {

                   if(this.m_objDBAgent==null)

                   {

                       this.m_objDBAgent=this.CreateAgent();

                   }

                   returnthis.m_objDBAgent;

              }

              set

              {

                   this.m_objDBAgent=value;

              }

         }

         #endregionDataAgent

         publicBase()

         {

         }

         #regionCreateAgent

         ///

         ///CreateanewDataAgent

         ///

         ///theDataAgent

         privateDataAgentCreateAgent()

         {

              stringstrConnection=ConfigurationSettings.AppSettings["ConnectionString"];

              returnnewDataAgent(strConnection);

          }

         #endregionCreateAgent

    }

       准备好了数据操作层和事务层的基类,底下就可以正式地开始业务逻辑类的开发

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1