.NET 十五岁,谈谈我眼中的.NET
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的更多相关文章
- 程序员与年龄:四十岁普通开发、三十五岁首席架构、三十岁基层Leader
最近,有一个词儿特别热门--躺平.有没有人跟你说过:"躺平说起来容易,做起来更容易." 和躺平相对的是另外一个词--内卷,群聊的时候,已经很多次看过草卷起来了.jpg表情包.某些节 ...
- 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- WiFi十五岁了:感谢它能让我们在厕所上网
无线俨然成为当下移动用户不可或缺的重要伴侣,在无线覆盖的区域意味着能够获取各种资讯或同好友进行即时通讯.无线带来了前所未有的技术变革,也颠覆了生活习惯,让用户可以访问Netflix或者在厕所浏览网页. ...
- 谈谈一些有趣的CSS题目(十五)-- 奇妙的 background-clip: text
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]
无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...
- 第三百五十五天 how can I 坚持
快一年了,三百五十五天了,等写个程序算算时间,看看日期和天数能不能对的上,哈哈. 计划还是未制定,天气预报还是没有写完,立马行动,发完这个博客,立马行动. 计划:设计模式1个月,三大框架3个月,计算机 ...
- WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
原文:WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经> ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十五)阶段总结
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 一 每个阶段在结尾时都会有一个阶段总结,在<SSM整合基础篇& ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
随机推荐
- 《算法导论》习题2.3-7 查找集合S中是否有两个元素和为X---Java实现
代码如下: public class MergeSort { public static void sort(int [] A,int p, int r) { if(p<r) { int q = ...
- linux命令学习7-jstat命令
最近维护的项目使用的是java开发的,所以对于jvm虚拟机相关的操作还是必须要了解的,就先从最基本的jstat来学习起来. 首先需要会的就是full gc的查看; 下面就从网上收集了一些工具介绍, 慢 ...
- tools_list
http://files.cnblogs.com/files/yansc/ExportQingtaoImage.rar
- 开源免费的C/C++网络库(c/c++ sockets library)补充
(1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html (2)Asio Asio基于Boo ...
- Struts加入拦截器后取不到页面参数
在Struts2的demo项目中添加了一个简单的拦截器,突然发现,Action中取不到页面的参数了 这也是很蛋疼的事情,还好这个比较简单,稍微一查就发现问题: Struts2中很多的功能是用拦截器实现 ...
- 写了一个复杂的sql语句
$sp_sql = "select sp_ProductNo, sp_ProductName,sp_Standard,sp_Unit,sum(sp_Amount) as amount fro ...
- MySQL5.6-Tomcat7环境变量的配置
一.MySQL环境变量配置(zip安装):系统-高级系统设置--环境变量--path添加D:\Mysql\bin 找到mysql解压目录下的my-default.ini文件修改 basedir = D ...
- vue-cli 官方模板webpack-simple的npm run dev 与npm run bulid的一些问题
npm run dev命令后并不会在dist目录下生成build.js文件,开发环境下build.js是在运行内存中的. 在package.json的scripts属性的dev后面加上--port 8 ...
- Angular - - $rootScope.Scope
这里讲的是一些scope的操作,如创建/注销/各种监听及scope间的通信等等. $rootScope.Scope 可以使用$injector通过$rootScope关键字检索的一个根作用域. 可以通 ...
- Spark算子总结及案例
spark算子大致上可分三大类算子: 1.Value数据类型的Transformation算子,这种变换不触发提交作业,针对处理的数据项是Value型的数据. 2.Key-Value数据类型的Tran ...