.net web 快速開發平臺-構思
目前,大部分公司都有自己的開發平臺,有的是將開源的框架經過不斷的修改整理完善而來的(列如:NHibernate,Entity Framework,spring.net等),也有的是根據實際的專案需要專門開發的,這就需要有過硬的技術能力。到現在為止,我也將做的多個專案進行整合不斷完善,基本實現了一個簡單的開發平臺,和大家分享一下我的設計思路和平臺的結構,希望大家能指出不足之處。
做一個平臺的目的無非是為了提高開發的效率,降低開發的成本。為了提高效率就必須將專案中的公共部分的程式碼抽象出來,將實現相似功能的程式共通化,減少重複程式碼的使用,並使程式易於擴充套件,適應變化。我的平臺中實現了以下功能:
一.整合資料庫的訪問
作為一個程式設計師,如果每次實現對資料庫的操作都要重複編寫程式碼來定義和操作資料庫連線物件Connection,事物處理物件Transaction,sql語句執行物件Command等等,那就很愚蠢的做法。我見過的公司都對資料庫的訪問做了處理,有一些使用的是ORM框架,連sql語句都不需要寫,就能實現對資料庫的增刪改查。但是這種框架也有一些缺點,在實現複雜的多表查詢時,不好實現,而且在效能方面也有一點不足。我在這個平臺中沒有使用ORM技術,而是將對資料的訪問進行了共通化,分別實現了對oracle,DB2,sqlserver資料的訪問,還可根據需要擴充套件對其他資料庫的訪問。訪問資料庫時只需要傳入sql語句,相應的引數,並設定是否啟用事物就能實現對資料庫的訪問。
設計圖如下:
也有的框架是使用Linq To Sql 實現對資料庫的訪問,這樣能節省很多程式碼,不需要寫sql語句。但是使用這種方法也有缺點:
1.Linq To Sql 實現對資料庫的訪問的效能不是很好。
2.當資料庫要從sqlServer換為oracle等其他資料庫時改動量會很大。
二. 整合日誌的處理
現在有很多優秀日誌工具包,如Log4等,也很好用。但我在這個平臺中沒有用這些現成的日誌工具包,而是採用了自己開發的日誌包。主要記錄三種日誌:
1.異常日誌, 能把發生異常的詳細資訊記錄下來,用於查詢異常發生的原因。
2.sql語句執行日誌,用於記錄執行的sql語句,sql語句執行的時間,引數等資訊。
3.debug跟蹤日誌,用於記錄一些指定的資訊(如登陸使用者進行的操作,某個特殊變數的值,某個函式執行的時間等)。
這些功能都能通過配置文檔案中的開關來開啟或關閉。
三.提供大量共通類庫
提供圖片處理,Excel,word,Txt檔案處理,檔案傳輸處理,壓縮解壓縮處理,Json處理,加密解密處理,自定義控制元件等等的類庫。這樣在平臺需要實現一些特殊的功能時,只需要呼叫相應的方法就能實現。
四.整合通用的功能
如許可權的管理,選單的設定等一些通用的功能。
五.動態表單設計器
通過表單設計器,可根據需要設計表單的佈局等資訊,並將表單的資訊用xml的形式儲存到資料庫。當需要對錶單的佈局,樣式等進行修改時,可直接從資料庫中讀取xml檔案進行修改。這樣當頁面發生不涉及應用邏輯的變化時,不用修改程式碼,直接通過設計器修改頁面即可。頁面儲存後會根據模板生成相應的html頁面或aspx頁面,當訪問頁面時,根據設計的許可權判斷是否能訪問,如果能訪問,則轉到相應的頁面中,然後根據許可權顯示頁面的狀態。
六.動態報表設計器
用於設計報表的佈局等資訊,並將報表的資訊用xml的形式儲存到資料庫中。當需要對報表的佈局,樣式,資料來源等資訊進行修改時,可直接讀取xml進行修改。