Windows商店业务应用程序的关键技术
相比于其他各类应用程序,业务应用程序往往更强调数据存储和安全。尽管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。