在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript也是半罐子,本文描述了一个c#程序员认识TypeScript的过程。 注:本文编写时,基于Typescript0.8版本,而且初用,可能过时,具体规范可以参考http://www.typescriptlang.org 命名空间和类作为面向对象的开发人员思维,第一个想到的是TypeScript如何定义类,由于正好我们项目服务端(C#)的原理和客户端(TypeScript)原理完全相同,所以这里正好用C#与TypeScript对比。 C#声明类 using System; namespace Digiwin.Mars.VirtualUI.Engine { internal sealed class Decoder {} }
TypeScript声明类 ///<reference path="../Collections/ICollection.ts" /> module System.Erp.VirtualUI.Engine { export class Decoder {} }
首先简单来说,都有类似命名空间的概念,一个叫namespace,一个叫module,这个就不废话了。 其次,c#要引用其他的类,首先你需要在工程文件中引用dll,然后在文件头上using一个命名空间(可选),但是在TypeScript中,没有这个概念,直接引用一个文件的。 C#里类可以public、internal等等很多级别,还有sealed等修饰符,TypeScript你就忘记这些吧,加入export相当于public,抽象,值类型什么的,这个好像没有。 但是接口是有的。 方法和注释C#的方法 /// <summary> /// 解码变更集 /// </summary> /// <param name="reader"> 一个变更集读取器对象 </param> public void DecodeChangeSet(ChangeRecordReader reader) { //解码上下文对象 var ctx = new DecodeContext();
TypeScript声明方法 /** * 传入变更集,将其解码到当前的对象容器。 * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。 */ public Decode(reader: IChangeRecordReader): void { //解码上下文对象 var ctx = new DecodeContext();
我们首先看到c#的xml 文档专用注释也是支持的,不同他使用JsDoc的规范。 普通的注释也使用// ,这个完全和javascript相同。 在方法的声明上,TypeScript将返回参数放在后面,对应的,参数的类型也是放在名字后面,如果你声明变量,也是这样的 private _maxId: number; //在类上定义字段 var item: VirtualObject; //在方法里定义变量。 在方法的可访问性上,支持public,这样就可以公开还是不公开。
参数和构造在C#里面,我们经常同一个名字定义多个方法,使用不同的参数类型区分,但是在javascript中不允许,所以TypeScript也不允许。 由于上面的原因,你也就能理解只能有一个构造函数。下面是他的构造函数例子: constructor( objectContainer: VirtualObjectContainer, objectBinder:IObjectBinder ) { this._objectContainer = objectContainer; this._binder = objectBinder; }
基于javascript的概念,也就没有ref out in这样的关键字,没有可选参数。但有命名方式访问参数。 我也没有发现override关键字,虽然据说0.8之后新增了。
好了,更多的细节需要你慢慢研究规范文档了,这篇文档可以帮助你入门,使用愉快。 推荐一款作图神器:ProcessOn
本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5 Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似谷歌docs,整体给我的感觉很炫,也很舒服,我寻找到他的团队了解了一下,也是几个人的小团队,开发用了近2年的时间,他们表示ProcessOn会永久免费,目前正在创业初期,个人感觉,东西挺好,但没看出来怎么盈利(貌似我想多了..)。接下来就给大家详细介绍一下这款作图神器。 整个网站最核心的就是它的设计器,上面也说了就是用HTML5加javascript实现的,体验上确实很谷歌的产品很相似,当然它是不需要下载的,因为免费,所以自然没有盗版之说。整个设计器左边是原型图库,右侧是画布,操作就是从左侧图形库中拖出圆形图放到画布即可,鼠标放到图形旁边自动变成十字架,按住左键自动出现连接线,整个操作很顺畅、简单。常规的改变图形大小、背景颜色等都是有,基本就是活生生的在线版Visio(但是比Visio好用很多)。
ProcessOn还有一个比较强悍的功能就是在线实时协作,就是说支持多人同时对一个文件进行编辑(还可以聊天),这个技术也是HTML5技术实现的,很多时候做一个完整文件可能跨部门或者跨阶层,很多是自己不了解不熟悉的,当然就需要相关人员来负责出来,现在也有一些类在线协作的应用出现,例如国内的Teambition就是专门项目协作管理的,在这里不多说,可以自行了解一下。
ProcessOn的社交体系以及小组在这里就不过多介绍了,基本和国内见到差不多,它有一个图库栏目。数据全部来自用户分享的作品,有些图还是很有价值的。其他就没什么特色了(或许是我还没发现)。好吧,我说完了。 ProcessOn官方给网站 www.processon.com TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript也是半罐子,本文描述了一个c#程序员认识TypeScript的过程。 注:本文编写时,基于Typescript0.8版本,而且初用,可能过时,具体规范可以参考http://www.typescriptlang.org 命名空间和类作为面向对象的开发人员思维,第一个想到的是TypeScript如何定义类,由于正好我们项目服务端(C#)的原理和客户端(TypeScript)原理完全相同,所以这里正好用C#与TypeScript对比。 C#声明类 using System; namespace Digiwin.Mars.VirtualUI.Engine { internal sealed class Decoder {} }
TypeScript声明类 ///<reference path="../Collections/ICollection.ts" /> module System.Erp.VirtualUI.Engine { export class Decoder {} }
首先简单来说,都有类似命名空间的概念,一个叫namespace,一个叫module,这个就不废话了。 其次,c#要引用其他的类,首先你需要在工程文件中引用dll,然后在文件头上using一个命名空间(可选),但是在TypeScript中,没有这个概念,直接引用一个文件的。 C#里类可以public、internal等等很多级别,还有sealed等修饰符,TypeScript你就忘记这些吧,加入export相当于public,抽象,值类型什么的,这个好像没有。 但是接口是有的。 方法和注释C#的方法 /// <summary> /// 解码变更集 /// </summary> /// <param name="reader"> 一个变更集读取器对象 </param> public void DecodeChangeSet(ChangeRecordReader reader) { //解码上下文对象 var ctx = new DecodeContext();
TypeScript声明方法 /** * 传入变更集,将其解码到当前的对象容器。 * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。 */ public Decode(reader: IChangeRecordReader): void { //解码上下文对象 var ctx = new DecodeContext();
我们首先看到c#的xml 文档专用注释也是支持的,不同他使用JsDoc的规范。 普通的注释也使用// ,这个完全和javascript相同。 在方法的声明上,TypeScript将返回参数放在后面,对应的,参数的类型也是放在名字后面,如果你声明变量,也是这样的 private _maxId: number; //在类上定义字段 var item: VirtualObject; //在方法里定义变量。 在方法的可访问性上,支持public,这样就可以公开还是不公开。
参数和构造在C#里面,我们经常同一个名字定义多个方法,使用不同的参数类型区分,但是在javascript中不允许,所以TypeScript也不允许。 由于上面的原因,你也就能理解只能有一个构造函数。下面是他的构造函数例子: constructor( objectContainer: VirtualObjectContainer, objectBinder:IObjectBinder ) { this._objectContainer = objectContainer; this._binder = objectBinder; }
基于javascript的概念,也就没有ref out in这样的关键字,没有可选参数。但有命名方式访问参数。 我也没有发现override关键字,虽然据说0.8之后新增了。
好了,更多的细节需要你慢慢研究规范文档了,这篇文档可以帮助你入门,使用愉快。
本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5 Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似谷歌docs,整体给我的感觉很炫,也很舒服,我寻找到他的团队了解了一下,也是几个人的小团队,开发用了近2年的时间,他们表示ProcessOn会永久免费,目前正在创业初期,个人感觉,东西挺好,但没看出来怎么盈利(貌似我想多了..)。接下来就给大家详细介绍一下这款作图神器。 整个网站最核心的就是它的设计器,上面也说了就是用HTML5加javascript实现的,体验上确实很谷歌的产品很相似,当然它是不需要下载的,因为免费,所以自然没有盗版之说。整个设计器左边是原型图库,右侧是画布,操作就是从左侧图形库中拖出圆形图放到画布即可,鼠标放到图形旁边自动变成十字架,按住左键自动出现连接线,整个操作很顺畅、简单。常规的改变图形大小、背景颜色等都是有,基本就是活生生的在线版Visio(但是比Visio好用很多)。
ProcessOn还有一个比较强悍的功能就是在线实时协作,就是说支持多人同时对一个文件进行编辑(还可以聊天),这个技术也是HTML5技术实现的,很多时候做一个完整文件可能跨部门或者跨阶层,很多是自己不了解不熟悉的,当然就需要相关人员来负责出来,现在也有一些类在线协作的应用出现,例如国内的Teambition就是专门项目协作管理的,在这里不多说,可以自行了解一下。
ProcessOn的社交体系以及小组在这里就不过多介绍了,基本和国内见到差不多,它有一个图库栏目。数据全部来自用户分享的作品,有些图还是很有价值的。其他就没什么特色了(或许是我还没发现)。好吧,我说完了。 ProcessOn官方给网站 www.processon.com |
请发表评论