摘要:2016年9月15日,Angular 2最终版正式发布,在业界引起广泛关注。作为Angular 1的全平台继任者,Angular 2最终版有了很多颠覆性的变化,是革命性。纯前端 UI 控件集 Wijmo 第一时间支持 Angular 2正式版。本期,开源中国专访Wijmo产品的全球产品经理 Chris Bannon先生,听他讲述技术开发的心得以及Wijmo如何支持Angular 2正式版的故事。

Chris Bannon 先生是GrapeCity(中文名为葡萄城)公司Wijmo产品的全球产品经理。少年时就对计算机产生了浓厚的兴趣,高中时开始玩图形编程,并决心成为一名认证的互联网管理员。从网页设计到Web开发再到产品经理,深谙前后端开发技术。担任葡萄城公司的首席Web开发者时,重写了公司的网站所有前端和后端的代码。在此过程中,发现前端开发很有创造性,于是专注于前端技术开发。

以下Chris Bannon 先生与大家一起分享自己多年技术开发心得、以及Wijmo如何率先支持Angular 2

图为Chris Bannon 先生

1、请先介绍下您自己(技术背景、从业经验、学习经历)

Chris Bannon :

大家好,我是Chris Bannonn,Wijmo的全球产品经理。我作为网页设计师进入这个行业,然后转入了Web开发,这样我可以把我想象的东西创建出来。在我进入ComponentOne公司(现在是葡萄城)担任首席Web开发人员之前,我的工作是政府部门的高级Web开发人员。当我担任葡萄城公司的首席Web开发者时,我重写了公司网站所有前端和后端的代码。之后,我开始了Wijmo产品线,并担任产品经理。我们最初创建Wijmo,是作为JQuery的扩展,但是后来我们决定使用新的ECMAScript特性,完全重写Wijmo。现在Wijmo是JavaScript应用开发的一套领先的控件集,也率先全面地支持了Angular 2。它所包含的著名的FlexGrid控件,从最初是由Visual Basic编写的,到现在使用TypeScript编写。

2、当前,前端开发比较流行,您对前端技术的发展趋势是如何看待的?

Chris Bannon :

我一直对前端开发很感兴趣,同时我也认为前端开发是实现Web应用上动态体验的最好方式。我很高兴的看到,行业中因为各式各样的原因,很乐于接受前端开发。我认为在未来,大部分的Web开发者都会使用前端技术。前端技术革命现在仅仅刚开始。同时,我们也不能忽略后端的重要性。我们将会发现有更多更先进的工具,来促使前后端更加紧密的结合在一起。前端工具正在迅速的发展和提高,我们之所以创建Wijmo这个专业的JavaScript UI控件集,是因为我们看到了巨大的前端工具的需求。为了能够更有效地开发,开发者就需要更加强有力的工具。

3、您觉得Angular 2对比与其它的前端框架,具有哪些优势?

Chris Bannon :

我不认为任何一个单独的框架,可以是最好的。现在有很多框架,并且每一个框架都有自己的优势。我们之所以更倾向去学习Angular,是因为它为我们提供了更为熟悉的、相似的平台,就像.NET。Angular 2和Silverlight更为相近。

Angular 2的主要优势在于,它面向的是大规模应用的开发,能够为大型团队开发大型应用提供支持。

我最喜欢Angular 2的一点是TypeScript。Wijmo是用TypeScript编写的,我们从TypeScript的优势中获益良多。TypeScript确实帮我们编写了稳定的代码。JavaScript是一种美妙的语言,但是当工作在大型代码库上时,会变得难于管理。在开发时,TypeScript具有很好的组织和错误检查,这样在程序运行之前,你就能发现问题。使用TypeScript的继承、重构等,也让我们更加高效。

Angular 2的另一大益处就是组件模型。Angular 2中的所有东西都是一个组件,这样你就可以为你的应用,创建很棒的模块。这一点也有助于保持良好的结构。虽然这个优势不是Angular 2所独有的,但是这确实是它的优势。

4、Wijmo是如何做到率先对Angular 2正式版支持的?

Chris Bannon :

在Angular 2初期还是alpha的时候,Wijmo团队就决定率先支持Angular 2。我们之所以这样决定,是因为我们认为对Angular 2的支持是众望所归。

对Angular 2的支持是一个很大的挑战,但是我们有能力跟上Angular 2团队的脚步。由于我们的控件是纯JavaScript的,这也使得对Angular 2的支持更容易些。我们可以为支持Angular 2进行很简单的包装,这样我们的UI控件也可以脱离Angular 2组件包装而独立工作。这是一个很大的付出,但是我们做到了对Angular 2的率先支持。

5、 Wijmo开发团队是如何与Angular 2开发团队密切合作的?

Chris Bannon :

首先,Angular 2团队的开发和路线是十分开放的,这也就保证了我们可以紧跟他们的脚步。

其次,当我们遇到障碍时,Angular 2团队也很乐于为我们提供支持。我们和Angular团队建立了良好的友谊。我们也很享受和他们团队一起工作。我很感激他们的开放和支持。

6、Wijmo支持Angular 2正式版在组件集成过程中有存在什么问题?如何解决的?

Chris Bannon :

