几个月前,一个新的 JavaScript 平台 Platypi 悄然诞生。它为开发者提供的不仅仅是一套标准的 MVC 框架而已,由于它是基于 TypeScript 构建的,因此对开发者而言在熟悉之中透露出与众不同的感觉。
Platypi 平台包括三个组件:PlatypusTS、PlatypusUI 和 PlatypusCLI。PlatypusTS 是核心的 MVC JavaScript 框架,基于 TypeScript 构建。在某种程度上,它的视图控制器 - 服务 - 视图(View Controllers、Services、Views)模型看起来似曾相识。
在三个组件交汇的平台中,集成了一个有趣的独立命令行工具。当构建 app 时,开发者经常会写许多重复的样板代码以生成服务或控制器的骨架。PlatypusCLI 为开发者提供了一个可以自动生成样板代码的生成器。例如,在命令行中输入:
platypi add service products
这条指令在适应的目录下创建一个 TypeScript 文件基本结构,包含以下代码:
/// <reference path="../../_references.d.ts" /> import plat = require('platypus'); import BaseService = require('../base/base.service'); class ProductsService extends BaseService {} plat.register.injectable('products-service', ProductsService); export = ProductsService;
开发者仍须将 TypeScript 文件联结到 app 的其它部分,但是当你创建一个新项目时,使用命令行工具往往会帮助你节省时间,并保证构建的一致性。
Platypi 同样提供它自己的 UI 库——PlatypusUI。你可以选择不在项目中使用这个库,但是它包含了许多自带样式的通用控件,还在控制器代码中提供一些钩子,值得一试。组件与 web components 的语法类似,熟悉的开发者会很快上手,而习惯编写及使用自定义 directive 的 Angular 开发者也会感觉非常熟悉。举个例子,如果我们想要创建一个按钮:
<plat-button class="button-primary gs-button" plat-tap="register">Register</plat-button>
这个按钮在浏览器中会渲染成这样:
<button class="button-primary gs-button plat-button plat-gesture" plat-tap="register" plat-control="plat-button"> <span>Register</span> </button>
点击按钮将执行页面中视图控制器的 register 方法。
与一些流行的 JavaScript 框架不同,Platypi 通过提供支持合约盈利。最简单的是免费版,独立开发者版本的收费标准是每人每月10 美元,并且每年提供10 次在48 小时之内回复的支持请求。此外,Platypi 还为公司提供了咨询服务,帮助他们构建自己的解决方案,服务包含培训以及设计工作。
当被问及Platypi 与Angular 有何不同时,CEO Matt Landers 回答说:“Angular 不提供客户支持服务,你需要依赖社区解答你的疑惑,帮助你快速修复bug,也只有社区才可以升级Angular,为其发展定向。”关于Platypi 未来的客户支持计划,他说:
如果你编写了一个需要使用10 年的库存管理系统,我们希望可以成为在这10 年间值得你依赖的合作伙伴。
这个项目通过使用 Apache Cordova 提供跨平台支持。
Platypi 由三位前微软工程师共同创建,官方版本在 2015 年 3 月 10 日正式发布。据 Landers 说,他们已经开始集成第三方服务。你可以在他们的 GitHub 上获取 API 文档以及公司所有项目的信息。
查看英文原文: Platypi JavaScript Platform Launches
感谢邵思华对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论