快速瀏覽標題便了解到本文要談到公開資源平臺,該平臺允許快速,輕松地創(chuàng)建一個管理網(wǎng)絡,并不需要在風格,導航,解決方案架構和其它跟主要任務無關的瑣事上花費過多的時間。
公司主營業(yè)務:做網(wǎng)站、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出城中免費做網(wǎng)站回饋大家。
平臺視覺圖和其中一塊模板:(見附圖一)
很長一段時間里,我們使用WPF技術模塊化管理應用。我們做出的決定是將此管理遷移到網(wǎng)站中。最后我們得出了2個不同的產(chǎn)品:第一個:平臺,就是這篇文章致力于介紹的,第二個是用于電子商務應用程序開發(fā)使用的集合模塊。
技術運用于:(見附圖二)
我們決定使用這些技術都是我們廣泛應用微軟產(chǎn)品的經(jīng)驗結果。
我們使用以下的技術:
· ASP.NET MVC 5.0 -作為一個網(wǎng)絡托管技術
· ASP.NET Web API 2.0-去實施REST服務
· Entity Framework 6.0 – ORM
· EF Migrations -以便管理數(shù)據(jù)庫模式的更改和數(shù)據(jù)
· ASP.NET Identity -授權和認證任務
AngularJS –主要針對SPA 的用戶界面。挑選它的主要依據(jù)之一是因為它的普及性和文件質(zhì)量。我們之前雖然沒有過應用AngularJS方面的工作經(jīng)驗。但一路回首,我們從未對這個選擇有過任何遺憾。
Architecture
平臺和模塊都采用DDD,SOLID,TestDriven Development(TDD)。從表面看,我們在使用MVVM(非常感謝AngularJS-從WPF的過渡到現(xiàn)在都沒有出現(xiàn)過任何并發(fā)癥)
Platform Capabilities
現(xiàn)在讓我們看一下平臺兼容性的核心列表。理解這個列表包含平臺兼容性是很重要的,因為它不僅僅是電子商務應用的一個附加功能。
風格指南(見附圖三)
我們使用MCSS系統(tǒng)方法的應用創(chuàng)造了我們自己的主題。我們還創(chuàng)建了一個風格元素指南和用于元素導航的視覺構造,允許您輕松地創(chuàng)建一段HTML源碼,以此用來擴展模塊。
Navigation
在這里,我們針對用戶界面提出了一個統(tǒng)一的導航用戶界面概念。我們非常喜歡應用于新portal.azure.com中水平滾動頁面導航的想法,于是我們決定把它作為一個基點。
主要的導航元素是:
· “blade”-傳統(tǒng)界面的模擬窗口
· “widget容器包含widget
· “main menu” -針對所有模塊的全局導航菜單
Modularity
平臺在運行安裝擴展模塊時允許系統(tǒng)功能擴展。鑒于每個模塊都可以提供自己的用戶界面和REST API服務,所以該平臺可以被定制用于服務許多特殊的商業(yè)需求。
模塊化是我們遇到的最困難的問題之一。為了解決這個問題,我們不得不從WPF中采用微軟PRISM,并且使它在ASP.NETMVC中可以正常運行。模塊包含了使用版本和依附關系的信息,這些信息常在系統(tǒng)在模塊初始化和安裝過程中有被使用。
除了擴張用戶界面和API ,每個模板可以用自己的數(shù)據(jù)庫模式并且支持在版本更新過程中的數(shù)據(jù)遷移。它們也可以通過loC和依賴注入來擴展或覆蓋其他模塊的功能。
我們就不一一列出所有用戶界面的擴展點啦,這只是其中的一小部分:主菜單,工具欄,窗口,通知等。
其它有用的信息
· 授權和認證聯(lián)合認證兼容-使用微軟ASP.NETIdentity。
· Managing users and permissions -我們自己的執(zhí)行并且準備使用UI。
· Working with binary data (files) -擴展系統(tǒng)提供API上傳文件到本地磁盤存儲,網(wǎng)絡存儲或azureblob存儲??梢詳U展用來使用任何類型的存儲服務。
· 背景工作調(diào)度-使用延時庫來實現(xiàn),是一個很靈活的功能體系,為監(jiān)測工作提供自己的接口。
· 動態(tài)設置系統(tǒng)-允許聲明性設置,并提供標準管理界面和API代碼使用。
· 動態(tài)特性系統(tǒng)-允許使用UI 或代碼來動態(tài)擴展任何用戶對象的新屬性。
· 貯藏-使用緩存服務來優(yōu)化和提升緩存能力 (AppFabric, WEB Cache, memcache等.)
· 基于模板的通知系統(tǒng)-定義通知類型,編輯模板,支持本地化,規(guī)劃,日志。支持包括電子郵件、短信等多種不同的通知渠道。
· 統(tǒng)一的輸出/輸入系統(tǒng)模塊-統(tǒng)一的用戶界面和數(shù)據(jù)格式的實際執(zhí)行模塊。
它不僅僅是一顆銀色的“***”,而且還…
因此,我們最終擁有了一個相當好的系統(tǒng),它允許有經(jīng)驗的開發(fā)人員針對復雜的項目快速創(chuàng)建一個管理網(wǎng)站,或者使用它作為一個指南來創(chuàng)建獨一無二的系統(tǒng)。
· 更多關于平臺的信息可以點擊:http://docs.virtocommerce.com/display/vc2devguide/Working+with+Platform.
· 您可以看到,使用該平臺創(chuàng)造一個電子商務產(chǎn)品的真實例子:VirtoCommerce online demo (frontend and admin).
· 項目本身就坐落在此:https://github.com/VirtoCommerce/vc-community. 項目正在積極發(fā)展中,所以所有的意見,反饋和要求將得到高度贊賞。
許可證
在該文中提及的相關源代碼和文件,都是由CPOL授權許可的
關于作者:
Alexander Siniouguine
職業(yè):軟件構架師
國籍:美國
高級軟件構架師。作者已經(jīng)自主設計了幾款網(wǎng)絡產(chǎn)品,這些產(chǎn)品被世界上著名的網(wǎng)絡公司所運用
閱讀我最近的文章:
Checkout my latest article: http://www.codeproject.com/Articles/1013731/Modular-WEB-Admin-Using-ASP-NET-MVC-and-AngularJS
http://virtocommerce.com/
原文摘自:http://www.codeproject.com/Articles/1013731/Modular-WEB-Admin-Using-ASP-NET-MVC-and-AngularJS
PS:本文是小博主的嘔心瀝血譯文,一直對Alexander Siniouguine這位有著20年IT行業(yè)經(jīng)驗精英有著十分崇敬之情,之前也讀過他的文章,對他的獨特眼光和對行業(yè)領域獨到的見解感到欽佩,該篇 “使用ASP.NET MVC和AngularJS的Web模塊化管理"我覺得也是行業(yè)領域的創(chuàng)新之作吧,與大家共享共勉哦!