我有一个Silverlight应用程序,它通过RIA服务从服务器中的WCF应用程序访问其数据。目前的结构如下:
DataWebServer - 一个Web应用程序项目,它包含.aspx页面,该页面将调用Silverlight组件,.edmx模型文件和MyService类,继承自LinqToEntitiesDomainService。
Silverlight App - 包含.xaml e .cs文件,这些文件将生成由WebServer托管的.xap二进制文件。它通过RIA Services访问“DatawebServer”项目。
一切正常,但现在我需要创建一个新的应用程序,因为我们将需要它在平板电脑和智能手机等平台上运行,我们决定用HTML5而不是Silverlight构建它。
如何让这个新的WebApp访问“DataWebServer”项目中的数据实体?
我想到了3种不同的解决方案,但我会考虑第三种解决方案,这完全是我的问题。
我可以将新的WebApp放在同一个webprojeect“DataWebServer”的文件夹中,但这不是很有条理,我宁愿将此应用程序与“DataWebServer”分开。
< / LI>第二种选择,如果我不能与第三种方法相提并论,我将在“DataWebServer”中创建WebMethods,以便从我的新WebApp访问。
第三个,我不知道该怎么做,就是让我的新Web应用程序通过RIA服务访问实体,就像Silverlight客户端一样。我搜索了互联网,但我发现的所有文章都展示了如何从同一个项目访问RIA服务。有谁知道我怎么做?
答案 0 :(得分:1)
第一种方法是最明智的。
根据您的详细信息,我认为DataWebServer
是“公开”可访问的;至少和WebApp
一样多。将WebApp
数据请求发送到其他服务器DataWebServer
几乎没有价值,因为这会在一个Web服务器调用另一个服务器时引入不必要的延迟。不是重新使用DataWebServer
中的HTTP服务,而是将WebApp
功能添加到DataWebServer
并重新使用LinqToEntities上下文。
如果您非常想要第三个选项,则应考虑以应用程序中的JavaScript调用WebApp
来自客户端浏览器的数据的方式创建DataWebServer
。重要的是,这种方法可以避免WebApp
Web服务器调用DataWebServer
数据。