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. 用PS给图标添加外发光效果

    最近在做app的时候用到了图标需要根据点击和非点击显示两种状态(原始状态和外发光状态). 如下图: 没办法,因为这是毕业设计的东西,总不能叫同事帮忙处理下.所以自己充当了回美工. 做法如下: 1.打开 ...

  2. Incompatible pointer types assigning to 'id<>' from 'Class'错误

    实例变量在类方法中被使用 原因:静态方法访问了非静态变量属性(.h中声明的那些属性),就是类方法访问了成员变量

  3. 在JSP里使用CKEditor和CKFinder

    在JSP里使用CKEditor和CKFinder 最 近在做一个新闻发布平台,放弃了很早的FCKEditor,使用CKEditor和CKFinder,尽管免费的CKFinder是Demo版本,但是功 ...

  4. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

  5. Oracle数据库用户权限和管理员权限

    一.如何查看权限 查看用户权限 1. oracle用户查看自己的权限和角色     select * from user_tab_privs;     select * from user_role_ ...

  6. iOS 开发 之 测试框架kiwi

    1. 在Podfile中加入 target :VVStackTests, :exclusive => true do pod 'Kiwi/XCTest' end 2.下载kiwi模板 XCode ...

  7. jQuery对象插件封装步骤

    jQuery是js的一个非常优秀的库,它大大简化了js的很多操作,并且解决了js的大部分兼容性问题.甚至很多css兼容性问题,用jQuery写都能解决. 这里是对象插件的封装.当然,封装插件很多,这里 ...

  8. 汇编语言实现led灯的跑马灯

    led实验1.看原理图 看设备工作的原理(可能需要阅读芯片手册),看设备与cpu的连接关系 GPIO具有输入输出功能.输入:cpu想知道io引脚是高电平还是低电平那么就是输入方式输出:cpu想控制io ...

  9. github 之 下载历史版本

    1.打开github中要下载的项目 2.点击commits 点击上图中标记的地方,进入下图所示: 3. 选择列表中的某个版本 4. Browse Files 5. 下载 点击上图中的 Download ...

  10. eclipse修改主题配色

    1.Java-->Editor---> Syntax Coloring修改类中的各种代码颜色 2.General-->Editors --->Text Editors