在提供对Angular 2的支持时,我们也遭遇了一些挑战。最大的挑战就是需要提供深度集成。由于我们创建了包装,我们还需要解决如何平衡Angular 2组件的作用和声明性标记,所以我们编写了大量的代码,来促使我们的控件能够完全的用标记的方式配置。我们也创建了具有Angular特性的功能,比如FlexGrid中的单元格模板。这允许客户编写自定制的标记,在表格的每一列中使用。

为了做到这样,我们需要深度理解Angular是如何工作的,同时必须要使用其内置的APIs。我们和Angular 2团队一起工作,使用公共APIs,解决了这个问题。事实上,他们也增加了一些东西供我们使用。

另外一个最大的挑战,就是保持与Angular 2迅速发布的同步。这确实带来了更大的挑战,因为我们在使用的预览版本里有许多不兼容的改变。我们甚至为了一个版本,完全重写了我们的控件。最初我们继承的TypeScript类直接作为Angular 2的组件,但是当Angular 2在beta版中做了一个不兼容的改变时,我们不得不采取另外一种方式。我们唯一的解决方案就是,花费大量的时间迁移我们的控件。为了及时将这些代码提供给客户,我们需要每晚进行构建,以便提供给所有的客户。

7、您是如何看待TypeScript被用于开发Angular 2.0的?

Chris Bannon :

我们喜欢TypeScript。Wijmo从一开始,就是使用TypeScript编写的。我们已经接纳并受益于TypeScript了。我们很高兴的看到,Angular 2团队选择TypeScript作为Angular 2的语言。同时,我也认为Google选择微软的语言进行开发,是很有趣的。一个公司越是开放、愿意协同工作,则越会收益,这是生态系统中新时代的一个标记。长远来讲,我认为这会让每一个人受益。Angular 2因为使用了TypeScript会变得更好,同时TypeScript为Angular 2增加了功能也会变得更好(像类支持元数据)。

8、您是如何看待 Angular 2 的发展前景的?

Chris Bannon :

我们已经看到Angular 2的日益流行。事实上,我们已经有使用Angular 2开发产品的客户了。我认为Angular 2会日益流行并成为市场上顶级的前端框架之一。同时,Wijmo也将持续支持Angular 2和其它客户有需求的框架。我们已经为Angular 3的推出,做好准备了。

9、能否谈谈您对于HTML5、JavaScript、技术趋势的看法?

Chris Bannon :

如果你希望自己的应用,能受到最广泛的客户的喜欢,那么HTML5和JavaScript是最好的技术选择。它们以接近原生的速度,运行在任何计算机和设备上。它们正在成为通用的编程语言。我们已经深入地研究了它们,同时也看到了HTML5和JavaScript的巨大成功。我们正在看到我们的客户,在将老的桌面应用迁移到HTML5和JavaScript上,获得巨大的成功。

10、作为Wijmo产品的全球产品经理,有哪些从业经历可以分享的吗?

Chris Bannon :

Chris Bannon :当然。我在读高中时,就对计算机感兴趣。高中时我就开始玩图形编程,并且喜欢使用它来创建艺术作品。我急于开始工作,而不是上大学,我决定成为一名认证的互联网管理员。在那之后,我开始受雇于政府部门开发大型的应用,并使用HTML和CSS使应用更加的美观。在那个时候,我每晚都会沉浸在大学之中,以便更好地学习和拓展。我因为自己的设计工作没有很好的体验而感到沮丧,所以我学习编程,这样我就完全可以设计和开发东西了。我对前端开发很感兴趣,我发现前端开发很有创造性,于是我加入了ComponentOne公司。在ComponentOne公司,我在成为首席Web开发者之前,已经在公司工作了10年。我花费时间使用SQL、C#和ASP.NET重写了公司的网站。我也使用HTML、CSS和JavaScript美化了前端。最后,我想为其它开发者创建产品,所以就开始了Wijmo并且专注于前端开发。Wijmo的工作都是我亲手完成的,我运用了之前的大部分经验。我最初做出了我们控件的应用原型,并且定义了需求。现在我更专注于我们Wijmo的客户和发展路径,并且尽可能地推广Wijmo。我喜欢更富有创造力,我正在以不同的方式来完成这样的工作。现在,我制作开发工具并且很乐于看到我们的客户正在使用这些工具。

11、谈谈您对开源技术及社区的理解和看法?

Chris Bannon :

开源确实很有趣。对于开发生态系统,开源提供了巨大的价值。在开发系统中,开源为开发者提供了免费的工具和代码,让开发者更富有成效。开源也连接了成千上万的、原本不会有交集的开发者。我喜欢开源,开源为技术发展做出了巨大贡献。我很感激有Angular 2这样的开源框架。

同时,我们也售卖商业控件。一些人不喜欢商业控件,但是我需要强调的是,我们仅仅是售卖我们的代码,而他们是售卖自己写代码的时间。其实,我们都是在实时的编写代码。Web行业中不可否认的一件事,就是不论是商业的还是开源的,它们都是彼此共生,彼此收益的。我们的Wijmo也从许多开源项目中获益良多,比方说Angular 2。

12、想对中国开发者说些什么话?

Chris Bannon :

Chris Bannon :Ni hao!(你好!)

我去过中国很多次,比方说西安、上海和北京。葡萄城在中国有分公司,我很享受在中国出行的时光,同时我也很欢迎中国的同事来美国。我对中国开发者印象深刻,他们和美国的开发者很像。虽然地域上我们不同,但是我们是相似的。我们使用着相同的开发语言:JavaScript。