国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:56:06
字體:
供稿:網(wǎng)友
利用商務(wù)對象來工作
這幾天元旦過得暈頭轉(zhuǎn)向,好不容易清醒過來 :-) 所以拖的時間久了一點(diǎn),不好意思了。
在商務(wù)組件中封裝邏輯是實(shí)際應(yīng)用程序,比如基于web的應(yīng)用以及其他應(yīng)用中,必不可少的
部分。在asp.net中,商務(wù)對象是多層web應(yīng)用程序內(nèi)建的塊。
應(yīng)用程序的 /bin目錄
在傳統(tǒng)的asp應(yīng)用程序中使用com組件的時候有一個問題,那就是這些組件在使用前必須被
注冊(典型的做法是使用regsvr32工具)。遠(yuǎn)程管理這種類型的的應(yīng)用程序很不現(xiàn)實(shí),因
為注冊工具必須在本地服務(wù)器運(yùn)行。更麻煩的是,這些組件一旦被應(yīng)用程序加載,就在磁
盤上保持鎖定狀態(tài)。要想替換或者移去他們,整個web服務(wù)器必須停止。
asp.net試圖通過允許將組件放置在眾所周知的目錄中,在運(yùn)行時被自動找到來解決這些問
題。這個眾所周知的目錄通常叫做 /bin ,直接位于應(yīng)用程序的根目錄(由iis定義的虛擬
目錄)下。這樣的好處在于asp.net應(yīng)用程序使用組件時不需要注冊---僅僅需要將組件復(fù)
制到 /bin目錄或者通過ftp上傳到/bin目錄。
除了提供“零注冊”的方法來部署編譯過的組件外,asp.net不要求這些組件在運(yùn)行時在磁
盤上保持鎖定。其內(nèi)幕是,asp.net將這些在/bin目錄中找到的匯編文件進(jìn)行復(fù)制,并替換
成裝載這些“影子”副本來使用。原始的組件甚至可以在web服務(wù)器運(yùn)行的過程中被替換,
/bin目錄的變化情況自動被運(yùn)行時刻獲得。當(dāng)檢測到變化的時候,asp.net允許當(dāng)前執(zhí)行的
請求完成,并且指揮所有新的請求使用新的組件。
引入商務(wù)對象
從底層來說,商務(wù)組件僅僅是一個類,你可以從引入它的web頁面來創(chuàng)建或者實(shí)例化它。下
面的例子定義了一個簡單的helloworld類。該類有一個公共的構(gòu)造器(當(dāng)一個類的實(shí)例第
一次被創(chuàng)建的時候它被執(zhí)行),一個叫做firstname的string屬性,以及一個使用firstna
me的屬性來顯示問候的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)需要從命令行執(zhí)行。/t 選項(xiàng)通知編譯器創(chuàng)建一個
類庫(dll), /out 選項(xiàng)通知編譯器將編譯結(jié)果放在什么位置。在本例中,應(yīng)用程序的/bin
目錄在本教程的"aspplus" 虛擬目錄下。并且假定命令行可以在實(shí)例所在目錄下運(yùn)行,即
.../quickstart/aspplus amples/webforms/busobjs目錄下運(yùn)行。
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
現(xiàn)在這個組件可以被應(yīng)用程序中需要使用它的任何頁面使用了。下面的helloobj.aspx說明
了這個功能。
c# helloobj.aspx
[運(yùn)行] | [[源文件]
注意頁面上面的import指令指定了要包含的名稱空間。一旦使用這條命令包含了名稱空間
,就可以在這個頁面中使用名稱空間中定義的類了。下面的命令例示了import指令
缺省情況下,當(dāng)應(yīng)用程序啟動的時候,asp.net 從/bin目錄載入所有的匯編文件。匯編文
件的載入通過配置系統(tǒng)來指定。詳細(xì)情況請參閱configuration overview 部分。額外的匯
編文件也可以使用配置文件倒入應(yīng)用程序。例如:
注意: 從/bin目錄裝載的匯編文件被限制在應(yīng)用程序運(yùn)行的范圍之內(nèi)。這就意味著,同等
的應(yīng)用程序可以潛在的使用不同的包含具有相同類名或者名稱空間的匯編文件,而無需配
置。
一個簡單的兩層web頁面
本例中外部組件使用的類用來執(zhí)行數(shù)據(jù)訪問。這就簡化了頁面的代碼,提高了可讀性,并
且從系統(tǒng)功能中分離了用戶接口邏輯。下面的例子演示了一個簡單的兩層web頁面,它使用
了數(shù)據(jù)訪問組件來取得產(chǎn)品的信息。
c# twotier.aspx
[運(yùn)行] | [[源文件]
數(shù)據(jù)訪問組件中的構(gòu)造器帶有一個參數(shù),用來指定產(chǎn)品數(shù)據(jù)庫的連接字符串。web頁面調(diào)用
組件的getcategories方法來組裝下拉列表,調(diào)用組件的getproductsforcategory方法來顯
示用戶選擇的產(chǎn)品種類。
一個簡單的三層web頁面
三層應(yīng)用程序模型對兩層模型的情況進(jìn)行擴(kuò)展,在用戶接口和數(shù)據(jù)訪問邏輯之間包含了商
務(wù)規(guī)則。這種模型允許用戶接口開發(fā)者工作在較高的抽象層,而不是通過低層的數(shù)據(jù)訪問
組件接口直接操作數(shù)據(jù)。中間層的商務(wù)組件典型的用法是實(shí)施商務(wù)規(guī)則、確保數(shù)據(jù)庫關(guān)聯(lián)
和主關(guān)鍵字約束的承兌。下面的例子使用中間組件,根據(jù)客戶端輸入的兩位數(shù)的廠商id來
計(jì)算折扣。
c# threetire.aspx
[運(yùn)行] | [[源文件]
本章小節(jié)
1.asp.net 運(yùn)行時刻在著名的 /bin目錄中查找商務(wù)對象(本地匯編文件) ,該目錄位于應(yīng)
用程序的根目錄下。/bin 目錄提供了下列的優(yōu)點(diǎn):
a.無需注冊.
b.無需服務(wù)器重啟.
c.沒有名稱空間的沖突.
2.通過在.aspx文件中使用import 指令,可以讓應(yīng)用程序的頁面使用匯編中的類。
3.兩層模式的應(yīng)用程序簡化了頁面中的代碼,提高了可讀性,從系統(tǒng)功能中分離了用戶接
口邏輯。
4.三層模式應(yīng)用程序擴(kuò)展了兩層模型,允許用戶接口開發(fā)者工作在較高的抽象層。中間的
商務(wù)組件典型的用法是實(shí)施商務(wù)規(guī)則、確保數(shù)據(jù)庫關(guān)聯(lián)和主關(guān)鍵字約束的承兌。
待續(xù)==接下來的部分是創(chuàng)建自定義控件,敬請期待
  • 網(wǎng)站運(yùn)營seo文章大全
  • 提供全面的站長運(yùn)營經(jīng)驗(yàn)及seo技術(shù)!
  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 清原| 阳高县| 肃宁县| 敖汉旗| 桂林市| 湄潭县| 田林县| 贵阳市| 新乡市| 信丰县| 旬阳县| 蒙自县| 阿巴嘎旗| 桑植县| 房产| 申扎县| 威远县| 砚山县| 安国市| 错那县| 海林市| 鹤壁市| 临桂县| 中超| 夹江县| 通海县| 乌兰浩特市| 滦平县| 色达县| 饶河县| 苏尼特右旗| 和政县| 集贤县| 临西县| 永定县| 奎屯市| 双柏县| 吴忠市| 裕民县| 江西省| 赞皇县|