我正在與我的一位同事一起開發ASP.NET MVC 5(從現在開始就是MVC)和Angular 1.5的Web應用程序。
我將使用MVC純粹作爲後端參與者:暴露API並與數據庫交互,而不生成任何視圖。 另一方面,角色將負責整個客戶端,使用組件和模板進行視圖,路由和服務以調用MVC端點。
我認爲這會帶來明確的職責分離和整潔的架構。然而,我的同事寧願保留MVC路由,從服務器生成視圖,並向他們注入Angular,因此使用它作爲客戶端業務邏輯。這會帶來一些其他好處,因爲可以加快某些安全措施(例如,使用@Html.AntiForgeryToken()
)。但是,這會使得使用角度組件和新組件模式更困難。
當然,一種不同的方法可以是僅將WebApi用作後端並保持清晰的切割,但我很好奇聽到別人如何解決同樣的問題。ASP.NET MVC和Angular 1.5體系結構和職責分離
0
A
回答
1
Angular用於創建單頁面應用程序,遵循同事的方法意味着每個路徑只有一個頁面應用程序,這將打破單頁應用程序的用途。 SPA需要一些時間來加載,如果每條路線有一個SPA,您將爲每條路線支付加載時間,並且因爲它的新頁面丟失了上一頁的狀態。
防僞標記也可用於角度應用,請參閱this。
我們在我們公司創建了角度應用程序,我們使用web api和兩個剃鬚刀頁面,一個用於登錄,一個用於spa應用程序。有可能只有index.html,但將登錄頁面分開會帶來一些簡單性,並將一些初始數據注入主頁面可簡化角引導。
相關問題
- 1. Lua和C++:職責分離
- 2. Mvc asp.net和n層體系結構
- 3. ASP.NET MVC - M V C職責
- 4. 將職責分離到Magento
- 5. ASP.NET三層/三層體系結構 - 如何分離UI和BLL
- 6. ASP.NET MVC體系結構
- 7. ASP.NET MVC RESTFul體系結構
- 8. ASP.NET MVC體系結構
- 9. ASP.NET Web窗體和ASP.NET MVC中的MultiTenant體系結構
- 10. Angular和Spring安全體系結構
- 11. Angular + ASP.Net核心:插件體系結構
- 12. .NET MVC 5和洋蔥體系結構
- 13. MVC體系結構和自定義membershipProvider
- 14. 體系結構和ASP.Net身份
- 15. MVC體系結構
- 16. Angular和ASP.NET MVC
- 17. asp.net中的三層體系結構mvc
- 18. ASP.NET MVC - PartialView體系結構問題
- 19. ASP.Net MVC體系結構 - 缺少圖層?
- 20. 模塊化體系結構 - ASP.NET MVC
- 21. ASP.Net MVC體系結構 - ViewModels的位置
- 22. asp.net mvc登錄體系結構選項
- 23. ASP.Net MVC視圖體系結構
- 24. ASP.NET MVC項目體系結構問題 - 授權和會話
- 25. ASP.NET MVC和麪向服務的體系結構
- 26. ASP.NET MVC插件體系結構和部署
- 27. ASP.NET MVC路由和結構
- 28. 負責分離職責php對於控制器
- 29. 將ASP.NET體系結構與Sencha Ext JS MVC體系結構混合
- 30. Angular JS和ASP.NET MVC
讓MVC呈現的登錄頁面更實用(更接近認證服務)?否則,爲什麼不通過角度提供並通過API調用後端? – Francesco
它也更簡單。這個邏輯已經在服務器端實現了,如果你試圖進入主頁面,並且你沒有通過身份驗證,你會被重定向到登錄頁面,當你登錄時,你會被重定向到你想要進入的主頁面第一個地方。如果您想在SPA中登錄,您必須在SPA中實施該邏輯。登錄頁面的重量非常輕,那麼在SPA中實施它的好處是什麼? –
在Angular中實現身份驗證有一些複雜性。當角度自舉時,您需要知道用戶是否已通過身份驗證。 Angular可以在任何路由中引導,甚至當用戶按F5時。如果身份驗證cookie存在,用戶將通過身份驗證,但您無法訪問身份驗證cookie,因此只需要http,因此您需要調用web api終點來獲取當前用戶,但在角度上,不容易等待http調用bootstrapping。所以我更喜歡服務器端方法 –