ASP.NET教程之ASP.NET进门随想六之年夜帆海家
不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)asp.net 多隆云:我和韦春花的干系是很纯正的;网易称其和迷蝶女友的干系是培训双向选择制;杨振宁言《易经》头脑拦阻了中国近代迷信的开展;逻辑学家论:观点间的干系有五种,即统一、包括、交织、分别、互斥。而康托尔却以为:干系是有序偶。■我要懒+笨-程序计划的最终方针
前不久社区里呈现题为《如许的程序员是不是算是一个及格的程序员?》的热贴,楼主言一部下编码花工夫比他人多但代码标准强健,设问如许的程序员是不是能够留用且怎样用?登时掀起一片哗然,睁开在中国这个特定的情况下作甚程序计划方针及相干项目办理之会商。心灵捕手使用老毛《冲突论》之伎俩剖析:"这个是市场和程序员的冲突",称"假如是小公司的话就别谈甚么开展……工夫为第平生产力……假如不是……就先办理办理和预算成绩",我不由入手下手叹服其处置办法之老辣。
撇开市场要素不谈,程序计划的主要方针是往乐成办理一实际成绩。出格要注重的是,这个实际成绩常常是静态的、跟着工夫的变更而变更的,以是我们的代码要充足强健,以顺应这个变更历程,而不该把方针定位在办理某一个静态点上的实际成绩;其次代码及其布局应当是简便的,只要简便才干使编写简单、修正简单、保护简单,最年夜水平地勤俭本钱;再则代码应当可以反复利用,贪心的设法是代码不但可以在一个实际成绩中重用以削减反复休息,还能在分歧实际成绩的交织部分反复利用;最初由于人对天下的熟悉是一个迭代历程和实际成绩在不休变更这两个要素,以是程序应当是不影响本来代码的条件下简单扩大。实际上说了解"万物皆工具,事事要封装",综合面临历程的履历,你已能够入手下手下手办理任何一个实际成绩,但你会发明在全部开辟过程当中,仅凭今朝的常识和看法,本人会被大批冗杂成绩所环绕纠缠,直至保持为止,但这些底本完整能够制止!不论是这实际仍是那计划形式,一切后人履历总结的最终方针不过就是让程序计划酿成更简便、更简单、更快速,分明这点,很多出色的程序大家为什么号称本人是"懒+笨"之人也就不难了解。
■分别干系-类的封装与依附
这个天下的事物不成能象一个个鲁宾逊孤岛散落在一马平川的陆地中,老逝世不相来往。相反,即便是中国最遥远的墨脱县,也仍然与故国坚持着千丝万缕的干系。《随想五》中我们晓得怎样把实际空间的事物收拾成工具并笼统成类,接上去梳理一下它们之间的干系。
起首我们以程序计划方针的视角来存眷封装的意义。站在帆海者(类的利用者)的角度来看,他不用要懂得岛屿的地舆、社会等外部布局(迪米特法例LawofDemeter),而只需晓得岛屿临盆和必要甚么(类的功效)、找谁交易(public成员接口)就好了,晓得这些就可以很快搭建起一个贸易收集(计划使用程序)。而作为岛屿的统治者(类的完成者),他不用存眷外界的风风雨雨,只需专注于岛屿内的临盆和消耗办理,统治者把这类征象称之为高内聚。
关闭年夜年夜简化了程序计划的庞大度,类间交换是经由过程一个局促的、经由优秀限制的接口举行以包管类的牢靠性。一方面类的利用者搜集类疾速开辟程序,而且不试图改动类的外部布局,另外一方面类的完成者在不修正public成员接口的条件下能够自在地修正外部事情体例。
但类的独自存在没有任何意义!最一般的干系是某个类的实例利用另外一个类的实例,假如商船泰坦尼克号必要夏威夷岛供应货品,那末我们称商船依附(Dependency)于岛屿供应货品,如所示,而随之而来的成绩是,假如夏威夷岛外部骚乱(类的完成者修正public成员接口),将间接影响泰坦尼克号的一般事情,我们也将不能不从头构造商船类的外部布局以顺应变更,半途而废。耦合是类间依附水平的量度,关于变更大概性年夜的类在处置依附干系时要只管制止高耦合。
<P> ■观点的包括与交织-类的分解与承继
笨人是没法了解一个塞满各类庞大功效的工具,以是类的第一计划准绳是单一,对应成绩空间中的一个观点。假如所对应的观点包括别的观点,却为全体/部分干系,称之为"has-a",我们就将这几个类的实例分解(composition)一个新类。比方商船都有动力安装,那末我们就实例化一个动力安装类,加上除动力安装范围之外的别的属性和办法,即分解商船类,如。分解具有极年夜的天真性,且不损坏类的封装。以是我们要只管利用分解,罕用上面先容的承继(分解复用准绳CompositeReusePrinciple)。
小时分的文娱体例对照少,映进眼框的除山川外,最多的莫过于五六十年月和平题材的老影戏,外头人物脸谱化得严峻,以致于我总以为,这个天下只要两种人--坏人和好人,假如这个概念建立,那末分解将勇往直前。但这个天下上,其实不满是全体都由部分复杂叠加。如今让我们假定这个天下的船只要两种用处:商船和战船,从观点的角度来看,它们有相拟性,即观点交织,如-3左,同时它们也具有各自的特性,假如我们只是复杂地将商船和战船分离笼统成两个类,那末将呈现大批的类成员反复,以是必要机关一个机制来反应两个观点的交织干系,这就是承继(inheritance)的由来,称之为"is-a"。
承继的特性是具有条理性,从图的形状来看很象家谱树,但用家谱树来比方承继是愚昧的,并没有真正展现承继的本色,承继的历程,就是从一样平常到特别的历程,如右所示。传说中人类都是由非州一古猿的儿女,现实与否我们先不会商,但与之相似的是,假如层层笼统,.NET的一切类都间接或直接派生于统一个基类--Object类。
类的承继最直不雅的用途在于复用,.NET手艺给我们第一映像就是MS公司工程师们经由临时理论提炼出的五千多个大众类,关于使用而言,它几近涵盖了今朝为止一切范畴的一样平常化观点。在此基本上经由过程得当的承继与分解,我们很快就可以构架出属于本人的类系。
我们再以成员汇合的概念对待类,关于分解而言,其成员汇合以下:
商船{地位,船向,动力安装{动力值},挪动(偏向)}
援用动力值必要云云表达:商船.动力安装.动力值(你能够实验一下把"."读成"的"),而对承继而言,其成员汇合以下:
・商船{最年夜运载量,装载(货品),挪动(偏向)}
・战船{火力值,战役(船),挪动(偏向)}
能够看出船类的public成员酿成商船类的public成员,表达为:商船.挪动,而船类的private成员在商船类中被埋没。这么处置的根据是:由于船能挪动,商船是船,以是商船也能挪动(出名的亚里士多德三段论)。偶然我们但愿派生类能会见基类的某个成员但又对类之外的天下埋没,如船的速率,各类品种的船都应当有速率,以是速率应当是基类成员,但我们不但愿外界要素来间接修正速率值以损坏速率的盘算机制(其同时受表里要素影响,由船的挪动办法来盘算),以是我们引进第三个会见把持符protected来润色该类成员。
战船有一个风趣的办法:战役(船),接口的参数是船类的一个实例,也就是说战船能够和任何一种船战役,甭管是你商船仍是战船,以是我们能够这么利用该办法:俾斯麦.战役(泰坦尼克号),即子范例能够交换基范例(仍然能够用亚里士多德三段论来证实这个逻辑),这类交换办法称之为里氏代换准绳(LiskovSubstitutionPrinciple),感化是减小办法完成的庞大度。
承继机制有一个主要的缺点,基类和派生类是强耦合干系,且损坏了封装,由此带来成绩是:假如基类由于计划不妥而举行修正,将影响一切派生类;别的,关于派生类的某个成员而言,你大概要花半地利间才干找到它事实是在哪层完成,以是在计划过程当中,一要只管紧缩承继的层数,二是保持分解复用准绳,能用分解就不必承继。
Login类的类视图
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了) ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
页:
[1]