从0开始学习ASP.NET(2.0为例)系列——04C#/.NET FrameWork/ASP.NET相关基础知识介绍


简介:


前言:上一篇文章中BlogBoy已经和大家分享了有关开发ASP.NET应用程序的开发环境及配置的相关话题,那么接下来我们是不是可以直接讨论写代码的事情了呢?BlogBoy的答案是:NO,我们是程序员并不是代码机器,“不假思索,提笔就写”不是一个良好习惯,还是稍安勿躁,我们还有一些基础没有挑明。说到基础,尤其是做WEB开发,基础这个东西似乎既高深莫测而又可有可无,说它高深莫测,是因为基础的东西牵连比较广,纵横度可深可浅;说它又是可有可无,是因为许多人可以在没有掌握它们的前提下,照样可以很好的完成任务。恩,这些东西确实有过不少的听闻,不过BlogBoy依旧认为,0基础的ASP.NET爱好者,最好还是掌握一些最基本的东西,只有了解,才能谈得上喜爱。

再来说说这篇文章的标题,可能还是会有不少园友要喷,诚然,如果按部就班的以标题为准,事无巨细的讲解所有内容将会是BlogBoy的一大噩耗和挑战,这主要是因为C#、.NET FrameWork、ASP.NET中的任何一个,要把其中的基础讲全面着实不是鄙人所能企及的。阅读过《C#入门经典》、《ASP.NET2.0入门经典》、《CLR via C#》等相关书籍的读者都了解,掌握其中的技术细节需要花费较多的时间和精力,但是把握其中的大概知识却并非难事,即便暂时不理解,在以后的阅读或实践中能够更好的做到有的放矢。

      首先申明,BlogBoy并非标题党,虽然标题涉及的内容较多,但只要是标题涉及的东西BlogBoy都会尽力的做出自己的解释,这篇博文涉及的内容属于基础,所谓基础,就必然是既简单又复杂的东西,为什么这么说呢,举个不恰当的例子,我相信没有人不知道1 + 1 = 2,是吧,这是再基础不过的东西了。可是能否说清楚为什么1 + 1 = 2呢!呵呵,是不是有点棘手呢。学会一门技术也许不难,难的也许是将它们如何用文字或语言清晰的表达出来,关于这点BlogBoy着实佩服那些博客大牛,不但技术上厉害,同时也帮助了无数的后来者。SO,基础并不是一篇两篇文章就能搞定的,BlogBoy和读者们都需要做好打持久战的准备(不少读者可能会感到灰心或失落,但如果静下心来想想,哪一个真正的“武林高手”不是慢慢练出来的呢,那些或坠崖、或吃错药、或筋脉逆转而又死而复生的“爆发性高手”在程序界真的存在么……SO,我们普通人还是慢慢来吧!)。

正文:


我想前面已经讲的非常清楚了,对于以下的基础,BlogBoy只会挑选与WEB相关或十分重要的部分作为讲解内容,为了让0基础的读者能够更好的把握主脉,我采用提纲式的讲解,期间会附上一些相关的博文地址。

第一部分,c#基础

在这部分中,我认为读者应该掌握的知识和顺序因该是:

C#的变量和表达式:如果你能熟悉它们的使用方法并且理解各种变量的内存结构及相互转化的过程(类型转换的一个热门话题是有关”装箱拆箱”的,关于这部分内容你可以在这个地址找到一些见解和看法:http://www.cnblogs.com/mqsuper/archive/2008/08/12/1265520.html),那么恭喜你,你可以顺利跳过这一部分。

面向对象的编程理念:其实这部分内容与语言本身无关,有很多资料可以借鉴,比较热门的话题是关于“设计模式”的,关于设计模式的话题读者可以参考以下地址:http://www.cnblogs.com/cj723/archive/2007/11/23/962823.html ,BlogBoy个人认为设计模式或编程思想都是需要在项目经验、代码重构中不断得到提炼的,操之过急反而容易走火入魔,园子最近就有相关的帖子讨论设计模式的利弊,用兴趣的可以找出来看看。

