对于许多开发人员来说ASP.NET和ASP.NET Web Forms是相同的东西。有一段时间我一直在使用Web窗体,但最近我了解到Web窗体只构建在ASP.NET之上。我更好奇一个简单的ASP.NET应用程序是如何看起来的。我学习了3种ASP.NET编程模型:Web表单,Web页面和MVC(Here Scott Hanselman简要解释了这些差异)。但它仍然认为所有3种方法都位于ASP.NET之上。
我试图找到一个使用纯ASP.NET的示例应用程序,但我找不到任何东西。
我开始深入研究ASP.NET网页的源代码,我发现每个网页实际上都是HTTP Handler(每个页面实现IHTTPHandler
接口)。这是否意味着纯ASP.NET应用程序只是一个HTTP Handler实现?或者我错过了什么。
在我的理解中,ASP.NET Web窗体对应于桌面世界中的Win Forms。但在桌面世界中,您仍然可以编写不使用Win Forms的控制台应用程序。那么网络世界中的控制台应用程序是什么呢?
任何评论或参考意见。提前谢谢。
答案 0 :(得分:5)
ASP.NET是一组非常广泛的技术,它包括WebForms ..而且从MVC5开始,它还包括MVC,WebApi和WebPages。这就是微软现在称之为“One ASP.NET”的举措。
这些都是ASP.NET的一部分,就像ASP.NET是.NET的一部分一样。这些都只是层次。没有名为asp.net的“单独”部分不包含这些部分(即使在早期版本中,也没有不包含WebForms的asp.net版本。)
因此,没有“纯asp.net”应用程序这样的东西。您当然可以编写一个不使用WebForms的应用程序(这意味着没有.aspx或ascx或.master文件,没有任何类型的服务器控件......基本上是System.Web.UI命名空间中存在的任何内容。)
最多,您可以考虑System.Web命名空间中的任何内容(没有任何更高级别的命名空间。基本上是这里的http://msdn.microsoft.com/en-us/library/system.web.aspx)
这就像Request对象,Response对象,Cookie处理,Membership,FormsAuthentication等......这是基本的管道,它本身并不是那么有用。您必须编写自己的演示框架才能坐在它上面。
还有其他框架,例如FubuMVC,Nancy,MonoRail等......这些框架就像MVC或WebForms或WebPages ......使用基本的ASP.NET类来完成它们的工作。
答案 1 :(得分:0)
我想将您作为示例引用到ASP.NET MVC。 ASP.NET MVC是ASP.NET上的框架,但绝对不是Web Forms(实际上,它完全取代了它,并且我认为 - 最好)。
ASP.NET通常提供Web常用的服务,例如:
Web窗体在ASP.NET的基础架构之上添加了表示层。它提供了诸如Forms,ViewState等内容。例如,将代码隐藏代码“翻译”为HTML表示。这只是几个例子。
ASP.NET作为基础结构和Web Forms作为表示层之间的分离允许稍后创建ASP.NET MVC。 ASP.NET MVC完全不依赖于“Forms”,也不试图模仿WinForms开发工作流程(通过使用代码隐藏“方法”和“属性”来掩盖原始HTML等)并且实际上提供了更好的&正确的网络开发方式。
您询问的是纯 ASP.NET。这是一个纯ASP.NET的例子,没有WebForms,没有MVC。这是一个:http://support.microsoft.com/kb/308001。它是一个基本的HTTP处理程序,在这个例子中,每次浏览到以.sync
结尾的某个地址时运行(通过“教导”ASP.NET来处理使用该扩展的每个请求)。
顺便说一句,您可以将其视为“控制台”应用程序(按您的条款)。它获取一个URL,无论来自哪里(如果您愿意,可以使用curl
)并返回文本响应,这就是全部。