Windows 商店业务应用程序的关键技术

  • Jonathan Allen
  • 臧秀涛

2012 年 12 月 28 日

话题:语言 & 开发

相比于其他各类应用程序,业务应用程序往往更强调数据存储和安全。尽管 Windows 8 商店有很多限制,我们仍然有不少不同的选择来满足这些需求。

本地存储技术

有三个直接可用的本地存储技术。

Application Data API 用于设置和状态的保存。它支持本地和移动数据存储。前者对文件大小没有限制,而后者是通过ApplicationData.RoamingStorageQuota来限制的。

可扩展存储引擎(Extensible Storage Engine)为 C++ 应用程序提供了 IASM 存储技术。该引擎既可以用于结构化数据,也可以用于非结构化数据。如果有人能为其创建 WinRT 包装器的话,其他语言就也能使用了。

JavaScript 用户还可以使用IndexedDB。Windows 商店应用程序的存储限制为 250 MB,对于浏览器应用这是足够的,但对于数据密集型应用还是相当小的。

SQLite和其他第三方数据库也提供了 Windows 8 支持。唯一的主要技术限制是数据库必须与应用程序在同一进程内运行。Visual Studio Gallary 提供了支持 Windows 8 的 SQLite,还通过 NuGet 提供了一些附加特性。

远程存储技术

这方面有大量可选的技术,包括 TCP、HTTP、WCF 和 OData。除了使用命名管道或打开一个 TCP 端口之外,几乎所有能够用于桌面应用程序的技术都可以用于 Windows 8 应用程序。

因为 Windows 8 有意支持便携式设备,所以强烈建议使用二级离线存储。虽然本地数据库和远程数据库可以手工同步,但微软建议将库(如Sync Framework Toolkit)和 SQLite 作为本地存储的选择。Sync Framework 是基于 Apache 2.0 许可证开源的项目,现在已经发布。

安全技术

Windows 集成认证——应用程序可以像普通的桌面应用程序一样悄悄地传递一个Kerberos认证。如果设备不属于该域,那么 Windows 会提示用户输入其活动目录用户名和密码。为启用该功能,请使用Credential Picker

应用认证——每个应用程序都有自己的认证存储区。应用程序也可以在设备的根认证存储区中替换认证信息。

多元身份认证——支持智能卡。和活动目录证书一样,操作系统会提示用户插入智能卡并输入匹配的 PIN 密码。

Microsoft Account——我们之前的新闻曾提到过,Microsoft Account是基于 Windows Live 的。再次说明,该技术会使用 Windows 提供的一个对话框来避免应用程序获得原始密码。

加密——常见的哈希、对称算法和非对称算法都可以使用。

更多信息请观看 Robert Green 的视频:Key technologies for Windows Store business apps

测试

目前手动测试还是 UI 测试的唯一选择。Microsoft Test Manager通过 UI 录制让测试过程更容易了一点。

微软有计划在以后提供可编码 UI 测试(coded UI testing),但发布日期尚未宣布。

远程测试要求一个免费的开发者许可证。这是独立于 Windows 应用商店许可证的,在美国后者每年的价格是 $49。

部署

大多数业务应用程序在 Windows 应用商店中基本没什么地位。为了改善这种情况,微软允许 Windows 8 在部分域中“旁加载(sideload)”应用程序。支持旁加载应用的机器需要满足以下两个条件之一:具有开发者许可证,或者电脑加入了一个活动目录域,该域必须启用了 “允许安装所有受信任的应用程序”组策略设置。

通过 Windows 应用商店销售的应用程序将由微软签名。旁加载的应用程序则需要开发者签名。这里使用的认证既可以由内部生成,也可以从授权中心购买。不管采用哪种方式,目标机器都需要将认证的公钥添加到认证存储区中。

利用 PowerShell 的 add-appxpackage 命令可以将应用注册给特定用户。如果要支持一台机器上的所有用户,可以使用 DISM 命令或 PowerShell 的 cmdlet Add-AppxProvisionedPackage。这会将应用程序添加到“Windows 映像”,所有用户就都能使用了。

关于应用程序部署的更多信息请参考 MSDN。

System Center 用户还可以通过自服务门户(Self Service Portal)提供 Windows 8 应用程序。TechNet 上也有一个关于这一主题的视频,参见Windows 8 Jump Start Module 5: Windows Apps

查看英文原文Key Technologies for Windows Store Business Apps

语言 & 开发