【转】2015-新思想、新技术、新架构——更好更快的开发现代ASP.NET应用程序

在博客园学习很长时间了,今天终于自己也开通了博客,准备分享一些感悟和经验。首先感谢博客园园主提供了这么好的程序员学习交流平台,也非常感谢张善友dax.netnetfocus司徒正美 等技术大牛的无私分享,从他们身上学到了很多。还有我最近一直关注的田园里的蟋蟀,分享了很多新的技术和思想方法,在此也深深地感谢!

我自己一开始工作(2002年)就从事WEB开发(ASP.NET方向),到现在已经13个年头了,从初级程序员到技术经理、开发部经理、项目总监,再合伙创业,因缺乏企业经营经验,创业不算很成功,所以后来转入到企业管理培训和咨询行业工作了5年,以开阔视野、提升全面能力、积累人脉资源。2014年初进入到一家由上市公司投资的移动互联网创业团队,作为合伙人。最初主要负责产品设计,但很多设计好的功能和想法,开发团队的技术无法实现。只好自己研究现代WEB前端技术,做好标准和范例,开发好最难的前端部分,再交给开发团队实现后端。几个月后,开发团队交出来的成果还是差强人意,公司让我接管开发部,亲自领导开发团队。于是我招聘了其他产品经理分担一部份产品设计工作,我的精力更多放在了重建开发团队方面。

我接手开发部时已经招了一些两、三年工作经验的和几个十年左右工作经验的JAVA开发人员(因为总部公司有十几年的JAVA开发基因,在成立我们这个创业团队时,从以前的开发团队派的技术骨干,所以后端开发也选择了JAVA技术),我接手后又招了几个,但无论是开发效率还是质量方面,都很难达到预期。后来在准备一个新的O2O平台产品时,我在考虑了Java、PHP、Node.Js、ASP.NET后,最终选择了ASP.NET作为新项目的后端开发技术。选择ASP.NET的原因可以另写一篇文章,但简单来说,ASP.NET的新版本,开源和跨平台已不是问题,并且已拥有像Node.Js一样的全异步机制,C#语法简洁优秀。

在这段时间的招聘面试过程中发现一个很严重的问题,大多数无论是工作2、3年的还是5到10年的程序人员,基础知识、经验能力、对新技术的了解和运用,都差得让我难以理解,几乎没有什么技术特长或深入专研的领域。当然,因为我们是创业公司,工资标准受限,很难吸引到优秀人才来应聘,但工作了很多年的程序员,还仅仅只是会简单三层架构的数据增删改查,没什么技术特长和开发思想,连能准确回答“int类型是多少位,能表达最大范围是什么数量级,或者是2的多少次方”这个问题的面试者都几乎没有。对“依赖注入”熟悉的面试者几乎没有,应聘高级开发和架构师岗位的人能说得清楚缓存机制的也几乎没有。其实,这每一个知识点,在互联网上都能找到很详细的资料。我认为只要找到方向并努力学习和运用,半年时间已经可以超过大多数工作2、3年的人,认真努力2年时间可以超过大多数工作5年8年的人,因为大多数工作多年的程序员多数时间都在做重复的、没有提升性的工作。这段时间实在招不到满意的有经验的,所以让HR多招一些有强烈上进心的应届毕业生来培养。

我虽然入行的时间比较早,但只有前6年是在具体做技术开发,后边几年主要是做管理和为企业提供解决方案,较少具体写程序。我是从2014年又开始重新学习各类前端、后端技术,所以现在还是算一个新人,愿意向各位有经验的前辈学习,愿意与各位新人共同成长。

互联网上有很多好的经验分享,有很多好的开源项目,但相对也比较分散,我先列举一下这几个月以来学习并运用于项目的知识点,后面在详细写文章介绍我是怎么学习和应用的。

 

前端:

思想:响应式布局、单页面应用、图标字体、MVVM、JS模块化、JS模板引擎

技术/框架:HTML5、CSS3、LESS、Jquery、Bootstrap、Framework7

组件: Webuploader、Ueditor/Umeditor、Highcharts、Jquery.dataTables、Jquery.form、Jquery.validate、Jquery.Jcrop、Jquery.mCustomScrollbar、Spectrum、Toastr、BlockUI、SuperSlide,还有一大堆小的Jquery插件就省略了

 

后端:

思想: DDD(领域驱动设计)、TDD(测试驱动设计)、DI/AOP(依赖注入/面向切面编程)、模块化开发、异步编程、分布式架构、敏捷开发之SCRUM

技术/框架:Asp.net MVC5、C# 5.0、Entity Framework 6、xUnit+NSubstitute+Shouldly、aspnetboilerplate

工具:Git、VS2013、Sql Server、MongoDB、Redis

开源组件:AspNet.Identity、AutoMapper、Castle.Windsor、MiniProfiler

 

2015-3-16 16:00 补充:

本来想单独写一系列文章来分享abp框架,但今天有朋友问到,就提前补充分享一下,先发个git上的链接

https://github.com/aspnetboilerplate/aspnetboilerplate

 

顺便分享一些其他我认为有使用、学习和研究价值的项目:

