淺析電子商務的框架_.Net教程
推薦:解讀多語言開發(fā)的個人體驗在文章的前面,先定義一下,這里談的語言(A)指的是語言以及使用該語言可以很容易調(diào)用的基本類庫及可免費或低代價獲得的第三方類庫及開源類庫(B)。在很多情況下談語言和談語言的選擇時的語境,都是指的B。 選擇多語言混合開發(fā)的一個目的是為了使用其中某
前些陣子照著《Pro ASP.NET 2.0 E-Commerce in C#2005》書編輯了一個商務系統(tǒng)網(wǎng)站,想總結(jié)一下學習到的所學的知識。
該網(wǎng)站具有一般商務網(wǎng)站的特征
這里先講講他的框架
數(shù)據(jù)訪問層
用的的存儲過程操作數(shù)據(jù)庫的存儲,有一個Shop.DataAccess類庫專門(注意我這里將原文的命名空間改為shop了)
該類庫使用了一個組件來封裝對數(shù)據(jù)庫的操作 為 Microsoft Data Access Application Block, 其實就是將SQLHelper.cs復制到該類下就行了,該類可以自動管理存儲過程的連接,參數(shù)和名稱。
類庫下的DataAccessBase類是一個基類,該類庫幾乎所有的類都會繼承它,有兩個屬性一個是存儲過程,以及返回數(shù)據(jù)庫的連接字符串
注意:這里是從web.config文件中獲取與數(shù)據(jù)庫連接的字符串,但是在類中無法引用到Configuration類,所以我們要額外的添加引用System.Configuration.dll程序集
以下為引用的內(nèi)容: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace Shop.DataAccess { public class DataAccessBase { //存儲過程的名稱 protected string StoredprocedureName { set; get; } //獲得連接字符串 protected string ConnectionString { get { return ConfigurationManager.ConnectionStrings["db_shopConnectionString"].ToString(); } } } } |
類庫中的StoreProcedure類
利用枚舉存儲編寫的存儲過程名稱,這樣便于更改及管理
但是對于存儲過程很多,一個類來存儲肯定顯得不夠,個人建議在細分,控制一個類中的存儲過程不超過20個
例如:
StoreProcedure_User,StoreProcedure_Product,StoreProcedure_Orders
以下為引用的內(nèi)容: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shop.DataAccess { public class StoredProcedure { public enum Name { ProductByID_Select, Products_Select, Products_SelectSerach, ShoppingCart_Select, ShoppingCart_Insert, ShoppingCart_Update, ShoppingCart_Delete, EndUser_Insert, EndUserLogin_Select, Address_Select, ContactInformation_Select, AdminLogin_Select, Product_Insert, ProductCategory_Select, Product_Update, Orders_Select, OrderDetails_Select, OrderAll_Select, OrderStatus_Select, OrdersByID_Select, Orders_Update, ProductPromotion_Select } } } |
類庫中的DataBaseHelper類
重新包裝了SQLHelper類的功能,因為并不是所有SQLHelper類功能我們都會用到,我們只應用到了一小部分
以下為引用的內(nèi)容: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using Microsoft.ApplicationBlocks.Data; using System.Data; namespace Shop.DataAccess { public class DataBaseHelper:DataAccessBase { public SqlParameter[] Parameters { get; set; } /// <summary> /// 構(gòu)造函數(shù) /// </summary> /// <param name="storedproceducename">賦值存儲過程</param> public DataBaseHelper(string storedproceducename) { this.StoredprocedureName = storedproceducename; } /// <summary> /// 無數(shù)據(jù)返回 /// </summary> /// <param name="transaction"></param> public void Run(SqlTransaction transaction) { SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, this.StoredprocedureName, this.Parameters); } /// <summary> /// 無數(shù)據(jù)返回,自己提供參數(shù) /// </summary> /// <param name="transaction"></param> /// <param name="Parameters">參數(shù)</param> public void Run(SqlTransaction transaction, SqlParameter[] Parameters) { SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, this.StoredprocedureName, Parameters); } /// <summary> /// 有參數(shù)返回(DataSet) /// </summary> /// <param name="connectionstring"></param> /// <param name="parameters"></param> /// <returns></returns> public DataSet Run(string connectionstring, SqlParameter[] parameters) { DataSet ds; ds = SqlHelper.ExecuteDataset(connectionstring, this.StoredprocedureName, parameters); return ds; } /// <summary> /// 返回第一行第一列的值 /// </summary> /// <param name="connectionstring"></param> /// <param name="parameters"></param> /// <returns></returns> public object RunScalar(string connectionstring, SqlParameter[] parameters) { object obj; obj = SqlHelper.ExecuteScalar(connectionstring, this.StoredprocedureName, parameters); return obj; } /// <summary> /// 返回第一行第一列的值 /// </summary> /// <param name="transaction"></param> /// <param name="parameters"></param> /// <returns></returns> public object RunScalar(SqlTransaction transaction, SqlParameter[] parameters) { object obj; obj = SqlHelper.ExecuteScalar(transaction, this.StoredprocedureName, parameters); return obj; } /// <summary> /// 無參數(shù)返回(DataSet) /// </summary> /// <param name="connectionstring"></param> /// <returns></returns> public DataSet Run(string connectionstring) { DataSet ds; ds = SqlHelper.ExecuteDataset(connectionstring, CommandType.StoredProcedure, this.StoredprocedureName); return ds; } /// <summary> /// 無返回值 /// </summary> public void Run() { SqlHelper.ExecuteNonQuery(base.ConnectionString, CommandType.StoredProcedure, this.StoredprocedureName, this.Parameters); } /// <summary> /// 返回是SqlDataReader /// </summary> /// <param name="parameters"></param> /// <returns></returns> public SqlDataReader Run(SqlParameter[] parameters) { SqlDataReader dr; dr = SqlHelper.ExecuteReader(base.ConnectionString, CommandType.StoredProcedure, this.StoredprocedureName, parameters); return dr; } } } |
業(yè)務邏輯層
Shop.BusinessLogic
這里涉及到要編寫接口
首先了解下什么是接口,接口就是只包含抽象成員的應用類型,接口中的成員可以是方法,索引器,屬性和事件,而不可以是包含任何常量,構(gòu)造函數(shù),靜態(tài)成員或數(shù)據(jù)字段。接口只包含這些成員的聲明。而具體的實現(xiàn)必須從實現(xiàn)該接口的任何類中進行初始化。
這里編輯一個接口是因為所有該類庫的類都會調(diào)用一個函數(shù)來實現(xiàn)獲得數(shù)據(jù)
以下為引用的內(nèi)容: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shop.BusinessLogic { interface IBusinessLogic { void Invoke(); } } |
Shop.Common類庫是編寫一個公共類
Shop.Operational自定義一些類
分享:解析ASP.NET Routing對請求的處理方式原本這是《關(guān)于ASP.NET Routing的幾點內(nèi)容》一文中的一節(jié),不過等寫完這節(jié)之后發(fā)現(xiàn)這塊內(nèi)容已經(jīng)比較完整了,而且它本身也是獨立和最為常見的部分,因此我把它提取出來單獨成文。至于那片文章的其他部分我會再修改一下,明天發(fā)布。希望這些內(nèi)容會對您理解ASP.
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.NET學習篇(1)——開篇
- 淺析微軟 ASP.NET 環(huán)境下的頁面驗證控件
- ASP.Net網(wǎng)絡(luò)數(shù)據(jù)庫:連接到數(shù)據(jù)庫
- 基于.NET平臺的分層架構(gòu)實戰(zhàn)(二)需求分析與數(shù)據(jù)庫設(shè)計
- 使用函數(shù)傳遞參數(shù)來執(zhí)行相應的數(shù)據(jù)庫操作
- ASP.NET web.config中數(shù)據(jù)庫連接字符串connectionStrings節(jié)的配置方法
- 關(guān)于Gridview的多種使用方法總結(jié)
- 微軟新版開發(fā)工具VS 2008 beta2功能定案
- 解析標題太長用省略號來代替簡單辦法
- .Net中消除Dll中的dependency
- 相關(guān)鏈接:
- 教程說明:
.Net教程-淺析電子商務的框架。