仓酷云

标题: ASP网页设计第一章 C#简介(rainbow 翻译) (转自重... [打印本页]

作者: 谁可相欹    时间: 2015-1-16 22:26
标题: ASP网页设计第一章 C#简介(rainbow 翻译) (转自重...
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。<展示C#>第一章C#简介(rainbow翻译)


出处:http://www.informit.com/matter/ser0000001/chapter1/ch01.shtml

注释:

展示C#

第一章C#简介

接待您到场C#的天下!这一章将把您引进C#的六合,并回覆一些相干的成绩,如:您为何要利用C#,C++和C#的次要有甚么分歧点,和为何C#使开辟更简单并且还使您感应很风趣。
为何是别的一种编程言语?
必需回覆的一个成绩:当您已利用C++或VB处置企业开辟时,为何还要进修另外一种言语?市场式的回覆就是:"在企业盘算范畴,C#将会酿成为用于编写"下一代窗口服务"(NextGenerationWindowsServices,简写为NGWS)使用程序的次要言语。"这一章将对用参数哀求供应撑持,并摆设了C#的一些功效。这一章会使您开胃的。
C#言语自C/C++演化而来。可是,它古代、复杂、完整面向工具和范例平安。假如您是C/C++程序员,进修曲线将会很平展。很多C#语句间接借用您所喜好的言语,包含表达式和操纵符。假设不细心看,几乎会把它当做C++。
关于C#最主要的一点:它是古代的编程言语。它简化和古代化了C++在类、名字空间、办法重载和非常处置等范畴。摈弃了C++的庞大性,使它更容易用、更少堕落。
对C#的易用有奉献的是削减了C++的一些特征,不再有宏、模板和多重承继。出格对企业开辟者来讲,上述功效只会发生更多的贫苦而不是效益。
使编程更便利的新功效是严厉的范例平安、版本把持、渣滓搜集(garbagecollect)等等。一切的这些功效的方针都是对准了开辟面向组件的软件。

在持续出现出更多的功效之前,我想停上去并鄙人面申明C#相当主要的各类要素。

复杂
古代
面向工具
范例平安
版本把持
兼容
天真


复杂
C#具有C++所没有的一个上风就是进修复杂。该言语主要的方针就是复杂。良多功效(还不如说是短少了C++的一些功效)有助于C#全方位的复杂。
在C#中,没有C++中盛行的指针。默许地,您事情在受办理的代码中,在那边不同意如间接存取内存等不平安的操纵。我想没有C++程序员能够宣称,从没有利用指针会见过不属于他们的内存。
与指针"戏剧性"亲切相干的是"愚昧的"操纵。在C++中,有::、.、和->操纵符,它们用于名字空间、成员和援用。关于老手来讲,操纵符至今还是进修的一道难关。C#弃用别的操纵符,仅利用单个操纵符"."。如今一个程序员所必要了解的就是嵌套名字的注解了。
您不用记着基于分歧处置器架构的隐含的范例,乃至各类整型的变更局限。C#利用一致的范例体系,摈弃了C++多变的范例体系。这类体系充许您把各类范例作为一个工具检察,它是一个原始范例仍是一个full-blown类。和别的编程言语比拟,因为加框(boxing)和消框(unboxing)的机制,把复杂范例看成工具处置其实不能取得功能的改良。稍后将具体注释加框和消框,但基础上仅当必要时才利用工具会见复杂范例这类手艺。
起首,干练的程序员大概不喜好它,可是整型和布尔型现在终回是两种完整分歧的数据范例。这就意味着本来if语句中毛病的赋值如今会被编译堕落,由于if语句只承受布尔范例的值。不再会呈现误用赋值符为对照符如许的毛病!
C#同时也办理了存在于C++中已有些岁首的过剩器材(redundancies)。这类过剩包含常数预界说,分歧字符范例等。鉴于过剩表单已从该言语中消散,故一样平常在C#中都可使用表单了。

