目前,用户采用“使用自备设备”BYOD策略的市场份额正在不断增长中,这一市场发展趋势意味着IT部门必须开发出相应的业务应用程序,这些应用程序应当不仅能够在iOS、Android、Windows RT等操作系统上正常运行,而且也能够在传统的笔记本电脑和桌面电脑的操作系统上运行自如。此外,企业IT开支的捉襟见肘也促使用户们越来越多地使用所用即所付的公共云计算和数据存储服务。从IT的发展史来说,Wintel联盟无所不在的失败一直都在威胁着微软公司的生存底线,并且有可能会造成IT应用程序开发预算的大幅超支。 这个问题的解决之道是一组工具和语言,该方法可支持开发人员使用目前所拥有的技能开发出基于网络……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
目前,用户采用“使用自备设备”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应用程序项。
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所示)。
LightSwitch应用程序的Windows Azure托管模式
图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)。
自动托管模式和供应商托管模式在很多地方都是有所差别的:
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在线网络应用程序可遵循与以传统网络角色开发Windows Azure ASP.NET项目相同的模式。
LightSwitch HTML客户端预览版2允许开发人员使用最少量的.NET和JavaScript代码为存储在SharePoint列表中的数据编写简单的自动托管前端客户端。(图3)
部署和运行SurveyApplicationCS项目
图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)的终点。
图5. 增至原来通用列表中产品之一的详细界面。定制化还包括了一个使用四行C#代码增加的一个调查日期字段。
SurveyApplicationCS应用程序时LightSwitch团队调查应用程序教程的一个定制化版本:使用LightSwitch部署一个SharePoint应用程序,其中包括了 LightSwitchSurveyApplicationTutorial.docx 和LightSwitchSurveyApplicationTutorial.pdf,以及C# 或 VB版的SurveyTutorialFiles.sln。你可以再OakLeaf系统Office 365开发者网站上了解更多信息,而开发人员能够从SkyDrive下载该项目的源代码。点击主界面中列表中的某一项,就能够打开一个界面(图5)。
图5. 照片界面允许你通过点击缩略图图标显示一个全尺寸的图像。点击上传照片按钮可打开一个界面,以允许销售代表从客户设备上选择增加一个照片文件。
只需四行C#或VB代码就可实现相关界面。但是,使用网络API上传照片文件就需要32行JavaScript代码以实现定制控制。在教程上,显示照片以便于展示分配给食品产品的货架空间需要120多行的标准C#或VB源代码。
点击Photos按钮可打开一个列有产品照片缩略图的界面(图6)。
图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客户端之间的数据流。
微软公司一直关注于对其软件产品的组件化以便于简化架构和编程部门应用程序的工作难度,这就是该公司能够在企业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多种语言。
相关推荐
-
Azure计划保护客户IP免受专利巨头的蹂躏
Microsoft是第一个拥有应用程序来专门保护其客户的知识产权(IP)免受非执行实体(更常称为专利巨头)提起的诉讼的一家云厂商。
-
ARM vs 经典管理门户:Azure资源管理大比拼
随着微软对其Azure公有云的扩展,环境的管理也变得更加复杂,特别是对于那些有许多应用、用户、订阅和云开发项目的组织。
-
SAP拥抱云:满足用户对AWS和Azure的“饥渴”
SAP在Azure和AWS上的HANA云认证拓展了该软件巨头的市场范畴,并为企业提供了另一种将海量数据迁移到这两个云平台的方式。
-
如何为公用云建立网络安全组
网络安全组允许企业保护他们的部分公有云避开外部直接访问——类似于防火墙。与此同时,这些组确保云实例之间的数据流只被相关的实例容纳。