我正在使用WPF(C#作为代码隐藏)在Windows操作系统中创建一个应用程序,其中的数据存储在同一网络中的Unix机器中。我的应用程序需要一种与Unix机器通信的方式来从中获取数据并在Windows UI(在WPF中创建)中显示它。
我的应用程序还需要通过广播了解网络中连接的所有Unix机器。
根据上述要求,使用我的WPF应用程序连接Unix机器的最佳方法是什么?
答案 0 :(得分:1)
如果您要使用的数据是基于文件的,则可以在unix上使用ftp或samba服务器。 samba服务器的一个优点是它具有广播的能力,并允许通过netbios在网络中发现其资源。这符合您的广播要求。
如果基于文件的存储空间不足,请考虑使用Web服务。由于您在.NET中编写应用程序,因此最简单的方法是在Unix端使用Mono。您可以在Mono http://www.mono-project.com/Writing_a_WebService中编写一个Web服务,该服务将侦听来自您的WPF应用程序的请求。
我承认这个解决方案在性能,可扩展性和可移植性方面并不是最好的,但它对于.net开发人员来说是最快的。
关于您的应用需要知道unix机器列表的其他要求更复杂。蛮力方法是拥有一个主服务器,它将在unix机器生效时监听来自unix机器的通知。它会将该列表提供给WPF客户端。
如果您想获得性能更高,可移植的解决方案并且拥有更多开发资源,可以使用其中一个框架REST frameworks
在unix端实现一个restful服务。就开发时间而言,最复杂的方法是使用裸TCP ip。这将需要在客户端和服务器端进行大量编码以及使其稳定的漫长过程。同样,这取决于您的数据交互的复杂程度。
答案 1 :(得分:0)
“将数据存储在同一网络中的Unix机器上”假设你的意思是它在数据库中我会推荐某种ORM(如NHibernate)