学了.Net能做什么开发
上篇文章《学.Net还是学Java?》中我阐述了不同语言学习的不同点,如果你开始决定学习.Net了,那么你的下一个问题很可能是学了.Net我能做什么?
.Net目前主要的开发方向是:Web开发、桌面系统开发、移动开发。
Web开发通俗的说就是开发网站,包括类似于大众点评网等这样的互联网以及OA等内网系统,Web开发是目前.Net开发的主要方向,大部分招聘.Net的职位都是做Web开发,以我教的传智播客.Net班为例,2010年几个就业班的学员90%以上到的都是Web开发方向的职位。
 桌面系统一般指的是使用WinForm技术开发Windows软件,比如以Windows软件形式运行的仓库管理系统、图书管理系统等,也就是一般说的C/S开发(不严谨的说法),目前很多公司都有WinForm开发的产品,不过由于大部分公司的产品都开始转向基于Web的版本,WinForm版本都处于维护状态,因此基本不再招聘WinForm版本的新员工。
移动开发主要指的是手机开发。.Net手机开发目前主要是WindowsMobile的开发,目前中国大陆地区Windows Mobile开发的工作非常少。微软在今年(2010年)推出了WindowsPhone7
(简称WP7)手机操作系统,微软在WP7手机操作系统的推出上继续采用了微软一贯的落后半步、后发制人的战略,微软惯于后发制人,比如当年就曾经用IE干死了曾经领先一时的Netscape浏览器,再比如.Net更是从先行者Java口中夺下了半壁江山。因此我个人非常看好WindowsPhone的前景,预计在2011年底WindowsPhone将会在移动市场上掀起狂澜,对移动开发感兴趣的朋友可以提前关注一下WindowsPhone的开发。 
       微软在技术的延续性上做的非常好,无论是Web开发还是WinForm开发还是移动开发,他们采用的技术都是相通、相近的。因为他们都是基于同一个.Net Framework进行开发的,调用的语法、类都是一样的,学习的时候只要学习特有的小部分内容就可以了,比如访问数据库都是ADO.Net、系统间通讯都是WCF。对于想学习.Net抓紧工作的同学可以先以Web开发方向为主要学习方向,关于Web开发方向要学什么东西、怎么学,我将会在下一篇文章中介绍。
        移动开发市场将会越来越大,微软现在推广WindowsPhone的力量非常大,而且商业策略非常厉害,因此我预计在2011年底WindowsPhone将会在移动市场上掀起狂澜,到时候WindowsPhone开发也将会带来非常多的工作机会。
        如果对WindowsPhone开发感兴趣,可以在把Web开发掌握熟练后提前做知识储备。因为WindowsPhone界面用Silverlight,可以先学习Web下的Silverlight,这样也不需要安装额外的开发环境,掌握了Silverlight再学WindowsPhone开发就会轻松很多了。
        对于移动开发来讲并不是只有手机客户端的开发,还会涉及到服务端的开发,所以ADO.NetXMLWCFASP.Net等服务端编程技术同样需要学习。WindowsPhone是移动设备操作系统,手机作为一种移动终端,必须与服务器端结合才能发挥巨大的作用。WindowsPhone是为移动互联网时代量身打造的,移动互联网时代的服务模式是手机终端+互联网络+应用软件也就是所谓的云终端+服务器。比如开发一个查询公交线路的手机软件,WindowsPhone端只是一个交互和展示页面,具体查询、运算逻辑是放在服务器端的,手机端软件向服务器发出查询请求,服务端进行查询、运算,然后将运算结果返回给手机端软件,由手机端软件进行显示。除去手机单机游戏、短信管理、播放器等完全不需要服务端支持的应用之外,大部分手机应用都是需要服务端支持的,比如邻讯、淘宝手机客户端、金蝶随手记、手机版金山词霸、新浪手机微博等。WindowsPhone只是承载移动终端软件的操作系统,而服务端技术用于开发互联网络应用,所以未来移动互联网时代软件的主流应用模式将是手机客户端+互联网络应用服务端,这种模式要求做移动互联网开发的程序员
