标签:
读书笔记 | 发表时间:2020-04-19 20:12:14 | 更新时间: 2020-10-18 18:39:03 | 阅读数:535 | 评论数:0 | 字数:6259
花了半个月的时间,终于“读”完了这本ASP.NET的基础教程。为什么“读”要加引号呢?因为全书460页,后面200多页都是粗粗浏览的,根本算不上读。
虽然作为编程爱好者,断断续续写了十多年程序,但是真正从头到尾把一本编程的教程看完,除了上大学时候的VB6教程,这大概算第一本。所以说,还是很有纪念意义的。网上关于编程的教程、资料是很多的,多的不得了的多,但是从头到尾看完一本书还是有作用的。比起从网上学到的来说,看书的知识更有系统性——并没有说这本书写的多好——得到的知识更全面。
至于说这本书,读完后觉得并不够好。国内类似教材都大同小异,也就不苛求了。
这篇博客,主要记录了在读书过程中的所思所想以及一些摘抄和总结,属于随笔吧,没什么条理可言,随便看看就好。
本书豆瓣地址:
https://book.douban.com/subject/30743970/
2020-03-16
01. 买来好久了,一直也没有看。最近想升级网站,但是感觉技术上差的比较多,把这本书翻出来通读一遍吧。今天开始。这里写一个读书笔记,记录读书的过程。计划每天下班读一个小时。
2020-03-18
02. 前天看完了第1章,至19页。昨天没有进展。
03. 今晚多少看了点儿服务器基本控件的内容。包括label、textbox、button、imagebutton、linkbutton、hyperlink、image、radiobutton、checkbox、panel。这里面除了panel外,其他的都算比较熟悉都用过。
04. 这本书有460页,每天看20页,需要两三周看完。这么算下来看还算快的啊。但是一般看专业书,速度会特别慢的,主要是坚持不下去两天打渔三天晒网。只要坚持看下去就行了。没想着研究多细,粗粗的看
一遍就行了,先有个大体印象,等用到的时候再深入的学习。
05. 数据绑定概念
数据绑定是ASP.NET开发Web应用程序以及动态网站经常使用的一项技术,其实质就是先定义一个规范的数据源信息(比如一个ArrayList集合),然后让控件中的信息直接从数据源中来获取数据,编程人员只要改变了数据源的信息,那么控件中显示的信息就会自动变化以此来提高编程的效率和程序的可扩展性。在必要的时候也可以定义一个数据源同时为很多控件提供信息。控件的信息直接从数据源中获取的过程就叫数据绑定。
在ASP.NET环境中基本的数据绑定控件有RadioButtonList、CheckBoxList、DropDownList、ListBox。
06. 希望明天能看完数据绑定控件这一节吧。(其实晚上还有看书的时间,但是就是看不进去)
2020-03-19
07. 昨日读至44页。真的不想看书啊,一想睡觉;二想看电影看美剧。强逼自己打开书。——悲剧,拿错书了!这么特!
2020-03-20
08. 昨天的进度还是44页,是因为晚上下班带错书了。
09. 第2.3节讲了几个数据绑定控件的用法(上面列举了这几种控件了↑),无非是修改属性、使用数据容器(数组等)、使用数据库。C#常用的数据容器有Array、ArrayList、Hashtable、SortedList等。
10. 这几种控件的用法都类似,作者的讲解方式显得啰嗦和浪费纸张了。完全可以先逐一讲解控件使用场景、属性、不同,然后讲实例就行了。
2020-03-21
11. 昨日读到75页。
12. ASP.NET提供了一组
验证控件,用于提供一种易用但功能强大的检错方式,并在必要时向用户显示错误信息。数据验证控件可以说是ASP.NET开发环境中的特色控件,其他Web开发语言要做数据验证一般都是使用脚本语言(如JavaScript、VBScript)来完成。
- 必须项,RequiredFieldValidator
- 某值比较,CompareValidator
- 范围检查,RangeValidator
- 模式匹配,RegularExpressionValidator
- 用户定义,CustomValidator
- VlidationSummary
数据验证控件不难,其实用代码做数据验证也不难,感觉这几个控件并不是必须的——所以说别的语言没有这些控件也没错。
13. 复杂控件,Web Table和Calendar。
- Web Table控件和HTML Table控件不同,HTML中的Table控件主要是用来布局页面的,而Web
Table控件除完成页面布局外,更多的是能够方便用户使用编程的方式实现表格布局页面,这样一来用户可以动态地布局页面的显示效果,特别是完成一些基本统计报表功能时,此方法很实用。——似乎这就是个简单的GridView控件。
- 可使用Calendar Web服务器控件显示日历中的可选日期,并显示与特定日期关联呃数据。支持共元0年到9999年之间的任意日期。
14. 使用FileUpload Web服务器控件完成文件上传功能。
15. ASP.NET内部对象:Page、Response、Request、Cookie、Server、Session,及Context、Application、Trace。
16.
读了本书的1/4了,感觉书写的比较一般,虽然号称是基础教程,那只是讲的内容是基础的,而并不是说讲解的浅显和形象和基础。所以可能不是太适合初学者。比如读内置对象的解释,根本看不懂在说什么,读完也不知道这些对象是做什么用的,只能看例子自己理解。国内的教材大多具有这个毛病。老师们拿着这样的教材教、学生拿着这样的教材学,其实都是一种悲哀。
2020-03-22
17. 昨日读至113页。
18. Page对象的三个常用成员(属性?方法?),Page.Title(标题)、Page.IsPostback(是否首次访问页面)、Page.IsValid(验证是否通过)。
19. Response对象有三个常用方法,Response.Write(输出内容)、Response.Redirect(重定向到新的URL)、Response.End(将当前所有缓冲发送到客户端,停止该页的执行)。
20. Request对象最常用的集合是Request.QueryString(获取URL中的查询字符串)和Request.ServerVariables(获取客户端?信息)。ServerVariables字面意思是服务器变量,为什么获取的是客户端的信息呢?那为什么不命名成ClientVariables呢?
21. Request.QueryString可以在URL中直接得到查询字符串(比如一个带查询字符串的地址是http://www.abc.com?id=0),代码为Request.QueryString("id"),返回的是0。而之前我从网上搜到的方法却是HttpContext.Current.Request.Url.Query,返回的是"id=0",还需要进一步处理。
2020-03-23
22. 昨日读至117页。今天计划把第3章结束掉,到134页。
23. 关于Cookie的一些事实
- 是一小段文本,最大为4096字节。
- 与网站关联,而不是与特定的页面关联。
- 最终的目的是为了帮助网站记住用户。
- 每个站点最多可存储20个Cookie,可以采用带子健的Cookie打破这个限制。
- 明文形式存储在客户端的计算机里面,用户可以修改。
- 不要在Cookie中存储敏感信息,也不要轻信从Cookie中得到的信息。
24. Server对象,常用的是MapPath属性吧?教材上的ScriptTimeout、HtmlEncode、HtmlDecode、UrlEncode、UrlDecode还没有遇到过。
25. Session对象和Cookie对象类似,用法也类似。主要区别就是Session是存储在服务器上的,Cookie是存储在本地的,由此导致了用户是无法修改Session,也就是说Session可以保存敏感信息,相对Cookie是安全的。
26.
本书花了大量的时间讲解Cookie,但是对于Session的讲解篇幅却很少,感觉不太合理,对于Session还有很多疑惑没有解开。
27.
我了个天呐!这第4章ADO.NET怎么像是机翻的?完全看不懂在说什么,浓浓的翻译风。
28.
数据库很重要,ADO.NET很重要,但是这一章和ASP.NET有什么特殊关系吗?ADO.NET在.NET的那里都重要啊,不光是ASP.NET需要。如果说这本教程基础到ADO.NET要讲,那么为什么不讲HTML的基础,为什么不讲C#的基础?
29.
逐渐认识到,懂C#(不一定会写,起码能读懂)是在所难免的,就像需要懂繁体字一样在所难免、就像需要懂文言文一样在所难免、就像需要懂英文一样在所难免。因为太多的资料是用C#写的了,在查资料的过程中,最好的、最新的、最全的、最细的,可能都是C#的,如果能读懂C#,将省去很多找对应的VB例子的时间和精力。
2020-03-24
30. 昨日读至149页。
31.
我更喜欢用ACCESS数据库而不是SQLServer,这也是转向ASP.NET的原因之一,因为桌面软件不支持远程连接ACCESS(或者方法过于复杂——反正我没有成功过)。还有一个原因是SQLServer太复杂,包括安装、配置和使用。这个在我的一条微博里有比较多的解释,引用如下。
桌面版软件的优点是操作和显示的手段多,因此编程的难度小可操控性强,用vs的话界面只要拖拖拖就行了,关注的重点在功能实现上。当然话说回来桌面版也有缺点。一是更新升级困难,虽然可以采用网络升级,但是每次升级都需要制作升级包然后挂到服务器上,而且对用户的操作造成了不小的影响,用户打开软件遇到升级需要等待及重启,升级频繁的话大家都嫌烦。二是数据库配置麻烦,一般在win的服务器上要安装SqlServer,配置起来也比较复杂,对于轻量级系统来说有点儿牛刀杀鸡,显得浪费。而web版的更新只需在后台升级就行了,不需要用户操作,如果不是界面或操作的改变他们甚至感觉不到,或者有bug随手灭掉,不用特意发布升级。再有就是不需要配置数据库,对于轻量级系统用access即可(服务器上甚至不用安装access程序),像使用excel一样容易(甚至用excel当数据库也不是不可以)。
32. Parameter是和数据库的存储过程一起使用的?
2020-03-25
33. 昨日读至179页。昨天晚上其实想看一会儿书,但是看不下去。不必追求速度吧。今天计划把第4章看完就行了。
34. 数据库的数据怎么显示出来呢?流程是这样的,DataBase→DataAdapter→DataSet→DataTable→DataView→GridView。当然也可以反过来(DataView这里不是)。
DataSet是个数据集,里面有若干DataTable。DataAdapter数据适配器对象,类似于“搬运工”,经常和DataSet结合使用,负责数据库和DataSet的沟通。
35. XML(可扩展标记语言)就是个文本格式的简化版的数据库吧?可以通过DataSet的ReadXml和WriteXml方法处理。
XML是一种简单、与平台无关并被广泛采用的标准。XML相对于HTML的优点是,它将用户界面与结构化数据分隔开来。这种数据与显示的分离,使得集成来自不同源的数据成为可能。……DataSet对象通过对数据格式到XML的转换,可以轻而易举地穿透公司防火墙,或进行异构节点的数据传输。
36. 第5章是讲GridView的用法。这一章的水分比较大,20多页不到20分钟就看完了,走马观花的也没有上机操作。写dls-bxrs时,主要就是和GridView斗争,当时对数据的增删改查都是通过代码在后台实现的,GridView就像是个table,除了有个选择按钮(没搞定鼠标按行选择),其他的这章讲到的内容用的比较少。看完这一章觉得,其实GridView做的挺傻瓜的,好多功能完全不需要编程,只是改改属性或者跟着向导下一步就能实现。
只是,好像在网上哪里看到过,GridView用的也比较少了,目前还没有找到更好的控件,基本的数据表达,用GridView够用了。
2020-03-26
37. 昨日读至230页,已看完第5章。按进度计划的话,今天应该要看完第6、7章。
38. 因为难度比较大,本书对MVC的介绍只是蜻蜓点水,简单的介绍了下概念和优缺点。所谓(书中原话)
对于中低级开发人员来说,使用MVC模式开发效率较低。容易入门,不易精通。
……这第6章“ASP.NET开发模式选择”讲了个啥(篇幅才4页)!——原来在第10、11章,也就是最后两整章(140多页)介绍了一个完整的MVC4项目举例。
39. 看完第7章了。编码规范这里看的比较混乱。XML文档注释倒是学到了,还有dbHelper类。原来自己写程序太野了,好在写的都很简单,不规范倒也影响不大。
40. jQuery,Write Less,Do More!
看花括号看的烦!
jQuery+Ajax是个好东西,最重要的功能是异步加载。
编程思想是这样的,采用jQuery+Ajax替换某个容器的html,这段html来自另一个aspx网页,使用url参数传值。
41.
看完了jQuery什么什么的,感觉还是WebForm比较简单(当然功能也弱)。WebForm更像传统的VB6的编程思想,虽然前后端是分开的吧,但是逻辑上比较类似。jQuery啊Ajax啊什么的,逻辑比较复杂。习惯了传统的编程方法,要转变过来有点儿懵。
2020-03-30
42. 目前读至318页。上周五、周六、周日(27~29日)一页没读。看来空闲时间多还是少,但和能不能学习关系不大。
43. MVC能实现伪静态。
44. MVC
不适合小型,中等规模的应用程序:花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
增加系统结构和实现的复杂性:对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。Via:
百度百科
45. 虽然伪静态很美好,但是基于上面的一点(不适合小型程序),不想深入研究MVC了,能看懂就行了吧。——不甘心,但是总得舍得,新技术太多了,学不完。
46. 全书共11章,其中最后一章是一个实例(企业宣传网站),讲解MVC4的使用。从第8章(jQuery)开始,看的就迷迷糊糊,第10章的MVC4开发模式看的更有点儿懵,所以速度也比较快,不求甚解。已经看到快400页了,大概明天就能结束了。
2020-03-31
47. 昨日读至393页。最后一章是一个实例,大量的代码,就我现在这不求甚解的劲头,一目十行(可能还不止),迅速的看完了一半。
48. 午13点24分,最后一章匆匆翻完了,没有耐心一行代码一行代码的读。因为对MVC和jQuery不是太熟悉,看不太懂。
结束了吧。
完成于:2020年03月31日
发表于:2020年04月19日
在看书的过程中,发现了一些疑似错误,记录如下:
- P49,Hashtable疑似错写为ArrayList。
- P84,图2-76错误。
- P110,ASP.NET疑似错写成ASP。
- P130,语句不通顺。20min、200min混乱。
- P149,图4-5的图片不全。
- P316,CheckCode.aspx疑错写为dologin.aspx。
- P322,.asax疑错写为.ascx。
- P364,“……实现论坛系统的功能”,似有误,实例为一个企业宣传网站而非论坛。