日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
ASP.NETWeb開發(fā)框架之七開發(fā)流程與模式

經(jīng)過前面六篇文章的講解,基本的理論已經(jīng)介紹完畢,這一篇進(jìn)行實(shí)戰(zhàn)練習(xí),討論如何從頭開始開發(fā)一個(gè)完整的ASP.NET 頁面,并進(jìn)行數(shù)據(jù)讀寫,業(yè)務(wù)邏輯設(shè)定。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的高明網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1 設(shè)計(jì)數(shù)據(jù)庫表 Table Design

公司表存放系統(tǒng)中的公司實(shí)例,表示進(jìn)行業(yè)務(wù)往來的實(shí)體,它的表結(jié)構(gòu)如下腳本所示

 
 
 
 
  1. CREATE TABLE [dbo].[Company](  
  2.     [CompID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,  
  3.     [ParentCompID] [numeric](18, 0) NULL,  
  4.     [CompTypeID] [numeric](18, 0) NOT NULL,  
  5.     [CompNO] [varchar](20) NOT NULL,  
  6.     [CompName] [varchar](50) NOT NULL,  
  7.     [Corporation] [varchar](20) NULL,  
  8.     [CorpMobile] [varchar](20) NULL,  
  9.     [CorpTel] [varchar](20) NULL,  
  10.     [Address] [varchar](100) NULL,  
  11.     [Tel1] [varchar](20) NULL,  
  12.     [Tel2] [varchar](20) NULL,  
  13.     [Fax] [varchar](20) NULL,  
  14.  CONSTRAINT [PK_TCOMPANY] PRIMARY KEY CLUSTERED   
  15. (  
  16.     [CompID] ASC 
  17. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  
  18. ) ON [PRIMARY] 

2 實(shí)體映射 ORM Mapping

打開LLBL Gen,連接到數(shù)據(jù)庫并更新實(shí)體,把上面的Company表映射到實(shí)體CompanyEntity。設(shè)計(jì)字段名時(shí),最好以簡(jiǎn)明,可讀性好的詞命名,這樣可以增強(qiáng)映射到實(shí)體上的屬性的可讀性。

如果表與表之前有關(guān)聯(lián),LLBL Gen會(huì)自動(dòng)生成表之間的關(guān)聯(lián)。

3 數(shù)據(jù)讀寫接口與實(shí)現(xiàn)的產(chǎn)生 Interface and Service Implementation

這一步驟也是自動(dòng)化的,不需要額外的腦力活動(dòng)。以Code Smith打開模板Interface.cst和Manager.cst,選擇表對(duì)象為Company,生成代碼,把這此代碼拷貝到Visual Studio的項(xiàng)目中即可。

請(qǐng)?jiān)陧?xiàng)目的Source\Maintenance\Template路徑下獲取上面所提到的兩個(gè)模板,用以生成數(shù)據(jù)讀寫接口與實(shí)現(xiàn)代碼。

4  ASP.NET 頁面布局與編程 ASP.NET Page Layout Design and Coding

向Web項(xiàng)目中添加一個(gè)ASP.NET 頁面,命名為company.aspx。我推薦以小寫命名Web項(xiàng)目的文件夾,文件名和頁面類型名稱。為了讓它具備EntryPageBase的功能,我在頁面的首部,添加一個(gè)Toolbar,它用來承載工具箱中的系列工具,以進(jìn)行數(shù)據(jù)的前后瀏覽,增加刪除工作。其它的地方,以FormRow的方式安排布局。

FormRow會(huì)為它的Items平均分配寬度,所以每行FormRow最好放置相同的Items以讓界面布局看起來美觀整齊。

ASP.NET的后臺(tái)代碼看起來是這樣的,這里羅列所有的代碼,供您參考。

 
 
 
 
  1. [Function("AIITHD", "~/module/company.aspx")]  
  2. public partial class company : EntryPageBase  
  3. {       
  4.         protected override void PageLoadEvent(object sender, EventArgs e)  
  5.         {  
  6.             if (!IsPostBack)  
  7.             {  
  8.                 TransactionType = EntityType.CompanyEntity;  
  9.                 ddlCompanyGroup.InitializeValueListFromEnum(9);  
  10.             }  
  11.             base.PageLoadEvent(sender, e);  
  12.         }  
  13.  
  14.         public override EntityBase2 LoadEntity(string refNo)  
  15.         {  
  16.             ICompanyManager manager = ClientProxyFactory.CreateProxyInstance();  
  17.             CompanyEntity customer = manager.GetCompany(Convert.ToInt16(refNo));  
  18.             return customer;  
  19.         }  
  20.  
  21.         public override void DeleteEntity(EntityBase2 entity)  
  22.         {  
  23.             CompanyEntity user = (CompanyEntity)entity;  
  24.             ICompanyManager manager = ClientProxyFactory.CreateProxyInstance();  
  25.             manager.DeleteCompany(user);  
  26.         }  
  27.  
  28.         public override void SaveEntity(EntityBase2 entity)  
  29.         {  
  30.             CompanyEntity user = (CompanyEntity)entity;  
  31.             ICompanyManager manager = ClientProxyFactory.CreateProxyInstance();  
  32.             manager.SaveCompany(user);  
  33.         }      

首先給頁面分配一個(gè)功能編碼,比如此頁面的AIITHD,然后設(shè)定的Url屬性,這兩個(gè)同時(shí)附加到頁面的特性中去。

 
 
 
 
  1. [Function("AIITHD", "~/module/company.aspx")] 

這里有些不足之處,到目前為止我還沒有找到根據(jù)ASP.NET頁面類型,得到它的頁面文件。因?yàn)锳SP.NET的請(qǐng)求處理是以ASPX文件在瀏覽器中敲入后,發(fā)送到服務(wù)器來執(zhí)行的。所以,如果能找到這個(gè)辦法,則這里的Url設(shè)定可以省略。

其次,指定TransactionType = EntityType.CompanyEntity,這用來指定當(dāng)前頁面的實(shí)體為CompanyEntity,并對(duì)它進(jìn)行讀寫操作,與頁面相關(guān)的數(shù)據(jù)綁定,回寫到數(shù)據(jù)庫中,均需要此屬性。緊接著的是三個(gè)模板方法,LoadEntity用于加載公司實(shí)體,DeleteEntity用于刪除,SaveEntity用于保存修改后的實(shí)體。這三個(gè)方法均是override,它被頁面基類調(diào)用。

最后執(zhí)行一下功能編碼為AIITHD的功能,來看看效果是怎樣的。在頁面的右上角輸入功能編碼,點(diǎn)擊Go按鈕。

關(guān)于數(shù)據(jù)綁定,所有的秘密藏在頁面文件中,我以Company No為例子,請(qǐng)看它的頁面文件

 
 
 
 
  1.  
  2.                     

它的DataBindingString屬性,在讀取數(shù)據(jù)時(shí),將實(shí)體屬性綁定到此控件,在保存時(shí),又讀取這個(gè)值,回寫到實(shí)體中并保存到數(shù)據(jù)庫中,這樣可以減少大量重復(fù)的代碼。

原文鏈接:http://www.cnblogs.com/JamesLi2015/archive/2012/10/08/2714794.html


文章名稱:ASP.NETWeb開發(fā)框架之七開發(fā)流程與模式
轉(zhuǎn)載注明:http://m.5511xx.com/article/djphshj.html