不但要掌握WindowsPhone这样的手机终端软件技术还要掌握开发互联网络应用的服务器端技术。
.Net应该学什么怎么学
上篇《学了.Net做什么开发》中我讲到了目前.Net开发主要方向是Web开发,因此在本篇中我将主要讲解做Web开发要学哪些东西,怎么学,由于内容比较多,我将分几次发。下图是我推荐的学习内容和学习顺序(除了这里列出的内容,要走向高手之路肯定还有更多技术需要学习,我这里只是对于初学者列出的主干学习内容,并不是全部):
    开发者口中的.Net全称是.Net Framework,在中国大陆,一般将.Net读作道特耐特(中文音标比英文音标更好读,呵呵)或者点耐特.Net是微软推出的一门技术,它是一个技术平台,基于这个平台进行开发可以简化很多工作。关于到底什么是.Net,不是一两句话能说清楚的,而且也没办法让初学者理解到底什么是.Net,因此你只要记住.Net这个词,随着我们越学越深入,你就会理解.Net到底是什么东西了。
    基于.Net平台上有很多语言,比如C#VB.NetIronPythonF#Powershell等,F#Powershell是满足特定用途的语言,IronPythonIronRuby等并没有广泛应用,VB.Net是仅次于C#的第二大基于.Net的语言,不过按照微软的战略是把主要精力放到C#上,VB.Net只是微软为了将VB开发人员平滑的转移到.Net平台下的语言。因此对于语言来说大家学习C#即可。C#在中国大陆的叫法一般是“C sharp(C煞普)”,也有少数人读成“C,我不推荐这种叫法。
    初学者可能会弄不清C#.Net的关系,.Net是一个技术平台,而C#是这个技术平台上的一门语言,就像Windows是一个操作系统,而WordQQFireFox则是在Windows上运行的一个程序。初学者不必纠结于这个概念,不是很明白也没关系。
    .Net的开发工具是VisualStudioVisualStudio现在有VisualStudio2005VisualStudio2008VisualStudio2010等版本,注意不要纠结于到底装VisualStudio2005还是VisualStudio2008,听说有的公司还在用VisualStudio2005”到底是用新版本的VisualStudio2010还是用VisualStudio2008”这样的问题,因为这些版本并没有本质的不同,使用方法都类似,就像你会用WindowsXP,换了Windows7以后经过短暂的熟练会用Windows7了一样。因为VisualStudio2010比较消耗资源,如果你的计算机配置较好可以安装VisualStudio2010,如果配置较差则推荐安装VisualStudio2008
    要学习Web开发一定要按照正确的顺序进行学习,很多人被一些《21天精通学习编程的单机游戏***》这样的垃圾书的影响,不学C#、不学.Net Framework、不学Dom,直接上来就学ASP.Net,拖两个控件、配两个属性、双击控件写一个事件响应方法,就开始自诩精通ASP.Net”,照着书控件拖来拖去,可是连C#.NetASP.NetHTMLJavaScript之前的关系是什么都不清楚,闹出了很多笑话。欲速则不达,速成的结果就是以后浪费更多的时间,回想这么多年你走过的路,有多少次为了走快点就跳着走,最后又浪费时间返工的事情,按照正确的顺序才能更快、更好的掌握.Net
    有的人可能认为我不想成为高手,有一口饭吃就行了,会拖控件就行了呗,千万不要以为会不拖控件的开发就是高手了,高手没有那么好当的。我没有奢求学编程的人个个都是以成为世界顶尖级程序员国内.Net开发者中的知名开发者为目标,这个也不现实,大部分人学编程只是看做软件开发工资不低,想赚几年钱娶媳妇生娃,这种想法并不是多没出息的想法,毕竟老婆孩子热炕头是最朴实的幸福,你不需要背负振兴中国软件产业这种的重任,但是最起码应该到一份不错的工作,工作几年以后能有钱交得起房子首付(对于大部分人来讲,能够交得起首付成为房奴都是很奢侈的事情)、每月供月供吧,如果只会拖控件的话就不是能不能成为高手的问题,而是能不能养家糊口的问题了。
    下面来详细讲解学习的各个步骤:
一、C#面向过程编程。
    学习C#语言分为C#面向过程编程和C#面向对象基础两部分。听到“C#面向过程编程有人会问了“C#不是一门面向对象的语言吗,哪儿来的面向过程编程?,其实面向对象不是代替面向过程的,面向对象是面向过程的一个补充和发展,面向过程就是代码逐行执行,面向过程就是if/else,面向过程就是for循环,面向过程就是变量、函数,C#中最基础的也是iffor
、变量、函数等这些东西,这些东西就是C#的面向过程部分。对于编程的初学者来说,最难的不是类、继承、控件、ASP.NetAJAX之类神乎其神的东西,而是“程序化的思维方式”,也就是怎么把一个问题的解决方式用计算机的思维方式进行描述。
    我接到过很多想深入学习.Net学生的咨询,当我问到你的.Net基础怎么样的时候,很多人都回答学过C#.NetASP.Net,感觉基础还行,但是我给了他一个很简单的题,比如for循环累加的方式计算1100之间整数的和提示用户输入两个数字,然后程序打印两个数字的和,很多人都做不出来。
    对于初学者来说先不用管面向对象、ASP.Net之类的东西迷惑,先学习用最朴实的forif来编写程序,通过亲手编写练习题代码来逐渐形成程序化的思维方式,这个阶段也不要使用看起来很酷WinForm或者ASP.Net页面来做,因为那样就会涉及到这个阶段不需要去了解的问题,先编写最简单的控制台程序就可以。推荐大家看我录制的视频教程《【传智播客.Net视频】第1季C#编程基础》,这个教程针对C#零基础的同学进行讲解,并且在课程中给出了非常多的练习,一定要自己亲手把代码熟练的写出来,记住是亲手写出来,而不是照着我的代码抄,更不能是看懂了我的代码就以为自己掌握了,要知道看懂了会写了之间
差着十万八千里呢。对于初学者来说一开始写那些练习可能有点困难,先理解我写的代码,然后自己总结成******,再***,如果******”这样的用语言描述的算法,然后照着算法描述自己写代码,发现有地方写起来遇到问题的话再参考我的代码,最后做到不用看我的代码、不用看算法描述也能把代码写出来,这样第一阶段的任务就完成了。下面列出我视频教程中的一些练习题,大家可以自测看这个阶段自己是否合格:
练习1:提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用户用户名不存在。
练习2:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yesno),如果输入的是yes则提示用户可以查看,否则提示不可以查看。(给出测试用例。)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。