2010-01-31 113 views
5

我正在寻找我当前项目体系结构的一些输入。有三个组件:服务器,桌面和移动设备。建筑设计帮助

我有2个目标:

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

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

我提出的解决方案:

服务器端(SQL Server和Windows Server 2008): 我期待在WCF REST风格的JSON服务与桌面应用程序(S)和移动应用通信(S) 。我喜欢WCF,因为我最擅长C#,有一些实现WCF的经验,在做了一些研究之后,似乎用于平台的所有技术(Windows XP/Vista/7和Mac OS X)都可以轻松地与WCF RESTful服务进行通信。

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

服务将保存和从SQL服务器检索数据。我想使用LINQ to SQL作为我的数据访问层。我的理解是,与SQL服务器绑定的许可证费用很高,所以我现在可能需要使用SQL Server Express。

  • 我宁愿将WCF服务和数据库单独托管(2个diff机器)。任何建议主办SQL服务器(或快递)?有没有可以扩展我的数据库的托管服务?将这些保存在2个差异机器上有意义吗?

桌面 我需要开发适用于Windows XP/VISTA/7和Mac OS X.(客户端)我打算写一个.NET应用程序的Windows计算机(或多个)上运行。如果我要写(学习:P)XCode或尝试单声道,我仍然在空中任何跨平台的想法?

  • 我应该有任何根本性的问题,获得桌面应用程序跟我的WCF RESTful服务?

移动Applicaitons 我需要开发商的IPhone和Android。有使WCF RESTful服务的例子很多呼叫使用Objective C和Android的SDK。我”考虑尝试跨平台(即Appcelerator)。从高层看来,这些移动跨平台已经构建了一个Java脚本层,可与iPhone和Android兼容!

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

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

对不起有点长的帖子。我从未设计过这种尺寸的解决方案。所有的反馈意见。

谢谢!

+0

[如何看待多设备架构的统一设计?](http://izlooite.blogspot.com/2011/07/how-to-think-unified-design-for-multi.html) – 2011-07-06 18:15:51

回答

2

正如你显然想要使用微软技术一样 - 关于Mono的建议可能对你有意义,而且一定会让事情变得更容易。

但是,我认为你可能会发现你损害了Mac和iPhone用户的用户体验元素,这并不理想,因为这些用户往往对最佳用户体验有最高期望。

我知道我们不是生活在一个理想的世界,但如果我们确实要为每个平台开发一个单独的客户端 - 针对每个平台的需求进行优化。除非你的应用程序正在做大量的数据操作,否则数据层现在被抽象到你的JSON接口的服务器Viw中,所以你不会在实现中共享数据对象。

因为看起来你是在一个小团队(你自己?)中实现项目,那么我建议你看看用JavaScript与服务器通过JSON进行通信来实现一个web解决方案。

另一种选择是在windows和mac上使用flex/air客户端,并在android和Adobe的解决方案上使用flash来编译flex/air到iPhone代码。

虽然好运。

0

为您的客户端,您可以考虑使用Appclerator,因为它会在所有你需要很少或几乎没有额外的代码的平台上运行,并且它被设计用于Web应用程序类型的应用

0

你应该考虑iPhone的MonoTouch。您将可以共享大部分桌面代码。我会在Mac上使用Mono也是出于同样的原因。 Android是奇怪的人。最终有人可能会为Android创建类似MonoTouch的东西,但不会很快就能帮助您解决问题。