2002年2月13日,第一个版本随着visual studio.net的发布,今天已经走过15年, .net团队写了一篇文章,里面有一个视频,Anders Hejlsberg已是白发苍苍的老人,我也从刚出校门的码农长成软件开发工程师,我爱编程。

我的职业生涯始于大学四年级的毕业设计,当时带我毕业设计的老师给我了一个简要说明的文档要做一个软件,那是在2001年,互联网才刚刚开始,没有今天这么丰富的网络资料,凭借着受过数学训练的大脑折腾出来了,最后老师还给我了800块钱的报酬,那年我毕业的时候月工资才1500。不过毕业后却到了已经有着大名鼎鼎名头的中国科学院广州分院,却干着是系统集成的工作,业余时间迷上了.net , 你一定很好奇为什么迷上呢? 那时经常使用Linux,受到了Miguel de Icaza影响,他是一名hacker,他打造了Linux上一个流行的桌面系统GNOME,并且与KDE分庭抗礼,具体信息可以访问 名人故事之 Miguel de Icaza。Miguel 为了GNOME项目启动了另一存志高远的项目:Mono,一个Microsoft .NET Framework的自由GNU/Linux实现,当时觉得Miguel看上的准没错,我也就跟着他踏上了.NET这条路,在广州非常感谢当时京华网络的一位同事,他招聘我进去开启了软件开发之路,到现在已经14年,现在还在继续编程,编程之余不忘在社区推动,传播.NET技术,特别是跨平台技术,现在Mono,.NET Core都在微软旗下的跨平台技术,10几年的努力在博客园,微信公众号上都留下了我的足迹,期待2017年Make .NET Great Again。

2014年之前大家的眼中的.NET只是微软的Windows平台上的.NET, 这是庞大身躯的怪胎,它既是一套服务器产品,又是一个特殊的Windows版本,还是一个开发平台。我们谈到.NET的时候,实际上是指.NET Framework,那才是它的本来面目——.NET的一个组成部分。.NET Framework是非常好的开发平台。至少,它让对MFC心生厌恶的人们不再转移到Java平台。如果这些人继续走Microsoft技术路线,那么他们得到了比以前好得多的解决方案,且较易转移过去。微软意识到Linux闯入自己享用多年的牧场,成为自己的竞争者,基于商业的考虑让着跨平台基因的.NET困死在Windows之上,互联网浪潮的到来,微软却还守在卖license,导致和互联网浪潮插身而过,出现了尴尬的场景,在国内天天都在听说转Java。

2014年之后微软换了CEO,全面拥抱Linux,.NET Core开源,收购Xamarin,构建起了全新的生态,微软的重心转移到了Azure,微软算是抓住了云计算时代,微软市值已经增长到了5000亿美金,才次达到他的顶峰,.NET Core也经过了2年的迭代,5月份发布.NET Core 2,也就会补齐各类API,再一次进入主流开发平台。

现在的主流开发平台是微服务架构,.NET Core就是专门针对模块化的微服务架构而设计,在微服务架构这方面Spring Cloud具有非常高的人气,如果你在使用Spring Cloud,可以使用开源项目Steeltoe 开发.NET Core应用,具体可以参考这篇文章Enabling .NET Core Microservices with Steeltoe and Pivotal Cloud Foundry。在微服务这个领域微软也有着丰富的经验,Azure云上有大量的服务是基于微软自己的微服务框架Service Fabric构建的,据传说这个框架微软会开源,具体时间不清楚是什么时候。那么上面这两个框架我都不合适怎么办呢? 因为我是软件工程师,不再是简单的码农,没有我可以自己造,最近2个月时间里通过Github 找到一位英国哥们Tom Pallister,和他一起打造一个微服务开发框架,我加入了他的一个API Gateway项目Ocelot,项目的功能参考https://github.com/TomPallister/Ocelot/projects/1 ,大部分基础特性已经完成,接下来就是要不断的重构打磨,这个项目有非常完善的单元测试,验收测试来保障我们的重构工作,保证我们的代码质量。

