这篇博客只是作者客观看法,不喜勿喷,条条大路通罗马,路不同风景也不一样,接下来的路该怎么走?

简介:作者.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平台的切身感触(惑)的更多相关文章

  1. .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...

  2. java 平台 权限管理

    最近在做公司内部的物流业务平台的权限管理,感触颇多.记录一下 权限管理分两部分:数据权限和操作权限. 数据权限: 这个是和用户相关的. 因为平台是多机构的,所以再考虑数据权限的时候,是按照机构来管理的 ...

  3. HTML5学堂 全新的HTML5/前端技术分享平台

    HTML5学堂 全新的HTML5/前端技术分享平台 HTML5学堂是做什么的? HTML5学堂~http://www.h5course.com~由多名热爱H5的讲师们组成的一个组织.致力于构建一个前端 ...

  4. 20165309 《网络对抗技术》实验一:PC平台逆向破解

    20165309 <网络对抗技术>实验一:PC平台逆向破解 目录 实践目标 基础知识 实验原理.内容及步骤 问题与解决 实验收获 一.实践目标 本次实践的对象是一个名为pwn1的linux ...

  5. NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(转载)

    原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_FluentValidation_1.html 阅读目录 1.基本介绍 ...

  6. ITOO高校云平台之考评系统项目总结

    高校云平台,将云的概念引入到我的生活, 高校云平台主要是以各大高校的业务为基础设计开发,包含权限系统,基础系统.新生入学系统.考评系统,成绩系统.选课系统,视频课系统.3月份參加云平台3.0的开发,至 ...

  7. Cocos2d-x--iOS平台lua加密成luac资源方法和Jsc文件&lt;MAC平台开发试用--windows平台暂未研究&gt;

        首先要说.近期真的是太忙了.好久没写博客了,今天正好有空,就写一下近期在写游戏中的一些发现:     话说,基于Cocos2dx 引擎 + 脚本写游戏,至今的感触就是能够进行增量更新和即时编译 ...

  8. 课堂管理系统;在线教辅平台;java课设

    # 白泽智慧教辅平台 **说明:** 运行时需要修改位置: bzedu\src\main\resources\application.properties bzedu\src\main\resourc ...

  9. 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. ...

随机推荐

  1. 模拟Struts2框架Action的实现

    1.具体项目结构如下:

  2. WF学习思维导图

    原文 来自我的有道笔记-老文重发系列 如果配置加载核心服务,那么需要将持久化服务和跟踪服务放在一个数据库中!   1.用工作流的优点 a.提供将复杂任务分解的途径,通过将每个操作分解到活动中更便于业务 ...

  3. css布局与盒子模型

    一.    盒子模型 注: 1.红色为border; 2.背景应用于内容.内边距.边框组成的区域: 3.Width和height指的是内容区域的高度和宽度. 边框属性: 1.  padding属性:( ...

  4. Android知识点网址

    1.proguard字段详解 http://blog.csdn.net/jddkdd2/article/details/8858909 2.android提示框(时间,普通单选.多选对话框),常用控件 ...

  5. Linux块设备驱动(二) _MTD驱动及其用户空间编程

    MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化 ...

  6. C++ Primer 5 CH4 表达式

    4.1 基础 函数调用也是一种特殊的运算符,它对运算对象的数量没有限制. C++ 的表达式要么是左值,要么是右值.左值可以位于赋值语句的左边,右值则不可以. 当一个对象被用作右值的时候,用的是对象的值 ...

  7. es6 箭头函数(arrow function) 学习笔记

    箭头函数有两个好处. 1.他们比传统函数表达式简洁. const arr = [1, 2, 3]; const squares = arr.map(x => x * x); // 传统函数表达式 ...

  8. [UWP]了解模板化控件(3):实现HeaderedContentControl

    1. 概述 来看看这段XMAL: <StackPanel Width="300"> <TextBox Header="TextBox" /&g ...

  9. 大数据学习记录之ssh绵密登录

    1,在服务器端 ssh-keygen 2,使用ssh-copy-id 192.168.2.146 3,再测试一下ssh 192.168.2.146 exit 退出当前登录 具体流程为:A,B两台机器 ...

  10. 【C#】组件分享:FormDragger-窗体拖拽器

    适用:.net2.0+ winform项目 介绍: 类似QQ.迅雷等讲究UI体验的软件,都支持在窗口内多处地方拖动窗口,而不必老实巴交的去顶部标题栏拖,这个组件就是让winform也能这样随性拖拽,随 ...