我需要创建一个新网站,我已完成数据库建模,我需要启动它,我也想使用MVC和LinqToSql。
我的老板说我可能需要为Windows Phone 7创建一个应用程序。
当我正在处理这个时,我从不遵循任何良好的做法或模式,我的意思是,当用户点击网页中的“注册”按钮时,我创建了一个DataContext实例,验证输入等所有在该按钮的事件处理程序内单击。
那么,当我需要制作WP7应用程序时呢?我将不得不再次复制并粘贴代码?我知道我应该重用它,但我实际上不知道如何,我应该在哪里放置业务规则,数据访问等...
我正在阅读有关企业模式的内容,但我发现它对我来说太复杂了,因为我还没有太多经验。
请就此向我提出建议。
另外,如果你能指出一个很好的示例项目,我可以检查它的源代码并遵循相同的架构,那就太棒了!
谢谢!
答案 0 :(得分:3)
Sharp架构是众所周知的MVC架构和项目结构的样本。
当然,您可以根据需要以不同方式设置项目,但这是一个很好的例子。
此外,对于数据访问,Repository模式被广泛使用。这是一篇很好的文章,用于使用实体框架在MVC中实现模式...
祝你好运!
答案 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/