使用没有整个MVC框架的控制器

时间:2011-02-03 13:04:23

标签: c# asp.net-mvc windows-services

我正在设计一个系统时尝试使用MVC做一些事情,并想尝试看看我是否可以使用MVC框架的外部的概念。当我在外面说时,我指的是我自己的C#服务,而不是网站。

我启动了一个简单的控制台应用程序来测试理论,它很简单,可以将配置文件更改为非客户端配置文件,添加System.Web.Mvc,创建控制器并让它返回JsonResult。设置起来很容易让我高兴,因为如果我想要一个服务来回应JSON,那就是完成的工作的一半。

下一步是设置一个Http Server类,如果我可以利用框架的其他部分将传入的请求映射到我的控制器,我会很高兴。不幸的是,这是我迷失的部分,我不知道后面有什么代码可以使参数全部到达特定控制器的功能。

有没有人知道如何实现这个目标,或者有资源来看待它?

简而言之:我想在我自己的服务中利用控制器,运行它自己的HTTP服务器。

4 个答案:

答案 0 :(得分:1)

你是不是想重新发明轮子?

如果返回JSON是您的主要目的之一,那么WCF将满足您的需求。随身携带WCF,您可以自由地在IIS中托管它。这为您的第二个目的提供了自己的HTTP服务器。

您正在尝试实现某种路由,根据URL,您将调用不同的操作。是不是类似于使用不同方法的WCF服务,并且客户端使用不同的URL调用它们?

在非Web应用程序中尝试控制器概念似乎是创新的,但在您的情况下,它看起来像是过度工程。

答案 1 :(得分:1)

您可以在不使用框架的情况下使用设计模式 - 我的意思是,您可以在您认为可以解决问题的任何地方应用模型视图控制器模式 - 如果您认为可以替换"查看"使用" service",您可以应用一些概念......

http://msdn.microsoft.com/en-us/library/ff649643.aspx

但是,还有其他模式可以更好地为服务提供帮助,尽管如果我们专门讨论JSON服务,那么只使用ASP.NET MVC框架就可以正常工作(而不是试图重新写它)。

答案 2 :(得分:1)

基本的MVC模式并非都难以复制。我会认真考虑编写自己的,而不是试图将MVC课程变成你的应用程序。

西蒙

答案 3 :(得分:1)

如果它对您有帮助,整个ASP.Net MVC框架是开源的,您可以从http://aspnet.codeplex.com/下载所有内容。您可以在此处使用这些库来查看框架如何在幕后执行操作,并根据需要调整适合您自己的用途。