Visual Studio LightSwitch:移动云应用

云计算
这个问题的解决之道是一组工具和语言,该方法可支持开发人员使用目前所拥有的技能开发出基于网络的、数据驱动的多租户应用程序,而这些应用程序能够在最流行的移动设备和桌面设备上正常运行且无需特别的改动。另外,这些应用程序还需要实现简单的用户授权与认证,最好是能够采用开源的身份认证框架,如OAuth 2。

目前,用户采用“使用自备设备”BYOD策略的市场份额正在不断增长中,这一市场发展趋势意味着IT部门必须开发出相应的业务应用程序,这些应用程序应当不仅能够在iOS、Android、Windows RT等操作系统上正常运行,而且也能够在传统的笔记本电脑和桌面电脑的操作系统上运行自如。此外,企业IT开支的捉襟见肘也促使用户们越来越多地使用所用即所付的公共云计算和数据存储服务。从IT的发展史来说,Wintel联盟无所不在的失败一直都在威胁着微软公司的生存底线,并且有可能会造成IT应用程序开发预算的大幅超支。

这个问题的解决之道是一组工具和语言,该方法可支持开发人员使用目前所拥有的技能开发出基于网络的、数据驱动的多租户应用程序,而这些应用程序能够在最流行的移动设备和桌面设备上正常运行且无需特别的改动。另外,这些应用程序还需要实现简单的用户授权与认证,最好是能够采用开源的身份认证框架,如OAuth 2。

在2012年,微软副总裁Scott Guthrie就宣布了该公司针对BYOD市场的第一个杀手锏——通过Office 365 基于云计算SharePoint Online支持的本地Windows Azure。微软公司Office 365的自动托管SharePoint Online应用程序在本地支持Windows Azure网站,而这个Windows Azure网站是由近期发布的Visual Studio LightSwitch的HTML客户端预览版2开发生成的。该预览版支持Windows RT操作系统的智能手机和平板电脑的多租户应用程序,以及Apple iOS移动设备与Android智能手机。微软公司承诺将在不远的将来支持对Android平板设备的兼容性。Guthrie在他的Windows Azure和Office 365博客中解释了这一点:

在微软公司Office 365和SharePoint的beta版发布中,他们推出了几个重大的功能改进,其中包括了开发人员所关心的改进。通过使用ASP.NET(即ASP.NET Web Form和现在的ASP.NET MVC)开发网络应用程序,开发人员目前已可自行扩展SharePoint,并可使用.NET 4.5中的新Workflow Framework自定义工作流程。

更妙的是,目前开发人员开发扩展SharePoint的网络和工作流应用程序可托管在Windows Azure中。通过Office 365和Windows Azure,我们提供了端到端的支持,这使得安全打包和部署这些解决方案变得非常容易。

 

图1. Visual Studio LightSwitch HTML客户端预览版2工具为C#和VB项目在LightSwitch模板列表中增加了LightSwitch HTML应用程序项。

 

图1. Visual Studio LightSwitch HTML客户端预览版2工具为C#和VB项目在LightSwitch模板列表中增加了LightSwitch HTML应用程序项。

