开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE-程序员宅基地

技术标签: 跨平台  软件工程  开源  微软  云计算  

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

今年是我加入微软全球最有价值专家项目的第八个年头了,回想起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年,我们才看到以下重量级的产品代码被开源出来。

msgithub

以上仅仅是一部分,通过 Microsoft on GitHub (http://microsoft.github.io/) 你可以看到更多的微软开源项目。

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

vmdepot

值得一提的是,2014年微软在上海大规模扩招了很多工程师为MS OpenTech工作,相信大家很快就会看到微软与国内的开源社区有更多的合作。

更新:就在我写这篇博客的时候,又一件具有里程碑意义的事情发生了,那就是微软宣布Windows 10将为RaspberryPI 2免费提供一个版本供所有的创客们使用。看到这个消息我也兴冲冲的想去马上买一个 PI 2来玩,可惜全部脱销。

win10raspberrypi2

免费

2014年的另外一件大事就要算Visual Studio社区版的发布了,这是一款与专业版具备同等功能的 免费 Visual Studio版本。之前微软也为不同类型应用的开发者提供过Express版本的Visual Studio供大家免费试用,但是Express有两个致命的问题造成了大家对这个版本并不感冒。

  • 只能针对某种特定的应用程序类型做开发,比如你使用Windows Phone版本的Express是无法做web开发的;而反过来也不成。
  • 无法使用插件。vs有大量的插件可以帮助开发人员提高开发效率,比如大家熟悉的Resharper,以及Web开发利器Web Essential都是通过插件提供的。无法使用插件使得Express变的非常鸡肋。

vsce01

vsce02

如上图:社区版没有以上限制,你可以用它完成包括前端,后端,数据库,报表,app等各种应用类型的开发,也可以自由的使用你喜欢的插件。估计对这个事情最头疼应该是Eclipse了,而在它后面更加头痛的就是IBM了。

链接:Visual Studio 2013 社区版下载地址 无需注册,直接下载。

本次 MVP ComCamp 2015 的KEYNOTE上我使用社区版本演示了Apache Cordova的支持,使用完全的免费的工具和一套html/javascript代码完成Windows Phone/Android/iOS应用的开发,调试和打包。具体的演示大家可以看下面的视频。

width="400" height="300" frameborder="0" src="http://v.qq.com/iframe/player.html?vid=v01474yn76x&tiny=0&auto=0" allowfullscreen="" style="margin: 0px; padding: 0px; border-width: 0px; vertical-align: baseline; max-width: 100%;">

关于Apache Cordova
apachecordova

支持使用html/javascript来进行移动APP开发,你可以借助自己在Web开发中的技能和掌握的框架来完成手机应用的开发,Apache Cordova则通过插件为你提供访问诸如摄像头,地理位置等设备访问的javascript借口,并提供编译,调试和打包的工具链帮你完成手机app包的创建。更多关于Apache Cordova的内容可以访问以下网址进行了解

跨平台

上面使用Visual Studio社区版和Apache Cordova所进行的跨平台开发其实只是跨平台的一部分,对于开发人员来说我们每个人都有自己的喜好的操作系统,工具,而现代的软件开发已经不紧紧是一个Editor和编译器可以搞定的事情了。代码管理,任务管理,自动编译,测试,打包,发布等等环节对于一个开发人员来说都是必不可少的。同时,搭建开发环境这件事情其实是每个开发人员心里的痛(为什么我们都是重装电脑的高手,这里的心酸估计只有同样是程序员的你知道。。。)。

如果,你只需要打开浏览器就可以完成我上面所说的一切,那世界该是多么的美好。可以利用云计算将所有的开发环境都放到云端,而你需要的只是一个浏览器。。。世界从此清静了。

在MVP ComCamp2015 KEYNOTE中我演示了如何借助Visual Studio Online和微软云计算Azure来构建这样一个完全位于云端的开发环境,具体内容请大家看视频。

width="400" height="300" frameborder="0" src="http://v.qq.com/iframe/player.html?vid=y0147bi71is&tiny=0&auto=0" allowfullscreen="" style="margin: 0px; padding: 0px; border-width: 0px; vertical-align: baseline; max-width: 100%;">

关于Visual Studio在线开发平台

下载演示中的Node Standup App https://github.com/ups216/NodeStandupApp

感谢所有的社区朋友,微软mvp项目组的同事们,特别是我的老同事周文洋帮我一起完成了keynote上的精彩演示。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ups216/article/details/43834507

智能推荐

pycharm如何将函数名及函数参数高亮_pycharm 选中块高亮-程序员宅基地

文章浏览阅读1.3w次,点赞6次,收藏17次。一、pycharm 如何设置函数调用字体颜色1.打开pycharm编辑器,file > settings > editor > color scheme > python > function call_pycharm 选中块高亮

RTSP/GB28181/HIKSDK/Ehome协议视频平台EasyCVR如何通过ffmpeg 将 H.264 I帧数据转换为 BGR 数据?_ffmpeg 264转bgr-程序员宅基地

文章浏览阅读375次。EasyCVR作为视频融合平台,能够支持除RTMP以外的大部分协议,包括海康SDK及Ehome私有协议,视频云网关不需要对现有监控架构做调整,支持CDN推流,灵活适应原有架构。在 EasyCVR 视频处理中,对于部分视频数据需要转换成 BGR 数据才能够使用。I 帧数据为采用视频压缩算法已经压缩后的数据。数据量小,便于存储和传输。在正式使用时,如播放视频等功能,都需要重新将压缩后的数据还原成YUV 或者 RGB 等模型的程序才可以显示使用。BGR 数据为和 RGB 相同的数据,仅是顺序不同,_ffmpeg 264转bgr

Swing算法介绍、实现与在阿里飞猪的实战应用-程序员宅基地

文章浏览阅读9.4k次,点赞5次,收藏18次。本系列主要是基于Spark的推荐算法实战系列,本文为首篇,欢迎关注!1.Swing算法介绍Swing算法原理比较简单,是阿里早期使用到的一种召回算法,在阿里多个业务被验证过非常有效的一种召回方式,它认为 user-item-user 的结构比 itemCF 的单边结构更稳定,截止目前并没有公开的论文进行介绍和说明(可能是因为比较简单,阿里看不上哈哈),但是根据网上的各种资料,对该算法的原理进行介绍,如有错误,欢迎指正。Swing指的是秋千,例如用户 uuu 和用户 vvv ,都购买过同一件商品iii,_swing算法

linux 接受dns报文,Linux下构造UDP原始数据报-DNS报文示例C语言实现-程序员宅基地

文章浏览阅读133次。这几天构造一个DNS报文,查了好些资料,好象许多朋友对UDP报文的校验和老是出问题,自己试了一些例子代码,也有问题。所以花了一些时间,做了一个成功的例子,在Linux下GCC通过并验证成功。#include #include #include #include #include #include #include #include #includeunsigned short checksum(u..._udp服务接受的\x03\x00\x

Activiti(五)网关_activity5 网关节点不可关联结束节点-程序员宅基地

文章浏览阅读3.6k次。在学习了activiti的流程变量之后,对整体的一个流程有了一个大致的了解,下面来学习一下activiti的网关。 activiti网关用来控制流程的流向,网关可以 消费,也可以 生成 token。 这里主要是写了排他网关和并行网关的例子。一、排他网关 测试: 1、部署流程定义 2、启动流程实例 3、完成任务/** * 完成我的任务 */@Testpublic void comp_activity5 网关节点不可关联结束节点

超图模型(HyperGraph)简介_超图理论建模是什么-程序员宅基地

文章浏览阅读6.4k次。超图是有限集合的子集系统,是离散数学中_超图理论建模是什么

随便推点

Jmeter-正则表达式提取Cookie_jmeter获取响应头set-cookie的值-程序员宅基地

文章浏览阅读2.5k次。场景描述:用户登录查询数据;登录时响应头返回Cookie,将Cookie使用正则表达式提取出来,在下一个请求“查询数据”时,在请求头中使用此Cookie1.添加“登录”http请求2.在后置处理器中添加“正则表达式提取器”Apply to:Main sample only要检查的响应字段:信息头引用名称:S..._jmeter获取响应头set-cookie的值

Cordova使用Android Studio构建项目、ionic2、3、4使用Android Studio构建项目_ionic2 android 怎么在android studio上运行-程序员宅基地

文章浏览阅读1k次。1.创建一个基于cordova 的 项目 创建一个 cordova项目 cordova create hello com.example.hello HelloWorld 创建一个ionic4的项目 ionic start myApp tabs --type=angular2.添加平台 cordova platform add..._ionic2 android 怎么在android studio上运行

嵌入式 ARM 汇编编程例题_编写一段汇编程序,循环累加队列中的所有元素-程序员宅基地

文章浏览阅读3.4w次,点赞50次,收藏417次。编写一段 ARM 汇编程序:循环累加队列 rjarray 中的所有元素,直到碰上零值元素,结果放在 r4 中 AREA total,CODE,READONLY ENTRYStart MOV r4,#0 ADR r0,rjarray Loop LDR r1,[r0],#4 ADD r4,r4,r1 CMP r1,#0 BNE loopstop B stoprj..._编写一段汇编程序,循环累加队列中的所有元素

除了 Tensorflow、PyTorch ,还有哪些深度学习框架值得期待?-程序员宅基地

文章浏览阅读683次。分布式技术是深度学习技术的加速器。同时利用多个工作节点,分布式地、高效地训练出性能优良的神经网络模型,能够显著提高深度学习的训练效率、进一步增大其应用范围。《首席AI架构师——分布式高性..._训练大数据模型 除了tensorflow 还有那些?

NUC980chili开发板子_(1)编译和下载烧录_nuc980 linux-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏4次。新唐 Chili Board 下载、编译与烧录教学【 Linux 开发环境 VMware 虚拟机 】下载链接【 NUC980 Linux V4.4 BSP 】下载连接【 以下动作只需要在更新 Buildroot 工具时使用 】 进入Buildroot 资料夹后请输入以下指令: git reset --hard git pull 更新完成后进入 dl 资料夹,先将既有的 linux kernel 与 u-boot 删除,并输入以下指令: sudo rm -rf linux-mast..._nuc980 linux

html图片重叠轮播,原生js实现图片层叠轮播切换效果-程序员宅基地

文章浏览阅读2.2k次。本文实例介绍了js焦点图片层叠轮播切换滚动效果,分享给大家供大家参考,具体内容如下效果图:功能描述:自定义图片尺寸;每隔一段时间自动滚动图片;每次动画执行的时候改变图片的位置,宽高以及其它属性也要跟随着变化;鼠标移上图片,显示当前图片的详细信息;点击按钮向前向后滚动;详细代码:html代码:*{margin:0px; padding:0px;font-family:"Microsoft YaHei..._堆叠式轮播图代码html

推荐文章

热门文章

相关标签