我需要一些关于 MVC 架构和三层架构的澄清

2024-03-08

我一直在读《Pro ASP NET MVC Framework》一书,我对很多事情感到非常困惑。我一直在尝试做一些研究,但我发现有这么多不同的方法和概念向我抛出,这只会让事情变得更糟。
所以我有几个问题:

  1. 我知道 MVC 应该将功能分为三个主要部分:模型 -> 控制器 -> 视图。 MVC 是一种与三层架构不同的方法吗?或者我是否仍然应该考虑在我的项目中创建数据访问层和业务逻辑层?

  2. 存储库到底是什么?它充当我的数据访问层?存储库在哪里/如何融入 MVC?

  3. 该书讨论了使用 LINQ to SQL 与数据库交互,但它指出将来将不再支持 LINQ to SQL,并且 Microsoft 将在实体框架中放弃它。实体框架适合 MVC 的什么位置以及如何与其交互?

在此先感谢您的帮助!
Matt


  1. MVC主要是表示层的一种模式,它专注于视图和控制器之间的交互。该模型可以被认为是负责维护状态的应用程序组件 http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx,包括坚持。

    在简单的应用程序中,模型可能只是 LINQ-To-SQL 模型。在大型企业应用程序中,模型可能包含数据访问层、业务层和域层。 ASP.NET MVC 并不限制您应如何实现 M。

  2. The 存储库 http://martinfowler.com/eaaCatalog/repository.html模式是实现 M 的持久性部分的一种方法。活动记录 http://www.martinfowler.com/eaaCatalog/activeRecord.html是另一个。选择哪种模式取决于应用程序的复杂性和您的偏好。

    看一眼Step 3 http://nerddinnerbook.s3.amazonaws.com/Part3.htmNerdDinner 教程的一部分,他们使用 Linq to SQL 创建一个简单的存储库。

  3. Linq to SQL 不会消亡。微软仍将改进核心并在有意义的地方添加客户请求,但实体框架将是主要焦点。看一下这篇文章.NET 4.0 中的 LINQ to SQL 更改 http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40.

    EF 的使用方式与 LINQ to SQL 类似,但它也更灵活,因此可以以其他方式使用。例如,EF4 将或多或少地支持您自己的 POCO 对象在更多领域驱动设计中的持久性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要一些关于 MVC 架构和三层架构的澄清 的相关文章