https://github.com/OrchardCMS/Brochard   Orchard的vNext版

https://github.com/h5bp/html5-boilerplate   html5页面的样板

https://github.com/loresoft/EntityFramework.Extended   EntityFramework的功能增强

https://github.com/HangfireIO/Hangfire    非常短小精悍的后台任务组件

https://github.com/MiniProfiler/dotnet    监测.NET后端和Web前端每一个步骤的耗时毫秒数,可查看EF生成的SQL

https://github.com/JeffreySu/WeiXinMPSDK   微信公众平台SDK的C#版,包括企业号的SDK

 

2015-3-16 17:40补充

有些朋友在问我们的招聘事宜,我刚在博客园发布了3个招聘岗位:

http://job.cnblogs.com/Enterprise/30971/

 

希望看到这篇博客的朋友多看看下面的评论,我在对评论的回复中写了很多信息。

感觉用互动的方式,表达起来效率会高很多。

 

由于时间关系,今天简单贴几张图,改天重新发布文章详细介绍开发框架的功能与特性。 

 

项目结构(模块化开发)


   

 

 代码风格:

Application层的代码简单得不需要写注释!

权限验证、数据验证、异常处理、事务处理、数据转换等全在基础架构上完成,模块开发者不需要写这些代码。

Application Service的方法可以自动生成Web Api的方法,客户端Ajax直接调用,不需要写Controller。

Application Service的方法都自动应用了UnitOfWork(工作单元)模式,除了以Get开头的方法,其他方法自动开启数据库事务。

 

权限验证、数据验证、异常处理、事务处理、数据转换等全在基础架构上完成,模块开发者不需要写这些代码。

Application Service的方法都自动应用了UnitOfWork(工作单元)模式,除了以Get开头的方法,其他方法自动开启数据库事务。

 

这段时间一直在优化开发框架、编码标准和流程,现在已经差不多了,明天开始对这周到岗的新人开始培训。

如果有正在找工作的朋友,也可以联系我来公司面试。

 

——————————————————————————————————————————————————————————————————————————

 

再贴一些以前项目中的前端界面截图(以下不是上面那些后端代码 所对应的前端,不是同一个项目,但都是我亲自做的前端)

 

 

*()()无关图片()()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

哇噻,时间已经太晚了,快快睡觉!

改天重新发布文章详细介绍开发框架的功能与特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作篇-佛山三水恒大-2020.10.23

** 工作篇-佛山三水恒大-2020.10.23 **人生第一次工作啊啊啊啊啊 其实按道理来说,第一次应该会很很紧张吧,不过我倒没有。 也不知道是我不怕还是什么,一切进行的挺顺利的。 前言:讲真那句,第一次做的话,…

UWP 使用OneDrive云存储2.x api(一)【全网首发】

最近开发人脸识别UWP【微识别 / WeRecognition】用到了OneDrive开发,下面把来龙去脉讲一下。 下载地址 https://www.microsoft.com/store/productId/9PDSNS7X9ST9,商店火爆热销中。。。。。。 由于UWP是跨平台的,一套代码可以运行在所有Wind…

UWP 使用OneDrive云存储2.x api(二)【全网首发】

上一篇提到为了给用户打造一个完全无缝衔接的最佳体验,UWP开发者最好也要实现App设置和数据的跨平台 分析了数据漫游和OneDrive的优缺点,结合自己App实际需要,我选择了OneDrive。 毕竟数据漫游100KB不够用啊。。。 这一次给大家我千辛万苦找…

在Sharepoint 2010中使用ReportViewer控件展示RDLC报表

微软的Visual studio提供了ReportViewer控件以及RDLC报表设计工具。下文主要介绍如何在Sharepoint 2010项目开发中使用ReportViewer和RDLC生成项目报表。由于Sharepoint 2010默认是禁用Session的,而RDLC报表必须启用Session。因此在Sharepoint的站点中要使用RDLC生成…

工作篇-佛山三水恒大-2020.11.13

** 工作篇-佛山三水恒大-2020.11.14 **TAG:此篇文章估计会很长,因为工作的时候变数太多了,预计五千字左右,想看的可以耐心看完,均为个人实战经验.害,其实是上学期间请假去做的,还挨批了. **到了现场tm的那个机房,小到我哭,站都没地方站,刚装修好全tm都是白灰,我穿的一身黑衣…

Windows Workflow Foundation(WWF)介绍

Windows Workflow Foundation:支持基于工作流的应用程序 工作流是一个简单思路:按照特定顺序执行的一系列步骤。您甚至可以认为每个应用程序都在执行工作流,因为每个应用程序都执行某些过程。但是,在使用 C#、Visual Basic 或其他…

CCNA-第五篇-基础命令集+设备升级+设备破解密码+IP地址{精髓篇}

** CCNA-第五篇-基础命令集 ** 1.基础命令集 思科设备 : IOS 华为设备: VRP 启动步骤:加电自检-加载系统(IOS/VRP)-运行配置(保留的cfg或者conf文件) 命令行统一称为CLI,CLI是啥呢,命令 简介:CLI一般指命令行界面。…

你还记得windows workflow foundation吗

