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