古代
您投退学习C#的勉力是一笔年夜投资,由于C#是为编写NGWS使用程序的次要言语而计划。您将会发明良多本人用C++能够完成大概很吃力完成的功效,在C#中不外是一部分基础的功效罢了。
关于企业级的编程言语来讲,新增的金融数据范例很受接待。您用到了一种新的十进制数据范例,它公用于金融盘算方面。假如不喜好这类现成复杂的范例,依据您使用程序的特别需求,能够很简单地创立出新的一种数据范例。
我已提到,指针不再是您编程兵器的一部分。不要太惊奇,周全的内存办理已不是您的义务。运转时NGWS供应了一个渣滓搜集器,卖力C#程序中的内存办理。因内存和使用程序都遭到办理,以是很需要加强范例平安,以确保使用的不乱性。
关于C++程序员,非常处置的切不是新的器材,但它是C#的次要功效。C#的非常处置与C++的分歧点在于它是交织言语的(运转时的另外一个功效)。在没有C#之前,您必需处置奇异的HRESULTs,但如今因为利用了基于非常的强健的堕落处置,这统统都停止了。
关于古代的使用程序,平安是主要的,C#也不会破例。它供应了元数据语法,用于声明下述NGWS平安形式的才能和允许。元数据是NGWS运转时的一个关头的观点,下一章将触及到它更深的寄义。

面向工具
您不会意料一种新言语不撑持面向工具的功效吧?C#固然撑持一切关头的面向工具的观点,如封装、承继和多态性。完全的C#类形式构建在NGWS运转时的假造工具体系(VOS,VirtualObjectSystem)的下层,VOS将鄙人章形貌。工具形式只是基本的一部分,不再是编程言语的一部分。
您一入手下手必需存眷的事,就是不再有全局函数、变量大概是常量。一切的器材都封装在类中,包含事例成员(经由过程类的事例--工具能够会见)或都静态成员(经由过程数据范例)。这些使C#代码加倍易读且有助于削减潜伏的定名抵触。
界说类中的办法默许长短假造的(它们不克不及被派生类改写)。次要论点是,如许会打消因为偶然改写办法而招致别的一些原码堕落。要改写办法,必需具有显式的假造标记。这类举动不仅缩加速了假造函数表,并且还确保准确版本的把持。
利用C++编写类,您可使用会见权限(accessmodifiers)给类成员设置分歧的会见品级。C#一样撑持private、protected和public三种会见权限,并且还增添了第四种:internal。有关会见权限的具体情形将在第五章"类"中申明。
您已经创立了几个类是从多基类派生出来的(ATL程序员,您的投票不计在内!)?年夜多半情形,仅需从一个类派生出。多基类惹出的贫苦一般比它们办理的成绩还多。那就是为何C#仅同意一个基类。假如您以为必要多重承继,能够使用接口。
一个大概呈现的成绩:在C#中不存在指针,怎样仿照它?这个成绩的谜底很有代表性,它供应了对NGWS运转时势件形式的撑持。再次,我将把对它的周全注释放到第五章。

范例平安
我再次选指针作为一个例子。在C++中具有一个指针,您能自在地把它强迫转换成为任何范例,包含干出诸如把一个int*(整型指针)强迫转换成一个double*(双精度指针)如许的傻事。只需内存撑持这类操纵,它就"干过"。这并非您所设想的企业级编程言语的范例平安。
大纲性的成绩,,C#实行最严厉的范例平安,以回护本人及渣滓搜集器(garbagecollector)。以是必需恪守C#中一些相干变量的划定规矩:
您不克不及利用没有初始化的变量。关于工具的成员变量,编译器卖力清零。而部分变量,则由您卖力清零。当您利用一个没有初始化的变量时,编译器会教您怎样做。长处是可以制止因为利用不经初始化的变量盘算了局而招致的毛病,而您还不晓得这些奇异的了局是怎样发生的。
C#作废了不平安的范例转换。不克不及把一个整型强迫转换成一个援用范例(如工具),而当向下转换时,C#考证这类转换是准确的。(也就是说,派生类真的是从向下转换的谁人类派生出来的。)
界限反省是C#的一部分。不再会呈现这类情形:当数组实践只界说了n-1个元素,却逾额地利用了n个元素。
算术运算有大概溢出终值数据范例的局限。C#同意在语句级或使用程序级检测这些运算。在同意检测溢出的情形下,当溢动身生时将会抛出一个非常。
在C#中,被传送的援用参数是范例平安的。

