前言
這些年一直在.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架構核心層:主要是一些服務基類,Tlog,參數處理等。
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就可以直接重用了。
好了先寫到這吧,第一次寫部落格,寫的很慢,接下來我準備寫以下幾篇:
1、利用zephyr架構的登陸的實現
2、系統管理詳細開發講解(好多)
3、典型業務頁面開發講解
4、架構的功能及實現
先給大家截幾開發出來的,接下來的部落格中我會詳細講解我的實現。
查詢頁面:
編輯頁面:
系統管理: