‹#›.NET软件技术应用前景与学习策略——成长为优秀的.NET软件工程师.NET框架学习系列之一计算机科学与信息工程学院‹#›软件开发技术现状‹#›中国软件开发现状及开发语言之比较使用.NET平台和C#语言能开发什么程序‹#›中国软件开发现状—按功能分类应用系统开发为主各种管理软件占软件开发整体份额85%财务软件占软件开发整体份额10%GIS地理信息系统占软件开发整体份额2%硬件驱动2%其他1%‹#›中国软件开发现状—按开发模式分类开发模式以Web应用程序为主95%的系统软件是基于Web的B/S结构B/S:Browser/Server传统的C/S结构日渐没落C/S:Client/Server‹#›中国软件开发现状—开发语言使用率C、C++语言:使用率10%以下VB:即将被淘汰,使用率5%以下Java:使用率40%C#:使用率40%其他语言5%‹#›中国软件开发现状—开发语言使用率上升最快的开发语言2002年3月第一个版本,当年上半年使用率不足2%2002年下半年使用率上升到10%2003年使用率上升到16%2004年使用率上升到25%2005年使用率上升到30%2006年使用率上升到40%2008年使用率上升到45%C#‹#›中国软件开发现状—主流软件使用的开发语言中国网通的互联星空收费平台使用C#开发中国联通的手机短信平台使用C#开发中国小灵通短信平台使用C#开发亚信的石化、鞍钢ERP使用的是C#用友的财务软件是使用C#开发联想的防火墙管理系统是使用C#开发……全世界的软件开发公司都在积极地使用.NET平台和C#开发语言为什么C#语言的使用率上升如此之快‹#›.NET平台.NET平台的C#语言都能开发什么程序Web应用程序B/S网站和各种基于浏览器的管理系统Wap应用程序无线网络程序和无线网站客户端程序C/S如图书馆系统,超市售货系统等游戏3D游戏2D游戏网络游戏游戏客户端‹#›软件企业从业人员分析-薪水对比在印度,有2-4年工作经验的.NET开发者可以得到6-7十万卢布的年薪,经验相当的J2EE开发者的年薪则是3.5十万卢布(1美元大约可以兑换43卢布)。A印度《经济时报》(EconomicTimes)全文请看:‹#›.NET平台为什么流行整个平台基于XML标准轻松实现WebService强大的语言支持,一个平台支持多种语言开发跨语言支持,一个程序可由多种语言共同开发易于开发分布式应用程序程序运行速度快可维护行好客户无需另购服务器,成本降低学习周期短……‹#›面对当今软件开发格局,我们应该选择什么?‹#›1.NET软件技术应用前景‹#›新技术的冲击软件开发的主战场是互联网近年来互联网程序的变革同时发生在客户端与服务器端变革之一:AJAX技术改善传统的ASP.NET技术。AJAX(AsynchronousJavaScriptandXML)是多种技术的综合,它使用XHTML和CSS标准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用Javascript绑定和处理所有数据。变革之二:WPF与SilverlightWindowsPresentationFoundation(WPF)是.NETFramework3.0的关键组件,是支持下一代视窗应用程序表现层编程的平台,也是微软新发布的Vista操作系统的三大核心开发库之一,主要负责图形显示。Silverlight前身代号是“WPF/E”,是微软最新面向Web开发的技术,类似于Flash相同的解决方案,作为一个浏览器的插件,可以显示矢量图形、动画和视频。变革之三:软件即服务,WCF一统天下。‹#›.NET业界技术人才需求趋势预测软件技术为经济发展服务互联网经济提供巨大的机遇掌握.NETWeb开发技能的人才需求量将会持续上升‹#›.NETWeb开发技术学习路线图面向对象理论基础静态网页设计技术(HTML、CSS、JavaScript)ASP.NET标准技术数据存取技术(ADO.NET和SQLServer)AJAXSilverlight+WCFWebService新一代Web技术当前流行Web技术当前成熟的Web技术Web技术基础‹#›2软件技术的学习策略‹#›几个常见误区纸上谈兵:仅通过“看书”和“听课”来学会编程自认为书都看懂了,老师讲的内容都明白了,就是“会编程”了。一步登天:一上来就抱本砖头厚的——《ASP.NET技术内幕》、《28天精通C#编程》狂啃。道听途说:听说许多大型网站都不是ASP.NET的,学.NET是不是不太好?据说在大学里要努力把理论知识学好,毕业后就会比那些直接实践的人发展潜力大……别问所学的这些复杂理论有什么用,以后你们工作后就会明白这些理论的用处了……‹#›选择适合的学习策略学习策略的选择建立在对自己的正确认识之上。问一问自己:自己的长处是什么?短处是什么?然后围绕着自己的长处来选择发展方向,决定诸如“考研”还是“就业”的人生重大选择问题。确定自己的总体目标了解社会上人才需求的现状,做到知彼知己。制订适合于自己的学习策略:学什么?怎样学?要达到一个什么样的程度?‹#›信息时代的软件技术学习原则自学为主,求学为辅(鲁班门前弄大斧,三人行,必有我师)个人兴趣与社会需求相结合,前者为重原则(360行,行行出状元)与人沟通、共同学习原则(通过互联网寻找同道中人)“怀疑一切”的批判学习态度(吾爱吾师,吾更爱真理)‹#›掌握行之有效的学习方法观其大略的学习方法(见木又见林,先见林后见木)例子:ASP.NET编程模型的理解与把握理性知识感性把握,在实践中学习、掌握和应用理论例子:Web开发技术原理与HTTPModule、HTTPHandler的开发软件工程理论与Web网站开发循序渐进的学习路线与“建构主义”的学习思想。新知识要有附着点,形成知识体系才有用。知识的反复学习原则:书读百遍、其义自见。代码十万、目无全牛!例子:我对PostBack原理的学习与理解过程‹#›.NET学习步骤.NET学习步骤‹#›.NET学习全景图.NET有一个庞大的技术体系,一个初学者,如何决定自己的学习步骤呢?就我自己的经验,谈谈我对这个问题的看法‹#›.NET学习全景图‹#›.NET学习第一步:掌握VS.NET的使用作为一个下定决心要学习.NET的初学者,首先要掌握VS.NET的使用,之所以把掌握这一开发工具放在第一位,是因为在后面的学习过程中,需要使用VS.NET进行不断地编程实践,而只有通过实践,才能最终掌握.NET技术。‹#›.NET学习第二步:掌握一种.NET语言第二步是掌握一种.NET语言。由于.NET支持多种语言,所以读者可以根据自己的喜好选择一门计算机语言,但请注意以下选择语言的标准:(1)必须是全面向对象的语言,只有面向对象的语言才能充分发挥.NET的威力;(2)拥有较多的开发者和技术资源,这样您就可以很容易地找到志同道合的人共同学习。目前支持.NET的语言已有几十种,而且还在不断地增加中。微软官方提供的语言有以下几种:ManagedC++,C#,VisualBasic.NET,J#。C#和VisualBasic.NET是目前.NET下开发的主流语言‹#›.NET学习第三步:掌握WindowsForm程序开发在第三步中学习WindowsForm是个好选择。所谓WindowsForm程序,就是传统的运行于个人电脑上的单机应用程序,象大家常用的金山词霸。通过WindowsForm技术的学习,读者可以掌握最重要最基础的windows软件开发技术,并对面向对象理论会有深入的体会,有了这些基础,深入学习网络编程就是水到渠成的一件事。‹#›.NET学习第四步:学习.NET网络技术第四步则是学习.NET网络技术,具体而言,又可以按照以下顺序进行学习:(1)ASP.NET:主要掌握如何设计ASP.NET网页,搭建一个运行于.NETFramework之上的Web网站;(2)WebService:学习如何把网站的各种功能以WebService的形式提供给外界,或者集成外部的WebService实现功能强大的信息系统。WebService是一个潜力无穷的新技术,将对下一代的互联网产生深远的影响。(3).NETReomting及相关技术:不像ASP.NET和WebService主要用于互联网,.NETRemoting及相关的技术主要用于开发基于局域网的应用程序,目前大部分公司和企业都建有自己的局域网,开发基于局域网的信息系统具有很大的需求。‹#›.NET学习第五步:移动设备开发技术学习移动设备开发技术,比如为手机、SmartPhone等智能移动设备开发程序,设计嵌入式系统等,.NETCompactFramework就是专为移动设备应用程序开发而准备的,使用.NETCompactFramework开发移动设备程序与使用.NETFramework开发普通程序是类似的,已有的.NETFramework开发经验仍然适用;‹#›.NET学习第六步:学习企业开发相关理论和技术进一步深入地学习企业级项目开发技术,成为一名系统架构设计师,这需要更进一步地学习相关理论和技术,比如设计模式、软件工程等,还有J2EE等.NET竞争对手的技术。‹#›.NET学习第七步:成为.NET技术专家如果你能沿着路线图走到这里,那就恭喜您,您已成为了一名.NET技术专家,更宽广的道路将展现在您的面前。