如何在没有ASPX的情况下在C#中创建Web框架?

时间:2010-05-29 23:49:47

标签: c# apache mono web-frameworks

我设法在ubuntu / apache / mono下运行一个C#asp页面,但我不想在这些ASP页面中编写我的框架,我想直接使用C#然后我将使用模板我的观点的语言。但我不知道从哪里开始?

C#是一种编译语言,所以...我该怎么做?我会编译所有内容然后将apache挂钩到(单个)可执行文件并传入请求URL吗?我可以请求特定的.cs页面然后让apache告诉它编译,然后只有在它被更新时“显示”它吗?可以单独编译“视图”文件,以避免每次更改时都重新编译所有内容吗?是否有一些我可以使用的“基础”,或者我将不得不重新发明访问GET和POST变量(通过读取标题信息)以及我们认为在PHP等语言中理所当然的各种其他东西?

5 个答案:

答案 0 :(得分:3)

AFAIK没有理由你不能在ASP.NET核心上做你想做的事情,使用像HttpApplication,HttpHandler等东西。例如,你可以将所有的URL路由到一个HttpHandler并从那里手动取出

我建议看看ASP.MVC是如何做到的 - 在MonoDevelop中创建一个新的ASP.NET MVC项目,查看Global.asax.cs,打开Web.config并查看自定义的http处理程序和模块它注册。 ASP.NET MVC是OSS,所以你也可以在那里挖掘。

答案 1 :(得分:1)

如果你真的不喜欢使用ASP,你可以尝试阅读ASP的源代码,看看他们如何实现你需要的功能,比如访问POST和GET信息,路由,会话管理,等

然而,这将是一项工作。您可以做的是在c#类库中实现绝大多数逻辑,只需使用ASP“托管”应用程序,并传递您需要的数据。

答案 2 :(得分:1)

没有人要求你在ASPX页面中加入大量代码。 (请不要使用ASP,这是另一回事。)

在ASP.NET WebForms模型中,您可以使用Code Behind模式。

在ASP.NET MVC模型中,您可以更好地控制几乎所有方面。

因此,请花一些时间潜入现有模型。试图推出自己的产品可能是浪费时间。

Mono支持这两种型号。

此外,ASP.NET的设计方式与PHP不同,您应该知道引入的差异无法始终满足您的要求。

答案 3 :(得分:1)

  1. 你说ASP。这个ASP或ASP.NET页面是否有效?差异很大。
  2. 您是否可以在ASP.NET页面中访问请求/响应,如果是这样,您应该能够进入GET / POST。
  3. 您知道如何在正常的IIS / ASP.NET中构建您正在尝试的内容吗?如果没有,请保存自己的一些理智,并至少在那里大致工作。这只是减少一次使用的变量/未知数的一般建议。
  4. 最终,您正在构建自己的处理程序。我想你需要有一些dll,它将看到页面xxx的请求,读取该页面,并实例化后备类。查看asp.net mvc来源可能会有所帮助(在额外下载下)。

答案 4 :(得分:1)

ASP .NET MVC有很多备用模板语言,请参阅这个问题以获取loooong列表:ASP.NET MVC View Engine Comparison