很多年前,windows workflow foundation还叫WWF,而直译过来的名称让很多人以为它就是用来开发工作流或者干脆就是审批流的。 博主当年还是个懵懂的少年,却也知道微软不会大力推一个面向如此具象的业务场景的技术,于是特地找了一本…

SharePoint Desiger编辑模板时提示“服务器错误,拒绝访问”的解决之道

这篇文件已被微软收藏。http://technet.microsoft.com/zh-cn/ff683721.aspx各位同志好,很多同志都用过SharePoint designer来编辑模板。经常出现“服务器错误,拒绝访问”。场景描述:我们办公电脑是XP系统。XP系统我们是用自己的域用户名密码登…

CCIE理论-第六篇-SD-WAN网络(一)

** CCIE理论-第六篇-SD-WAN网络 ** 1.SD-WAN介绍 1.什么是SD-WAN SD-WAN Software Defined 软件定义WANWide Area Network 广域网外网通俗的说企业网关可以慢慢的代替传统组网(大趋势)主要作用,省钱,简单,智能.易管理 传统方式 -Internet专线 (固定IP上下行带宽对等) -PPPOE …

【转】TFS测试管理

微软2010年发布的Visual Studio 2010或Visual Studio Test Professional 2010包含一个称为 Microsoft 测试管理器的新应用程序,用于帮助您使用测试计划来定义和管理测试工作。 Microsoft 测试管理器通过Team Foundation Server 集成,使您可以方便地进行测…

CCNA-网络常用工具介绍篇

链接:https://pan.baidu.com/s/1Mo3B9LR6YF4YfzSkMwn5OA 提取码:7dc7 这是免费提供滴工具,虽然其实都能用到,不过也就发发了. 第一个呢是EVE,是基于VM下的,就是模拟器来的.里面有ova直接拉进去vm里面开机就可以使用了.前面好像也发过 第二个是ENSP,是华…

敏捷项目管理过程改进

一、为什么敏捷? 目前大环境智慧城市、人工智能、大数据,面向To B的业务等,在要求产品管理需要快速的需求响应,项目管理需要更强的整合协调。复杂的大环境,就在推动我们用最敏捷的方式迎接这个多变的市场。 二、传统和…

CCNA-第六篇-静态路由+动态路由开头

** CCNA-第六篇-静态路由动态路由 ** 一,路由概念 什么是路由? 路由呢,应该说是除了IP以外在网络世界中最重要的东西了 万物互联,互联网,都是基于路由的,前期的啥静态动态,后期的MPLS,包括看到的VPN,虚拟专线等.都是基于路由的,就是像建房子那样,你最得把地基打好才能做其…

【转】敏捷开发,你真的做对了吗?

缘起 2017年3月,应移动事业群智能营销平台项目管理部负责人邀请,我开始支持智能营销平台CRM团队。智能营销平台是阿里文娱广告团队,是阿里巴巴淘外变现的主力军。CRM团队负责开发和维护CRM系统。CRM系统服务于销售和代理商,串起商…

CCNA-第七篇-思科私有路由协议-EIGRP-初级

CCNA-第七篇-思科私有路由协议-EIGRP 首先呢这个EIGRP之前呢, 路由协议是分几种的 一个叫距离向量协议RIP,IGRP(都过时了) 一个觉链路状态协议OSPF,IS-IS这些 还有个叫混合型的EIGRP 但是呢,这些只是书本上的定义,实际上没人会跟你说这个东东 这个怎么区分呢? 第一个呢,只传递…

CCNA-第八篇-OSPF-上

CCNA-第八篇-OSPF OSPF,最常用的路由协议,他来了他来了 OSPF呢怎么说呢 是一个比较重要而且比较基础的点,出到去外面要是说不会OSPF,那还算啥网络工程师 但是呢,他也不是那么的完全重要.因为很多小地方压根就用不到.但是列你不能不会呀 到了OSPF呢,配置就会逐渐的多那么一点点…

CCNA-第九篇-OSPF下+VLAN开篇初介绍

CCNA-第九篇-OSPF下VLAN开篇初介绍 补充一下官网的PPT对于DR/BDR的描述 邻居-drothers 和drothers之间的关系–2WAY 彼此之间只会交换hello包来让邻居正常通信,不交换LSA 邻接-dr/bdr/drothers的关系,-FULL 交换hello包与LSA信息 224.0.0.5-公用 224.0.0.6-仅有DR/BDR监听 其…

CCNA-第十篇-VLAN-下

CCNA-第十篇-VLAN-下 讲真,这个技术点没啥好讲的,很好理解.也很基础 通俗的说就是一个框框. . 其实理论上来说呢,CCNA是应该先教交换的再到路由的,哈哈,不过倒过来了,倒就倒吧.这里开始讲交换技术 LAN-内网 WAN-外网 VLAN虚拟局域网(一般用于内网) 交换机可以转发广播数据…

Office Web Apps安装部署(一)

系统要求为Windows Server 2012, 注意:安装Office Web Apps的服务器除了Office Web Apps之外,不能安装其他应用。包括不能安装Office,lync,,sharepoint等应用,即要单独部署。 安装IIS 7.0 打开服务器管理…