簡體   English   中英

具有角度項目結構的ASP.NET Web API

[英]ASP.NET web api with angular project structure

第一次是asp.net webAPI + angular項目。 從網上看到的許多示例中,我發現基本上有兩種處理視圖的方法。

第一個(我在許多教程和課程中都看到過)僅使用API​​controllers,以便通過角度生成視圖。 這意味着我的項目結構將有一個文件夾“ app”,並將包含html文件(可能在“ view”文件夾中)。 路由將使用角度路由完成。 我在項目中只會有APIControllers(沒有常規的Controller對象)。 示例項目: https//github.com/DanWahlin/CustomerManagerStandard

第二個-使用控制器生成視圖,使用Razor(cshtml文件),並將其合並到其中(例如,在cshtml內單擊ng)。 沒有特殊的“ app”文件夾來存放angular等示例項目: https : //github.com/Wintellect/Angular-MVC-Cookbook/tree/master/CRUDOperations

因此,我想知道每種方法的優缺點以及何時使用哪種方法。 示例項目也將很棒。

我只能假設第一種方法是模塊化的,可以區分服務器和客戶端。 但是,使用它意味着我失去了剃須刀(我什至需要它嗎?)

謝謝!

我實際上不得不做出這個決定,使自己退縮了幾個月。 這歸結為您感覺更舒適。 我選擇只做角度和WebAPI控件。 從真正的關注點分離來看,這讓我覺得更容易,角度是您的表示層,而webapi是您的服務。 這也使您可以自由地對實際的html頁面(而不是您實際上無法控制的cshtml頁面)進行壓縮/格式化。

WebAPI只是可擴展性,您實際上只需要一個Web服務器來訪問網頁,但是您可以擴展WebAPI,這將使WebAPI可以作為您的api也可以作為您的客戶端。

Razor只是一個視圖引擎,以我的經驗,Angular在模板和指令方面做得很好,可以承擔失去剃須刀的費用。 一旦獲得大量指令,您可能最終還是會在剃刀文件中編寫純HTML,這意味着添加新視圖時會遇到更多問題。 誰想要創建一個新的控制器,新的動作和一個新的視圖,然后又必須做到有角度。 讓服務器為html文件提供服務,讓angular為您完成所有路由和邏輯工作,最終會變得更加輕松和簡單。

我也相信html文件也會被緩存,因此當您以角度導航頁面時,您將看到更少的往返行程。

作為一個在Microsoft商店工作的人,幾乎所有前端我都喜歡AngularJS,因此越早擺脫Razor和AngularJS的融合越好,尤其是要使用SPA時。

我唯一建議使用Razor的唯一時間是生成登錄頁面(可能還有登錄頁面/管理區域)。 它確實提供了一種不錯的方式來提供身份驗證以訪問應用程序,然后使用Web Api Authorization屬性執行其余的身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM