首页 > 语言 > 关键词 > ASP.NET最新资讯 > 正文

ASP.NET立即上手教程(13)

2007-09-26 13:17 · 稿源:网页教学网

利用商务对象来工作

在商务组件中封装逻辑是实际应用程序,比如基于web的应用以及其他应用中,必不可少的部分。在ASP.NET中,商务对象是多层WEB应用程序内建的块。

应用程序的 /Bin目录

在传统的ASP应用程序中使用COM组件的时候有一个问题,那就是这些组件在使用前必须被注册(典型的做法是使用regsvr32工具)。远程管理这种类型的的应用程序很不现实,因为注册工具必须在本地服务器运行。更麻烦的是,这些组件一旦被应用程序加载,就在磁盘上保持锁定状态。要想替换或者移去他们,整个web服务器必须停止。

ASP.NET试图通过允许将组件放置在众所周知的目录中,在运行时被自动找到来解决这些问题。这个众所周知的目录通常叫做 /bin ,直接位于应用程序的根目录(由IIS定义的虚拟目录)下。这样的好处在于ASP.NET应用程序使用组件时不需要注册---仅仅需要将组件复制到 /Bin目录或者通过FTP上传到/Bin目录。

除了提供“零注册”的方法来部署编译过的组件外,ASP.NET不要求这些组件在运行时在磁盘上保持锁定。其内幕是,ASP.NET将这些在/Bin目录中找到的汇编文件进行复制,并替换成装载这些“影子”副本来使用。原始的组件甚至可以在Web服务器运行的过程中被替换,/Bin目录的变化情况自动被运行时刻获得。当检测到变化的时候,ASP.NET允许当前执行的请求完成,并且指挥所有新的请求使用新的组件。

引入商务对象

从底层来说,商务组件仅仅是一个类,你可以从引入它的Web页面来创建或者实例化它。下面的例子定义了一个简单的HelloWorld类。该类有一个公共的构造器(当一个类的实例第一次被创建的时候它被执行),一个叫做FirstName的String属性,以及一个使用FirstName的属性来显示问候的SayHello方法。

以下为引用的内容:

using System;
using System.Text;

namespace HelloWorld {
 public class HelloObj {
  private String _name;

  public HelloObj() {
    _name = null;

  }

  public String FirstName {
   get {
    return _name;
   }
   set {
    _name = value;
   }
  }

  public String SayHello() {
   StringBuilder sb = new StringBuilder("Hello ");
   if (_name != null)
     sb.Append(_name);
   else
     sb.Append("World");

   sb.Append("!");
   return sb.ToString();
  }
 }
}

为了编译这个类,C#编译器(Csc.exe)需要从命令行执行。/t 选项通知编译器创建一个类库(DLL), /out 选项通知编译器将编译结果放在什么位置。在本例中,应用程序的/bin目录在本教程的"aspplus" 虚拟目录下。并且假定命令行可以在实例所在目录下运行,即...\QuickStart\AspPlus\Samples\WebForms\Busobjs目录下运行。

csc /t:library /out:..\..\..\..\bin\HelloObj.dll HelloObj.cs

对于Visual Basic, 等价的编译命令是:

vbc /t:library /out:..\..\..\..\bin\HelloObjVB.dll HelloObj.vb

对于JScript, 等价的编译命令是:

jsc /out:..\..\..\..\bin\HelloObjJS.dll HelloObj.js

现在这个组件可以被应用程序中需要使用它的任何页面使用了。下面的HelloObj.aspx说明了这个功能。

注意页面上面的Import指令指定了要包含的名称空间。一旦使用这条命令包含了名称空间,就可以在这个页面中使用名称空间中定义的类了。下面的命令例示了Import指令

<%@ Import Namespace="HelloWorld" %>

缺省情况下,当应用程序启动的时候,ASP.NET 从/Bin目录载入所有的汇编文件。汇编文件的载入通过配置系统来指定。详细情况请参阅Configuration Overview 部分。额外的汇编文件也可以使用配置文件倒入应用程序。例如:

以下为引用的内容:
<configuration>
  <compilation>
    <assemblies>
      <!--The following assemblies are loaded explicitly from the global cache-->
      <add assembly="System.Data"/>
      <add assembly="System.Web.Services"/>
      <add assembly="System.Drawing"/>
      <!--This tells ASP.NET to load all assemblies from /bin-->
      <add assembly="*"/>
    </assemblies>
  </compilation>
</configuration>

注意: 从/Bin目录装载的汇编文件被限制在应用程序运行的范围之内。这就意味着,同等的应用程序可以潜在的使用不同的包含具有相同类名或者名称空间的汇编文件,而无需配置。

一个简单的两层WEB页面

本例中外部组件使用的类用来执行数据访问。这就简化了页面的代码,提高了可读性,并且从系统功能中分离了用户接口逻辑。下面的例子演示了一个简单的两层WEB页面,它使用了数据访问组件来取得产品的信息。

