.net学习路线

入门篇1.         学习面向对象(OOP)的编程思想

许多高级语言都是面向对象的编程,.NET也不例外。如果您第一次接触面向对象的编程,就必须理解类、对象、字段、属性、方法和事件、封装、继承和多态性、重载、重写等概念。需要说明的是,微软的产品帮助文档做得非常完善,而且查询相当方便,入门者不得不看。安装完Visual Studio.NET2003(或者Visual Studio.NET2002)后,在“程序”组里有一个Visual Studio 组合帮助集合。初学者从帮助文档就会获得许多知识。

2.         选择一门语言,学习语法及相关基础知识

选 择语言的标准:根据你自己的需求和个人的技术背景。在.NET平台下,C#、VB.NET都是调用Framework的类库,效率基本一样,C#的语法严谨,适合以前C++、VC的程序员。VB.NET不区分大小写,写法随意一些.,自动缩进,适合以前VB的程序员,微软也一再提倡用VB.NET进行快速开发。VC++.NET更接近底层,可以用托管和非托管两种方式进行编程。

选择了需要使用的语言后,我们需要了解语言的语法规则,包括语句、类型、表达式、运算符、函数等等,我建议一开始写程序就要养成良好的编程风格,规范地进行变量的命名,在代码中写好注释。这对以后的软件开发生涯都是很有意义的。

3.         理解.NET思想并熟悉框架类库(Framework Class Library)

我们借用一幅图来说明一下公共语言运行库(CLR)、框架类库(FCL)与应用程序之间以及与整个系统之间的关系。

首 先,我们要了解公共语言运行库、程序集、通用类型系统的概念。在此基础上,学习.NET框架类库。.NET框架类库是一个与公共语言运行库紧密集成的可重用的类型集合。.NET 框架类库封装了大部分Win32 API,许多以前需要调用API才能实现的功能,在.NET下非常容易就实现,许多情况下只需要一句话就足够了。所以,我们在程序设计的时候要尽量避免调用 Win32API。学习.NET 框架类库的捷径:掌握常用的类库,其它不常用的类库只需要了解,用到的时候查阅即可。

4.         利用Visual Studio.NET写程序

在. NET平台下写程序我们一般用微软的开发工具Visual Studio.NET,因为一个好的IDE,能极大地提高开发效率。我建议初学者从WindowsForms或者是WebForm开始,等有一定的基础之后,再转向写类库或是控件、组件方面的东西。微软的帮助文档里自带许多示例,我们可以一边看帮助,一边进行演练。在学习其中的代码的同时,一定要理解和思考。多写代码、从项目中锻炼是编程高手的成长之路。记住:一定要多看多写源代码;多上论坛(如CSDN和Dev-club)和微软的新闻组讨论技术问题。

我们一定要用好 VisualStudio.NET这个集成开发环境,除了编写代码外,我们还要了解.NET的部署原理,学习打包、部署及管理应用程序。多人开发的项目可以考虑用 VisualSource Safe进行源代码管理,这一系列开发工具的使用都要有大量的实践。

推荐书籍:

《C#高级编程》(第二版)(清华大学出版社)

《Microsoft.NET程序设计技术内幕》(清华大学出版社)

《 Visual VB.NET技术内幕》 (清华大学出版社)

《 Visual C#.NET技术内幕》 (清华大学出版社)

.NET入门教程(包括Windows Form和Web Form):

http://chs.gotdotnet.com/quickstart

5.         最好掌握大型数据库编程

一 般来讲,大多数软件开发都涉及到数据库。大部分软件的后台数据库都使用如Access、SQLSERVER、Oracle等。ADO.NET提供了对关系数据、XML和应用程序数据的访问。我们必须掌握Connection、Command、DataReader 和 DataAdapter对象的使用,正确运用DataSet数据集和DataView进行数据操作。当然,要有一定的数据库基础,包括表、视图、存储过程等的使用。必须把后台数据库和前台的ADO.NET都掌握好,才能真正精通数据库编程。

在 项目的开发中,建议使用数据访问应用程序块(Data Access ApplicationBlock)来简化SQL查询。微软msdn网站有下载,我们可以利用SqlHelper类进行的数据访问,使用起来非常简单,很容易地构建我们的数据访问层。

推荐书籍:

《ADO.NET技术内幕》(清华大学出版社)

《ADO.NET高级编程》(中国电力出版社)

《VB.NET和SQL Server 2000高级编程—创建高效数据层》(清华大学出版社)

6.         学习XML WEB Service

XML Web services 正在开创一个分布式应用程序开发的新时代。XML Web Services 是把软件当成服务的一种体现,通过使用 XML消息处理启用数据交换和应用程序逻辑远程调用。XML使数据能够通过防火墙,实现异类系统之间移动数据。虽然公共的WebServices还不是很普及,但是在一些企业中,已经涉及到了Web Services的开发。用Visual Studio.NET很容易创建Web服务,调用Web服务也相当简单,只需要添加一个Web引用,然后调用即可。进行这方面的学习,需要了解Web 服务描述语言(WSDL)、SOAP协议等。

