需要:创建在本地Windows客户端和网站上运行的应用程序。它们需要类似的接口,尽管客户端应用程序必须具有非常丰富的接口。 Window Forms应用程序和ASP.Net(MVC)是一种新技术。
在两个应用程序之间共享业务逻辑和数据存储是否真的可能(并且值得付出努力)?
答案 0 :(得分:2)
在没有使用一些预先存在的框架的情况下,在2个用户界面(如果你坚持使用winforms和asp.net)可能不太实际太多分享(我认为devexpress有一个名为XAF,可以让你构建x平台应用程序,但我从未尝试过它)
但是根据您的设计,您可以分享很多东西。您可以将大量功能推送到通用共享业务层。使用Web服务是一种很好的方法,可以从两个应用程序轻松访问。
这也会抽象出您的所有数据访问权限,因此您只需构建一次。 @djohnsonm 是正确的,你可以在WPF和&之间分享更多的代码。 Silverlight的。然而,无论是在浏览器内外都可以使用Silverlight,还是可以考虑构建Silverlight版本并将其部署到两个环境中。这是否切实可取决于您的目标用户和环境。
答案 1 :(得分:1)
业务逻辑和数据存储绝对可以共享没有问题,只要编码正确并且它们不依赖于更高的组件(web或winforms),其中代码将有很大差异在表示层上当然,一方面你将拥有windows形式,另一方面html因此完全不同,那么负责响应事件的层,在MVC上你将拥有你的控制器,在WinForms上我会建议你使用MVP模式,它运行得很好,但是然后写入视图有点不同,在MVC上你填充一个视图模型(每页一个)并将其传递给视图,在MVP上你有一个IView并且你写了它, IView可能会有更多的东西(你提到客户端应用程序将拥有非常丰富的界面),而不是视图模型所具有的,所以它们不太兼容,但除了表示层和基础架构,您的业务和DAL应该是可以重复使用的,而且事实是它们会告诉你你编码好了; 不要在Presenters或控制器上编写任何逻辑,诀窍很简单,如果您需要根据某些业务逻辑在前端执行操作,请使用接口并使用业务层中的操作沟通
答案 2 :(得分:0)
如果您打算构建RIA,我不会使用Windows Forms。如果你真的想要一个丰富的用户界面,我会尝试使用WPF或Silverlight(你可以使用Expression Blend获得很棒的效果)。虽然您可以在ASP.NET MVC 3应用程序中使用jquery创建类似的效果。这将消除构建具有不同业务逻辑和数据存储的两个应用程序的需要。作为最佳实践,我绝不会在不同平台上构建两个相同的应用程序这是工作的两倍,并且在提供功能方面无法始终达到1:1的模仿。