Pic*_*els 5 asp.net-mvc repository-pattern
我正在努力学习Asp.net Mvc所以我正在尝试 这个教程.
他们讨论了存储库模式以及如何轻松地更改为另一种数据访问技术,而不是直接将Linq调用到Sql.
在控制器类中使用LINQ to SQL会使将来很难切换数据访问技术.例如,您可能决定从使用Microsoft LINQ切换到使用Microsoft Entity Framework作为数据访问技术.在这种情况下,您需要重写访问应用程序中数据库的每个控制器.
注意:在阅读本教程之前,我从未真正理解界面是如何工作的,并且它仍然不是100%清晰.我现在把它看作某种类的"模板".
在成功使用Linq to Sql之后,我认为尝试Ado.net实体框架会很好,因为我已经阅读了很多相关内容.他们说使用存储库模式会很容易切换,所以我想我会测试它.
我的问题是:如何更改为Ado.net EF?
这是我认为我应该做的.
如果我对Asp.net Mvc略微简单化一下,请原谅我.我是webdesigner,对Asp.net webdevelopment很感兴趣.
所以经过几天的阅读和大量的谷歌搜索,我得到了它的工作.首先,我试图找出IoC(控制反转)实际意味着什么.
我找到的第一个网站之一是一个关于Unity的截屏网站.哪个是.Net的DI/IoC框架.
现在看一下这实际上是一个非常好的截屏视频,并说明使用Unity和IoC/DI是多么容易.当时我完全不理解,所以我继续谷歌搜索.
我一直遇到的一个网站是Martin Fowler的网站.
对我来说,这个网站编码新手的人有点抽象.这听起来可能很奇怪,但该网站上的字体,行高和排版真的很糟糕,这让它更难阅读.
我读过的下一个网站是关于温莎城堡的,因为AlfredoFernández说它很容易使用.
文档并没有坏,但我在将他们的"入门"基本示例转换为我的Asp.net Mvc应用程序时遇到了一些问题.第2部分和第3部分在开始时缺失.
在此之后,我开始寻找不同的框架,看看我是否能找到一个非常基本的例子.如果我再次看第一次截屏,我会很快修复它,但不知怎的,我已经忘记了它.
我有很多xml配置文件的问题,我似乎无法让它们工作.我试过Windsor,Structure Map和Spring.net,但我总是遇到xml文件.
所以我决定去Asp.net Mvc网站,因为那是我开始学习Asp.net Mvc的地方.我发现第一次截屏和MIX09演示非常清楚,我理解人们谈论的大部分内容.在构建Storefront应用程序时,我被Rob Conery的第二次截屏视频困住了.因为我对存储库和IOC/DI了解得更多,所以我认为再次开始观看Rob Conery的截屏会是一个好主意.在其中一个截屏视频中,他谈到将所有样本上传到codeplex.
我去了codeplex,发现你可以浏览源文件而无需下载它们.我试图找出Rob Conery如何使用他的存储库处理IOC/DI.所以我很高兴看到他正在使用Structure Map,但他没有使用xml配置文件,而是使用了一个引导程序类,它将所有接口注册到它们的具体类.
在使用我的webapplication尝试这个之后,我最终能够在我的应用程序中使用Structure Map(Hooray).
他还向我展示了如何修复从Linq到Sql的Product类的依赖性.他创建了一个额外的对象,然后通过Linq查询中的"选择新产品{}"进行调用.
哇,这个答案比我的计划要长一点,但我希望这能帮助像我这样非常喜欢编码的人和Asp.net Mvc.
您可能会因为注入而使存储库解耦,但如果您仅遵循示例,则不会,因为
public MoviesController() : this(new **MovieRepository**())
我推荐你阅读有关IOC的内容,很简单而且很有趣,你可以使用像温莎城堡这样的ioc容器。
这样,您的控制器将只有一个构造函数,即带有接口的构造函数,并且不需要更改。
对于您的实体,您可以对控制器执行相同的操作,为每个实体创建一个接口并使用 ioc 模式,这样您只需更改 ioc 容器的配置文件。
如果你不做这些事情,你的权利,你将需要改变你所说的一切。
我希望有帮助!对不起我的英语!
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |