论.net平台的切身感触(惑)
这篇博客只是作者客观看法,不喜勿喷,条条大路通罗马,路不同风景也不一样,接下来的路该怎么走?
简介:作者.net程序员一枚,工作已有四年,接触过.net平台winform,webform,mvc的开发,目前主要是web开发这块,当前公司处于闲置状态,偶尔接下小单子,喜欢学习,对java与php都不排斥.
一.论.net开发人员锐减,何故?
java语言横空出世,面向对象等优势迅速让它风靡全球,微软不甘落后C#应运而生,特别是图形界面这块,winform后来居上,外人对.net的看法很多还停留在拖控件时代,asp.net也取得了非常不错的效果,淘宝的前身,京东就使用的asp.net,由此可见一斑,在面向对象编程语言里与java并驾齐驱,依稀记得C#当年的豪言壮语
十五年过去了,企业在诟病.net太难招了,良莠不齐,就拿web领域来说,php,java招聘就简单的多,节约了不少人力成本,这又是什么原因造成的?
1.薪资过低(3-4年工作经验,深圳标准)
.net 10-15k
php 20-30k
java 18-25k
android/ios 25k+
难以相信,为什么会有这么大的差异,莫非.net的就不加班?长的丑?
2.企业因素
.net 中小型企业
java 没有限制
php 没有限制
大企业里用.net的凤毛麟角(国内),企业的大小待遇简直是天差地别,你在一个小公司,人微言轻,兢兢业业工作存钱一年到头也就存几万块,还不如别人一个年终奖,是因为自己不够努力吗?
3.开发成本
平心而论,java并不是一门敏捷型(快速型,速成型)开发语言,但却是一门高度灵活,规范,重量级的语言,php除了上面的规范和重量级其它都符合,所以有一种非常搞笑的现象,三个程序员,java,php,.net分别去开发一个web程序,这里只有两种结果,如果在php涉及的范围(已经有类似php程序,如商城,论坛),毫无疑问php程序员轻松完成,.net居后,java最慢,另一种就是.net先完成了,如果是完成一个大工程,100人协作,毫无疑问java第一,做.net开发的时候我常常重复的做一件简单的事,业务变代码改,这是很正常的现象,很少能找到复用的项目(修改>重新开发的成本),做php的最舒服了,入门快,开源项目多,ecshop上面找找可以节约很多时间,在框架上面开发一套模板就好了,java不愁,大项目根本就没有类似的,慢慢开发就好了
4.软件成本
中小企业当软件成本 < 开发成本,基本上一台云主机,部署数据库 + iis就可以了,国人版权意识很淡薄,小东西用用盗版无所谓,在大企业服务器和数据库的成本将是一个庞大的数字,使用Linux + mysql多么完美的方案,幻象下windows server免费了估计也就没Linux什么事了,现在微软就在做一件非常有趣的事,把Linux上面能跑的东西都搬到windows上,比如redis,nginx.... windows10还内嵌了Linux子系统,.net开始开源,向跨平台发展这是一个好兆头.
二.论编程思想
入门简单深入难,这是大家经常听到的一句话,在php和.net尤为常见,当我们习惯了简单的开发模式就会排斥复杂的解决方案,习惯都是慢慢养成的,当我们习惯了就觉得理所当然,这里就拿mvc这个模式来举例,在.net里面是最简单,你不需要引用框架,不需要配置,直接创建mvc的项目就好了,新建一个控制器,在控制器Index这个方法里右键添加一个视图,写上一句hello word,运行项目,搞定收工,只需要明白mvc模式执行的过程(顺序)就可以了,.net程序员对微软真是太依赖了,假设微软不推出mvc这个模式,可能现在还是用webform,这种现象在java跟php里不存在,很奇怪,还有一个例子是在ORM这块,微软的EF性能是众多orm里比较差的,但是在.net里使用最广泛,仔细想想也就不奇怪了,连接数据库需要安装数据库驱动,很多人都不知道,但在java里是常识,微软把一切都封装的太完美了,换句话说你用微软的东西它都给你封装好了,谁有现成的不用还去研究那些东西呢,当没有现成的时候就束手无策了,这个世界不是平的,只会平地里行走的很难爬山,会爬山的人肯定会走平地,只是跑的没你快,然而宝藏大多藏在深山老林,一味指望微软铺路的人总有一天会被落下的.
论.net平台的切身感触(惑)的更多相关文章
- .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...
- java 平台 权限管理
最近在做公司内部的物流业务平台的权限管理,感触颇多.记录一下 权限管理分两部分:数据权限和操作权限. 数据权限: 这个是和用户相关的. 因为平台是多机构的,所以再考虑数据权限的时候,是按照机构来管理的 ...
- HTML5学堂 全新的HTML5/前端技术分享平台
HTML5学堂 全新的HTML5/前端技术分享平台 HTML5学堂是做什么的? HTML5学堂~http://www.h5course.com~由多名热爱H5的讲师们组成的一个组织.致力于构建一个前端 ...
- 20165309 《网络对抗技术》实验一:PC平台逆向破解
20165309 <网络对抗技术>实验一:PC平台逆向破解 目录 实践目标 基础知识 实验原理.内容及步骤 问题与解决 实验收获 一.实践目标 本次实践的对象是一个名为pwn1的linux ...
- NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)
原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...
- ITOO高校云平台之考评系统项目总结
高校云平台,将云的概念引入到我的生活, 高校云平台主要是以各大高校的业务为基础设计开发,包含权限系统,基础系统.新生入学系统.考评系统,成绩系统.选课系统,视频课系统.3月份參加云平台3.0的开发,至 ...
- Cocos2d-x--iOS平台lua加密成luac资源方法和Jsc文件<MAC平台开发试用--windows平台暂未研究>
首先要说.近期真的是太忙了.好久没写博客了,今天正好有空,就写一下近期在写游戏中的一些发现: 话说,基于Cocos2dx 引擎 + 脚本写游戏,至今的感触就是能够进行增量更新和即时编译 ...
- 课堂管理系统;在线教辅平台;java课设
# 白泽智慧教辅平台 **说明:** 运行时需要修改位置: bzedu\src\main\resources\application.properties bzedu\src\main\resourc ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
随机推荐
- 008 Java集合浅析3
在前面的几节里,本教程从整体架构上去把握了JDK中的集合框架,并简单分析了其中Collection组的顶级接口,知道Collection接口的常见直接子接口有List.Set和Queue,并就这三个子 ...
- ACM 阶乘数位数
描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 输入 首行输入n,表示有多少组测试数据(n<1 ...
- 挂接命令(mount) 【转】
收藏些文章,以后可能有用,文章出自:http://tutu.spaces.eepw.com.cn/articles/article/item/70737 挂接命令(mount) 首先,介绍一下挂接(m ...
- 配置adb环境变量
作为Android开发人员,会经常使用adb命令来进行push.pull.install.看数据库等.记录一下adb配置流程,以备后用. 在没有配置adb之前,我们打开Windows命令处理程序(cm ...
- Python自动生产表情包
作为一个数据分析师,应该信奉一句话--"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--表情包!!!! 表情包不仅仅是一种符号,更是一种文化--是促进社交 ...
- 为APP加入一个欢迎页面
###添加软件闪图使用的方法: new Handler().postDelayed(new Runnable() { @Override public vo ...
- 简单的add函数的N种写法
最近在学习es6,看到for-of这里,就想自己写着练习一下,于是就准备写一个小函数add来求和.函数很简单,如add(1,2,3)这样.于是我开始着手 一开始我是这么写的 function add( ...
- ISO c++ 14 重点介绍[译]
原文链接 http://marknelson.us/2014/09/11/highlights-of-iso-c14/ 下面是对你的日常开发有重大影响的C++14新变动,列出了一些示例代码,并讨论何时 ...
- requireJS 从概念到实战
requireJS 可以很轻易的将一个项目中的JavaScript代码分割成若干个模块(module).并且requireJS推荐一个模块就是一个文件,所以,你将获得一些零碎的具有互相依赖关系的JS文 ...
- Spring Boot 注解的使用
Spring Boot 优于Spring mvc ,SSM,SSH 的一个亮点就是他使用了好多的注解. 1. @Autowired 这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这 ...