繁体   English   中英

通过Windows和Web UI在C#应用程序之间共享演示逻辑

[英]Sharing presentation logic between C# application with windows and web UIs

我需要使用C#构建一个具有多个UI的应用程序,其中2个用于Web,另一个将是相同的应用程序,但不能在没有Internet访问的情况下使用。 我倾向于将MVC用于Web,然后将MVVM / WPF用于Windows应用程序(不能选择Silverlight)。 我应该能够为这两种范例注入不同的存储库实现,从而解决与互联网断开连接的问题。

我想知道的是如何最好地重用尽可能多的表示逻辑。 理想情况下,我希望能够使用相同的控制器/演示者类型的实体来运行两个UI。 我正在寻找解决此问题的一个好例子。 我看不到重用MVC控制器的明确途径(它们似乎太紧密地绑定到MVC框架而无法工作),但是与此同时,我对实现自定义MVVM或MVP模式所涉及的开销并不感到兴奋网络(我担心这是答案)。

另外,我是否疯狂甚至尝试重用那些组件? 这不值得麻烦吗? 我们可以轻松地共享作为UI基础的服务,但是两次编写类似的UI代码似乎很可惜。

正确的做法是仅共享业务层数据库访问层 至少您将在所有客户端之间保持一致。

然后利用每个平台的优势(桌面应用程序的丰富性和Web应用程序的简单性)来构建客户

当然,这完全取决于预算。

您可以选择对所有内容都使用WPF,以实现最大程度的重用。 WPF可以部署为部分信任XBAP。

尽管存在一些缺点*下载大小可能是一个问题*客户端需要正确的框架版本,并且只能在Internet Explorer中运行(Firefox通过插件运行(不适用于Windows 7))

我已经在具有小型XBAP客户端和较大的独立应用程序的解决方案上进行了尝试-实际上这是细微的细节,无法重用(应用程序中的窗口,XBAP中的Page等)。 也使布局保持一致。

这有点骇人听闻(除非您真的了解自己在做什么,否则不建议这样做),但是您可以尝试创建一个嵌入浏览器的桌面应用程序。 这使您可以重用GUI。 您还需要打包Web服务器,但是如果使用的是C#/ MVC / .NET,则可能会出现问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM