TypedMVVM 使用 TypeScript 构建 Windows 商店应用

  • Anand Narayanaswamy
  • 孙镜涛

2013 年 12 月 12 日

话题:语言 & 开发

TypedMVVM是由 Davide Zordan 开发的一个示例和类库的集合,适合于使用 WinJS、TypeScriptMVVM编写 Windows 商店应用的开发者。借助于该集合,开发者能够在一个简单的、使用WinJS开发的 Windows 商店导航应用中通过应用 MVVM 模式实现关注点的分离,进而在真实的场景中使用 TypeScript。

根据 Davide 所说,所有的.js 源文件都会被转换成使用新文件夹结构的 TypeScript,包括类 / 接口的实现。但是为了允许可混合性 designData 为设计时数据提供了实现,类库包括 TypeScript 定义和 TypedMVVM 核心类,特别是 RelayCommand<T> 和 ViewModelBase。该包还包含服务(Services)、视图模型(ViewModel)和视图模型工厂(ViewModelFactory)的接口以及具体的视图模型实现和视图定义。

为了了解与 TypedMVVM 相关的更多内容,InfoQ 采访了软件架构师、开发者和 Microsoft MVP Davide

InfoQ:你能与我们分享一下开发TypedMVVM的目的是什么吗?

我喜欢编写具有良好组织结构的代码,喜欢拥抱优秀的实践,例如关注点分离、面向对象、模块化、可测试性和可扩展性。

依我看,TypeScript 正在为开发者提供很多编写专业应用程序所需要的基础功能。特别是支持类型检查、推理和反射功能,同时完整的智能感知支持也是编写复杂的大型应用所必须的。由于这些原因我决定实现一些简单的类,阐述如何在一个使用 TypeScript 的 WinJS 导航应用程序中应用 MVVM 设计模式。

InfoQ:使用TypedMVVM构建的Windows 商店应用和没有使用它构建的应用之间有什么区别?

传统的使用 WinJS 构建的 Windows 商店应用核心语言是 JavaScript。TypedMVVM 使用 TypeScript 作为核心语言,该语言支持静态类型、接口和类(仅列举一部分),但是最终会被编译成简单的 JavaScript。它还包含一些可以帮助开发者开始使用 ViewModel 模式的帮助类,让他们写出架构正确的、可测试的代码。

InfoQ:使用TypedMVVM能够编写哪些类型的应用?

当前的目标是使用 WinJS 框架的 Windows 商店应用。

InfoQ:你听说过哪些使用TypedMVVM实现的应用?

这个项目刚刚发布,所以现在我并不知道有关于真实项目的信息。

InfoQ:你能与我们分享一下TypedMVVM将来的路线图么?

我现在依然在定义路线图的过程中,但是我正在考虑控制反转、松耦合消息和应用特定的服务:这些功能将非常有用。

查看英文原文TypedMVVM Uses TypeScript to Build Windows 商店 Apps with WinJS

语言 & 开发