几个月前,一个新的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读者交流群 )。