2015-12-28 239 views
1

我在寫一個控制檯應用程序,我想應用MVC模式。由於ASP.net MVC已經是一個成熟的框架,我不知道我是否可以將它用於我的控制檯應用程序,而不是重新發明輪子。使用Microsoft.AspNet.Mvc控制檯應用程序

例如,我可以從Microsoft.AspNet.Mvc.Controller繼承來派生我自己的控制器類嗎?

我已經在谷歌上做了一些研究,但找不到具體的問題。

回答

5

我正在寫一個控制檯應用程序,我想應用MVC模式。 由於ASP.net MVC已經是一個成熟的框架,我不知道我是否可以使用 它爲我的控制檯應用程序,而不是重新發明輪子。

不,你不願意。 ASP.NET MVC是爲Web和HTTP協議而設計的。

例如,我可以從Microsoft.AspNet.Mvc.Controller繼承到 派生我自己的控制器類嗎?

你可以繼承,但是爲它編寫一個宿主環境來模擬這個HTTP世界是完全矯枉過正的。

+0

非常感謝@Darin。你能否詳細說明爲什麼這是一個矯枉過正的問題?例如如果我從AspNet.Mvc類派生出什麼東西會發生什麼? – james

+2

什麼都不會發生。您將無法使用它,因爲您需要編寫抽象類的實現:['HttpContextBase'](https://msdn.microsoft.com/en-us/library/system.web。 httpcontextbase(v = vs.110)的.aspx)。顯然,爲了做到這一點,您需要編寫一個實現,以便像HttpRequestBase,HttpResponseBase,HttpSessionStateBase這樣依賴的其他抽象類的實現,所以您很快就會意識到這不是您想要做的事情。 –

1

編寫ASP.NET MVC控制檯應用程序意味着您正在執行自主主機而不是將其託管在IIS等Web服務器中。這是可能的,但它是不平凡的。有幾個選項:

  1. Create MVC 6 application和使用DNX到self-host
  2. 參加的情況下利用IIS 7 Hostable Web Core您的應用程序將只在Windows Vista上+
  3. 寫有NancyFx或類似的框架

編輯: 顯然我誤解了這個問題:不,在使用http的web應用程序以外的情況下使用MVC框架沒有意義。但我會留下這個答案,以防有人在搜索時打開這個問題,我認爲這個問題是關於這個問題的。