集合和泛型以及接口:做WEB开发需要频繁的使用一些高级对象,如各种List、各种数据集、各种接口,掌握这些对象及接口就可以方便使用或定制自己的数据转载对象,相关的资料参看以下网址:http://www.cnblogs.com/wf225/archive/2008/01/14/1038104.html ,BlogBoy认为需要掌握的对象或接口主要有:DataTable、DataSet、IEnumerable、IList、ICollection、IDictionary、IDispose等等。

文件IO、GDI+:这些算是最接近于实际编程的基础了,你在这里会听到托管资源和非托管资源的概念,你会懂得如何及时释放内存资源,还能学习一点绘图画线等很锻炼数字思维的代码,参考网址:http://www.cnblogs.com/alex-bn-lee/archive/2012/01/22/2328793.html

调试和异常处理:这个自然十分基础,而且很有必要掌握,这又篇博文可以参阅http://www.cnblogs.com/zhuqil/archive/2010/01/19/exception_handling_guidelines.html

看完上面的列表清单,有些读者可能要问:为什么没有事件和委托、为什么没有Ling、为什么没有多线程、没有Socket呢!(事实上多线程和Socket本来就不是C#的基础,而且Socket使用在在Winform场景中更加普遍,这里会提到这些是因为,他们在C#中都得到支持,并且被热议,很容易被误解为是基础的一部分。)怎么说呢,首先我觉得这些并不是0基础的读者应该首先掌握的东西,其次,这些东西在普通的WEB网站中使用不是非常普遍(特指“显式的使用”,也许园友会嘲笑我误导读者……怎么说呢,我觉得0基础的读者还需要更多的经验才能稍微理解这些东西,而在没有理解的前提下贸然使用这些技术可能会适得其反,又或者学习的时候被堵塞在这些知识上,与其卡在这里,还不如学习更多更普遍的基础,不是吗!)

第二部分:.NET FrameWork基础

CLR基础:CLR公共语言运行时的核心功能包括内存管理、程序集加载、线程同步、异步处理等,但这些都不是你现在需要掌握的东西,你唯一需要掌握的就是大致的理解一下CLR的运行过程,以及过程中涉及的一些新名词,如托管模块、元数据、中间代码……,对这些新名称保留一些概念,以备后用。参考网址:http://www.cnblogs.com/artech/archive/2010/10/18/clr_memory_mgt_01.html

.NET中的堆和栈:关于这一块的内容,不能仅仅停留在留有概念的水平上,而是应该严格的将它们划分开并深入理解他们之间的区别,对于0基础的读者,你可以暂时简单的认为.NET中的堆和栈是将我们的内存划分为两个不等的部分,堆的特点是容量大而速度慢,因此堆中适合用于存放数据和复杂的对象,而栈的特点刚好相反,它一般用于存储小量数据和对象的地址引用(如果你了解二进制和数据结构,效果会更好,但是读者可以形象的在脑海中记住堆栈的区别)。参考网址:http://www.cnblogs.com/paulxie/archive/2011/03/09/1978056.html

.NET垃圾回收机制:关于这部分的内容,网上有比较多的文章可以借鉴,同样,0基础的读者可以着重理解托管和非托管资源的区别,以及如何手动释放非托管部分(我们熟知的COM、GDI、IO、数据库等都属于非托管的代码,这也是为什么诸多文章着重介绍IDispose以及Using用法的原因)。参考网址:http://www.cnblogs.com/riccc/archive/2009/09/01/dotnet-memory-management-and-garbage-collection.html

第三部分:ASP.NET基础

页面请求的原理和过程:

ASP.NET的运行机制:待续未完

HTML+CSS+JavaScript:待续未完

ASP.NET网站的各种文件:待续未完

一些主要的服务器控件:待续未完

ASP.NET中的Ajax:待续未完

 

结语:

由于时间关系,关于ASP.NET部分的基础没有写,只是列了一个大概的目录,其实这个部分的内容还是相对比较重要的,整个文章写的也有些凌乱。怎么说呢,金无足赤,人无完人,活出自己的精彩!BlogBoy其他时间会陆续的补上,尽请期待!最近比较累,先休息去了……


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM