建筑设计帮助

the*_*Sir 5 c# iphone wcf sql-server-2008 windows-server-2008

我正在寻找关于我当前项目架构的一些信息.有三个组件:服务器,桌面和移动设备.

我有2个目标:

1)从桌面(在Windows XP/Vista/7和Mac OS X上运行的多平台客户端应用程序)向服务器发送数据(大约不超过100 KB的文本)(Windows Server 2008,IIS 7,WCF RESTful) service)保存在数据库(Sql Server)中.这些服务需要具有可扩展性,因为桌面设备的数量和发送数据的频率是未知的.

2)从数据库(Sql Server)检索数据并发送到移动设备(Iphone和Android应用程序.消息大小不超过100 KB的文本)的服务.服务需要可扩展,因为移动设备的数量和它们连接的频率是未知的.

我建议的解决方案

服务器端(Sql Server和Windows Server 2008):我正在寻找一个WCF RESTful JSON服务来与桌面应用程序和移动应用程序进行通信.我喜欢WCF,因为我最擅长C#,有一些实施WCF的经验,经过一些研究后,看来所有用于平台的技术(Windows XP/Vista/7和Mac OS X)都可以轻松地与WCF RESTful服务进行通信.

  • 在这种情况下,WCF服务的任何高级基本问题?
  • 我只在Windows Server 2003机器上实现了WCF,每隔15分钟连接约800台设备.服务器是在专用网络上运行的物理内部服务器.我需要这个解决方案来托管和扩展.托管Windows Server 2008的任何建议?是否有更好的技术来托管服务?(我不太熟悉云的工作原理)

这些服务将保存并从SQL服务器检索数据.我想使用LINQ to SQL作为我的数据访问层.我的理解是,SQL服务器上存在大量的许可费用,所以我现在可能需要使用SQL Server Express.

  • 我更喜欢单独托管WCF服务和数据库(2个diff机器).托管sql server(或快递)的任何建议?是否有可以更好地扩展我的数据库的托管服务?将它们保存在2台差异机上是否有意义?

桌面(客户端) 我需要为Windows XP/Vista/7和Mac OS X开发.我计划编写.net应用程序以在Windows机器上运行.如果我要写(并学习:P)XCode或尝试单声道,我仍然在空中.任何跨平台的想法?

  • 我是否应该让桌面应用程序与我的WCF RESTful服务进行通信时遇到任何根本问题?

移动应用程序 我需要为iPhone和Android开发人员.有许多使用Objective C和Android SDK进行WCF RESTful服务调用的示例.我正在考虑尝试跨平台(即Appcelerator).从较高的层面来看,这些移动跨平台似乎构建了一个可与iPhone和Android配合使用的Java脚本层!

  • 有关使用跨平台技术编写一个移动应用程序以在iPhone和Android上运行的任何想法?

  • 在javascript中调用WCF RESTful服务的任何基本问题?

对不起有点长的帖子.我从未设计过这种尺寸的解决方案.所有反馈都表示赞赏.

谢谢!

Gro*_*hal 2

由于您显然想要使用 Microsoft 技术 - 关于 Mono 的建议可能对您有意义,并且肯定会让事情变得更容易。

不过,我认为您可能会发现您妥协了 Mac 和 iPhone 用户的用户体验元素,这并不理想,因为这些用户往往对出色的用户体验抱有最高的期望。

我知道我们并不生活在一个理想的世界中,但如果我们这样做了,您将为每个平台开发一个单独的客户端 - 根据每个平台的需求进行优化。除非您的应用程序正在进行大量数据操作,否则数据层现在会通过您的 JSON 接口抽象到服务器,因此您不会从跨实现共享数据对象中获得太多收益。

由于您似乎是在一个小团队(您自己?)中实现该项目,那么我建议您考虑使用 HTML javascript 通过 JSON 与服务器通信来实现 Web 解决方案。

另一种选择是您在 Windows 和 Mac 上使用 Flex/Air 客户端,在 Android 上使用 Flash,以及 Adob​​e 的解决方案将 Flex/Air 编译为 iPhone 代码。

不过祝你好运。