开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
2015年1月31日,作为KEYNOTE演讲嘉宾,我和来自全国各地的开发人员分享了作为一名MVP的一些体会。
-

- Keynote – Open Source, Free Tools and Cross Platform
-

- Keynote – Open Source, Free Tools and Cross Platform
今年是我加入微软全球最有价值专家项目的第八个年头了,回想起2007年第一次参加微软技术大会TechEd的时候,我还是一个刚入行的小兵,现在竟然可以站在大会的KEYNOTE上吹嘘一下自己的经历了。八年是一个不算短的时间,最让我自己满意的是这些年交到很多的好朋友,学到了很多的新东西。但越是如此,越是觉得有更多的东西想去尝试。
这次大会上和大家分享了3个话题:开源,免费和跨平台。做微软的技术年头多了的人都有这样一个特点,就是很容易把自己局限在这个技术圈子里面。当然微软的产品线很长,技术很丰富,基本上在工作中/生活中的方方面面都可以涵盖。可以当我们睁开双眼向外望去的时候,才发现这不过是广袤草原上的一座美丽的庄园而已。今年,我换掉用了多年的Windows操作系统,给自己添置了一台MacBook Pro,强迫自己去习惯,去适应完全不同的操作方式,工具和环境。那开始的1个星期还真是痛苦不堪,连最简单的拷贝粘贴都不会了,但是现在我渐渐习惯了Finder,喜欢上了Sublime,也可以用vmware来运行虚拟机了(没办法,网上银行那些弱智软件还是要用的);一切都需要变化,其实自己才是最难克服的障碍。
转自我的个人博客:http://anb.io/blog/opensource-freetools-crossplatform-mvp-comcamp2015-keynote/
开源
“Opening the source code enabled a self-enhancing diversity of production models, communication paths, and interactive communities.” – Wikipedia
开源所创建是软件行业真正需要的产品模型,沟通方式和互动社区。Wikipedia对于开源的这句描述真正诠释了开源的精髓。软件不是一个人,一个团队,一个公司可以通过自身的努力可以满足的,软件开发是程序员智慧的创造物,即便是爱因斯坦的超强大脑也无法预见所有的产品形式;沟通的重要性也往往被忽视,整日面对电脑的程序员往往被认为是不善于沟通的,其实是大家不了解程序员,他们通过指尖敲击出的优美旋律是只有其他同类才能理解的精美语言,代码才是程序员最好的沟通方式;围绕代码构建程序员沟通网络正是这些年开源社区成功所在,在GitHub这样的游乐场里,只有在clone/pull/push/branch/merge中才能体会其中的乐趣。
2014年对于微软和开源来说是非常重要的一年。其实,微软很早就已经开始了开源的步伐,但只在2014年才开始使用GitHub作为共享源代码的方式。放弃微软自己的开源平台CodePlex而使用开源社区的事实标准GitHub,说明微软确实意识到了开源的重要性,并乐于按照开源世界的方式来与全球的开发者合作。另外,也只有在2014年,我们才看到以下重量级的产品代码被开源出来。
- .NET Home https://github.com/Microsoft/dotnet
- .NET Core CLR https://github.com/dotnet/coreclr
- .NETFX https://github.com/dotnet/corefx
- Roslyn https://github.com/dotnet/roslyn
- Visual Studio F# https://github.com/Microsoft/visualfsharp
- WinJS https://github.com/winjs/winjs

