三层架构的实现详解

       ASP.NET中“三层架构”的开发方法,其思想跟JAVA的类似,JAVA中的三层架构为前端的Html、 Jsp、Serlet,中间层为JavaBean、EJB,后面为数据库服务器。在ASP.NET中,请端为HTML、asp、aspx等,中间层为.vb,.cs等文件编译而成的.dll控件,后面为数据库服务器。


      在三层架构中,数据层通过中间层来连接以及操作,前端给中间层传递参数,并接受中间层的返回值。一般情况下,主要关注的是中间层与前端的数据交互,中间层可被称为组件,一般为.dll文件。在ASP.NET中.dll文件不
用考虑注册的问题,拷贝过来就可以用。


      在设计模式上,三层架构的三层分别成为:表示层,业务层和数据层。
a、表示层:
    提供应用程序的用户界面,通常也包括Window窗体和ASP.NET页面的使用。
b、业务层:
    业务层实现应用程序的业务功能。
c、数据层:
    数据层提供对外部系统(如数据库)的访问,该层涉及到的主要.NET技术是ADO.NET的数据库访问技术.


服务端(添加 windows-windows服务)<-共享程序集(类库)<-客户端(windows窗体应用程序)


过程详细:


1 共享程序集 类Class1.cs的构造函数要继承 public class Class1:MarshalByRefObject{}
2 (重新生成)服务端 客户端的引用 添加 浏览共享程序集的****.dll文件。 添加- .net 的

system.runtime.remoting
3 (重新生成)服务端 添加-应用程序配置文件App.config
4 (重新生成)解决方案 添加-其他项目类型-安装项目Setup1
5(重新生成)Setup1 右击-视图-自定义操作-(打开后)自定义操作右击-选择项目中的项-直接确定2次(已选

好,默认)  另外,右击Setup1,添加-项目输出-下拉选定“共享程序集”和Setup1右击添加-文件-并浏览

App.config
6 (重新生成)服务端 打开Service1.cs后,右击,添加安装程序,生成seviceinstaller1和色弱

viceprocessinstaller,分别属性,servicename项可以自定义名称如“hotel”(开始-运行-管理工具-服务就

可以找到服务hotel,并启动它。下面用到)。ProjectInstaller.cs属性的account 选为localsystem(本地系

统)
7 最后,找到D:/My Documents/Visual Studio 2008/Projects/Classpenghotel/Setuphotel/Debug中的

setup.exe应用程序,双击安装。之后(开始-运行-管理工具-服务就可以找到服务hotel,并启动它)
8 代码部分:除1外,还有
  A.服务端的Service1.cs,查看代码有两方法: protected override void OnStart(string[] args){}和

protected override void OnStop() 启动和未启动 函数,在OnStart方法中给字符串赋值(字符串是在共享程

序集那定义的,但不赋值)。而且该类要using引用
using Classpenghotel;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
   B.共享程序集的class类 using引用,因有sql语句
using System.Data.SqlClient;
using System.Data;
  
   C. App.config中,代码增加
<system.runtime.remoting>
    <application>
      <service>
        <wellknown
mode="Singleton"
type="Classpenghotel.Class1, Classpenghotel"
objectUri="SayHello" />
      </service>
      <channels>
        <channel port="8090" ref="tcp"></channel>
        <!--<channel port="8090" ref="http"/>-->
      </channels>
    </application>
    <customErrors mode="off"></customErrors>
  </system.runtime.remoting>

主要注意 type=“”的写法

最后  Class1.constr = "data source=.//YAO;database=hotelmanage2009;Integrated Security=true";连接

“yao”改成自己的服务器名ok

调试之前要启动服务(setup安装后的hotel,启动),否则出现 "目标机器拒绝...."

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值