在.NET下多層架構企業管理系統的開發

摘 要 隨着.NET 2.0的發佈,在.NET下用多層架構來構建企業管理系統也愈來愈方便。本文以某國外貿易公司的管理系統爲背景,介紹在.NET平臺下,採用多層架構構建企業管理系統。

關鍵詞 .NET;單元測試;B/S架構

引言

.NET 框架是微軟開發出的新一代開發平臺。容許應用程序經過 Internet 進行通信和共享數據,而無論所採用的是哪一種操做系統、設備或編程語言。本文介紹的管理系統是在.NET平臺下開發的,以極限編程的開發思想,採用了面向對象開發、B/S架構、ASP.NET、C#以及自動化測試工具CSUnit。

問題分析

本系統爲國外的 購物網站大全某貿易公司開發,對公司的採購、銷售、庫存等各個貿易環節進行管理。該公司在國外,它的供應商在國內,而客戶都是國外的公司。公司、供應商、客戶目前均可以鏈接Internet,公司內部有局域網,對外主要經過ADSL高速鏈接Internet。

在對公司的業務需求進行了仔細的分析後,咱們認爲整個系統應當包含以下的功能:可以及時同供應商進行交流,並對供應商的產品生產進度進行跟蹤;收到供應商發來的產品後,能夠對這些產品進行庫存管理,並隨時瞭解產品的庫存情況;能夠及時同客戶進行交流,並對客戶發來的訂單情況進行跟蹤;可以對用戶進行權限控制,提升系統的可控性和安全性;新系統要界面友好、數據傳輸速度較快、易用性和擴展性強,等等。

系統開發描述

根據前面的系統需求和功能分析,系統主要分爲如下幾個部分:

⑴ 基本設置管理:包括人員管理 淘寶熱賣模塊——用於創建和維護使用系統的用戶,公司管理模塊——維護系統涉及到的客戶和供應商信息,產品管理——添加、修改、刪除以及查詢產品信息。

⑵ 供應管理系統:由於公司的供應商主要在國內,系統採用中文界面,包括對採購訂單的管理模塊,生產進度管理模塊,發貨批次管理模塊,報表管理模塊以及交流信息管理模塊。

⑶ 銷售管理系統:該子系統負責與客戶的交流,包括客戶詢價管理模塊,客戶訂單管理模塊,生產信息查詢模塊,質量信息反饋系統以及報表管理模塊。

⑷ 庫存管理系統:對公司的庫存狀況進行維護,包括庫房基本設置模塊,庫房產品管理模塊,報表管理模塊。

系統採用三層的體系結構,數據庫採用Microsoft SQL Server2000,編程語言爲C#以及ASP.NET, Web頁面採用ASP.NET、codebehide代碼,後臺程序由C#編寫。除Web表示層外,還有Model層、數據訪問層DAL、業務邏輯層BLL,自動化測試層UT,等等。

DAL負責數據庫的數據存取,BLL經過調用DAL層的方法來實現業務需求,Web層經過調用BLL的方法來實現與用戶的交互,UT層負責Model層、DAL層和BLL層的單元測試,Model提供數據實體類供Web、BLL、DAL調用,各層之間的關係如圖1:


圖 1web


DAL負責與數據庫的交互,爲了提升維護性,採用OOP的設計思想,只有BLL層能夠直接調用DAL層類中的方法,不能夠跨層調用。數據庫的鏈接字段信息放置在Web.config文件中,例如:要鏈接SQL SERVER數據庫,設置以下:

<add key=」 MSSQLConnString」 value=」server=(local); user id=sa; password=pwd;
database=dbEnt」/>

對於DAL,數據訪問可能比較頻繁 充氣娃娃,須要常常進行數據庫的鏈接以及關閉操做,所以系統沒有采用ADO.NET,使用DataReader對象返回數據以提升應用程序的性能並減小系統開銷。示例以下:

public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString);
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}

BLL層的功能主要包括銷售管理、採購管理、庫存管理、基本設置管理、產品管理、質量管理、財務管理等方面,由多個不一樣的類互相配合實現複雜的業務邏輯。

UT層負責對BLL、DAL以及Model進行單元測試,按照XP以及TDD的思想,先編寫單元測試類,後開始類方法的編寫。經過測試來指導程序代碼的開發,單元測試的經過就是類方法的完成。UT層的結構相似DAL,BLL等,針對不一樣的類創建相應的測試單元類。UT的結構如圖2:

WEB層是直接與用戶交互的層面,經過codebehind代碼,該層直接調用BLL層的方法來實現用戶的業務需求,並將結果顯示在Web頁面。由於公司服務器在英國倫敦,可是不少用戶並不在英國,要考慮的問題包括:

⑴ 安全性 在web.config中對文件的安全性進行設置,即便用戶登陸系統後,某些網頁必須有特定權限的用戶能夠瀏覽;對於頁面間的參數傳遞經過Session進行,超級連接後不附加任何參數。

⑵ 速度 考慮到部分的用戶上網速度比較慢,帶寬不足,對於大批量的數據顯示儘可能採用分頁的方式進行。

⑶ 易用性 因爲不少的用戶非計算機專業人員,所以要求系統使用方便而快捷,好比:對有多個輸入框的數據輸入,能夠經過回車鍵在不一樣的輸入框之間跳轉,方便用戶操做;對於內部管理系統,由於原先客戶一直使用Access系統,要求新的系統具備較高的自學習能力,儘可能參照原先系統。


圖2 UT的結構圖數據庫


結束語 本系統開發時間爲12個月,開發人員爲5人。數據庫使用50多個庫表,開發工具爲Visio Studio 2003,採用開源工具CSUnit做爲單元測試工具。在多層架構的開發模式下,不一樣的開發人員負責不一樣的層,能夠專一於本身的部分。好比:負責Web頁面的人能夠專心設計界面,負責DAL層的人則主要考慮與數據庫的交互,至於業務需求則由負責BLL層的人來進行。經過分層模式,大大改善了系統的維護性,也加快了開發速度。能夠想像,伴隨着微軟.NET戰略的推行,在.NET下多層架構的開發模式將愈來愈流行。
相關文章
相關標籤/搜索