以上仅仅是一部分,通过 Microsoft on GitHub (http://microsoft.github.io/) 你可以看到更多的微软开源项目。
另外一个微软与开源的重要合作渠道是 MS OpenTech(https://msopentech.com/),在这你可以看到更多有意思的项目,比如VM
Depot。 VM Depot 是微软为云计算所提供的虚拟机模版库,包括各种定制版本的Ubuntu, CentOS模板,配置好的MySQL模板,可以直接使用的GitLab, Jenkins模版都可以直接从上面下载,或者直接部署到你的Azure环境中。

值得一提的是,2014年微软在上海大规模扩招了很多工程师为MS OpenTech工作,相信大家很快就会看到微软与国内的开源社区有更多的合作。
更新:就在我写这篇博客的时候,又一件具有里程碑意义的事情发生了,那就是微软宣布Windows
10将为RaspberryPI 2免费提供一个版本供所有的创客们使用。看到这个消息我也兴冲冲的想去马上买一个 PI 2来玩,可惜全部脱销。

免费
2014年的另外一件大事就要算Visual Studio社区版的发布了,这是一款与专业版具备同等功能的 免费 Visual Studio版本。之前微软也为不同类型应用的开发者提供过Express版本的Visual Studio供大家免费试用,但是Express有两个致命的问题造成了大家对这个版本并不感冒。
- 只能针对某种特定的应用程序类型做开发,比如你使用Windows Phone版本的Express是无法做web开发的;而反过来也不成。
- 无法使用插件。vs有大量的插件可以帮助开发人员提高开发效率,比如大家熟悉的Resharper,以及Web开发利器Web Essential都是通过插件提供的。无法使用插件使得Express变的非常鸡肋。


如上图:社区版没有以上限制,你可以用它完成包括前端,后端,数据库,报表,app等各种应用类型的开发,也可以自由的使用你喜欢的插件。估计对这个事情最头疼应该是Eclipse了,而在它后面更加头痛的就是IBM了。
链接:Visual
Studio 2013 社区版下载地址 无需注册,直接下载。
本次 MVP ComCamp 2015 的KEYNOTE上我使用社区版本演示了Apache Cordova的支持,使用完全的免费的工具和一套html/javascript代码完成Windows Phone/Android/iOS应用的开发,调试和打包。具体的演示大家可以看下面的视频。
关于Apache Cordova

支持使用html/javascript来进行移动APP开发,你可以借助自己在Web开发中的技能和掌握的框架来完成手机应用的开发,Apache Cordova则通过插件为你提供访问诸如摄像头,地理位置等设备访问的javascript借口,并提供编译,调试和打包的工具链帮你完成手机app包的创建。更多关于Apache Cordova的内容可以访问以下网址进行了解
- Visual Studio Apache Cordova 工具 http://www.visualstudio.com/en-us/explore/cordova-vs.aspx
- Apache Cordova 开发项目首页 http://cordova.apache.org/
- Apache Cordova 与PhoneGap的关系http://www.makehybridapps.com/2014/06/09/cordova-vs-phonegap-the-differences-and-which-one-to-use/
跨平台
上面使用Visual Studio社区版和Apache Cordova所进行的跨平台开发其实只是跨平台的一部分,对于开发人员来说我们每个人都有自己的喜好的操作系统,工具,而现代的软件开发已经不紧紧是一个Editor和编译器可以搞定的事情了。代码管理,任务管理,自动编译,测试,打包,发布等等环节对于一个开发人员来说都是必不可少的。同时,搭建开发环境这件事情其实是每个开发人员心里的痛(为什么我们都是重装电脑的高手,这里的心酸估计只有同样是程序员的你知道。。。)。
如果,你只需要打开浏览器就可以完成我上面所说的一切,那世界该是多么的美好。可以利用云计算将所有的开发环境都放到云端,而你需要的只是一个浏览器。。。世界从此清静了。
在MVP ComCamp2015 KEYNOTE中我演示了如何借助Visual Studio Online和微软云计算Azure来构建这样一个完全位于云端的开发环境,具体内容请大家看视频。
关于Visual Studio在线开发平台
- Visual Studio Online http://www.visualstudio.com/
- Microsoft Azure http://www.windowsazure.cn/
- Visual Studio “Monaco” http://blogs.msdn.com/b/monaco/
下载演示中的Node Standup App https://github.com/ups216/NodeStandupApp
感谢所有的社区朋友,微软mvp项目组的同事们,特别是我的老同事周文洋帮我一起完成了keynote上的精彩演示。
开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE的更多相关文章
- (视频) 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
2015年1月31日,作为KEYNOTE演讲嘉宾,我和来自全国各地的开发人员分享了作为一名MVP的一些体会. Keynote – Open Source, Free Tools and Cross P ...
- 微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器
微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器 在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 预览 ...
- 分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark
今天早上六点半左右微信群里就看到张队发的关于.NET Spark大数据的链接https://devblogs.microsoft.com/dotnet/introducing-net-for-apac ...
- 开源免费的HTML5游戏引擎
青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...
- 开源免费的HTML5游戏引擎——青瓷引擎(QICI Engine) 1.0正式版发布了!
青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...
- Brackets 1.8 开源+免费的Web前端网页文本编辑工具
Brackets 1.8 开源+免费的Web网页文本编辑工具 -------------->> ---------------------- A modern, open source ...
- WindTerm:新一代开源免费的终端工具,GitHub星标6.6k+,太酷了!
继 Tabby.Warp 后,今天再来给大家推荐一款终端神器--WindTerm,完全开源,在 GitHub 上已经收获 6.6k 的 star. https://github.com/kingToo ...
- 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...
随机推荐
- 【mybatis深度历险系列】mybatis中的输入映射和输出映射
在前面的博文中,小编介绍了mybatis的框架原理以及入门程序,还有mybatis中开发到的两种方法,原始开发dao的方法和mapper代理方法,今天博文,我们来继续学习mybatis中的相关知识,随 ...
- [OpenCV] GpuMat and Mat, compare cvtColor perforemence
Introduction I am going to measure the performence of my two GT650M and compare GPU with CPU version ...
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别.今天来介绍TV中Metro UI风格 ...
- [文摘]Quick Start to Client side COM and Python
摘自:PyWin32.chm Introduction This documents how to quickly start using COM from Python. It is not a t ...
- Eclipse简介和使用技巧快捷方式
1Eclipse简介和使用 IDE(Integrated Development Environment ): 集成开发环境,集合开发.运行.调试于一体的一个软件 Eclipse 是一个开放源代码的. ...
- android 缓存实现
1.之前因为做一个项目的过程中遇到要频繁重复下载的文件比如图片等,需要在本地缓存,除了用户体验也保证了省流量. 这个demo是用下载网络图片来演示. 一共有六张网络图片,加载图片时,会判断图片是否下载 ...
- springMVC源码分析--HandlerInterceptor拦截器(一)
对SpringMVC有所了解的人肯定接触过HandlerInterceptor拦截器,HandlerInterceptor接口给我们提供了3个方法: (1)preHandle: 在执行controll ...
- 解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题
对于这个问题,我相信我的方法已经能帮90%的人解决了! 当你用Eclipse运行web项目的时候,你就会看到控制台出现: WARNING: [SetPropertiesRule]{Server/Ser ...
- 找不到BufferedImage这个Class的解决方法
找不到BufferedImage这个Class的解决方法 环境: [1]RedHat AS5 64位 [2]WebSphere6.0 32位版本 正文: 发现原来在RedHat AS4 ...
- socket系列之客户端socket——Socket类
假设TCP套接字服务器端已经建立好并正在监听客户端的连接了,那么客户端就可以通过Socket类来发起连接.客户端发起一个连接请求后,就被动地在等待服务器的响应.这个类同样位于java.net包中,包含 ...



