在C#应用程序与windows和web UI之间共享表示逻辑

在C#应用程序与windows和web UI之间共享表示逻辑,c#,windows,model-view-controller,mvvm,C#,Windows,Model View Controller,Mvvm,我需要在C#中构建一个应用程序,该应用程序将具有多个UI,2个用于web,另一个将是同一个应用程序,但能够在没有internet访问的情况下使用。我倾向于MVC for web,然后是MVVM/WPF for windows应用程序(Silverlight不是一个选项)。我应该能够为这两种范例注入不同的存储库实现,从而解决与internet断开连接的问题 我想知道的是如何最好地重用尽可能多的表示逻辑。理想情况下,我希望能够使用相同的controller/presenter类型实体来运行这两个UI

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

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


或者,我是否疯狂地尝试重新使用这些组件?不值得这么麻烦吗?我们可以很容易地共享支持UI的服务,但编写两次类似的UI代码似乎很遗憾。

您可以选择将WPF用于所有用途,以便最大限度地重复使用。WPF可以作为部分信任XBAP部署

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


我已经在一个小XBAP客户端和一个更大的独立应用程序的解决方案上尝试过了,它实际上是一些不可重用的小细节(应用程序中的窗口、XBAP中的页面等等)。也有利于良好的一致性布局。

您可以选择对所有内容使用WPF,以便最大限度地重复使用。WPF可以作为部分信任XBAP部署

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


我已经在一个小XBAP客户端和一个更大的独立应用程序的解决方案上尝试过了,它实际上是一些不可重用的小细节(应用程序中的窗口、XBAP中的页面等等)。也有利于良好的一致性布局。

正确的做法是只共享业务层和数据库访问层。至少你会在所有客户之间保持一致性

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


当然,这一切都取决于预算。

正确的做法是只共享业务层和数据库访问层。至少你会在所有客户之间保持一致性

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


当然,这一切都取决于预算。

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

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

是的,我们一定会分享这些。这可能是我的结局,但我也希望分享一些UI逻辑。是的,我们肯定会分享这些。这可能就是我的最终目的,但我也希望分享一些UI逻辑。不幸的是,web应用程序需要广泛可用和易于访问(这意味着我们必须将它们构建为最小公分母;一个简单的html网站)。不幸的是,web应用程序需要广泛可用和易于访问(这意味着我们必须以最小公分母构建它们;一个简单的html网站)你甚至不必把它做成一个windows应用程序,在那种情况下--我们可以把它做成一个本地网站。我们已经讨论过了,但是嵌入式web服务器是Stop按照这些思路思考的东西。你甚至不必把它做成一个windows应用程序,在那种情况下--我们可以把它做成一个本地网站。我们已经讨论过了,但是嵌入式web服务器服务器就是停止思考的东西。