我目前正在开发一个拥有大量客户端和Web代码的项目。客户端代码用C#编写,Web部件用PHP编写。保持两个世界之间的一致性变得很麻烦,我想将网络代码整合到.Net。
问题是我讨厌ASP.Net Web Forms中的Web开发。我想要像PHP一样原始的东西,只需使用C#。我已经阅读了一些关于ASP.Net MVC的内容,但看起来它根据我的喜好抽象了太多的请求逻辑。
有没有人知道允许C#+ .Net处理Web请求的轻量级方法?我应该更密切地关注MVC吗?
更新:我使用ASP.Net MVC,到目前为止我一直非常高兴。
答案 0 :(得分:6)
如果您希望摆脱ASP.NET Web窗体,我建议使用自定义视图引擎(如Spark或NHaml)的ASP.NET MVC。这将为您提供所需的合并,并允许您避免大多数您不满意的Web表单。
AFAIK,要进行.NET Web开发,您将不得不以某种形式与ASP.NET进行交互,但MVC中的自定义视图引擎可能正是您所寻找的抽象。
答案 1 :(得分:3)
现在可以使用完全独立于IIS和ASP.Net的软件堆栈,使用Kyak,Nancy和Gate。
答案 2 :(得分:2)
您可能想查看Kayak,据我所知,这是唯一不是ASP.NET的独立.NET Web开发框架。
警告:Kayak的请求处理实现并不是最好的,因此可能存在性能或扩展问题。我不能肯定地说 - 我只是阅读它,而不是运行它。编辑:我再看一下源代码,看起来他们已经重写了很大一部分服务器代码,并且这样做修复了主要问题。性能可能不会成为问题。
答案 3 :(得分:1)
MVC.NET是开源的,所以你可以让它做你想要的。它是一个可覆盖,可扩展等框架。我会仔细研究它。它对我很有用,我来自CGI,Struts和Webwork的背景。我喜欢它。
答案 4 :(得分:1)
在我看来,没有什么比 NancyFX (http://nancyfx.org/)与 Dapper (https://github.com/)的组合更轻巧SamSaffron / dapper-dot-net)用于数据访问。
NancyFX可以托管在ASP.NET,WCF,Azure,OWIN兼容环境,Umbraco中,也可以编写自己的主机。
另请阅读这些文章: http://theothersideofcode.com/lightweight-development-in-dot-net-nancy http://theothersideofcode.com/lightweight-data-access-in-dot-net-massive
我还建议你 TinyIoC (https://github.com/grumpydev/TinyIoC)来解耦应用层。
此致 贾科莫
答案 5 :(得分:0)
您应该查看IHttpHandler和IHttpModule接口。这些是ASP.NET WebForms的基础。布拉德威尔逊对前者有good intro。
在WebForms是进行ASP.NET开发的方式的糟糕日子里,我正在使用这些接口编写自己的简单MVC框架。我当时挣扎的是View引擎,但现在有很多这样的。
您可以仔细查看ASP.NET MVC,因为源代码可用并自行决定。您可能想要更改一些使用的约定而不是整个框架。