将WPF NHibernate客户端服务器桌面应用程序移动到可从多个位置访问的应用程序的最佳方法

将WPF NHibernate客户端服务器桌面应用程序移动到可从多个位置访问的应用程序的最佳方法,wpf,nhibernate,desktop,Wpf,Nhibernate,Desktop,从零开始,我使用WPF和NHibernate编写了一个桌面应用程序。这帮助我跟上了NHibernate和WPF的发展速度 但是,需要使应用程序能够从多个地方访问,这些地方包括手持设备,这些设备具有非常简单的web浏览器(无javascript功能)、web服务、Internet、桌面应用程序和潜在的其他用户界面 我认为这需要将应用程序从当前部署在客户端上的NHibernate.dll移动到基于web的应用程序。纯粹的技术堆栈选择是压倒性的,我希望我能被指向正确的方向 本质上,我希望能够从桌面客户

从零开始,我使用WPF和NHibernate编写了一个桌面应用程序。这帮助我跟上了NHibernate和WPF的发展速度

但是,需要使应用程序能够从多个地方访问,这些地方包括手持设备,这些设备具有非常简单的web浏览器(无javascript功能)、web服务、Internet、桌面应用程序和潜在的其他用户界面

我认为这需要将应用程序从当前部署在客户端上的NHibernate.dll移动到基于web的应用程序。纯粹的技术堆栈选择是压倒性的,我希望我能被指向正确的方向

本质上,我希望能够从桌面客户端的服务器端、web服务和手持设备访问数据

在服务器端,我想我会有一个web服务器(IIS?),NHibernate和一个数据库,以及客户端和服务器之间的某种通信方式

在这种情况下,什么是最好的选择?是休息吗?肥皂?WCF?我不知道/没有提到的事情


非常感谢实现类似功能的人员提供的任何帮助和建议。

既然您已经在桌面上完成了大部分工作,那么在Web服务上移动实际的数据访问部分并不困难

如果我是你,我会进行转换,使SOAP/WCF服务具有与数据层相同的签名(或至少尽可能接近)。这将使您已经编写的桌面应用程序的转换更加容易。您必须添加同步代码,或仅添加服务不可用时的安全代码

对于通过瘦web客户端(就像浏览器一样)进行移动访问,您正在查看一个接触数据库(可能通过相同的数据访问web服务)并生成html的网站/应用程序

我不能在rest/soap/wcf之间提出建议,因为我之前对所有方面都有一些经验,但我可以告诉您,我已经创建了一个类似的设置,使用soap Web服务为Web应用程序和WM6+的.NET Compact Framework应用程序提供支持,并且运行良好