站开发实战>林昱翔编著
2.0网站开发实战>林昱翔编著
对全全新手有一些引入门的作用,但介绍的控件也不是特别全面,书中后章节代码很乱,而且并不如作者所提是用C#和VB开发,全书都是VB。
节代码很乱,而且并不如作者所提是用C#和<asp.net网络开发入门与实践>梨卫东
编著
书中前部分还行,章节、代码都可以,但后面从web.config建立数据库连接字符起,开始就都是在VS2003下写的代码,在VS2005下都出错了。
<新一代 aso.net
2.0网<asp.net 2.0+SQL
Server网络应用系统开发案例精解> 张树亮、李超 编著
例子倒是建的都很详细,但数据库建的一般,而且里面有一些方法,VS 2005不认。
<新一代 aso.net
2.0网下面是我从天涯上看到的一篇文章,但遗憾的是作者只去了去年11月,还可以:
[程序设计]Visual
C#.net和asp.net初步(原创教材)<新一代 aso.net
2.0网
学习C#和asp.net有一段时间了,大路化的东西总算会些,想到学一个东西,只有能用自己的语言清晰地表述出来,才算是真正理解。于是打算写个C#和asp.net的教程,通过编教材这种方式,一方面检验自己的理解深度,一方面总结自己的学习成果。如果还能给初学者一点帮助,自然更好。欢迎大家用砖砸,我会学习大家的意见并作相应的修订。
对全全新手有一些引入门的作
第一章 入门预备知识
第一节 为什么学C#和asp.net
对全全新手有一些引入门的作
1. Web系统是流行的技术,容易上手,适合初学
现在是网络的世界。通讯靠网络,即时通讯工具如MSN, QQ,
Skype等,传统的email,网络电话VoIP,都是很多人不可或缺的通讯工具。网络提供了快速获取信息的有效渠道,搜索引擎如google,Yahoo!,百度都是获取信息的利器。网络提供了虚拟社区,比如,网络论坛给人们提供了一个便利的交流场所。对很多人来说,没有了Internet简直就无法生活。
用,但介绍的控件也不是特别全面,书中后章
网络要靠计算机技术支持,而网络的发展,又对计算机技术的发展提出了要求。所以基于web的软件系统的流行,也就是很自然的事了。现在做一个程序员,可以说或多或少对于web方面的技术都要有一定的了解。
基于web系统的开发是个笼统的概念,可能包括一般管理信息系统开发,网站开发,网络通讯程序开发等等技术。这里主要指前两者。<新一代 aso.net
2.0网
基于web系统的开发,属于大路化的东西。一般来说,这方面的开发,相对容易上手。对于初学者来说,是个很好的切入点,因为如果入门起点太高,学习时容易产生畏难情绪,不容易坚持下去,所以选择一门上手容易的技术作为入门的基础,以后有了一定的经验和需求,再去钻研那些虽然也很重要但入门较难的技术,不失为一条比较快捷的途径。由浅入深,由易到难,是通过了实践检验的有效原则。当然,先啃硬骨头,虽然一开始比较吃力,但是啃下来了之后,那些比较容易的技术就一目了然了。比如,先花功夫钻研数据结构和算法,离散数学之类,然后再学习编程开发,可能就容易学得比较透。打好了数学基础,学习编程技术就比较容易,这也是通过了实践检验的有效途经。问题是,打算走这条路之前,要充分估计到困难和自己的承受能力,要问一下自己:我真是愿意啃硬骨头的人吗?一时啃不下来怎么办?如果觉得自己不是毅力特别强的人(可能多数人如此),似乎还是先从容易的入手,然后再慢慢去补基础比较现实。
对全全新手有一些引入门的作
由于web系统的开发容易上手(对于有一定编程基础的人来说,一个月甚至一个星期就能做出东西来),对于想快速进入软件开发这个领域的人,也是一个好的切入点。
当然,容易上手,会的人自然也就多了,从而造成就业竞争激烈。如果技术上没有超过别人的地方,可能也不容易找到工作。另外,如果只满足于做大路化的东西,时间长了,也容易有厌倦情绪。
对全全新手有一些引入门的作
作者:不再掩饰 回复日期:2008-9-20 1:10:12
2. 为什么选用Visual C#.Net和ASP.Net做Web开发
Web开发所用的编程语言很多,比较流行的有C/C++, Perl, Php, Python, Java, Javascript,
Ruby on rails, Actionscript, Visual Basic.Net, Visual
C#.Net等。这里简单说一下各种语言的特点和为什么选择Visual C#.Net:
C/C++的长处是比较接近底层。硬件是最低的底层,操作系统是高一点的底层。接近底层的好处是对系统有较大的控制能力。在应用程序这一层面来说,表现为能够定制一些特别的功能,而不受控件,类库的限制(C/C++的开发自然也要用到类库,但是相对来说比其他语言有更大的自由度),另外可以达到较高的运行效率。缺点是上手较慢,开发周期较长。
对全全新手有一些引入门的作
Perl早期在CGI程序中用得较多。Perl语言相当灵活,模式匹配功能很强,上手也不难,但是它是解释执行的,在效率方面可能会有问题。
Php是很流行的语言,由于它是开源的,容易获取。常与其他开源软件如Apache web server, Tomcat
application server, MySQL,
PostgreSQL等结合起来开发。Php语言容易上手,可以很方便地嵌入HTML页面中(但这样也容易使初学者将业务逻辑和界面表现的代码混杂起来),对数据库的操作很方便。Php的风格很自由,但对于缺乏面向对象程序设计概念的初学者来说,也容易写出结构不清晰,可读性和可维护性,可扩展性差的程序来。它是在服务器端执行的脚本语言,对于数据量比较大的应用,性能相对基于客户端的语言来说容易控制(因为不需要将要处理的数据传给客户端,而只要把处理的结果传过去)。
Python语言不太熟悉,只知道它是解释执行的,这样在效率方面可能有问题。<新一代 aso.net
2.0网
Javascript的优点是上手容易,和HTML结合相当紧密,操作起来很方便。事实上Visual
C#.Net有的功能(如类似Messagebox的提示窗口)还得借助Javascript来实现。但是结合太紧密了,不注意的话,也容易将业务逻辑和界面表现的代码混杂起来,不利于维护。Ajax技术的应用,给Javascript带来新的活力。Javascript的执行效率不如Java和Visual
C#.Net。它是基于浏览器端的,必须和其他技术如asp,web
service等结合起来才能进行数据库操作和其他需要在服务器端执行的操作,而且,如果用Javascript做胖客户端,对于数据量较大的应用,不容易控制程序的性能。Javascript的风格和Php差不多,也很自由。
Ruby on rails不熟悉,初步感觉是语法较简洁,好像也是解释执行的。
Actionscript是Adobe开发的语言,2.0版本极土,3.0加上了很多面向对象的特性。Actionscript主要是用来做基于Flash的程序,在实现动画功能方面确实很方便,容易做出很漂亮的界面。而且Flash比较轻量(light
weighted),比较复杂的程序编译后也只有几百K,部署也很方便。但是Flash在实现有些功能如动态列表方面显得笨拙,而且它容易有安全性问题,此外作为基于客户端的语言,在处理大数据量时容易有性能问题。
对全全新手有一些引入门的作
Java是目前应用最多的语言(根据TIOBE的编程语言排名),最大的优点是所谓的跨平台。Java语言有很多开源的类库和框架如Struts,
Spring, Hibernate等。Web方面用的比较多的是J2EE的技术,主要是 JSP,
EJB等,也有其他公司做的类似技术。Java的语法比较规范严整,面向对象特性较好,对于了解面向对象思想是很好的学习语言,但是学习难度相对Visual
Basic.Net和 Visual C#.Net来说稍大些。
Visual
Basic.Net也是容易上手的语言。Basic做为微软赖以起家的产品,应该不大会放弃开发更新,功能也很强,特别是和WINDOWS结合得比较好。但是在面向对象特性上来说,比Visual
C#.Net要差一些。
最后说Visual C#.Net。它在很多方面类似Java,
作为在Java之后推出的语言,它比Java更灵活,学习难度却要低一些。面向对象的特性似乎不如Java严格,但是基本上也符合面向对象的规范,而且比较灵活实用。所用的开发环境Visaul
Studio功能比较强大,易用。通过ASP.Net来做Web程序,界面和业务逻辑容易分离。作为服务器端执行,使用“即时编译”的技术,性能不错,代码修改维护也很方便。它作为微软力推的语言,应该有发展前途。Visual
C#.Net最大的缺点是局限于Windows系统,但对初学者来说,可能问题也不是太大。所以总的来说,Visual
C#.Net是一门适合初学者使用的语言。节代码很乱,而且并不如作者所提是用C#和
再说ASP.Net。它是在ASP的基础上发展起来的,但是面目全新,从浏览器端移到了服务器端,性能大幅提高,改用Visual
Basic.Net或Visual
C#.Net来写,程序结构也更加清晰。不过ASP.Net有些控件如表格控件似乎还不如传统的HTML表格元素好用,著名的网页编辑器Dreamweaver的新版本将不再支持ASP.Net,这些都对ASP.Net的使用造成一定困难。
节代码很乱,而且并不如作者所提是用C#和
作者:不再掩饰 回复日期:2008-9-20 1:57:16
第二节 学习Visual C#.Net和ASP.Net所需预备知识和技能
1. 所需预备知识用,但介绍的控件也不是特别全面,书中后章
不管有无编程基础,Visual
C#.Net和ASP.Net都是可选的入门技术。但是,若缺少这几方面的知识,可能会遇到一定的困难:
1.
HTML的基本知识:ASP.Net要和网页打交道,虽然不需要深入了解HTML的所有元素,因为ASP.Net基本上提供了对应的控件,但是基础的HTML知识,如表单的概念,POST和GET方式等还是需要了解的。
2.
面向对象程序设计的基本概念:简单的说,面向对象是一种对世界的抽象概括的思想。它把万物看作是具有一定功能的实体(在编程语言中就是类)。做某件事,就要找到合适的实体或实体组合,然后使用实体所具有的功能
(在编程语言中叫作成员函数或者“方法”)来完成该件事。实体具有一定的性质,比如是人的话具有性别,身高,体重等,这些在在编程语言中叫做属性,一般可以通过调用相应的“方法”来获取或者改变属性。当然面向对象程序设计的基本概念还有继承,重用,多态等,这些都需要有一定的了解。<新一代 aso.net
2.0网
3. 数据库的基本概念:如事务,存储过程,触发器,数据库模式,范式等。
4. XML的基本概念:ASP.Net的配置文件用的就是XML,此外Visual
C#.Net和Actionscript的交互等也要用到XML。
5. CSS的基本概念:主要是在网页设计时要用到。节代码很乱,而且并不如作者所提是用C#和
作者:不再掩饰 回复日期:2008-9-20 4:46:02
对全全新手有一些引入门的作
2. 所需技能
学习一门语言,以至学习一切东西,基本的技能都是差不多的。
1)要有清晰的思路。对于自己的学习过程脑子里要有一个清晰的图景。要清楚要学习的东西的大致框架,自己已经学了哪些东西,正在学的是哪一块,以后要学的是哪些;已经学的部分,自己已经学到了一个什么样的深度,还没达到的深度如何,还没有学的部分,自己打算学到什么样的深度;所学习的东西,难点在哪里,容易做错的部分是什么,哪些是重点,哪些比较常用,哪些需要其他预备知识;这些都要有清晰的认识,这样学起来才会心中有数。当然,这些认识不是一开始学就有的,但是在学的过程中始终要有意识地形成这些概念,而不能越学越浑。<新一代 aso.net
2.0网
2)宏观和微观认识相结合。初学一种技术,一开始可能被一大堆函数,参数,命令,类等搞得晕头转向,这时要及时撤出来,先不管细节,先搞清楚类的结构,类和类之间的关系,搞清楚实现这个功能,要用到几个类,这几个类的主要功能是什么。大致框架心中有数了,再逐步地深入细节,而不是一上来就抠细节。深入掌握一种技术时,却又不能满足于了解概貌,而是要深挖细节,了解不同实现手段的细微差别,可能出错的环节,参数的设置等等,这样才能做到精通。
3)要有较强的分析能力。有人说过,程序不是写出来的,是调试出来的。这充分说明了调试的重要。初学者写的程序,往往不能编译一次就能正常运行,需要经过反复调试才会正常。有时写完程序编译后似乎能正常运行,但过了一段时间,出现了开发时没有考虑到的输入数据,程序就出错了,也需要调试程序排错。调试程序,主要靠正确的分析(后面会详细讨论)。主要是根据出错信息所提供的蛛丝马迹,分析出错的各种可能性,试着修改代码或其他设置(有时不一定是代码的原因),重新编译运行,根据新的出错提示(如果有的话)进一步分析,修改代码和配置,再重新编译运行……重复这个过程直到错误解决。
4)要有较强的查找资料的能力。学习中遇到问题,有人问当然很方便,没人问时就要善于自己找资料解决。首选的参考资料是联机帮助,对于Visual
C#.Net和ASP.Net来说就是MSDN,因为这是厂商提供的资料,最具有权威性,往往也比较详尽,有些信息是其他资料上找不到的。另外,google和网上的技术论坛也都是很好的查找资料的地方。在论坛上提问时,要把出错信息,出错前所进行的操作和输入的数据,出错现象等都尽可能说详细,必要时附上出错部分的代码,方便别人帮你。<新一代 aso.net
2.0网
5)要有较强的阅读代码的能力。学习别人的程序,是很重要的学习方法。很多东西靠自己摸索,固然印象比较深刻,但需要走不少弯路,花费很多时间,有的情况下不值得。阅读别人的程序,看懂了,自己学着做几遍,也就会了,即使不熟练也没关系,起码有了个印象,以后碰到同样问题时,把以前写过的代码找出来适当修改一下就可以了。
第二节 学习Visual C#.Net和ASP.Net的基本方法
对全全新手有一些引入门的作
前一节其实已经涉及了一些方法,这里再补充一下。
简单的说,学习编程语言和技术,基本的方法是:了解框架,熟悉细节,阅读代码,动手实践。
前面说过,要宏观和微观相结合,刚接触一门技术时,不能过于微观,而要先从宏观上了解技术的大致框架。首先,先了解该技术的基本概念,了解该技术是用来做什么的。比如学ASP.Net,首先了解它是用来使网页能够访问后台数据库和服务器程序,实现浏览器端和后台服务器的动态数据交互的。这就完成了第一步。第二步就是了解该技术的大致框架,比如ASP.Net,大致有这么几块:网页的显示,和数据库的交互以及和网页上的控件的数据绑定,文件和XML的操作,安全性控制,web
service的实现等。这一步可以通过看书的目录来实现。把书的目录通读一遍,对于书所介绍的技术的大致框架就有了一个总体上的了解。第三步才是熟悉细节,仍然是坚持先抓大意,再抠细节的原则。比如对于数据绑定,先了解一般的步骤,然后再去深入了解各种控件所适用的数据源和操作等细节。
对全全新手有一些引入门的作
代码阅读是很重要的学习手段。学习优秀的代码,可以学到解决问题的思路,对于所学语言的细节可以有更深的理解,还可以学到良好的编码风格和规范。学习代码之后,最好当然是自己能不看别人的代码,动手编出相同的程序,这才算真正学到手。但是不大熟练也问题不大。因为技术实在太多,脑子里可能也装不过来,只能是最常用的技术烂熟于心,可以不看联机帮助也能写出完整的代码,其他有些技术,知道哪里可以查到解决方案,要用的时候copy
and paste,再适当修改一下就可以了。
学习编程语言,动手实践当然是少不了的。一开始可以依样画葫芦,模仿别人的代码,甚至可以“照本宣科”,把别人的代码键入一遍,然后再自己试着模仿。模仿的时候,可以试着修改某些参数,注释掉某些语句,看有些什么变化,这样可以加深对程序的理解。有时偶然发现别人的语句有冗余,或者理解有错,还可以增加小小的成就感
:)动手实践,最好是试着写些有实用价值,接近企业级应用的程序,而不只是为了操练语法而练习。
用,但介绍的控件也不是特别全面,书中后章
作者:不再掩饰 回复日期:2008-10-10 1:03:49
第二章 程序结构和基本语法
第一节C#开发的asp.net程序基本结构
开发工具的使用这里不讨论,有兴趣的可参考人民邮电出版社出版的《Visual Studio 2005技术大全》一书。站开发实战>林昱翔编著
1. 基本框架
C#开发的asp.net程序一般分成3部分:界面(一般是后缀名为.aspx的文件),界面的处理(一般是后缀名为.aspx.cs的文件),业务逻辑和数据库操作(一般是后缀名为.cs的文件)。简单的程序中,可能没有.cs文件。
这种安排实际上体现了一种模块化的思想。三个部分各司其职,相对独立,结构比较清晰,有利于代码的维护,提高程序的可重用性。初学者容易在.aspx.cs文件中放入过多业务逻辑和数据库操作的代码,就破坏了这种模块化的布置,是需要注意避免的。<新一代 aso.net
2.0网
提示:
界面和业务逻辑分离,是良好的设计风格。所谓的三层结构,MVC结构等概念,简单的说,都体现了类似的思想。<新一代 aso.net
2.0网
Aspx文件的功能类似HTML文件。如果接触过javascript或vbscript等构建动态网页的脚本语言,就容易理解aspx.cs文件的作用。简单地说,aspx.cs主要是动态地处理网页的交互,布局等。如果程序需要访问数据库,或者进行一些特定业务的数据处理,通常aspx.cs就会调用某个cs文件来处理,再把处理结果通过aspx呈现出来。
节代码很乱,而且并不如作者所提是用C#和
Aspx对aspx.cs的调用是在文件的开头声明的,下面是个简单的例子:
比如有个bookdetail.aspx的文件,它的开头有这么一句:
<%@ Page language="c#" Inherits="BookDetail"
CodeFile="BookDetail.aspx.cs" %><新一代 aso.net
2.0网
先不用完全理解全部意思,比如<%@
Page是什么意思,Inherits=是什么意思,先明白aspx调用aspx.cs的关键是:CodeFile="BookDetail.aspx.cs"这样的形式。
提示:一定要先了解大意,再抠细节。<新一代 aso.net
2.0网
节代码很乱,而且并不如作者所提是用C#和
作者:不再掩饰 回复日期:2008-10-11 0:19:49
2. Aspx文件
来看一个简化了的bookdetail.aspx文件:节代码很乱,而且并不如作者所提是用C#和
<%@ Page language="c#" Inherits="BookDetail"
CodeFile="BookDetail.aspx.cs" %>
<%@ Register TagPrefix="UTIL" TagName="FOOTER"
Src="./Controls/Footer.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN" >节代码很乱,而且并不如作者所提是用C#和
<html xmlns="http://www.w3.org/1999/xhtml"
>节代码很乱,而且并不如作者所提是用C#和
<HEAD>
<title>Book
Detail</title>
<meta content="Microsoft Visual Studio .NET 7.1"
name="GENERATOR">站开发实战>林昱翔编著
<meta content="C#"
name="CODE_LANGUAGE">
<meta content="JavaScript"
name="vs_defaultClientScript">
<meta content="节代码很乱,而且并不如作者所提是用C#和http://schemas.microsoft.com/intellisense/ie5"
name="vs_targetSchema">
<LINK href="./includes/styles.css"
type="text/css" rel="stylesheet"><新一代 aso.net
2.0网
</HEAD>
<body bgColor="gainsboro">
对全全新手有一些引入门的作
<form id="form1"
runat="server">
<table borderColor="gray" width="98%"
align="center" bgColor="white" border="1">
<tr>用,但介绍的控件也不是特别全面,书中后章
<td><asp:label
id="lblCustomerName" Runat="server"
CssClass="bold"></asp:label></td>
</tr>
<tr>用,但介绍的控件也不是特别全面,书中后章
<td><asp:label
id="lblCustomerAddress" Runat="server"
CssClass="bold"></asp:label></td>
</tr>
</table>站开发实战>林昱翔编著
</form>
</body>
</html>节代码很乱,而且并不如作者所提是用C#和
可以看出,这个文件其实就是在HTML的基础上再加些asp.net特有的标记。
这句:
<%@ Register TagPrefix="UTIL" TagName="FOOTER"
Src="./Controls/Footer.ascx" %><新一代 aso.net
2.0网
是声明用户自定义控件,如果接触过DHTML,就会发现它和htc文件很相像。具体后面再谈。
接下来,在HTML的body部分,除了标准的HTML元素如table等之外,还有这样的元素:
<asp:label id="lblCustomerName" Runat="server"
CssClass="bold"></asp:label>用,但介绍的控件也不是特别全面,书中后章
这些是asp特有的控件,和HTML元素不同的是,它们是运行在服务器端的。
关于aspx,暂时只需了解这些。
节代码很乱,而且并不如作者所提是用C#和
3. aspx.cs文件
来看上面这个aspx文件对应的bookdetail.aspx.cs文件,也经过了简化:
using System;
对全全新手有一些引入门的作
using System.Collections;
using System.ComponentModel;
using System.Configuration;用,但介绍的控件也不是特别全面,书中后章
using System.Data;
using System.Text;
using System.Drawing;<新一代 aso.net
2.0网
using System.Web;
using System.Web.SessionState;
using System.Web.UI;节代码很乱,而且并不如作者所提是用C#和
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;<新一代 aso.net
2.0网
using log4net;
using MyBook;
<新一代 aso.net
2.0网
namespace Book
{
/// <summary>站开发实战>林昱翔编著
/// Summary description for Panel.
/// </summary>
public partial class BookDetail : System.Web.UI.Page节代码很乱,而且并不如作者所提是用C#和
{
private static readonly ILog log =
LogManager.GetLogger(typeof(BookDetail));
<新一代 aso.net
2.0网
// Graph members
protected string sGraph;
private string graphType;
对全全新手有一些引入门的作
private string graphTime;
private int bookid = 0;
对全全新手有一些引入门的作
protected void Page_Load(object sender, System.EventArgs
e)
{
if (Session["CustomerID"] == null ||
Convert.ToInt32(Session["CustomerID"]) == 0)站开发实战>林昱翔编著
{
Response.Redirect("./Default.aspx");
}站开发实战>林昱翔编著
if (this.IsPostBack)
{站开发实战>林昱翔编著
}
else
{用,但介绍的控件也不是特别全面,书中后章
if (Request["BookID"] != null &&
Request["BookID"].Length > 0)
{
bookid = Convert.ToInt32(Request["BookID"]);<新一代 aso.net
2.0网
Book book = new MyBook.Book();
DateTime lastDate =
stats.GetLastDateForDefinition
lblCustomerName.Text = book.customer.name;
lblCustomerAddress.Text = String.Format("{0} {1}",
book.customer.city, book.customer.province);
}
对全全新手有一些引入门的作
else
{
Response.Redirect("./Default.aspx");
对全全新手有一些引入门的作
}
}用,但介绍的控件也不是特别全面,书中后章
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)站开发实战>林昱翔编著
{
//
// CODEGEN: This call is required by the ASP.NET Web Form
Designer.
对全全新手有一些引入门的作
//
InitializeComponent();
base.OnInit(e);
对全全新手有一些引入门的作
}
/// <summary>节代码很乱,而且并不如作者所提是用C#和
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary><新一代 aso.net
2.0网
private void InitializeComponent()
{
站开发实战>林昱翔编著
}
#endregion
}站开发实战>林昱翔编著
}
这个文件是由类和函数组成的,一般每个aspx.cs文件都有一个和aspx文件名相同的类,从System.Web.UI.Page继承。这个类的Page_Load函数相当于javascript的onload事件里调用的那个函数。暂时只了解这些。
<新一代 aso.net
2.0网
0 评论:
发表评论