在文章的末尾要给大家重新介绍一下微软的微软最有价值专家项目:https://mvp.microsoft.com。2017年MVP项目有了很大的改变, 有几个方面的改变:

1、MVP申请时间改为每月申请,每月审核。

2、审批标准全球同步,贡献争取多元化,你可以贡献各个技术方向,Java,PHP都行

3、 申请技术方向更广泛,欢迎更多开源技术应用于微软项目, 具体参见网站详细介绍

4、 MVP福利更多

具体的申请方法可以访问https://mvp.microsoft.com/zh-cn/Overview 了解具体信息,我也很乐意提名你,你可以联系我。

.NET 十五岁,谈谈我眼中的.NET的更多相关文章

  1. 程序员与年龄:四十岁普通开发、三十五岁首席架构、三十岁基层Leader

    最近,有一个词儿特别热门--躺平.有没有人跟你说过:"躺平说起来容易,做起来更容易." 和躺平相对的是另外一个词--内卷,群聊的时候,已经很多次看过草卷起来了.jpg表情包.某些节 ...

  2. 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  3. WiFi十五岁了:感谢它能让我们在厕所上网

    无线俨然成为当下移动用户不可或缺的重要伴侣,在无线覆盖的区域意味着能够获取各种资讯或同好友进行即时通讯.无线带来了前所未有的技术变革,也颠覆了生活习惯,让用户可以访问Netflix或者在厕所浏览网页. ...

  4. 谈谈一些有趣的CSS题目(十五)-- 奇妙的 background-clip: text

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

    无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...

  6. 第三百五十五天 how can I 坚持

    快一年了,三百五十五天了,等写个程序算算时间,看看日期和天数能不能对的上,哈哈. 计划还是未制定,天气预报还是没有写完,立马行动,发完这个博客,立马行动. 计划:设计模式1个月,三大框架3个月,计算机 ...

  7. WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用

    原文:WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经> ...

  8. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十五)阶段总结

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 一 每个阶段在结尾时都会有一个阶段总结,在<SSM整合基础篇& ...

  9. 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记

    一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...

随机推荐

  1. Bestcoder #80

    首先吐槽一下,ca爷出的这套题到处都是坑,bestcoder变成besthack,Ranting已经掉得不能看了 A题: 链接:http://acm.hdu.edu.cn/showproblem.ph ...

  2. Http协议与TCP协议理解

    TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通 ...

  3. Web开发中需要了解的东西

    在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需 ...

  4. C#设计模式(6)——原型模式

    一.概念 二.模型 三.代码实现 ///火影忍者中鸣人的影分身和孙悟空的的变都是原型模式 class Client { static void Main(string[] args) { // 孙悟空 ...

  5. linux命令学习-4-lsof

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 在终端下输入ls ...

  6. php中设置时区

    第一种办法:在php.ini 中设置:date.timezone=Asia/Shanghai(注意不加单引号或双引号) 第二种办法:在程序中ini_set('date.timezone','Asia/ ...

  7. UIButton常用属性小结(编辑中。。。)

    Button的功能很黄很暴力,即能显示文字,又能显示图片,还能随时调整内部图片和文字的位置,用的地方很多. (1)按钮常用的四种状态: normal(普通状态) 默认情况(Default) 对应的枚举 ...

  8. UVa 374 - Big Mod

    题目大意:计算R = BP mod M,根据模运算的性质计算. 正常计算会超时,可以用分治的思想降低时间复杂度.不过如果遇到00,结果...话说00的结果是1吗?忘了都... #include < ...

  9. java实现——004替换空格

    1.创建新的字符串 public class T004 { public static void main(String[] args){ System.out.println(replaceBlan ...

  10. Compilation err ororg.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

    严重: Compilation errororg.eclipse.jdt.internal.compiler.classfmt.ClassFormatExceptionat org.eclipse.j ...