Asp.net 什么';What’针对WPF和Web应用的最佳方式是什么?

Asp.net 什么';What’针对WPF和Web应用的最佳方式是什么?,asp.net,wpf,design-patterns,Asp.net,Wpf,Design Patterns,我们目前正在设计一个业务应用程序,该应用程序对其UI有两个主要要求: 1) 在桌面(WPF)上运行,为企业用户提供丰富的用户界面、与其他应用程序互操作、访问文件系统、脱机工作、使用特殊的本地硬件等 2) 在ASP.NET/Ajax上运行,向客户(internet)提供此应用程序的几个组件。不幸的是,Silverlight还不是一个选项 尽管我们不必在web上提供完整的应用程序,但其中一些组件相当复杂,我们希望与WPF实现共享尽可能多的UI代码 要实现这一目标,我们有哪些选择?是否有一种模式可以同

我们目前正在设计一个业务应用程序,该应用程序对其UI有两个主要要求:

1) 在桌面(WPF)上运行,为企业用户提供丰富的用户界面、与其他应用程序互操作、访问文件系统、脱机工作、使用特殊的本地硬件等

2) 在ASP.NET/Ajax上运行,向客户(internet)提供此应用程序的几个组件。不幸的是,Silverlight还不是一个选项

尽管我们不必在web上提供完整的应用程序,但其中一些组件相当复杂,我们希望与WPF实现共享尽可能多的UI代码

要实现这一目标,我们有哪些选择?是否有一种模式可以同时适用于这两种技术

更新:

谢谢你的回答,尽管他们没有包括我要找的答案!:)


我不认为UI生成器是一个好的选择。正如爱德华多指出的,你可能会在两个世界都遇到问题。不过我会去看看雕塑。

我已经思考了一段时间了,我还没有找到一个好的答案。尽管如此,以下是我的一些想法:

如果您使用了各种MVP/MVC/MVVM UI方法的一些变体,并且在这种方法上非常有纪律(即,不要将表示内容与行为内容混合),那么您可能会走得更远

您可以考虑研究各种已出现的DSL工具包,其想法是创建一个简单的“语言”来描述您的UI,并在WPF/ASPX中生成该UI的表示。


还有,我最近遇到过。我不知道它有多好。当我有机会的时候,我打算仔细看看。

我已经按照这些思路思考了一段时间,但我还没有想出一个好的答案。尽管如此,以下是我的一些想法:

如果您使用了各种MVP/MVC/MVVM UI方法的一些变体,并且在这种方法上非常有纪律(即,不要将表示内容与行为内容混合),那么您可能会走得更远

您可以考虑研究各种已出现的DSL工具包,其想法是创建一个简单的“语言”来描述您的UI,并在WPF/ASPX中生成该UI的表示。 还有,我最近遇到过。我不知道它有多好。我打算有机会的时候再仔细看看。

祝你好运

不幸的事实是,Asp.net/ajax(就这一点而言,通常是web)和WPF(见鬼,让我们把WinForms放在其中,以便更好地衡量)有着非常不同的用户界面模型,对一个模型有效的并不一定对另一个模型有效。这并不是说您不能在为这两种技术编写的应用程序之间共享逻辑,但是,我将在这里做一个扩展,您的UI逻辑不会属于这一类

最近,我一直在为WPF和ASP.NETMVC使用MVVM的变体,我认为它们非常适合当前的技术。然而,虽然它们非常相似,但也有不同之处,我不确定您是否能够编写一个抽象层(在任何适当的时间内)来利用这两种技术中的强大功能

最后,我想说的是,您最好遵循一些SOA模式,将尽可能多的业务和数据访问逻辑提取到公共库中。然后,在WPF和Asp.net中编写单独的用户界面,以利用这些公共库。这就是我的公司目前正在采取的方法,它正在发挥着巨大的作用

两次编写UI逻辑(一次用于asp.net,一次用于wpf)似乎让人望而生畏,但我认为这是值得的,这样您的代码就可以适合最适合这些技术的模式和实践

顺便说一句,尽管Silverlight不是一个选项,但您考虑过XBAP吗?

祝您好运

不幸的事实是,Asp.net/ajax(就这一点而言,通常是web)和WPF(见鬼,让我们把WinForms放在其中,以便更好地衡量)有着非常不同的用户界面模型,对一个模型有效的并不一定对另一个模型有效。这并不是说您不能在为这两种技术编写的应用程序之间共享逻辑,但是,我将在这里做一个扩展,您的UI逻辑不会属于这一类

最近,我一直在为WPF和ASP.NETMVC使用MVVM的变体,我认为它们非常适合当前的技术。然而,虽然它们非常相似,但也有不同之处,我不确定您是否能够编写一个抽象层(在任何适当的时间内)来利用这两种技术中的强大功能

最后,我想说的是,您最好遵循一些SOA模式,将尽可能多的业务和数据访问逻辑提取到公共库中。然后,在WPF和Asp.net中编写单独的用户界面,以利用这些公共库。这就是我的公司目前正在采取的方法,它正在发挥着巨大的作用

两次编写UI逻辑(一次用于asp.net,一次用于wpf)似乎让人望而生畏,但我认为这是值得的,这样您的代码就可以适合最适合这些技术的模式和实践


顺便说一句,尽管Silverlight不是一个选项,但您考虑过XBAP吗?

如果以前的工作我们也做过类似的事情。正如Daniel Pratt所说,我们用XML描述我们的接口,然后渲染器将创建表单、报表或我们决定创建的任何内容

我们必须提供一个Javascript函数来在HTML呈现中执行一些UI验证,并在Swing呈现中调用java函数

请注意,您可能会以不完美的应用程序结束