数据访问组件中的构造器带有一个参数,用来指定产品数据库的连接字符串。WEB页面调用组件的GetCategories方法来组装下拉列表,调用组件的GetProductsForCategory方法来显示用户选择的产品种类。

一个简单的三层WEB页面

三层应用程序模型对两层模型的情况进行扩展,在用户接口和数据访问逻辑之间包含了商务规则。这种模型允许用户接口开发者工作在较高的抽象层,而不是通过低层的数据访问组件接口直接操作数据。中间层的商务组件典型的用法是实施商务规则、确保数据库关联和主关键字约束的承兑。下面的例子使用中间组件,根据客户端输入的两位数的厂商ID来计算折扣。

本章小节

1、ASP.NET 运行时刻在著名的 /Bin目录中查找商务对象(本地汇编文件) ,该目录位于应用程序的根目录下。/Bin 目录提供了下列的优点:

a.无需注册

b.无需服务器重启

c.没有名称空间的冲突

2、通过在.aspx文件中使用Import 指令,可以让应用程序的页面使用汇编中的类。

3、两层模式的应用程序简化了页面中的代码,提高了可读性,从系统功能中分离了用户接口逻辑。

4、三层模式应用程序扩展了两层模型,允许用户接口开发者工作在较高的抽象层。中间的商务组件典型的用法是实施商务规则、确保数据库关联和主关键字约束的承兑。

  • 相关推荐
  • 大家在看
  • 王自健上手华为MatePad Pro:看片完胜苹果

    6月9日晚,王自健评价华为MatePad Pro:看片秒苹果。MatePad Pro 5G是华为Mate系列新一代平板电脑,首销到手价为4999元。MatePad Pro 5G采用10.8英寸2K分辨率全面屏,屏占比90%,搭载麒麟

  • Esprinet以3400万欧元收购GTI

    [TechWeb]意大利批发商Esprinet宣布已与GTI达成协议,以购买该公司100%的股份。这项行动共计3380万欧元,将在当局于9月底批准时以现金支付。通过购买GTI,Esprinet凭借收入和与Tech Data的距离本身,成为西班牙市场上第一家批发商,该公司在过去几年中一直与该公司争夺排名第一的位置。此外,GTI将提供Esprinet,该公司在西班牙经营JoséMaríaGarcía(这是一项补充业务),该业务是通过云销售的软件,尤其是Microsoft的软件。?

  • Planet将通过SpaceX的火箭发射6颗Skysat卫星

    DoNews 6月10日消息(记者 刘文轩)据The Verge报道,卫星影像公司Planet将在6月和7月的两次卫星发射中,采用SpaceX的火箭,各运送3颗110kg重的卫星。至于价格,SpaceX则是以每公斤500美元的价格来计算,Planet发射副总裁Mike Safyan表示,SpaceX将发射费用压低到“难以置信”的程度。Planet原本运营着60颗中解析度卫星,2017年收购Google的Terra Bella卫星影像部门后,Planet拥有了7颗高解析度Skysat卫星。在这之后,Planet又发射

  • Win10五月更新已跑上手机:电话、短信都能用

    因为Windows 10 on ARM的存在,手机上运行Windows 10操作系统便有了理论可能。事实上,从2018年以来,爱折腾的机友们就没有停止过相关项目。据外媒报道,开发者已成功为一加6、小米MIX、Galax

  • 西瓜视频开通广告收益教程

    ​西瓜视频的广告一般会展示在视频开始或结尾的地方,开通西瓜视频广告收益后,作者将享有一定的广告收益。而平台为了平衡用户体验,并不是每次刷新都会有广告出现。那么怎么开通西瓜视频广告收益呢?以下是关于西瓜视频开通广告收益的详细介绍。

  • ColorOS 7.2潮玩功能汇总,上手根本停不下来

    OPPO Reno4 系列在 6 月 5 日正式发布,作为一台主打影像以及续航的新机,OPPO Reno4 系列已经「堆料满满」。不过OPPO似乎还不满足于此,在软件层面上,OPPO 全新系统小版本ColorOS 7. 2 还为OPPO Reno4 系列带来不少有趣的玩法。(OPPO Reno4 系列发布会上ColorOS 7. 2 带来不少潮玩功能)本次OPPO Reno4 系列搭载的ColorOS 7. 2 带来了OPPO 创新产品探索平台与用户共创社区——OPPO LAB。通过OPPO LAB,OPPO可以及时将新功能与服

  • 不会演戏的网红不是好厨子 ,剧情美食教程怎么上热门?

    当你无意间刷到这些视频时,小小的眼睛里开始出现大大疑惑。惊讶中有一丝不屑,不屑中又有一丝好奇。

  • 西瓜视频PC电脑版下载教程

    西瓜视频是一个内容覆盖很广的视频APP,里面的短视频内容很丰富。不过现在只有安卓版和iOS版,有人想要下载使用PC电脑版,具体在哪里可以下载呢,这里我们来看下电脑版的具体安装方法。

  • 雷军上手Redmi K30 Pro变焦版:真全面屏的感觉无与伦比

    6月30日晚间,雷军分享了上手Redmi K30 Pro变焦版的心得体会。雷军表示,我们在讨论产品的时候,有一些米粉超爱真全面屏。在屏下相机技术还不太成熟的时候,做弹出前置相机方案是唯一的方案。

  • 网友上手MIUI 12版小米10 Pro:感觉像换了台机器

    6月18日消息,一位网友的小米10 Pro升级到了MIUI 12稳定版,表示感觉像换了一台机器一样,各种流畅、各种漂亮的动画。小米产业投资部合伙人潘九堂表示,MIUI 12加持的小米10系列更香了。据

  • 有什么不错的蓝牙降噪耳机?618超级值得上手耳机名单

    首先,蓝牙耳机不少,蓝牙降噪耳机也不少,但是好用的蓝牙降噪耳机却不是很多,我觉得能够价格上合理还很实用的,能达到物超所值的地步,我总结几款熟知的蓝牙耳机!第一款Nank 南卡A1入耳式耳塞,对入耳式感冒的朋友可以重点注意了!!南卡A1采用全球享誉的ANC降噪技术,可识别噪音,随即主动发出修正信号,淡化背景音干扰,独享宁静时光。主动降噪深度最高可达28dB,非常值得推荐的蓝牙好物!!南卡 NANK/A1真无线蓝牙耳机 ANC主

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 最强蜗牛怎么换区 超详细换区步骤教程

    ​最强蜗牛中其实是可以进行换区操作的,但是很多人还不明白到底要怎么才能进行换区,所以今天就来为大家分享一下最强蜗牛换区步骤教程。

  • 即刻怎么改密码 新版本即刻密码修改教程

    即刻APP经常的会碰到要修改密码的操作,很多人还不清楚在哪可以比较方便的改密码,下面就来为大家详细的介绍一下。

  • 荒野乱斗固定摇杆设置教程 摇杆怎么固定

    荒野乱斗中是可以使用摇杆的,很多玩家还不清楚怎么让摇杆固定设置好,下面就来为大家详细的介绍一下荒野乱斗固定摇杆设置教程。

  • 拼多多黑卡怎么分享不了 详细黑卡分享图文教程

    拼多多品牌黑卡是一个非常实用的东西,里面的钱是可以购买商品的时候直接进行抵扣现金的,能节省很多钱,有些朋友也想分享一些邀请码,但是不知道怎么分享,下面就来为大家详细的介绍一下黑卡分享图文教程。

  • 怎么录制视频教程?电脑录屏可以这样做

    怎么录制视频教程?我们经常会用视频来记录自己的生活,同样可以用视频的形式记录电脑上的内容。在电脑上录制视频,最好使用一些专业的录屏软件,能够提高录屏的质量。如果你也在寻找一个实用的录屏软件,那下面分享的方法可以帮助到你!方法一:windows系统录屏先分享一个适用于Windows系统的方法,推荐使用电脑中的“问题步骤记录器”。首先,打开电脑后打开电脑运行窗口,也可以使用快捷键“win+r”,打开“。然后输入“psr”,

  • 微信拍一拍功能怎么用 详细操作步骤教程

    微信在最近上线了一个很好玩的功能——拍一拍,这个功能最近在微信上比较流行,可以拍一拍朋友,比起之前的QQ抖动功能更加的具有一点“人味”,很多人还不知道微信拍一拍怎么用,下面就来为大家分享一下教程。

  • 最全教程!OKEx平台币OKB福利盛宴来袭

    专业的羊毛党的一个原则是:没有羊毛那就创造一只羊来薅!作为背靠最牛交易所OKEx的主流平台币OKB,现在都有哪些羊毛可以薅? 今天我们汇总一下比较值得一试且100%成功的那些OKB的福利! 一、通过OKB抢6. 1 折比特币和 61 个OKB (福利指数:★★★★★) 活动页面: 6 月 1 日12:00- 6 月 5 日18:00 【福利】 1、6. 1 折比特币:现在一个比特币均价是 70000 元,抽中的小伙伴,相当于直接薅到将近 3 万元的羊毛!! 2、 61 个OK

  • 日本动画电影《无限》线上首映 西瓜视频与Netflix全球同步播出

    【TechWeb】6月18日消息,今天下午6点,日本动画电影《无限》(又名《想哭的我戴上了猫的面具》)开启全球首映,在中国通过西瓜视频、抖音、今日头条平台上线。这是继BBC剧集《德古拉》后,西瓜视频再度实现与Netflix全球同步播出影视作品。届时,用户可在上述平台中付费观看该片。 公开资料显示,《无限》由日本著名导演佐藤顺一和柴山智隆联合执导,主要讲述女生笹木美代的青春奇幻故事,主打超萌轻甜治愈风格。绰号为“无限”?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天