常常在一些技术社区看到这些的问题,一个.NET开发者去求职,看到应聘的公司的技术栈仍是比较老的ASP.NET WEBFORM的时候,但愿了解将来会否使用ASP.NET MVC的时候,没有得到确定答复,因而就放弃了这一份机会,以技术选企业,是否必要?前端
最近我在开发一个开源的微商城系统OdnShop,发布以后,有些用户就问,怎么不是ASP.NET MVC的?不支持MSSQL吗?要上.NET CORE了,诸如此类的问题。固然这些问题并无标准答案,从技术本质来讲,技术只是用来解决业务问题的一种手段,因此技术的新旧并非考虑的核心,但开发效率,维护成本,稳定性等等确实必须考核,由于他会影响投入,影响收益。git
因此,我想就.NET程序员如何看待新技术,如何选择新技术,提供一种个人思考,但愿你们理性思考,理性讨论,不要把某种框架,某种技术做为一种宗教信仰。程序员
一,WEBFORM OR ASP.NET MVC?数据库
WEBFORM的本意是很好的,就是但愿把桌面开发的那一套拖拉控件的模式借鉴到了WEB开发,若是你开发过WINFORM就应该知道,拖拉控件实现GUI是很方便,固然了要实现很炫酷的GUI的时候,就不容易了,由于须要深刻了解控件的原理以及GDI等技术,可是WEB就不一样了,HTML+CSS能够实现很美观的界面,只要想的到,均可以作的到,可是由于基于HTML标记语言,多了一个标记,界面就可能发生变化,而基于WEBFROM拖拉出来的控件,常常会生产出一堆的无用的标签致使页面效果达不到预期,为了达到预期目的,反而须要花不少时间了解控件的用法,甚至本身重写控件,这样就失去了本来的意义,开发门槛和开发效率反而没有获得提高。因此ASP.NET MVC就很成了你们但愿的新选择了。框架
可是我想表达的是MVC是一种好的设计思想,但MVC并不等同与ASP.NET MVC,ASP.NET MVC只是官方提供的一种最佳实践的框架。并且MS的技术体系,有时候每每确实先后的连贯性,想一想这些年,MS推出了多少新技术,新框架,不少人花了不少时间去学习,最后可能连个像样的DEMO都没有作出来,那个技术,那个框架已经成为过去式了。学习
ASP.NET MVC只是其中一个,个人观点是MVC依然是一种好的思想和理念,会一直存在和发展下来,可是ASP.NET MVC1到ASP.NET MVC6,将来会走向何方,只有MS才知道,因此若是你计划作一个新项目,不管是选择WEBFROM仍是ASP.NET MVC都是能够,那种技术你擅长,你熟悉,可否快速提供给客户一个稳定可用的解决方案,那就是一种好的技术,可是若是你计划研发一个产品,我认为WEBFORM和ASP.NET MVC都不是很好的选择,产品的生存周期每每比较长,而MS的技术更新换代就比较频繁,产品总不能年年都重构,年年换框架吧,且不说须要投入大量的人力时间,还可能引入一堆的BUG。因此如何开发产品,个人观点是既可使用WEBFORM好的一面(好比后台,用控件的方式,有时候开发效率很是高效的),也会借鉴MVC的优秀思想(在前端,更好的实现代码和界面分离等),但尽可能不使用太多的框架,而是本身根据产品的发展和须要,本身去实现,好比MVC,彻底能够根据本身的须要,实现一种轻量级的MVC框架。网站
二,MSSQL OR MYSQL ?云计算
一直以来,.NET + MSSQL基本是标配,开发.NET系统,基本都会搭配使用MSSQL,但自从用了MYSQL以后,我就不多用回MSSQL,不是说MSSQL很差,而是MSSQL太笨重,某些简单的问题,好比分页,MYSQL就很是容易,MSSQL早期版本还须要搞个存储过程来实现,新版本提供了新的语法,可是又没法向下兼容,可是MYSQL在一些复杂的联合查询是没有MSSQL强大的,具体特性我就不去比较了,毕竟每种数据库各有其优缺点,做为一个普通开发者,也没有办法彻底去吃透两种数据库的全部特性,以我我的使用的经验,我以为企业MIS选MSSQL会比较好,而互联网产品,选MYSQL会更好一些,由于轻量,资源友好型。操作系统
三,.NET OR .NET Core ?设计
一直以来,MS的技术只能运行在WIN系统,自从.NET CORE的推出,彻底改变了旧有的技术观念,那么.NET CORE是否值得选用,值得期待,我认为:值得!
首先,拥抱更加开放的技术符合时代潮流,多一种选择,老是好事,固然了,若是你是本身开发的产品,本身用,就只跑WIN也没啥很差!
其次,我曾经开发一个搜索产品,基于.NET开发的,我遇到不少潜在客户来咨询,他们的网站是使用PHP,跑在Linux上的,问可否支持Linux,若是从开发产品的角度来讲,能支持多一种操做系统,意味着更多的潜在客户。
再次,.NET CORE会不会中途就不了了之,MS的新CEO上台后,MS的发展方向已经很清晰了,WIN的地位已经降低了,公司营收愈来愈依赖云计算,这说明MS用不着把.NET绑死在WIN上,VS都有MAC版本了,MS已经愈来愈开放了,不是MS想通了,要开放了,而是开放了能更赚钱,能帮助企业赚钱的方向,企业会放弃,不了了之吗?
总之,对待新技术,新框架,不要作一个宗教式的技术狂热者,而是作一个理性的实用主义者,慎重选择框架类技术,好比WPF,ASP.NET MVC等,积极拥抱大方向,好比.NET CORE。本文只是我我的的思考,欢迎理性讨论!