推荐书籍:

《构建XML WEB服务:基于Microsoft.NET平台》(清华大学出版社)

《Building XML WEB Services for the Microsoft .NET Platform》(影印版)

.NET技术网上资源:

中国软件网(中国最大的技术社区)

计算机世界开发者俱乐部

中国Dot Net俱乐部

微软官方MSDN权威站点:

************************************************************************

提升篇

1.         学习.NET框架开发平台底层原理和体系结构

.NET 框架的核心是公共语言运行时(Common LanguageRuntime,CLR)。通常情况下,我们使用一种高级语言(如C#或者VB.NET)编写程序,这些高级语言的编译器产生的是一个托管模块(即中间语言IL代码)。托管模块是一个需要CLR才能执行的标准WindowsPE文件。执行中间语言代码的时候,CLR中的即时编译器(Just-in-time,简称JIT)把其转换成CPU指令。这中间有许多细节,包括怎么初始化CLR,微软组件运行时执行引擎MSCorEE.dll(Microsoft Component ObjectRuntime ExecutionEngine,在system32目录下)怎么工作等等。如果你想精通.NET技术,就必须对.NET框架原理、程序集、元数据、值类型/引用类型、类型设计、异常处理、自动垃圾回收等核心技术有一个清楚的认识。

推荐书籍:

《.NET框架程序设计》(修订版) (清华大学出版社)

《Applied .NET Framework Programming》(影印版)Jeffrey Richter著

《.Microsoft .NET IL汇编语言程序设计》

《.NET 本质论》(中国电力出版社)

2.         熟练运行底层工具进行调试和解决各种问题

了解.NET平台的底层原理,我们需要学会一些工具和CLR 调试器 (DbgCLR.exe)的使用。C#命令行编译器(Csc.exe)和VB.NET编译器(Vbc.exe)的重要性就不用再多说。

.NET 框架 SDK 提供的几个比较重要的工具是:MSIL汇编程序(Ilasm.exe)、MSIL反汇编程序 (Ildasm.exe)、程序集链接器(Al.exe)。强烈建议大家在开发中多使用MSIL 反汇编程序 (Ildasm.exe),以加强对CLR和底层的了解。MSIL汇编程序(Ilasm.exe)从 MSIL 汇编语言生成可移植可执行的 PE 文件。反汇编程序(Ildasm.exe) 可对任意 .NET 框架 .exe 或.dll 程序集进行分析,并以可读的格式显示信息。程序集链接器 (Al.exe)从一个或多个文件生成一个带有程序集清单的文件。.NET框架SDK还提供许多其它的工具,如:PEVerify 工具 (Peverify.exe)、强名称工具(Sn.exe)等,我们力求能用命令行的方式使用他们。

需要指出的是:VisualStudio.NET不是能完成所有命令行能做的工作,一些任务必须由命令行来完成。如:创建多文件程序集,必须求助于csc.exe的addmodule选项。只有在对.NET框架有很深理解的基础上,才会灵活运用这些工具。

3.         进行大型软件系统架构设计

进 行软件系统的架构设计,需要积累相当丰富的经验,要求我们从全局的概念上把握软件的总体结构。首先的一点是,我们必须参照软件需求说明书。需求说明书是用户和开发双方对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明,所以我们设计软件必须以此为依据。接下来,我们要做软件的总体设计,即概要设计。一般需要根据软件的业务需求和业务流程进行模块划分,规划程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计奠定基础。在详细设计中需要指出每一模块是怎样实现的,包括实现算法、逻辑流程、数据流程图等。以后的工作,就是程序的实现。测试是和编码同步进行的,必须严格把好质量关。

在用.NET开发大型系统的时候,一般都是做成三层(或是N层)结构的形式。即将应用程序逻辑地分为3个基本层:数据访问和存储、业务逻辑层、表示层。三层结构的优点主要是:可扩展性、可伸缩性和灵活性。在做Web应用的时候,可以考虑采用MVC(模型-视图-控制器Model-View-Controller)模式让Web应用程序的用户界面功能实现模块化。

顺 便要说的是,大型软件有时需要整合多种产品,来满足企业级的应用需求。微软提供了许多Server产品,如SQL Server 、ExchangeServer、Share Point Server、BizTalkServer等。记住:大家一定要多了解微软的产品线,微软很多技术都是相符相承的,结合起来才能发挥作用!我们可以微软的Server级产品的基础上整合软件系统、实现数据共享访问、终端设备上的电子邮件、消息协作。总之,通过互联网,让所有人一起协同工作,是未来软件的发展趋势。我们把握好这些方向,就等于驾驭未来。

推荐书籍:

《使用 Microsoft .NET 的企业解决方案模式》微软出版社

《Enterprise Solution Patterns Using Microsoft .NET》 MS divss

4.         带领团队进行软件开发

一 个好的团队,才能开发一个成功的产品。软件开发主要由项目管理团队、软件开发团队、软件测试团队组成。项目管理人员主要对项目进行控制,协调开发人员、测试人员的工作。开发人员的工作主要是负责软件的实现。测试人员是软件产品的质量保障。其它人员,如产品规划方面、软件技术支持和文档、后勤都是不可缺少 的。

大型软件是许多人集体智慧的结晶,要求 ProjectLeader有较强的管理能力和技术背景,以及良好的沟通能力。如果你作技术的时间很长,积累了丰富的经验,做过项目组长等管理工作,通过不断的学习和提升,极有可能成长为Project Leader。如果你已是ProjectLeader,就到对软件的成败负责,你可以根据现有资源决定开发中任务分配,合理用人,决定功能模块是否值得开发,项目进度控制等许多问题。总之,带领团队的人必须有远见卓识,采取正确方法引领团队取得成功。

推荐书籍:

《人月神话》清华大学出版社

《人件》清华大学出版社

来源:http://jingyan.baidu.com/article/ff42efa96667b5c19e2202d3.html

 

第一步

掌握一门.NET面向对象语言,C#或VB.NET我强烈反对在没系统学过一门面向对象(OO语言的前提下去学ASP.NET。ASP.NET是一个全面向对象的技术,

不懂OO,那绝对学不下去!第二步对.NET Framewo类库有一定的了解可以通过开发Windows Form应用程序来学习.NET Framework。

ASP.NET是建构在.NETFramework之上的技术,你对.NET Framework了解得越深,学习ASP.NET就越快。

举个例子:

下面简单列出几个对掌握ASP.NET非常重要的概念:

对象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型.NET Framework当然还有许多其它的东西

,但不理解与把握清楚上述这些东西,是很难真正把握ASP.NET的。出于急迫的心情与现实的考虑,

不少人没有扎实的面向对象基础就想直接学习ASP.NET,其结果只能是欲速则不达。在具备了OO基础之后,以下是具体的学习ASP.NET技术步骤。

第一步:学习HTML与CSS这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box模型。

许多ASP.NET控件最后都必须转化为HTML。而且,div+CSS是当前主流的网页布局模型。学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,

那是网站美工的工作,不是程序员的工作。

第二步:学习JavaScriptJavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,

可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。JavaScript在目前的网站开发中用得很多,

非常重要。另外,它也是目前非常流行的AJAX技术的基础。

第三步:学习计算机网络原理找一本大学<计算机网络>教材,重点看看它的有关互联网的部分,了解一些域名解析和HTTP协议等知识。这是进行互联网开发的理论基础。

第四步:学习ASP.NET表示层技术,会设计Web页面需要结合先前打好的面向对象技术的基础,至少掌握以下内容:

(1)各种Web控件的使用方法,

(2)理解信息在网页中的传送方式,比如Cookie,ViewState,Session等的使用。

(3)ASP.NET应用程序与网页的生命周期,以及相关对象(比如httpcontext,response,request)的用途。

(4)ASP.NET实现事件驱动的内幕

(5)自定义用户控件再次强调一下,没有OO基础,很难掌握上述技术,就只能被这些东东牵着鼻子走了,会很被动。

第五步掌握数据库技术具体地说,要学习以下内容:

(1)学会使用SQLServer 2005:不要求精通它的各种工具与管理配置技术,但至少知道如何连接,如何建表,如何创建存储过程

(2)学习ADO.NET,掌握使用代码人工访问数据库(别用VS2005的向导)的方法(3)学习数据绑定控件的使用

第六步理解多层架构这时,先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了,现在,网站架构大多采用多层架构:

表示层、业务逻辑层、数据存取层以及数据库本身。可以先上网找一此多层架构的资料看,再找一个现成的比较复杂的开源ASP.NET项目分析一下其架构就差不多了。

基本上都是一个套路,到处应用。有的朋友问:学习架构是不是必须学习设计模式。我的看法是:不必!当然,你如果学习过设计模式,那当然更好。但在实际开发中,

如果只想着机械地套用某种模式,反而起不到好的结果。我的观点:在学习设计模式时要多思多悟,其思想就会渐渐地融入你的大脑,在真实的设计实践中,

忘掉所有的写在书上的模式,一切从实际出发,相信你的直觉,只要达到设计要求的方案就是可行的方案,事实上,你这样做了之后,回过头来再看,会发现你的设计往往暗合设计模式的理论。

第七步学习XML与Web Service先了解XML的基础知识,找本讲XML的书看一下就差不多了,

然后,再学习WebService。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。学到了这里,如果你还有兴趣,不妨再去看看SOA

,不过SOA的资料都是理论与概念,看起来比较郁闷,而且离实际开发可能比较远。所以,这是可选项。第八步学习AJAX学习AJAX的主要目的是创建具有更丰富特性的Web表示层,

而经过前面七步的学习,到此再学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。在基础未具备的前提下直接学AJAX,就象“浮沙之上筑高台”,

所以,将AJAX的学习次序安排在这里。

第九步学习RIA技术RIA:Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说,主要指微软的Silverlight(WPF_E),毕竟前头一路行来都是微软路线。

不过目前学习它主要是为了技术储备。估计此技术的普及需要2到3年的时间,因为预装Vista的机器今年才开始大卖。

用这个方向来指引自己所学的路。使自己在学习技术时不会感到迷茫,

在加油。

ASP.net 学习路线(详细)的更多相关文章

  1. (转)ASP.Net 学习路线

    入门篇 1.学习面向对象(OOP)的编程思想 许多高级语言都是面向对象的编程,.NET也不例外.如果您第一次接触面向对象的编程,就必须理解类.对象.字段.属性.方法和事件.封装.继承和多态性.重载.重 ...

  2. .net学习路线

    http://www.cnblogs.com/huangmeimujin/archive/2011/08/08/2131242.html http://jingyan.baidu.com/articl ...

  3. Java学习路线(完整详细版)

    Java学习路线(完整详细版) https://jingyan.baidu.com/article/c1a3101e110864de656deb83.html

  4. 每天自学两小时Python,整理了最详细的学习路线和规

    上次这篇文章每天自学两小时Python,三个月学通月入20K主要是给大家整理了学习资料视频和PDF书籍,很多需要的都关注私信领取了. 很多朋友领取之后都问我教程有了那么应该从哪去开始学习呢,私信太多我 ...

  5. 比培训机构还详细的 Python 学习路线,你信吗 0^0

    前言 这其实是将自己写的文章进行一个总结分类,并不代表最佳学习路线 会不断更新这篇文章...没链接的文章正在编写ing...会不会哪天我的这个目录就出现在培训机构的目录上了... 目前实战比较少(要是 ...

  6. 非常详细的 Linux C/C++ 学习路线总结!已拿腾讯offer

    创作不易,点赞关注支持一下吧,我的更多原创技术分享,关注公众号「后端技术学堂」第一时间看! 最近在知乎经常被邀请回答类似如何学习C++和C++后台开发应该具体储备哪些基础技能的问题. 本身我从事的的C ...

  7. 经验总结:超详细的 Linux C/C++ 学习路线!大厂面试指南

    ❝ 文章每周持续更新,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 最近在知乎经常被邀请回答类似如何学习C++和C++后台开 ...

  8. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  9. linux 下C语言学习路线

    UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...

随机推荐

  1. java 成员访问修饰符

    作用域 当前类 当前包(package) 子类 其他包(package) public ok ok ok ok protected ok ok ok no default ok ok no no pr ...

  2. JavaScript 运动框架 Step by step

    http://blog.csdn.net/rsj217/article/details/7986905 关于offsetLeft:http://www.cnblogs.com/JackJiang/ar ...

  3. Core 发布至Linux

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统 ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而 ...

  4. 帝国cms7.0导航栏当前栏目显示不同样式

    以下代码演示帝国导航调用 栏目id为14.15.2.34的栏目内容.同时加入php语句,如果栏目显示为当前栏目,则变量<?=$on?> 显示为 an ,否则就显示为空 [e:loop={& ...

  5. 用户管理_组管理_设置主机名_UGO_文件高级权限_ACL权限

    用户管理: 添加用户:useradd tom 设置密码:passwd tom 切换账户: su - tom (不加-也能切换,但是 -会有两点不同 1.有-会切换到该用户的主目录  2.会切换到该用户 ...

  6. 转:CI配置SMARTY

    1.到相应站点下载Smarty的源码包:2.将源码包里面的libs文件夹copy到CI的项目目录下面的libraries文件夹下,并重命名为Smarty:3.在目录 application/libra ...

  7. C#引用非托管.dll

    C#里调用非托管的Dll 今天花了一些精力来调查了一下C#里调用非托管的Dll,C#里调用非托管的Dll要使用P/Invoke平台调用技术, 这里先简单介绍一下P/Invoke平台调用技术.    由 ...

  8. android 基础学习图片六progross

    加载进度条应用

  9. JSON Editor 中文文档

    JSON Editor JSON Editor 根据定义的JSON Schema 生成了一个Html 表单来对JSON进行编辑.它完整支持JSON Schema 的版本3和版本4,并且它集成了一些流行 ...

  10. 「OC」@property @synthesize和id

    一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自 ...