随机推荐

  • 在更改图像资源时在 ImageView 上创建动画

    我只有一个ImageView在我的布局中 当检测到气体事件时 我正在更改其资源 我只想在更改 ImageView 资源时显示动画 我可以用吗ViewFlipper with one图像视图 对于单个图像视图 您可以使用此辅助函数 publi
  • Pandas:如何将某些列移动到行中?

    假设我有df以下 我想合并价格列和价值列 以便所有价格都在一个列中 所有数量都在另一列中 我还想要第三列来确定价格水平 例如 unit1 unit2 and unit3 import numpy as np import pandas as
  • Numpy:ValueError:所需数组的对象深度太小

    我正在尝试将 MATLAB 代码转换为 Python 但我不知道如何将此行导入到 Python YDFA xa p interp1 data 1 data 2 YDFA lam p 1e9 linear 1e 24 现在对于 Python
  • 将文本列表格式化为列

    我正在尝试将字符串值列表输出为 2 列格式 将字符串列表制作为 普通文本 的标准方法是使用字符串连接方法 但是 它只需要 2 个参数 因此我只能使用 n 创建一个列 我认为尝试创建一个循环 只需在列之间添加一个选项卡就可以做到这一点 但逻辑
  • 如何在sbt项目中声明对Scalding的依赖?

    我想弄清楚如何创建一个build sbt为我自己的文件Scalding https github com twitter scalding为基础的项目 烫源结构无build sbt文件 相反 它有project Build scala构建定
  • 无法安装Python和GDAL(DLL加载失败)

    我正在尝试在我的 Windows 7 工作站上安装 GDAL 和 Python Python 版本 2 6 6 Gdal 1 8 视觉 Visual C Studio 2010 Express 我按照以下说明进行操作http ucsb pb
  • 欺骗 IP 地址以使用 Sitecore 8 测试 GEOIP 查找

    我是 Sitecore 的新手 我正在尝试实现以下流程类来覆盖GeoIP用于测试目的的值 我找不到在哪个名称空间Tracker 类位于 请注意 我正在使用站点核心 8托管在本地主机上 Sitecore 博客 sitecorejohn 博客
  • 通过 Python winreg 在注册表中设置 Windows 系统路径

    我编写了一个程序 通过注册表将目录添加到 PATH 变量 HKCU 用户 或 HKLM 系统 路径 具体取决于输入选项 使用用户路径时效果很好 但是 当设置系统路径时 Windows 会认为路径变量为空 例如 notepad is not
  • 无法重现:C++ Vector 性能优于 C# List 性能

    在 Microsoft 的 BUILD 会议上 Herb Sutter 解释说 C 有 真实数组 而 C Java 语言没有相同或类似的东西 我被卖了 您可以在这里观看完整的演讲http channel9 msdn com Events B
  • SimpMessagingTemplate 与 MessageSendingOperations

    我刚刚开始研究 Spring 4 stomp over websocket 这两者有什么区别 我应该使用哪种情况而不是另一种情况 没有区别 MessageSendingOperations是一个接口 契约 SimpMessagingTemp
  • .NET 反射的成本有多高?

    我经常听说反射的使用有多么糟糕 虽然我通常会避免反思 并且很少发现没有反思就无法解决问题的情况 但我想知道 对于那些在应用程序中使用反射的人来说 您是否测量过性能影响 它真的有那么糟糕吗 在他的演讲中日常事物的表现 http weblogs
  • 在回流中,我如何从asp.net web api获取数据

    我正在使用reactjs的回流 从Store的回流动作中 我编写了一个动作来从asp net web api获取数据 我认为这只是获取使用ajax的数据的唯一方法 有人跟我说 我可以使用插件jquery获取数据 但我不这样做不要相信它 因为
  • 如何使用selenium python动态单击加载按钮?

    我想点击装载更多直到它消失在该页面上 我已经尝试过 但有时会起作用或出现错误 我所做的并不是完美的解决方案 我可以有列表中的多个 url并一一击打装载更多直到它从该页面消失 预先感谢您的帮助 Code driver webdriver Fi
  • FormsAuthenticationTicket 无法在服务器端失效。引发cookie回复攻击

    我有一个使用表单成员身份验证的 ASP NET Web 应用程序 我们最近进行了渗透测试 发现的一个问题是窃取用户帐户的能力 如果在注销之前从用户复制了 ASPXAUTH cookie 值 则用户可以以其他用户身份登录 编辑其 cookie
  • Scrapy 1.1.0 - 没有活动项目

    我是Python新手 成功安装了Scrapy 在eclipse中使用PyDev 当我运行程序时 它显示如下 如图所示 我正在运行这段代码 import scrapy class DmozSpider scrapy Spider name d
  • 修复 html 中未封闭的标签或使用 HTML 解析器进行解析以进行 XSLT 转换

    我有一些 HTML 代码 它们是 XSLT 转换的结果 XML gt HTML 我想对结果 HTML 运行另一个 XSLT 转换 HTML gt HTML 我的问题是 第一次转换可能会返回未封闭的标签 例如 img 这意味着我无法使用 Do
  • 在 Twitter 完成块中推送 UIViewController 需要大量时间

    当运行这段代码时 IBAction loginWithTwitter id sender NSLog Logging in with twitter ACAccountStore accountStore ACAccountStore al
  • 使用 jquery 获取 div 中的下一个元素

    假设我们有这个 html 代码 div h2 Title h2 p lorem ipsum p div 还有这个 jQuery test h2 text Changed Title 现在继续下去的正确方法是什么 p 并且还可以更改其文本 而
  • 无法为华为 Android Logcat 启用 DEBUG 和 VERBOSE

    我有华为nova Plus http consumer huawei com en mobile phones novaplus index htm我刚刚发现华为在其Android日志中只显示起始日志级别INFO 我当然需要DEBUG VE
  • 我需要一些关于 MVC 架构和三层架构的澄清

    我一直在读 Pro ASP NET MVC Framework 一书 我对很多事情感到非常困惑 我一直在尝试做一些研究 但我发现有这么多不同的方法和概念向我抛出 这只会让事情变得更糟 所以我有几个问题 我知道 MVC 应该将功能分为三个主要