推开.NET技术的大门

  自从下定决心学习.NET技术后,我就一直看资料看视频,希望能尽快的让自己融入进去。但是后来发现自己越学越乱,原因是没有很好地整理这些技术点,没有一步步的去学,总是东看点儿西看点儿,没有什么章法。想想这样很浪费时间,也没有什么效果。于是作为初入.NET技术大门的菜鸟,我决定先把我要学习的东西整理出来,然后针对每项技术去有条理的学习,希望能让自己感觉到每天都有新的认识,有新的进步。

  首先要从编程语言本身来入手学习,也是从最基础的学起,我选择的是C#语言。当然了,C#语言包含的方方面面太多了,想要完全学到每一点目前也是不太现实的,工作中也不会每一个技术点都用到。所以还要抓住常用的技术点去学习。C#语法是最基本的,语法规范,流控语句,面向对象(OOP)的基础知识,封装,继承,多态,简单的接口应用,然后可以学习一些常用的类库和方法,如字符串处理,集合,泛型,基础的IO操作,对XML的读写操作。这时要配合着练习去学,体会能够更深刻。当然每一个技术点想要完全学透彻也是很难的,需要通过不断的实践,不断的累计代码量才行,而且每个人的逻辑思维能力不同也将决定着对技术掌握的深入度和速度。有关委托,事件,程序集,序列化,反射这些稍高级一点的知识也可以适当做个了解,等用到时再去深入研究。随着技术本身的不断升级,新版本的不断推出,一些新的C#特性也是有必要去了解的,如Lambda表达式,Linq等(当然这些已经不是最新的特性了,这里只是用来举例)。

  要想做真正的项目那就不能不用到数据库,数据库有很多种,现在大多都用的是关系型数据库,由于我学的是微软的.NET技术,所以数据库我当然选择了微软的sql server。sql语句是必学的,其语法还是比较容易理解和学习的,但要想把sql玩转也是很难的,不能仅限于写最基本的增删改查语句,像多表连接,子查询,分组,聚合函数都要能熟练的写出,这样才能达到最基本的标准。而索引可以用来优化查询,事物可以阻止错误的数据插入,存储过程可以避免sql注入漏洞,不过我个人认为要想写出一个高效的分页存储过程是对我最大的挑战,这也是我近期的目标。学到这里已经可以写出简单易用的小程序了,如winform的小程序。对了我竟然忘记了很重要的一点,就是ADO.NET,不然怎样与数据库交互呢。一定要能够熟练地使用ADO.NET操作数据库,能够自己写出SQLHelper类,只有这样才能对后面学习三层架构和ORM框架打下坚实的基础。
  这时也许自己就不满足仅写桌面式的C/S程序了,也想要试试写与服务器打交道的B/S程序。HTML就是最先要学习的标记语言,当然最好是用更加规范的XHTML。虽然我不是美工,但一些基本的CSS样式表写法也还是需要掌握的。说道B/S程序,那么用户的前台交互是不可避免的,javascript就是必然的选择,javascript的语法和其他面向对象的语言很相似,所以学习起来不是很困难,但是要想用好它也是要花费很大心思的,里面也有很多高级的内容,比如说javascript闭包我就不是很理解,后面我也要花时间去学习。说道交互性,那么一定要提到最为流行的javascript轻量级类库——jQuery,其实也有很多其他的比较优秀的javascript类库,但我个人还是选择了学习jQuery,我觉得它最容易理解,使用起来也很方便,使得DOM操作得到了大大的简化,而其中的链式编程,隐式迭代等,只有你真正用到它的时候才能感受到jQuery的伟大。

  但是要想与服务器打交道只是有javascript和jQuery是不行的,毕竟它们只是运行在客户端的脚本语言,ASP.NET才是真正与服务器交互的技术。在学习ASP.NET之前最好先对浏览器与服务器的交互过程做个简单的认识,了解一下HTTP协议的无状态性,这样再学起来会更加的清晰。我看过很多的文章说有的JAVA程序员看不起.NET程序员,原因是认为.NET编程很简单,拖几个控件,写几个事件就搞定了。其实我认为真正很牛的.NET程序员是非常了解这些控件的原理的,知道它们都做了些什么。托控件只是为了不把时间浪费在没有必要的事情上,而把更多的时间用到编写复杂的后台逻辑处理上面。所以学ASP.NET要从原理学起,不能先学习那些控件的使用。所以我先要学习ashx这样的ASP.NET一般处理程序,明白了基本的原理,能够在不拖控件的情况下写出对数据的增删改查操作。之后再去学习一些必要的控件,如数据绑定控件等等,理解页面生命周期,这时就明白了这些控件到底为我们做了什么。控件最终也会被服务器转化成html返回给浏览器。假如用到网络编程方面的时候,socket等一些编程技术就要必须了解了,我只是初级的菜鸟,所以先暂时不考虑网络编程。要想让用户有良好的交互体验,就还要学习AJAX这个页面无刷新技术(其实是局部刷新,利用XmlHttpRequest对象异步的向服务器获取数据,再返回给浏览器呈现),从而不影响浏览器正常使用,给客户良好的体验。在这个阶段也要先学习手写AJAX效果,不要一上来就用一些AJAX控件,一定要做到原理先行。这时就要用到json了,这是一种轻量级的数据交换格式,也是javascript的一个子集,主要用来传输数据,它与XML的功能相似,但是使用场合不同。在这期间必须要掌握的还有cookie,session,viewstate,和ASP.NET内置对象等,所以说要学习的东西还是不少的,只有不断的写代码才能加深印象,达到学以致用的目的。

  这时候就可以做出个简单的网站了,但是注意,只是简单的网站而已,这离我的目标还是差很远的。想要做出一个具有企业级功能的网站是不容易的,像是缓存,页面静态化,URL重写,伪静态,站内搜索,第三方支付等这些技术都是必备的。最后还有一些优秀的开源框架和工具也是我今后要掌握的,比如Lucene.net全文检索引擎,NHiberbnate和微软自带的Entity Framework这样的ORM框架我也要必须学会使用,它们在企业中的应用非常普遍,至少我现在公司的项目中就使用到了NHiberbnate和Lucene.net。其实还有像Spring.net,Nunit,WCF,前台界面设计程序WPF(XAML,Silverlight),一些基础的设计模式,针对ASP.NET webform的缺点而推出的ASP.NET MVC,还有我没提到的等一系列的技术或许在今后我都会接触到,所以我也深知打好基础的重要性。

  这篇随笔是我对自己学习.NET指定的一个计划或是蓝图,或许不够全面,但我相信只要是踏实的学下去总会有收获。

转载于:https://www.cnblogs.com/zj-net/archive/2012/12/12/2814536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值