每個企業都是慢慢發展起來的,在起步階段成本是一個不得不考慮的重大問題 。直接入正題:
前台框架: ASP.NET MVC + Jquery + Json + Flash , ASP.NET MVC 高性能速度快,Jquery 簡潔成熟的Js基礎框架 , Json 數據格式體積小 ,傳輸快。Flash 用於開發復雜的頁面交互應用。
緩存方案:
Memcached , 基於Key-Value的傳統Cache儲存方式 , 高性能 , 而且它內置LRU(Least Recently Used)機制自動維護緩存數據,從而 提高緩存的性能和負載能力。
MongoDb , 數據庫級別的緩存解決方案 , 適合海量的數據緩存 , 支持查詢
權限模型:
基於ASP.NET MVC 的RBAC , 控制對象粒度到Action , 控制操作粒度 是否能訪問。權限基於Cookie/緩存記錄認證信息 , 在用戶登錄時就計算出該用戶的所有權限並緩存。
(優點:直接通過AOP做橫切面控制,不需要設置權限點 ;缺點:無法控制到同一個Action有增、刪、改、查等更細的操作粒度,不同的操作需要制作不同的Action , 表面上要多幾個Action , 其實這樣做職責更加分離,更加符合OO的觀點)
多語言解決方案:
服務端, 基於資源文件,完美配合ASP.NET MVC 前段框架 ,進行各項數據驗證及提示等
客戶端, 同樣基於資源文件, 對Page頁面采用script 導入序列化的資源文件 ,按名詞空間引用 ,如Resources.Book.AreYouSure 的Js變量. 對於flash等可以通過Json 傳遞。
數據通信:
服務端,WCF , WebService
客戶端, HttpRequest 數據類型Json
數據訪問層:標准接口化,不對數據實現依賴。
Entity Framwork , 適合只使用SQL Server 的解決方案, 開發效率最高
NHibernate , 支持多數據平台 ,開發效率較高 , 性能一般
ADO.NET, 完全靠開發實現,開發效率低 , 性能較高
性能和效率按正常水平評估
解耦辦法:
IOC , 依賴注入 ,
AOP , 橫切面攔截 ,權限中的推薦做法
負載均衡:
Nginx , Web前端的負載均衡解決方案 , Nginx 開源免費,高性能 . (Tengin 淘寶基於 nginx 的開源項目 , 增加了很多實用的功能)
頁面提速:
實時性要求不高的頁面可以做靜態化 ,頁面的部分動態內容可以通過SSI處理 ,然后數據更新就主動生成頁面。頁面靜態化,通過XSLT的CMS生成機制可以對生成的頁面內容進行壓縮。
靜態資源文件拆分出去做獨立站點,加上服務端的GZIP/Deflate壓縮等操作,最好配上二級域名,已加快客戶端HTTP下載.更加方便以后做CDN. 盡量減少Http請求數量。
SSO:
如果有多個站點,統一認證可以降低開發維護等成本.
數據庫:
Mysql , 成熟,開源.