1

在开发 Web 应用程序时,我一直使用 C# MVC3 进行编码。但现在我想了解更多关于仅使用 ASP.NET 开发网站的知识。

但现在我想知道我的代码会有什么好的设置。对我来说,类似 MVC 的模式似乎是一个不错的选择。但显然 ASP.NET 没有任何路由器和控制器类。所以我猜人们在使用 ASP.NET 时有不同的方式来设置他们的代码。

因此,我正在寻找有关如何开始使用此功能的更多信息。所以不是真正的 ASP.NET 基础知识,而是专注于良好代码设置的东西。

关于此的任何好的教程/信息?

4

3 回答 3

2

过去,在构建 ASP.NET 应用程序时,我发现Model View Presenter设计模式在将所有代码隐藏提取到表示层(与 Web 程序集无关的独立类库)方面非常有用。

这使我可以对所有演示者和逻辑进行单元测试,并将 ASP.NET 视为IViews.

在这种方法中,我通常会:

  • UI(Web 应用程序项目)
  • UI Common、控件等类库
  • 演示类库
    • Presenter 通常包含业务逻辑,它们不依赖于 ASP.NET
  • 演示支持类库
  • 数据模型类库(EF、NHibernate 等)

根据应用程序的不同,您可能需要在表示和数据模型之间建立一个单独的业务层,并从 Presenter 中获取逻辑。

于 2012-12-08T19:58:35.487 回答
2

基础 - “MVC”、“Web 表单”、“网站项目”、“Web 应用程序项目”都是ASP.Net。您可以随意混合/匹配 - 例如,我可以有一个包含 webform1.aspx 的 Web API 项目。您可以在同一个应用程序中拥有 vbhtml/cshtml (razor) 文件和 aspx 文件 (webforms)。我可以在 MVC 应用程序中拥有 Web 表单、通用处理程序等……等等。他们都在“下” ASP.Net。

其他答案为您提供了可用于 ASP.Net Web 应用程序/站点的结构——您会注意到它是“分层的”——也就是“业务层”、“数据层”等,它们也适用于 MVC。如果您超越了术语,我认为这都是关于“关注点分离”(又名“分层”、可重用、可单元测试等)。

于 2012-12-08T23:08:52.060 回答
1

实际上,如果您有足够大的网站,解决方案应该包括以下项目:

  1. 网络应用程序本身
  2. 业务逻辑层
  3. 数据访问层
  4. 实体(如果您使用实体框架)
  5. 也许是网络控制项目

它可以或多或少取决于您的站点。对于简单的站点,您只能拥有只有几个 aspx 页面的 Web 应用程序。

不确定它是否回答了你的问题。

于 2012-12-08T18:44:23.767 回答