成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET Web開發框架之七 開發流程與模式

開發 后端
經過前面六篇文章的講解,基本的理論已經介紹完畢,這一篇進行實戰練習,討論如何從頭開始開發一個完整的ASP.NET 頁面,并進行數據讀寫,業務邏輯設定。

經過前面六篇文章的講解,基本的理論已經介紹完畢,這一篇進行實戰練習,討論如何從頭開始開發一個完整的ASP.NET 頁面,并進行數據讀寫,業務邏輯設定。

1 設計數據庫表 Table Design

公司表存放系統中的公司實例,表示進行業務往來的實體,它的表結構如下腳本所示

  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  = ONON [PRIMARY]  
  18. ON [PRIMARY

2 實體映射 ORM Mapping

打開LLBL Gen,連接到數據庫并更新實體,把上面的Company表映射到實體CompanyEntity。設計字段名時,最好以簡明,可讀性好的詞命名,這樣可以增強映射到實體上的屬性的可讀性。

image

如果表與表之前有關聯,LLBL Gen會自動生成表之間的關聯。

3 數據讀寫接口與實現的產生 Interface and Service Implementation

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

image

請在項目的Source\Maintenance\Template路徑下獲取上面所提到的兩個模板,用以生成數據讀寫接口與實現代碼。

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

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

image

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

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

  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<ICompanyManager>();  
  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<ICompanyManager>();  
  25.             manager.DeleteCompany(user);  
  26.         }  
  27.  
  28.         public override void SaveEntity(EntityBase2 entity)  
  29.         {  
  30.             CompanyEntity user = (CompanyEntity)entity;  
  31.             ICompanyManager manager = ClientProxyFactory.CreateProxyInstance<ICompanyManager>();  
  32.             manager.SaveCompany(user);  
  33.         }      

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

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

這里有些不足之處,到目前為止我還沒有找到根據ASP.NET頁面類型,得到它的頁面文件。因為ASP.NET的請求處理是以ASPX文件在瀏覽器中敲入后,發送到服務器來執行的。所以,如果能找到這個辦法,則這里的Url設定可以省略。

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

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

image

關于數據綁定,所有的秘密藏在頁面文件中,我以Company No為例子,請看它的頁面文件

  1. <ext:TextBox ID="tbxName" runat="server" Label="Company No" DataBindingString="CompanyEntity:CompNo">  
  2.                    </ext:TextBox> 

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

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

【編輯推薦】

  1. ASP.NET Web開發框架項目介紹
  2. ASP.NET Web開發框架之一 功能導航
  3. ASP.NET Web開發框架之二 數據輸入窗體
  4. ASP.NET Web開發框架之三 報表開發
  5. ASP.NET Web開發框架之四 查詢
  6. ASP.NET Web開發框架之五 控件擴展
  7. ASP.NET Web開發框架之六 數據庫文檔方法
責任編輯:張偉 來源: James Li的博客
相關推薦

2012-09-25 09:31:58

ASP.NETC#Web

2012-09-26 09:46:29

ASP.NETWeb框架

2009-07-29 09:38:06

Web開發ASP.NET

2012-09-18 11:02:10

ASP.NETC#Web Forms

2012-09-20 09:54:12

ASP.NETWebC

2009-07-30 13:45:40

ASP.NET開發模式MVC模式

2012-09-18 14:32:08

ASP.NETC#

2012-09-29 13:20:30

ASP.NETWeb框架

2012-09-19 14:10:58

ASP.NETWebC

2014-06-30 09:22:38

ASP.NETBootstrap

2009-07-24 10:14:22

ASP.NET開發

2009-04-20 13:34:27

ASP.NET視頻教程Web開發

2024-07-01 00:00:06

ASP.NET開源

2009-03-09 10:28:45

AJAXASP.NETWEB

2009-08-05 10:17:55

ASP.NET TheASP.NET開發技巧

2009-08-06 15:21:45

ASP.NET控件開發RenderConte

2009-08-05 10:36:08

開發ASP.NET

2009-08-04 10:43:59

ASP.NET控件開發

2009-07-28 17:17:19

ASP.NET概述

2009-07-20 12:59:53

ASP.NET MVCASP.NET框架的功
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人网 | www.天天操 | 精品一区二区久久久久久久网站 | 中文字幕在线视频观看 | 精品久久成人 | 国产在线观看一区二区 | 仙人掌旅馆在线观看 | 亚洲精品一区二区另类图片 | 色综合99| 91毛片在线观看 | 精品欧美激情在线观看 | 国产精品免费一区二区三区四区 | 成人福利视频网站 | 成人在线视频网站 | 久久精品黄色 | 午夜激情小视频 | 草草草久久久 | 国产精品不卡一区 | 中文字幕在线视频一区二区三区 | 日韩色视频 | 久久精品一区二 | 91久久久久久久久久久 | 一区二区视频免费观看 | 中文字幕日韩一区 | 国产乱码精品一区二三赶尸艳谈 | 久久三级影院 | 欧美高清性xxxxhd | 中文字幕成人av | 亚洲精品视频在线 | 欧美激情精品久久久久久变态 | 亚洲精品视频网站在线观看 | 精品久久久久久亚洲综合网 | 国产一区视频在线 | 人人草人人干 | 黄色免费观看网站 | 亚洲精品乱码久久久久久按摩观 | 亚洲美女一区二区三区 | 成人av久久| 男女视频在线免费观看 | 欧美中文 | h片在线免费看 |