我正在考虑编写一个WinForms应用程序并且难以理解这似乎是一个简单的问题。
有服务器和数据库(SQL Server)开放端口是HTTP,HTTPS
有一个WinForms客户端。它需要将TCP / IP流(可能是HTTP,SOAP,REST)连接到服务器。
有时WinForms客户端脱机,然后WinForms客户端将其数据存储在数据库中。
当WinForms客户端联机到服务器时,它会将数据同步到服务器,从服务器获取所有最新数据并更新本地数据库。
我该怎么做?
新手问题
答案 0 :(得分:2)
不知道微软是如何积极地支持它的,但您可能会查看智能客户端软件工厂,它似乎支持离线模式和智能重新连接,就像您需要的那样。
答案 1 :(得分:2)
正如您所承认的,这个问题表明您可能不知道从哪里开始寻找如何构建此类应用程序。
我从这里开始:http://msdn.microsoft.com/en-us/library/ms973279.aspx
您所描述的离线架构对于新手而言比对此不太支持更为困难,请考虑使应用程序仅在线工作,然后添加离线功能。
此外,如果您有一个Web服务器,您几乎总是使用HTTP,SOAP和REST是位于HTTP之上的策略。我不建议新开发人员使用直接TCP / IP查看任何服务器通信。
编辑:回答相关问题 - 有大量的ORM和服务构建者,其中很多都没有内置支持离线工作流,但ODX确实如此,但它可能有点过时了。 NHibernate和Castle Project中的任何项目都是您非常喜欢的组件。
答案 2 :(得分:1)
您可以使用“服务”思维方式处理此问题 - 编写WebService(最好是WCF服务) - 在Winforms应用程序之间形成同步层。和远程数据库。
所以,你会得到你的
1.本地WinformsApp。使用本地数据库(如您所希望的那样功能/轻量级)
2. WebService
3.远程app./DB
答案 3 :(得分:1)
以下是教程/资源的一些链接:
http://www.codeproject.com/KB/architecture/three_tier_architecture.aspx
答案 4 :(得分:1)
恕我直言,这通常不是听起来那么简单
答案 5 :(得分:1)
Microsoft Sync Framework(http://code.msdn.microsoft.com/sync)+ WCF解决方案: http://code.msdn.microsoft.com/sync/Release/ProjectReleases.aspx?ReleaseId=3762
无论如何,数据库同步并非易事。祝你好运。
答案 6 :(得分:0)
通常,您需要一个本地数据库,或至少一个本地缓存。