2011-03-31 111 views
1

我正在写一个应用程序,它从MS AX Dynamics中一次性提取数据,同时实现客户端/服务器通信的最简单方法?

AX(或与我工作的公司)的问题是AX不允许交叉域连接。

目前,我们在Active Directory(AD)上有2个域名country1.company.com和country2.company.com,该应用程序旨在在两个域上运行,但AX在country1.company.com上运行。事实上,所有的country2用户在需要使用AX时都需要RDP到country1,而且考虑到我们的地理距离,它非常慢。

为了解决这个问题,我正在考虑编写一个在country1上运行的单独(控制台)程序,以便用户可以将数据发送给它并让它查询AX并通过网络返回结果。

的一大问题是:

我必须写这样一个客户端服务器的东西应用程序或我可以骑在现有的Windows功能acheive同样的事情?由于我没有网络编程经验,所以我希望我不必这样做......感谢任何建议。

回答

2

而不是写一个控制台应用程序和套接字,你应该使用WCF类。是的,这是网络连接,但任何与任何其他计算机交谈的东西都是。您可能需要为这种功能设置WCF web service。这是一个不错的starter app as an example

1

您可以使用节俭Link。 它可以跨编程语言进行高效可靠的通信。 您只需要在IDL文件中定义数据结构和服务接口。 Link

然后使用thrift编译器以您选择的其中一种支持的编程语言生成RPC和数据序列化代码。

因此,您配备了序列化数据和RPC所需的基础架构。现在,您可以专注于您的业务逻辑。

P.S:这不是一个Windows功能。

+0

+1为好的建议,但不幸的是我无法满足服务器上的运行时要求。感谢您的知识。 – Jake 2011-04-28 06:57:59

+1

如果您正在创建.NET应用程序,thrift.dll是唯一的运行时需求。 thrift.dll可以通过svn仓库中的源代码构建:[thrift-trunk](http://svn.apache.org/repos/asf/thrift/trunk/)。 _lib/csharp/src/Thrift.csproj_是MS Build任务创建Thrift.dll – sree 2011-04-29 06:30:56

+0

感谢提示我错过了..我会再次审查这种可能性。谢谢。 – Jake 2011-04-29 14:28:42