2012-04-28 67 views
3

ASP.NET MVC項目遵循模型,視圖和控制器的命名和文件夾約定。對於其他代碼(例如:動作過濾器,委託處理程序等),在項目的文件夾結構中找到這些代碼的最佳做法是什麼?ASP.NET MVC文件夾約定

回答

3

一個很好的方法是找出真正的最佳實踐是看到開源項目。 IIRC的畫廊的NuGet寫在Asp.Net MVC的傢伙,所以它會起到一個很好的例子爲他們眼中的最佳實踐,同時還作爲一個實際的產品:

https://github.com/NuGet/NuGetGallery

看起來他們添加他們FilterAttributes,HtmlHelpers,等該項目的根目錄:https://github.com/NuGet/NuGetGallery/blob/master/Website/RequireRemoteHttpsAttribute.cs

此外,Phil HaackDavid Ebbo製作的Asp.Net MVC團隊,你可以看看他們的GitHub回購他們喜歡做的事情。

+0

將控制器保存在單獨的項目中並將視圖保存在單獨的項目中是一個好主意嗎? – user20358 2012-05-31 10:39:01

1

沒有標準的方式。不同的從業者已經提出了各種方法,但都有一些優點和缺點。然而,根據適用的設計限制,這裏有一些指針:

  1. 重用

    如果你希望你的操作過濾器,委派處理程序等受到重用,然後將它們放置在一個專門的文件夾中的ASP .net mvc webroot將完成這項工作。這樣所有這些過濾器將具有全局範圍並且可以根據需要使用。

  2. 可插拔

    如果想創建一個可插拔模塊出了過濾器等的這可能是值得將它們放置在一個單獨的DLL乾脆。該庫可以被認爲是一個黑盒子,它將所有上下文信息作爲功能輸入,並可根據需要重新使用。 我喜歡果園CMS的可插入式架構http://www.orchardproject.net/

我問過類似的問題有時回來就如何在asp.net mvc的項目組織模式。不幸的是沒有得到太多的迴應。 Models in asp.net mvc 3 areas