创建新项目的良好实践

时间:2011-04-19 16:38:40

标签: c# .net asp.net-mvc model-view-controller

我需要创建一个新网站,我已完成数据库建模,我需要启动它,我也想使用MVC和LinqToSql。

我的老板说我可能需要为Windows Phone 7创建一个应用程序。

当我正在处理这个时,我从不遵循任何良好的做法或模式,我的意思是,当用户点击网页中的“注册”按钮时,我创建了一个DataContext实例,验证输入等所有在该按钮的事件处理程序内单击。

那么,当我需要制作WP7应用程序时呢?我将不得不再次复制并粘贴代码?我知道我应该重用它,但我实际上不知道如何,我应该在哪里放置业务规则,数据访问等...

我正在阅读有关企业模式的内容,但我发现它对我来说太复杂了,因为我还没有太多经验。

请就此向我提出建议。

另外,如果你能指出一个很好的示例项目,我可以检查它的源代码并遵循相同的架构,那就太棒了!

谢谢!

4 个答案:

答案 0 :(得分:3)

Sharp架构是众所周知的MVC架构和项目结构的样本。

http://wiki.sharparchitecture.net/(X(1)S(rcnk1jfg1daywk55iazwqh55))/default.aspx?AspxAutoDetectCookieSupport=1

当然,您可以根据需要以不同方式设置项目,但这是一个很好的例子。

此外,对于数据访问,Repository模式被广泛使用。这是一篇很好的文章,用于使用实体框架在MVC中实现模式...

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

祝你好运!

答案 1 :(得分:3)

您应该考虑转向N层设计,将您的UI与来自Dal的Biz分开。 这也允许在手机应用程序中重用您的商业逻辑和Dal,或者您可能需要的任何其他地方。

这是一篇博客文章,其中涵盖了您需要做的事情N-Tier Design revisit这是关于N层设计的5篇帖子中的第一篇,我提供了一些代码示例,并有一些项目可供参考在存储库中。

另一个建议是获取Head First Design Patters的副本以学习设计模式,并开始研究学习最佳实践。好的设计与技术无关,你应该花费尽可能多的时间来学习如何设计一些东西,就像你正在建造它一样。

答案 2 :(得分:0)

你正在寻找MVP design pattern

我处于类似的情况(移动和桌面之间在不同的屏幕尺寸/框架上共享的应用程序),并且通过使用此模式,业务代码是相同的,您不需要复制代码。

答案 3 :(得分:0)

使用MVC的一个好处是,您的操作实际上可以返回JsonResult,并成为WP7客户端应用程序的公开服务API。

我建议调查一下,以及stephen776的建议;然后你的MVC应用程序将使用你的存储库(数据访问)和实体(模型),然后将它们暴露给两个Web浏览器(使用MVC Views / Javascript)和外部应用程序(使用JSON结果)。

对于WP7应用程序,使用的最佳模式称为Model-View-ViewModel(MVVM),它依赖于一个名为DataBinding的强大Silverlight功能,尝试查看它。有一套很好的图书馆旨在帮助你完成http://mvvmlight.codeplex.com/