日期:2014-05-17  浏览次数:20477 次

用了WEBFORM快7年了,没用过MVC,我这样算是学偏了么?
本人大专学历2005年毕业,2006年才找到的第一份工作,在第一份工作之前见习了2次。2005年第一次实习800,2006年第二次实习520工资- -。

2006年6月~2007年2月,我第一份工作ASP,税前1500,老板手把手教我,所以学了很多东西,虽然都不深,但是对我很有用,如FSO+模版用生成静态页面,XMLHTTP来获取页面的HTML代码,用正则获取HTML代码中我想要的信息,如何定时生成静态页面,购物车的逻辑,商城的购物的逻辑,等等技术。

2007年1月开始学习c#~2007年4月,web方向,那自然学的ASP.NET WEBFORM,当时记得看“天轰穿”的视频学得,解说蛮风趣的,不像其他视频教程那么死板,学了3,4月就出去找工作了。

2007年5,6月找到第二份工作~2008年1月,公司就我一个人写ASP.NET,税前3000,写ASP.NET网站,完全没人教,都是用以往ASP的编程概念去开发,SQL没用@参数,SQL语句可以被注入- -,完全没面向对象的概念,不过知道了c#中实现XMLHHTP可以WebClient,FSO被IO替代,对页面生命周期完全不了解,一开始不会使用用户控件,之后会了,也只是把用户控件完全只是当作以前的asp中的include来使用。2008年1月还没过年被公司辞退,原因说我比较内向。1年后才知道原来是得罪了我上司,所以被开。

2008年2月痛定思痛补了一下C#面向对象的概念,4月找到了第三份工作~2010年4月,税前4000->4400->?还没等到老板给我加工资我就离开了。还是没人教,工作中知道了原来还有SVN这种代码管理工具,虽然平时公司都不怎么用,就是和其他公司联合开发时才用,公司才我和一个小姑娘2个程序员,那时接触到了HttpModule,HttpHandle,SQL的BCP命令,SQL AGENT设置JOB,使用存储过程,还在网上找了个通用分页存储过程,后来经过自己实践,得出这个通用存储过程由于用EXEC执行拼接的SQL可以被注入的论点,就知道要把1个单引号替换成2个单引号,其他程序已经用@参数了;开始自己写代码生成器,使用GDI++处理图片,开始学习写自定义控件,虽然知道继承接口,用到委托和事件,但是不知道其原理,知道如何手动设置聚集索引,第一次在网页中WebBrowser来对目标网页进行截图。

2010年7月-至今,税前6000->7000->9000->1W以上,还是没人教,那自学呗,开始使用SQL2005的row_number()分页了- -,使用扩展方法,学会使用反射,通过反射可以自动把IList<T>中的T数据用NOPI来自动生成含有T数据记录的EXCEL,从而不用手动设置每个T的属性到NOPI中sheet的每一列。重写了代码生成器,使用WebBrowser自动登录抓取新浪微博某些关键字的所有信息,好好学了学自定义控件的开发,继承CONTROL那种,开发了一个类似Repeater的控件,而不是直接继承Repeater来扩展他。从中知道了ASP.NET的WEBFORM生命周期是多么重要,觉得那些禁用VIEWSTATE的人还不如直接MVC算了,但是还是不怎明白为什么BUTTON被提交后,会执行自动生成BUTTON_CLICK方法。直到之后看了点设计模式,知道了观察者模式的机制,此后委托和事件就迎刃而解了,也就知道了为什么BUTTON被POSTBACK后执行页面的BUTTON_CLICK的方法,如果是用VS2003开始的朋友,可能更容易理解事件,因为在init里面你会看到Button.Click+=new EventHandler(Button_Click),而用VS2005开始就屏蔽了这些细节,我从VS2005开始用的所以一直不理解。

前段时间一直在看“你必须知道的.NET”,我强烈推荐看一下,这本书教了我很多,觉得之前我c#基础实在太差了。知道了值类型和引用类型在内存中是如何分配的,GC是如何执行垃圾回收的,改如何释放非托管资源,为什么string特殊。委托,lambda,匿名方法3者的关系,以及各个framework版本中改如何写委托实例,如:1.1时只能Button.Click+=“方法名”或者Button.Click+=new EventHandler(“方法名”),2.0可以使用匿名方法Button.Click+=delegate(object o,EventArgs eventArgs){//逻辑};3.0后可以Button.Click+=(o,eventArgs)=>{//逻辑}; IEnumerable.Where(o=>o.属性==条件)的原理;这两天在看泛型,以前只知道IList<T> lists=new List<T>();但是让我自己设计一个自定义泛型类,我却无从下手,现在看了下了下泛型,觉得原先很抽象的泛型感念也没那么模糊了,知道了泛型类型,泛型委托,泛型方法,泛型约束,现在可以设计一个自定义的泛型类了。

至于WINFORM方面,自己的经验也就是写写简单的代码生成器,游戏HOOK程序和小脚本,实现了最简单SOCKET公众聊天室,SERVER端部署到远程服务器上后,可以和本地客户端进行通信,这个我蛮开心的,终于会用SOCKET了,虽然很稚嫩,但是很满足了,知道了如何在多线程环境下控制UI线程上的控件,和简单数据同步。唉,这些都没人教,都是自学的,我想大多数.NET程序员都像我这样自学的吧。

.NET方面工作都是基于ASP.NET WEBFORM,开发大点的网站倒是使用免费的cms,没接触过ASP.NET MVC,甚至没用过entity framework,也没用过其他框架,一直使用最原始的webform,我是不是很落伍了?如果出去找工作ASP.NET WEBFORM现在是不是比较难找了?
------解决方案--------------------
其实不算落伍,学无止境了,加油!
------解决方案--------------------
我从06年年底开始到现在跟你差不多时间,一直都是webform。。。。。从来没用过MVC,虽然对MVC有所了解,但没实际真正用它做过项目,现在开发都是BasePage+ajax的方式,拖控件的方式已经被屏弃不用起码3年了,但如果一定要说MVC有多好感觉也没必要,除非是做项目的软件公司,否则互联网公司MVC用的还是非常非常少的

然后问一下LZ是在哪里工作的啊??为啥后面每年都能涨1000啊。。。。
------解决方案--------------------
现在都在转mvvm啊
楼主继续学
------解决方案--------------------
感觉楼主已经比较不错的,但是有个疑问,楼主在这个行业混了7-8年了,还这么没底,虽然我经验不足??,但是没用过mvc就找不到工作??,mvc可以理解为另一种框架,并不是每个公司都用,你看看招聘网站,有的要求会mvc,很多数并没有要求mvc,因为那些公司还在用自己的框架来生产,对于老板来说,能生产产生效益就行了,现在你从网上看招聘,还有很多招asp呢,照例说asp早该淘汰了,照样有用的
------解决方案--------------------
mvc减少了大量没有技术含量的工作。
更容易测试。
------解决方案--------------------
还是多做项目吧,多学习项目框架知识,这个还是比较不错的,其实,我也是尝试看很多博客,自己虽然是初学者,但是也看到很多大牛,即使有了mvc,但是由于知识渊博,所以人家就剖析mvc,学习底层的东西,然后自定义开发,就像自定义开发控件那样,继承之textbox,或者webcontrol等,进行扩展,然后,人家就扩展成一个小型的mvc框架,然后在别的地方直接用这个框架,看的我直流口水,羡慕嫉妒恨,所以,水平高了有了底层的知识什么都不怕,但是看楼主的工资一直挺高的,所以,找一个招高级程序员的公司吧,然后也不一定用mvc,然后利用别的时间再学习mvc