HTML 5和层叠样式表(CSS)是目前设计用户界面最好的方法,它们与Windows 8操作系统的个人电脑、笔记本电脑、Windows RT、iOS和Android智能手机与平板电脑都兼容。在微软宣布Visual Studio 2012 标准版或更高版本的Visual Studio LightSwitch HTML客户端预览版2 发布时,Visual Studio LightSwitch团队于2012年12月作出了回应。HTML客户端预览版2都包括在Visual Studio 2012 预览版2 (OfficeToolsForVS2012GA.exe)的微软Office开发者工具中。安装工具在LightSwitch组中增加了LightSwitch HTML应用程序(Visual Basic)和(Visual C#)模板(如图1所示)。#p# 

LightSwitch应用程序的Windows Azure托管模式

 

图2. 开发人员在SharePoint Online网站上发布了LightSwitch HTML客户端

 

图2. 开发人员在SharePoint Online网站上发布了LightSwitch HTML客户端,这些网站出现在测试页面中Office 365 SharePoint 2013 功能应用程序的列表中。

开发人员可以通过使用LightSwitch HTML客户端预览版2来开发SharePoint 2013应用程序,并将这些应用程序安装在Office 365开发者预览版网站上。部署到SharePoint Online提供了“简化部署、用户身份集中管理、应用程序安装与升级、以及应用程序以更综合方式使用SharePoint服务和数据的功能,”LightSwitch团队在他们的博客中如是说。“对于你的应用程序的用户来说,这就意味着签一次合约就能够在他们的日常工作任务中在任意设备上运行基于网络的现代应用程序,”博文中如是补充(图2)。

开发人员可以在两个SharePoint Online应用程序托管模式中进行选择: 自动托管和供应商托管。微软公司的Steve Fox将这两种模式描述成为:

当你把应用程序部署在SharePoint上时,自动托管应用程序模式利用了Windows Azure,而供应商托管应用程序模式能使你使用Windows Azure或其他的网络技术(例如PhP)。#p# 

自动托管模式和供应商托管模式在很多地方都是有所差别的:

1. 因此当你开发应用程序并将其部署在Office 365网络应用程序组件中,而数据库使用Windows Azure网络角色和Windows Azure SQL数据库时,自动托管应用程序模式利用了Windows Azure。虽然当在SharePoint中连接事件或数据请求/调用时,你确实需要确保你能够以编程的方式实现跨域管理OAuth,但这也是非常值得肯定的,因为它是以你为中心实现自动化管理的。

所以,最大的差异点是:自动托管应用程序模式使用网站和Windows Azure SQL数据库访问,并将其部署在Windows Azure(当然也部署在托管应用程序的SharePoint上)。如果你正在开发部门的应用程序或弱数据驱动的应用程序,那么自动托管模式的选项是非常适合的。如果你希望取代默认的ASP.NET网络项目(如一个ASP.NET MVC4 网络项目以便于利用MVVM应用程序编程的优势),那么就有很多方式可以使用。

2. 供应商托管应用程序模式支持更为广泛的Windows Azure功能编程,主要是因为你正在管理这一类型应用程序的托管任务,因此你可以利用云计算服务、网站、媒体服务、BLOB存储等等。(如果对你来说这些概念都是新的,那么你可以浏览一下Windows Azure的主页)。

此外,当在一个项目中自动托管应用程序模式与Windows Azure和SharePoint紧密结合,而应用程序是基于该项目开发时,供应商托管应用程序模式则提供了一个更为松散的偶合应用体验。正如我之前所提及的那样,这个更为广泛的自助托管体验意味着你还能够在供应商托管应用程序模式中使用其它的网络技术。

 

图3. 使用Visual Studio 2012和LightSwitch HTML客户端预览版开发一个自动托管SharePoint在线网络应用程序

 

图3. 使用Visual Studio 2012和LightSwitch HTML客户端预览版开发一个自动托管SharePoint在线网络应用程序可遵循与以传统网络角色开发Windows Azure ASP.NET项目相同的模式。

LightSwitch HTML客户端预览版2允许开发人员使用最少量的.NET和JavaScript代码为存储在SharePoint列表中的数据编写简单的自动托管前端客户端。(图3)#p# 

部署和运行SurveyApplicationCS项目

 

图4. SurveyApplicationCS项目中销售代表登入的主界面。Contoso产品调查是一个将OAuth 2认证与每个销售代表显示调查结果相结合的多租户应用程序。

 

图4. SurveyApplicationCS项目中销售代表登入的主界面。Contoso产品调查是一个将OAuth 2认证与每个销售代表显示调查结果相结合的多租户应用程序。

在本地机器上测试后,开发人员可以把应用程序发布到SharePoint Online上,可通过点击+ New App to Deploy 的链接(参见图4)将其部署为SharePoint应用程序,当然还可从本地机器上指定当前版本的应用程序包并上传至SharePoint。图4显示了SurveyApplicationCS应用程序从SharePoint上打开时的主(登录)界面。URL指定了Windows Azure网络角色(o365apps.net)和SharePointAppWeb(http://oakleafblog.blogspot.com/2012/11/lightswitch-html-client-preview-2.html)的终点。#p# 

图5. 增至原来通用列表中产品之一的详细界面。定制化还包括了一个使用四行C#代码增加的一个调查日期字段。

SurveyApplicationCS应用程序时LightSwitch团队调查应用程序教程的一个定制化版本:使用LightSwitch部署一个SharePoint应用程序,其中包括了 LightSwitchSurveyApplicationTutorial.docx 和LightSwitchSurveyApplicationTutorial.pdf,以及C# 或 VB版的SurveyTutorialFiles.sln。你可以再OakLeaf系统Office 365开发者网站上了解更多信息,而开发人员能够从SkyDrive下载该项目的源代码。点击主界面中列表中的某一项,就能够打开一个界面(图5)。

 

图5. 照片界面允许你通过点击缩略图图标显示一个全尺寸的图像。

 

图5. 照片界面允许你通过点击缩略图图标显示一个全尺寸的图像。点击上传照片按钮可打开一个界面,以允许销售代表从客户设备上选择增加一个照片文件。#p# 

只需四行C#或VB代码就可实现相关界面。但是,使用网络API上传照片文件就需要32行JavaScript代码以实现定制控制。在教程上,显示照片以便于展示分配给食品产品的货架空间需要120多行的标准C#或VB源代码。

 

点击Photos按钮可打开一个列有产品照片缩略图的界面(图6)。

 

点击Photos按钮可打开一个列有产品照片缩略图的界面(图6)。

 

图7.用户必须登录SharePoint Online认证才能使用部署在SharePoint上的LightSwitch HTML客户端应用程序,这是通过网站内容页面上的板块实现的。

 

图7.用户必须登录SharePoint Online认证才能使用部署在SharePoint上的LightSwitch HTML客户端应用程序,这是通过网站内容页面上的板块实现的。

使用LightSwitch oAuth 2实现SharePoint Online用户认证和授权

在默认情况下,LightSwitch HTML客户端和SharePoint Online一起实现OAuth的认证与授权。Contoso销售代表使用Windows Account(一般为Live ID)登录Office 365 和 SharePoint以实现授权与认证,并使用在网站内容页面上(图7)列出的应用程序。

SharePoint的云计算托管应用程序使用Windows Azure访问控制服务(ACS)作为它们的认证服务器,该服务器提供了一个安全令牌服务(STS)。从SharePoint上启动LightSwitch HTML客户端应用程序会自动向ACS请求一个上下文令牌,该ACS中包含了当前认证用户的相关信息。为了支持SurveyApplicationCS中的多租户,用户的名称会过滤主界面“我的产品调查列表”中的项,以便于只显示他的或她的调查结果。

图8. 通过十个步骤,自动托管在Windows Azure中的LightSwitch HTML客户端应用程序将自动对每个数据项运行SharePoint Online用户的认证与授权。 (Graphic courtesy of Microsoft.)

 

图8表示了Oauth对SharePoint MSDN认证与授权中应用程序组件LightSwitch HTML客户端之间的数据流。

 

图8表示了Oauth对SharePoint MSDN认证与授权中应用程序组件LightSwitch HTML客户端之间的数据流。

微软公司一直关注于对其软件产品的组件化以便于简化架构和编程部门应用程序的工作难度,这就是该公司能够在企业IT市场上实现成功的主要原因。同样,Windows Azure、SharePoint Online以及Visual Studio LightSwitch团队已实现了这些平台的集成,并使.NET开发人员能够快速地以最小的编程工作量完成与设备无关的网络签订开发工作。

拥有Visual Studio 2012开发技能的开发人员能够在一个小时甚至更短的时间内完成这样一个应用程序,并允许他们快速地将其部署在各种操作系统的平台上,如Windows、iOS和Android。

作者简介:Roger Jennings是一名面向数据 .NET开发人员与作家、一名Windows Azure MVP、OakLeaf系统的主要顾问、OakLeaf系统博客的管理人。他也是30多本书籍的作者,其内容包括Windows Azure平台、微软操作系统((Windows NT和2000 Server)、数据库(SQL Azure, SQL Server和Access), .NET 数据库访问、网络服务和InfoPath 2003。他的著作有超过125万份的印刷英文拷贝,并已被翻译成20多种语言。

责任编辑:王程程 来源: TechTarget云计算
相关推荐

2011-07-28 10:02:03

LightSwitch

2010-08-23 09:14:18

Visual Stud

2012-03-20 13:22:04

Visual Stud

2010-11-19 12:40:12

Visual Stud云应用程序

2022-10-26 11:00:06

VisualC++函数

2021-08-26 07:14:48

Windows 11操作系统微软

2010-02-05 09:06:17

Visual Stud

2010-02-24 09:39:49

Visual StudWindows Azu

2009-06-23 10:36:32

移动开发isual Studi

2009-12-16 15:39:37

Visual Stud

2009-12-02 09:43:38

Visual Stud

2019-09-19 08:00:00

Visual StudVisual Stud编程语言

2024-02-27 12:42:38

开发前端

2013-11-14 01:09:35

微软Visual StudVisual Stud

2023-09-05 07:32:22

vscode开源故障

2009-05-31 10:36:55

微软VS2010Azure

2012-12-12 09:37:12

移动应用移动云计算云计算应用

2009-12-02 15:44:00

Visual Stud

2010-01-14 14:12:14

Visual Stud

2010-03-11 09:10:02

VS2010敏捷开发云计算
点赞
收藏

51CTO技术栈公众号