相比于其他各类应用程序,业务应用程序往往更强调数据存储和安全。尽管 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 。
评论