1

我需要在应用程序的客户端部分的 Silverlight 版本中使用 Lightswitch ApplicationServerContext 提供的功能,该功能在 2012 版 Lightswitch 中可用。

到目前为止,我能找到的唯一示例显示了 Asp.net 页面的 HTML 客户端等

我尝试使用在 Silverlight 客户端中创建 ApplicationServerContext

ServerApplicationContext context = ServerApplicationContext.CreateContext();

但我收到错误“当前上下文中不存在名称‘ServerApplicationContext’”

是否可以在 Silverlight 客户端中使用 ApplicationServerContext,如果可以,如何使用?

谢谢

标记

4

2 回答 2

1

ServerApplicationContext 旨在提供对服务器上自定义业务逻辑的访问权限。在此之前,与服务器中间层通信的唯一方法是通过 oData。使用 ServerApplicationContext 可以使用其他技术(例如 ASP)扩展您的 Lightswitch 应用程序服务器端。NET MVC、ASP.NET WEBFORMS 和 ASP。NET WEBAPI。

无法从 Silverlight 客户端访问 ServerApplicationContext,因为

  • Silverlight 客户端通过 oData 与服务器通信
  • Silverlight 客户端是可移植 dll,服务器是 .net 框架 dll,您不能从可移植库 dll 中引用 .net 框架 dll
  • Client和Server通过共享代码技术和T4共享实体等业务逻辑代码
  • Silverlight 客户端可以通过客户端可用对象 Application 和 Dataworkspace 访问与 ServerApplicationContext 公开的几乎相同的 api

如果您想从客户端访问服务器端功能,您可以:

  • 使用操作表技术,它使用 lightswitch 表将参数传递给服务器,并在与操作表相关的实体的 _inserting 事件处理程序中调用您的服务器端代码。例如,这是实现发送电子邮件等功能的唯一方法,因为 Silverlight 可移植库不支持电子邮件功能
  • 使用 ASP 扩展您的 Lightswitch 服务器。NET MVC、ASP.NET Webforms 或 ASP.NET Web Api 并与 ServerApplicationContext 代码结合使用您的服务器端功能。之后,您可以使用普通 HTTP 请求从 Silverlight 客户端调用该功能

由于 Microsoft 停止开发 Lightswitch,并且支持 java、flash 和 silverlight 等插件的浏览器已被弃用(新的 Windows 10 Edge 浏览器不支持任何插件,包括 silverlight...),因此保留您对 lightswitch 应用程序的开发投资的方式可以是只部署 lightswitch 服务器,通过当前的 asp.net 技术公开您的用例,并使用当前技术(例如 WPF)开发一个新的桌面客户端,该技术通过 OData 或您可以公开的其他 web 服务连接到 lightswitch 中间层。

希望这可以帮助。

于 2015-10-01T15:29:44.487 回答
0

可悲的是

MSDN 通知我们不能使用来自客户端的 ServerApplicationContext http://msdn.microsoft.com/en-us/library/dn781266.aspx 成员:Microsoft.LightSwitch.Framework.Server

备择方案

您可以从预处理查询访问服务器。 http://msdn.microsoft.com/en-us/library/ff852040.aspx

就我个人而言,我使用带有 SignalR 的集线器连接。 http://blog.pragmaswitch.com/?p=607

于 2015-01-14T15:55:23.273 回答