版本可控(Versionable)
在已往的几年中,几近一切的程序员都最少有一次不能不触及到尽人皆知的"DLL天堂"。该成绩原因于多个使用程序都安装了不异DLL名字的分歧版本。偶然,老版本的使用程序能够很好地和新版本的DLL一同事情,可是更多的时分它们会中止运转。如今的版本成绩真是使人头痛。
就象您将在第八章"用C#写组件"所看到的,NGWSruntime将对您所写的使用程序供应版本撑持。C#能够最好地撑持版本把持。只管C#不克不及确保准确的版本把持,可是它能够为程序员包管版本把持成为大概。有这类撑持,一个开辟职员就能够确保当他的类库晋级时,仍保存着对已存在的客户使用程序的二进制兼容。

兼容
C#并没有存在于一个关闭的天下中。它同意利用开始进的NGWS的通用言语划定(CommonLanguageSpecification,简写为CLS)会见分歧的API。CLS划定了一个尺度,用于切合这类尺度的言语的外部之间的操纵。为了增强CLS的编译,C#编译器检测一切的大众出口编译,并在通不外时列堕落误。
固然,您也想可以会见旧一点的COM工具。NGWS运转时供应对COM通明的会见。怎样集成本来的代码将在第10章"非办理代码的外部操纵"有先容。
OLE主动化是一种特别的植物。任一个利用C++创立OLE主动化项目标人已喜好上林林总总的主动化数据范例。有个好动静就是C#撑持它们,而没有烦锁的细节。
最初,C#同意您用C原型的API进持外部操纵。能够从您的使用程序会见任何DLL中的出口点(有C的原型)。用于会见原始API的功效称作平台挪用服务(PlaformInvocationServices,缩写PInovke),第10章将展现利用CAPI举行外部操纵的一些例子。

天真
上一部分的最初一段有大概提示了程序员。您大概会问:"岂非就没有我要传送指针的API吗?"您是准确的。不是唯一多数的这类API,而是良多(有点守旧的估量)。这类对原始WIN32代码的会见偶然招致对非平安类指定指针的利用(只管它们中的一些因为受COM和PInvoke的撑持能够办理)。
只管C#代码的缺省形态是范例平安的,可是您能够声明一些类大概仅声明类的的办法长短平安范例的。如许的声明同意您利用指针、布局,静态地分派数组。平安码和非平安码都运转在统一个办理空间,如许表示着当从平安码挪用非平安码时不会堕入列集(marshaling)。

小结
C#言语从C和C++演化而来,它是给那些乐意就义C++一点底层功效,以取得更便利和更产物化的企业开辟职员而制造的。C#古代、复杂、面向工具和范例平安。只管它自创了C和C++的很多器材,可是在一些诸如名字空间、类、办法和非常处置等特定范畴,它们之间还存在着伟大的差别。
C#为您供应了便利的功效,如渣滓搜集、范例平安、版本把持,等等。唯一的"价值"就是,代码操纵默许是范例平安的,不同意指针。光是范例平安就能够弄定了。可是,假如您必要指针,仍能够经由过程非平安码利用它们,并且当挪用非平安码时,不克不及
[img=1border=0style=,1src=]http://www.ckuyun.com/[/img]

ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。
作者: 分手快乐    时间: 2015-1-19 12:28
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者: 若相依    时间: 2015-1-28 06:02
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 简单生活    时间: 2015-2-5 15:16
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 不帅    时间: 2015-2-12 13:13
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 小妖女    时间: 2015-3-3 03:44
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 愤怒的大鸟    时间: 2015-3-11 09:27
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 老尸    时间: 2015-3-18 03:18
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 兰色精灵    时间: 2015-3-25 10:46
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2