B/S開發框架(asp.net mvc + web api + easyui)
本人非常喜歡這篇文章,特地拿出來分享,希望各位學習
這篇文章寫了很多,如果能有耐心看完的話,肯定是受益匪淺,本人曾經也想過程式就應該是三兩句程式碼可以搞定的,因為都是重複性的東西,可是能力有限,力不從心,只能在此感嘆了,不過日後一定會加倍努力的,下面擷取的都是一些關鍵話語,看完這些如果有興趣的話,可以去作者的園子去看,就不一一轉載了。
可以先看看這個 我想你會更感興趣一些。
文章來自 這裡
前言
這些年一直在.net下做企業web系統開發,前前後後經歷的不同的開發框架有五六個之多,一直想有一個比較簡單靈活順手的BS開發框架,網上也沒有找到一個比較合適的能應用於企業系統開發的。去年辭職在家的時候,網上找了些東西,按照自己的想法實現一些東西,慢慢的形成現在的B/S開發框架。想接下來慢慢的寫出來和大家共享下,這裡面很多都是我自己的想法,並沒有什麼高深的設計模式,歡迎大家拍磚。
框架願景
1、提高開發效率(儘量少的配置,儘量少寫程式碼,儘量簡單)
2、考慮較好的拓展性及winform及手機端接入的可能性(所有的資料訪問均採用 ajax+ restful webservice實現)
3、資料訪問層比較靈活高效,分頁查詢,支援多資料庫
4、有一個不錯不的UI
5、一些程式碼可以自動生成
技術選型
採用.net4.0作為基礎技術平臺,原來是採用.net4.5的,但是後來發現.net4.5不支援Windows Server2003,所以又降為.net4.0。
1、asp.net mvc 4.0 用於提供頁面服務
2、asp.net web api 用於提供restful資料服務
3、fluentData 新型輕量級ORM模型用於資料持久方案
4、log4net 作為日誌元件
5、json.net 作為序列化元件
6、文件方案(均為開源) 匯出:Excel2007使用EPPlus、Excel2003使用NPOI、Word2003/2007使用DocX、Pdf使用Gios 壓縮:Ionic.Zip、Ziplib
7、js庫為jquery
8、UI選用jquery easyui 1.3.2
9、選knouckoutjs為前端mvvm框架
10、css框架選用960gs
11、報表採用stimulsoft report(商業)
12、圖形分析採用fusioncharts
簡單實現圖
框架分層
一、框架分層截圖如下,主要是分了以下幾層:
1、Zephyr.Core框架核心層:主要是一些服務基類,日誌處理,引數處理等。
2、Zephyr.Data資料處理層:資料庫操作類,引入FluentData並做了少量的修改以適應
3、Zephyr.Generator程式碼生成器:目前只能生成實體類及服務類
4、Zephyr.Utils工具類:裡面包含了很多東西如轉換函式,文件處理加密解密等等,我不喜歡引入太多的dll所以很類庫我就直接加在它裡面了。
5、Zephyr.WorkFlow工作流引擎:參照JBPM思想只實現了核心功能
二、框架的使用
直接在專案中引入框架的dll即可,早期的很多專案都是參照petshop分了很多的層,這裡我不打算分太多的層,目的只有一個,要使框架使用起來儘量的簡單。就直接使用Model 、View、Controller這mvc自帶的三層,web api同mvc。其中Model層是廣義的Model,其中包括資料實體的定義及資料服務。資料服務可以看做我們傳統三層中的dal或bll + dal的。框架的作用主要在服務層,相當於服務層只要繼承了框架的服務基類即可擁有所有我預定義的方法。所以後臺分層只有mvc三層。
前臺則採用mvvm的開發模式,把前端也分為三層分別為Model、View、ViewModel三層。Model即為後臺傳入的資料,View即為Razor頁面,ViewModel則為一段處理頁面與資料互動的指令碼物件。這樣一來,只要頁面差不多ViewModel就可以直接重用了。