??xml version="1.0" encoding="utf-8" standalone="yes"?> 开源博?/span>OXITEQ这个博客系l是使用ASP.NET MVC来实玎ͼ最新版本的?/span>2009q?/span>2?/span>15发布的?/span>MVCq不是什么新东西Q我研究OXITE主要的目的其实就是ؓ了学?/span>MVC而已。所以我们从l构上去分析q个东西Q因Zơ写分析cȝ文章Q可能写的ƈ不好。看到说得不准确的欢q指出,一赯步嘛?/span> 一?/span>什么是Oxite; Oxite是微软发布的开源博客^台?/span> 二?/span>我ؓ什么选择Oxite
对于Oxite其实我只是在无聊的时候想找下相关MVC开发的现成目。所以就q行了一番研IӞ我觉得这个系l十分适合初学者,如果你觉得不能理解面向对象,可以认真看一下这?/span>Oxite,它充分的现实出面向对象徏模的思想Q在学校学习的时候我们老师M用RQh之类的来描述面向对象Q而我们在|上看到的大部分代码Q真正用到面向对象思想的其实不多。甚臛_以说是教E式的。完全不能体现出面向对象的精髓?/span>Oxite是轻量的,它ƈ不像petshop那个巨型和复杂。可能你W一打开代码的时候会被他的类库项目吓着。。当你静下心来的时候。你会发玎ͼq个是一个很好的学习型作品?/span> 三?/span>所需环境 1. Visual Studio 2008
SP1Q?/span> 2. ASP.Net MVC 1.0 3. xunit-1.5 4.
AntiXssLibraryV1.5Installer.msi 5. Enterprise Library
4.1 - October 2008.msi 6. Microsoft SQL Server
2005 7. BlogML 2.zip 以上是我使用的版本,q些版本能让整个目跑v来。页面很单,也很z,因ؓq个目目前只是一个显C技术的作用的项目?/span> 四?/span>目l构 Oxite解决Ҏ(gu)?/span>5个项目组成: 1. OxiteQ?/span> Q核心基目Q?/span> 2.
Oxite.LinqToSqlDataProviderQ(数据基础目依赖?/span>OxiteQ?/span> 3. Oxite.MvcQ(相当?/span>MVC中的C层,Controllers层的作用Q依赖于OxiteQ?/span> 4. Oxite.Mvc.TestsQ(试层) 5.
OxiteSiteQ(昄层) M其实是1,2Q?/span>C?/span>3,V?/span>5 怿看到q里大家都可以看到已l基本可以运行期q个pȝ了。下一章,我将会是解析数据?/span> 大家W一ơ接触编E的时候我惛_多h都会在那?/span>Q啊之类的地方不断的问,怎么学习~程Q要看些那些书。甚臛_癑ֺQ谷歌里搜烦如何学习~程?/span> q篇文章Q我会从我自己学习编E的角度Lqͼ如何学习Q可能不是最好的学习Ҏ(gu)Q但是我惛_于一些朋友M有帮助的Q因为方法是源自你个人。我在这里说一下我的格aQ别L别h怎么做,首先应该惌己怎么做。别L别h怎么帮助你。首先想自己帮助自己?/span> x我自己学习编E也有好多年啦。初三开始小打小闹的?/span>C语言写个无聊?/span>printf()到用HTML写几个个人网站。虽然没啥技术含量不q都是自q力_Q那时候真的很Ȁ动,现在回想hQ其实那时候很q稚。不q也造就了我的兴吧Q好了闲话就说了,我们入正题?/span> 在学习之前,请允许自己先问下自己Q我Z么要做这L事。对于编E,我会先问一下,你ؓ什么要学习~程Q你会怎么回答Q?/span> AQ兴; BQ读书需要; CQ传L高薪职业Q?/span> DQ容易就业; EQ被逼的Q?/span> FQ无聊学学; q个你会怎么选择Q什么样的目的,得到什么样的结果。如果你选择Q?/span>AQ我会开心,兴趣是动力Q就没有h教,你也会鼓_气去学习Q就我个人来_我是那种屁股坐不E的人,你叫我坐在那里什么都不做半个时Q我会全w都不舒服的。但是一说到计算机,~程我可以一坐就?/span>7Q?/span>8个小时自p没感觉。兴第一Q很好,你以q个为目的我怿你一定能学好。相信你也有自己的一套学习方式?/span> 如果你选择的是BQ那么你也有一定的成功几率Q首先你要是一个会M的hQ可以说M是你的兴趣Q那么你也可以学好。当然如果只是随潮流大家都读所以我也要读,那么你只能学不好了?/span> 如果你选择的是CQ那么你q是早点攑ּ吧,那些拥有高薪的都是十分牛的hQ其实的q大E序员还是挣扎在生活的水q线上。饭吃而已Q所以如果你q高薪d习编E,你一定肯痛苦。这cM是最能有成就的一c,~程是技术需要的是一份执着Q但是你的执着只是金钱。技术现在ƈ不等于金钱。。。?/span> 如果你选择的是DQ我q是劝你早点攑ּQ现在的׃也不乐观啊,׃大军里计机占了很大的一部分比重Q你随时都可能是其中的一分子?/span> 如果你选择的是EQ很好,你也有可能学好,前提是g的h能一直强g下去Q让你进步,一句非常经典的话:“人都是被逼出来的。。。。?#8221;。你出生的时候的是被逼出来的Q被你妈妈逼出来,呵呵Q?/span> 如果你选择的是FQ也不错Qv码你无聊的时候想到的居然是编E,证明~程q能l你带来乐趣?/span> 既然你已l知道ؓ什么学习编E,那么我们要做的就是怎么d习了。现在的~程语言很多Q上百个语言Q但是无Z么语aQ都会有共同性的。所以你要学习编E那么就要先学习~程的思想Q这个编E的思想你也只能看一下而已。了解一下计机如何去读q些~程语言q个很重要。不了解q个你学习Q何编E语a都很隑ց到灵z运用?/span> 你明白了计算机是如何ȝE语a是的q个时候你可以开始选择你学习的语言了。至这些编E语a都是我能看懂的,可以说是自己学过的。也会解析一下学习这些语a的一些特炏V?/span> A: c#.NET B: Java C: C/C++ D: PHP E: JavaScript F: lua 我只列出了五U?/span>,其实q有更多的语a,有兴可以自己去找下q些语言的特?/span>.其实我了出的q些都有一个特?/span>.都是?/span>C语言有一定的怼?/span>. A: C#q个语言是微软推出的,目前大部分应用都是应用在WINq_?/span>,虽然LINUX也能?/span>,但支持还不是太好.~程风格上我觉得是最优美.臛_看v来很舒?/span>,强大的智能感?/span>.~程的学习难度分U是:初学偏易Q一般编E中{,高~程难。梯度不陡峭。虽然是面向对象Q但是现在大部分的h都很用到面向对象臛_我在国内反编译很多的应用pȝ的时候很多都没有用到~程思想的,虽多是把类用来实现脚本~程闭包功能而已。真正用到面向对象的承多态的q不多。当然也有很多是使用了面向对象思想的,所以我觉得初学C#的时候完全可以放弃对象的l承Q多态这cL较复杂的东西。专心学习他的语法糖Q还有封装好?/span>APIQ其?/span>C#q个语言已经有个很完善的API基本上的应用都可以直接?/span>API来实玎ͼ而且从算法构造上也不复杂。再加上IDE的智能感知,新手只需要了解各个命名空间的作用可以了Q智能感知会帮助我们完成API的调用(臛_你要知道那些Ҏ(gu)在那个空_怎么用)。所以初学我把它定义在上?#8220;?#8221;。现在的学习其实q一定要从记事本开始。学会?/span>IDE学习其实也是一Ҏ(gu)能。编E很重要的一炏V就是你动了多少手,你就收获了多,无论你看了多别人的代码Q如果你不自己动手去写一下,你永q没办法感受到内涵,之前我有部分同学Q他们跟我说Q现在网上大把代码,那里需要自己敲得那么辛苦干嘛上|?/span>COPY一下就什么都有了Q傻瓜才自己手写。好吧我承认我傻瓜。但是自我现在的水qx敢说Q,你只需要给?/span>2样东西我一栯写出你上|找的那些代码。一hVSQ另一h帮助文档。说赯个事又o我想hq公司招聘的一些趣事。最q公叔R试了接近80个h吧,因ؓ我们公司的上试是不允许上网的。呵呵!你们可以惌一下,不能上网后只?/span>30个能勉强敲的Z码的。能做出题目的更是少得可怜。突然我想Q这些h到底有没基础的,一个简单的d功能和上传文件功能不能上|就不会写,我真是狂汗。。。一些号UCq五q工作经验的Q居然还写不Z个简单的交叉表查询。(其实?/span>10句代码。。。。)。所以啊q分依靠|络怎么可能有自q技术积累呢Q这些h在我眼里三年五年也成不了构架师。。可能十q也M到构架师的水q?/span> BQ?/span>JAVA ?/span>C#cMQ传d软推?/span>C#也是ZҎ(gu)JAVA而搞出来的。这两种语言有很多相似的地方什么是命名的方式上都有很多怼的地方,JAVA也是?/span>C语言里发展v来的。不q我觉得在学习曲U上Q初学要?/span>C#难,中国人普遍英语不太好。而且?/span>IDE上微软的VS要比JAVA的各cȝ辑器要优胜,主要是在感知上,q有一些辅助上。可能很?/span>JAVA的铁?/span>FANS会给我丢西瓜Q丢鸡蛋了。但我敢_我说的是事实Q?/span>JAVA位置一个环境都很辛苦,臛_我学习的时候是q样。免费啊Q?/span>JAVA很多东西都是免费的,微Y要收费的Q收费肯定好了。。。。我会偷LW。。。你丫就不用盗版Q有了光荣的盗版。收贚w题根本就不是问题Q再说从学习的角度。。盗版这些东西根本就无关痛痒的。。反而更Ҏ(gu)召集人气。。?/span> C: C语言可以说是非常牛逼的语言Q长期位居第一。但是需要投入的_֊也不啊Q智能感知一直进步不大,可能是因Z恶的宏定义呵呵(q个万恶可不是我说的。)当然学习C语言如果你不懂用宏定义那么你肯定没学过C语言Q?/span>C语言的宏定义虽然一直在C语言的书本上很少描述但是实际应用却是不可~少的,我看q?/span>IDSOFT?/span>DOOM的源代码里简直就是神一般。但是看h也真是辛苦。题外话Q其实上面很多语a都是Ҏ(gu)C语言衍生出来的,什么很多特性都是参照了C语言。用很玄qȝ说话?/span>C语言是远古时代遗留的强大法。既然是q古学习曲线自然陡峭得可以Q我个h感觉我的C语言水^其实都只是菜鸟而已?/span>C++一h菜鸟?/span>C++?/span>C其实我觉得是2个语aҎ(gu)不能混ؓ一谈的Q但是很多招聘之的都?/span>C/C++归ؓ一c,所以我也把它归Zc,很多人想问学C++是不是要先学C。而且C++的分支多得吓人。内涵也丰富得吓人。?/span>C语言个h技术化Q我个h觉得C/C++L?/span>4q才出师,JAVA?/span>2q_C#都是2q。而且q需要一pd的计机基础Q算法基{一些东ѝ?/span>JAVA?/span>C#都把q些东西装了成标准?/span>API了,我们只需要用。但?/span>C/C++q些东西都没有一个确定的标准例如界面库,有h?/span>QT有h?/span>MFC。这些都是不一L所以选择的\也多Q学的东西自然也更多了。但从编E上Qƈ非就?/span>C++的就比用C#的牛?/span>C++只是拥有深厚的历Ԍ有自q特的文明。是因ؓ它的文明而牛?/span> DQ?/span>PHP 接触不深Q但是我觉得它是一个制作网늚好语aQ其他领域我q不怎么看好他,我觉?/span>PHP在开发网上有很大的优势Q但是开?/span>B/SU系l应用就现得比较力不从心了。所以如果你定位自己作ؓ一个网开发h员的话,你就应该学习q种语言。如果是B/SU的应用的话Q就应该使用C#或?/span>JAVAQ或者其他的语言?/span> EQ?/span>JavaScriptQ非常有名的脚本语言Q如果你想从?/span>B/S的开发,|页开发,你就一定要学这个,是一个必L握的技能。学习曲U相Ҏ(gu)较^坦,而且内容也不多Q但是应用却十分灉|的语a。强烈推荐初学者先学习q个语言Q来L感觉Q因个语a完全不存在编E环境的问题Q你只需要有览器,C本,两样Mpȝ都有的Y件就可以~写它。所以我觉得首先学习它会对你理解~程思想有一定帮助?/span> FQ?/span>LUAq个也是一个脚本语aQ成p个语a的名声是来自一个叫“兽世界”的游戏,目前我了?/span>LUA应用的领域比较多都是作ؓ一U嵌入语aQ嵌入到C或?/span>C++中去使用Q在国内很多游戏公司都会?/span>LUAE序员,部分会由C语言E序员去gQ。因?/span>LUA在语法上?/span>C有很怼的地方,基本Ҏ(gu)?/span>C语言E序员学?/span>LUA是无隑ֺ的。当然也有它的局限性,作ؓ脚本语言它本w就存在不Q而且q个语言本n是作ؓC语言的扩展来用的所以,学习q个语言的话Q徏议先学习C语言。或者成更高(或者而已Q) 我个人是选择C#作ؓ长期发展的语a的。我觉得q个语言比较适合我这U英语不好Q但是又喜欢~程的h?/span> PSQ真心想学编E的必须要学习一定的p能力Q因为很多编E的先进思想都是英文的。所以英语好Q对成ؓ高手起很大作用的?/span> 知道Z么学习编E,又选择了目标语aQ接下来是基础学习了?/span> q个基础学习Q我觉得首先要对一些语法糖熟?zhn)Q第二g事情是要多~,多看Q可能你买的书都附带着实例代码的,我觉得对于初学者,首先你把书上的程序都照着~一ơ,在这期间Q你一定会遇到无数的错误,但是q些错误会是重复出现的Q这个时候你学会了如何排错Q有q编E不是一口气写出来的Q是修改出来的。所以学习排错是~程的第一步,虽然随书光盘有很多代码,但是q些代码都不属于你的。没有入你脑Q唯一让这些代码属于你的办法就是多抄(打)几次。当你把一本编E的基础书都看透了。。至别人问你这本书的知识你能答得上口,那就是你度过了第一时期了。你可以q入一搬阶D了?/span> 一般的阶段Q这个阶D|把它定义为是把这些语法组l成句子Q组l成文章的时期。我想问下,大家都上q语文课吧,我们来回想一下,我们学习语文的过E?/span> ?/span>=》词=》句=》文章; 而编E的学习则是q样的; 变量=》函?/span>=》类=》架?/span> 所以我们在初学阶段做的都是学那些字Q那些词Q其实就是语法糖Q然后我们就会学造句Q造句的时候就会涉及到把什么词语组合v来会得到优美的句子,而合理的句子Q加上合理的逻辑׃变成一优的文章。但是一优的文章q那么单的。也是一个程序架构的优美一h那么单一P需要很多很多学识?/span>
Oxiteq_使用微Y公共许可(Microsoft Public License)授权方式Q这是微软经q开放源代码促进?/span>(OIS)认证的开源许可之一?/span>
微YUͼOxite是一U具有可拓展性的、标准兼容的内容理pȝQ旨在支持博客或更大型的|?/span> 站,能支持广播、引用通告、匿名或验证评论、个人全球统一标识(Gravatar)头像及在M面U别输出RSS Feed{功能。用户可在某一站点上创建和~辑一整套面Qƈ可在面中定?/span>HTML代码Q而且q可在单个站点上创徏多个博客?/span>
微YUͼ开?/span>Oxiteq_的最初目的就是向开发者展C?/span>ASP.Net MVC的功能?/span>
微Y使用Oxite创徏?/span>Mix Online|站Qƈ向开发者提供了该站点的源代码以供学习?/span>Mix Online是一个网l社区,其中心内Ҏ(gu)微Y?/span>Mix|络开发者会议?/span>
微YOxite目负责人埃里克·波特?/span>(Erik Porter)UͼOxiteq现有的、已l确立的博客pȝ的直接竞争者,也无意挑战微软自w的SharePoint工具Q后者也带有内容理pȝ的功能。他表示Q?/span>Oxiteq_目前的对象仅为开发者,但最l可能适用于全体公众?/span>
埃里?/span>·波特?/span>(Erik
Porter)在一?/span>Oxite论坛上写道:“我们?/span>Oxiteq_没有M其他计划Q只是希望ؓ开发者提供一个能q行M站点的范本。也是_到目前ؓ止它只是一个社区项目,但如果社区决定要把它带往其他方向Q我们也不会加以L?/span>”
]]>
]]>
ADO.NET Entity Framework是徏立在LINQ的基上的。提供了从关pL据库模式到对象的映射。在q去Q我们开发的时候,都会先把q些关系数据库里的表Q构建对象。过d那种开发模式,我想大家都不陌生了,三层架构里,q个东西是最常用的,而且现在|上也有很多cM的YӞ生成数据库表对象代码。只是不知道那个公司把ADO.NET Entity Framework投入了实际开发中Q在我初步的试用q程中,我觉得ADO.NET Entity Framework的确能帮我们提高开发速度。但是也有缺陗就是更新太快,很难投入实际q作Q就是LING现在用的 公司也ƈ不多Q大部分都还是停留在2.0时代。真正要实现普及隑ֺ不是一般的大,1.1?.0׃2q多才勉强普及,q是??有重大不的前提下,现在2?已经相对问题Q要q些公司更新你到3.5隑ֺq不啊Q至国内是q样。貌似我q没有资D些。。。因为太q轻?br />
ADO.NET Entity Framework需要定义三层,分别是:逻辑层,概念层,映射层。如果是直接用VS的导航做Q这些很方便Q但是导航永q不能满_杂的现实Q所以我们还是需要自己动手去一步一步的做,当然Q如果想先入门一下,可以用导航去感受一下。其实我也是在学习阶D,个h感觉貌似.NET的布局有点像向SSH的方向靠拢,H然看到SP1有这么大的整合感觉到。。。貌?NET会有大动作?br />
--------------------------------------------------------背景------来自癑ֺ知道---------------------------------------
长久以来Q程序设计师和数据库L保持着一U微妙的关系Q在商用应用E序中,数据库一定是不可或缺的元Ӟq让E序设计师一定要Zq接与访问数据库而去学习 SQL 指oQ因此在信息业中有很多h都在研究如何程序设计模型和数据库集成在一P对象关系对应 (Object-Relational Mapping) 的技术就是由此而生Q像Hibernate?a target="_blank">NHibernate都是q个技术下的物,而微软虽然有?a target="_blank">ADO.NETq?个数据访问的利器Q但却没有像NHibernateq样的对象对应工P因此微Y?NET Framework 2.0发展时期Q就提出了一个ObjectSpace的概念,ObjectSpace可以让应用程序可以用完全对象化的Ҏ(gu)q接与访问数据库Q其技术概?与NHibernate相当cMQ然而ObjectSpace工程相当大,?NET Framework 2.0完成时仍无法全部完成Q因此微软将ObjectSpaceU_下一版本?NET Framework中,q且再加上一个设计的工具(Designer)Q构成了现在?ADO.NET Entity Framework?br /> Entity Framework 利用了抽象化数据l构的方式,每个数据库对象都{换成应用E序对象 (entity)Q而数据字D都转换为属?(property)Q关pd转换为结合属?(association)Q让数据库的 E/R 模型完全的{成对象模型,如此让程序设计师能用最熟?zhn)的编E语a来调用访问。而在抽象化的l构之下Q则是高度集成与对应l构的概念层、对应层和储存层Q以 及支?Entity Framework 的数据提供?(provider)Q让数据讉K的工作得以顺利与完整的进行?br /> (1) 概念层:负责向上的对象与属性显露与讉K?br /> (2) 对应层:上方的概念层和底下的储存层的数据结构对应在一赗?br /> (3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体Q和 Provider 一P负责实际Ҏ(gu)据库的访问和 SQL 的生?img src ="http://www.shnenglu.com/AthrunOnline/aggbug/88323.html" width = "1" height = "1" />
]]>
C#里的J承是可以分?E的Q我自己分的Q,W一E,實體J承Q第二種虛繼承,W三E接口繼ѝ有些書c是這樣分的:實現J承Q接口繼ѝ?br />實體J承Q?/strong>這個是我們經常用的,基類有自q功能。ƈ允許部分功能被子掩蓋,也是我們經常看到的J承?br />
虛繼?/strong>Q這個類是我自己區別出來的Q因為這個虛J承是介乎與實體J承和接口繼承之間,虛繼承是指基之生命了方法,但這類Ҏ(gu)沒有M實體操作Q所有實體操作都必須由子實現,q且子類都必須事先虛基類的每一個方法?br />
接口J承Q?/strong>只繼承函數簽名,沒有J承M實現代碼.
我打個比喻,實體J承可以比喻Z個國Ӟ虛繼承就是類似歐盟這樣的組J,接口J承是聯合國。國家是有一定職能的Qƈ且他又行駛這些聯的武力支持,這類聯是實體J承的方法。虛J承Q就是你加入了這個組J,你就必須要遵守這些制度。但是歐盟是沒有實體的,也就是沒有職能武力支持,它依靠的是實體子(加入歐盟的國Ӟ的武力支持。接口繼承,這個聯合國比喻最正確不過。就個名字,什么某些國家掛著它名字出去為非作歹都沒問題。唯一有用的就是他的名字,但是有時候你又不能少了這個名字?br />
在C#里不支持多繼承,這個不支持多繼承是限制在實體繼承和虛繼承的基礎上的Q根據設aC#那個牛人的意思,多繼承所產生的代污染代Ҏ(gu)J承來的要大Q所以他選擇不支持多J承Q但是需要用到多J承的情況下Q他引入了一個概念,接口。實體繼承只能是一個,接口可以是好多個,好比如Q某個公司只是屬于某個行業,但是它卻擁有很多個榮譽稱號?br />
上面的分,只是用來方便我們在什么時候用什么樣的繼ѝ?br />
理解完繼承的分類Q我開始介紹繼承的i成Q?br />
虛方法:帶有virtual基類函數Q方法)聲明Q子用override修飾。在C#中的虛函數(Ҏ(gu)Q的概念和標準OOP是一致的Q可以在子類中重寫虛函數。在調用Ҏ(gu)時,會調用對象類型的合適Ҏ(gu)。 因為在C#里面默認情況下都不是虛擬的,但是JAVA在默認情況下是虛擬的。所以必須顯式地聲明為virtual才是虛的Q構造函敔R外)。關于虛Ҏ(gu)上C#和C++是一致的。但是C#子類重寫時候需要加上override修飾?br />
pҎ(gu)Q當沒有把基的Ҏ(gu)聲明Ҏ(gu)的時候,但是z又用到了跟基類Ҏ(gu)完全相同的名字的Ҏ(gu)Q不滿重載的方法)Q在C#里我們用關鍵字new來聲明,則表C我們要p一個基的Ҏ(gu)?br />
當我們沒有用newQ也沒有使用virtual-override的時候,R譯器會隱式地我們的代碼加上newQƈ提示一個警告,所以在R寫I定代碼的時候,用默認是個比較好的習慣,臛_我覺得這個習慣很好。雖然C#珑֜沒有夸^臺的概念Q但是在C++{其他應用的時候,不一樣的q有不一樣的默認方式。當然在C++里我們常用宏來解決這個夸q的。跟那個默認值沒有關p,我只是舉例,舉些不確?00%恰當Q但是又Ҏ(gu)q助人理解的例子?br />
例如在我們自己開發服務器端控件g的時候,我們經常用到base 關鍵字的Q就是調用基方法去操作Q主要作用是區分重新方法和基類Ҏ(gu)?br />
抽象?其實是我上面說的虛基類。有一個比較明的特征Q有關鍵字abstract因為抽象和Q抽象方法都是沒有具體代的Q他們的實現具體代碼是依靠子去實現Q例如,有一個基動物,這個動物是虛基來的,所有動物我們都讓它具備了行走的Ҏ(gu)Q讓后h這個子繼承于動物Q老虎這個子也是繼承于動物Qh這個子的行走方式是用2條腿的,老虎是用4條腿Q這樣做的好處是起到抽象限制作用。我又來一個比如,我動物下一個定,你怎么下?最單Ӟ會自己動的物體。就叫動物。好這樣我就定義好了動物是會動的Q至于怎么動,是用手動Q還是用腛_動,還是用n體去動,沒有沒有細節d分,只需要知道它動了pQ這個動是抽象?br />
接口Q接口這個東襉K然沒限制你繼承多個?但是J承了接口,證明這個類會埯某些函數。接口是不能實現實體化的Q也是說她沒有溝造函數,接口只是一個契約,例如你加入某某協會,協會的契約是你需要交會費Q同時我們承認你是我們協會。你可以得到協會的內部資料。例如我們熟(zhn)的DisposeQ)Ҏ(gu)Q這個方法和C++里的析構函數差不多,用于清理的,它實現了接口IDisposableQ如果你有一個類加入了IDisposable協會Q那么你得到權威的DisposeQ)Ҏ(gu)的承認,hIDisposable會員的合法資根{你加入了聯合國Qƈ且依照聯合國的武力條例,那么你將得到聯合國授Ɗ你是正的?br />
接口是i你一個“借口”可以光明正大地厠Z侮辱(污染Q”h家。(掛著聯合國名字光明正大的d澀它國內政。)
J承的重點就完了。至于那些訪問規則就是靠背的Q上面那些才是應用繼承的細節。體現了如何抽象,如何使用光明正大的污染代等一些用繼承的模糊信息。我沒有參照M資料d這篇文章的,那么錯了,歡迎大家指出
]]>
W一繼扉KQ?br />有以下C#代碼
using System;
class A
{
public A()
{
test();
}
public virtual void test()
{}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void test()
{
Console.WriteLine("x={0},y={1}",x,y);
}
static void Main(string[] args)
{
B b=new B();
}
}
這類是一些很基礎的題目主要考察的是面向對象的了解Q,
首先我們要了解Q繼承的時候,的聲明Q初始化。子的聲明Q內部都會先聲明爉。這里我們可以根據父親才有孩子的思想去記Ӟ沒有父親Q哪里來孩子呢,
上面的程序父的構造函數是調用子類的TEST()Ҏ(gu)Q我們看一下TESTҎ(gu)Console.WriteLine("x={0},y={1}",x,y);
這道目涉及CJ承于多態。不過都是很基礎的,但是于新手Q或者不是正規系i地學習過C#的h來說。。就會犯qL了?,0如何Z的。。甚x人會認為?Q?1Q這樣認為的原因是Q覺得先初始話B,在初始化A。我 不知道那語a是這樣初始化的Q但感覺這樣x本來׃W合人類的習慣;明顯的:我媽媽生我姐姐的時候,我幫媽媽燒水呢?
Q的面試W二道邏輯題Q?br />7. 某一密码仅用K、L、M、N、O?个字母,密码中的单词从左向右排列Q密码单词必遵循如下规则:
Q?/span>1Q 密码单词的最长度是两个字母Q可以相同,也可以不?br />
Q?/span>2Q K不可能是单词的第一个字?br />
Q?/span>3Q 如果L出现Q则出现ơ数不止一?br />
Q?/span>4Q M不能使最后一个也不能是倒数W二个字?br />
Q?/span>5Q K出现Q则N׃定出?br />
Q?/span>6Q O如果是最后一个字母,则L一定出?br />
问题一Q下列哪一个字母可以放在LO中的O后面QŞ成一?个字母的密码单词Q?br />
A) K B)L C) M D) N
问题二:如果能得到的字母是K、L、MQ那么能够Ş成的两个字母长的密码单词的L是多?
A)1个 B)3个 C)6个 DQ??br />
问题三:下列哪一个是单词密码Q?br />
A) KLLN B) LOML C) MLLO D)NMKO
這個邏輯題目其實不難的Q只要是做程序的Q或者可以說是,有過代碼E歷Q或者自pa過法的h都會做。但是對于剛出校門的學生,這道目。。。對30%左右的h是有難度的。。。。他們會很執著的惻I啥是密碼單詞?br />
上面?-6是Ş成密單詞的條gQ問其實就是在?個條件下得到的結果,
問題一Q答案是BQ為什么是BQ因為條Ӟ3QL不只出現1ơ,Ҏ(gu)目一?個字母的密碼單詞QLO占了2個,最后一個字母必定是需要重復出珄L
問題二:{案是AQ為什么是1個?W一Q根據條Ӟ5Q,Ki對不會出現Q因為問里沒有NQ那么剩下LQMQLMi合?個字母單詞總個數?個,分別是LM,LL,ML,MMQ根據(3QL不只出現1ơ,所以排除LM,MLQ根據(4QM不能出現在最后一個字母排除MMQ最后只剩下一個LL?br />
問題三:這個問是考察所有條件的混合應用QK不能開頭Q排除AQ (4QM不能使最后一个也不能是倒数W二个字母,排除B
Q?span style="COLOR: #000000">6Q O如果是最后一个字母,则L一定出玎ͼ排除DQ剩下的只有C了,所以答案是C
雖然我不知道Q里那個仁兄到底面試啥公司。。。但是發Z的題目。。。沒啥難度啊Q只要是有心從事軟g開發的,應該都不難,從公司的角度Q面試,{試Q機試,目標都是考察個h能力是否適合這䆾工作Q?個題目,我覺得靠的應該是。。。應屆生。?br />
]]>
]]>
1?a class="postTitle2" id="_288d769db2f8_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/26/85779.html">Jquery學習{記Q一Q?--- 前言
2?a class="postTitle2" id="viewpost1_TitleUrl" href="/AthrunOnline/archive/2009/06/01/86339.html">Jquery學習{記Q二Q?--- 強大的選擇器
之所以寫這篇BLOG其實是有原因的(?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/18/83329.html">Microsoft Visual Studio 心情记录Q,本來惛_成了我的LUA后再開始寫的Q但是我擔心完成LUA那個系列的BLOG后自己沒有心情寫這篇了。本文很多觀點來自JQuery實戰Q部分示例也是,但是我將會在ASP.NET2.0下實現,JQuery的示例是在html或者PHP下。所有示例我都親手敲一ơ代|q行了一定的攚wӀ。不會RƊ吧Q我怎么說都׃K?9RMB的。。買了實體書咯?br />---------------來自E基癄----------------
jQuery是一Ƒօ费且开放源代码的JavaScript代码库,由John Resig创徏?br />
授权协议为GPL和MIT许可证双协议?br />
jQuery 1.3版中Q引入全新的CSS选择器引擎Sizzle。[1]同时不再提供Packed版本Q因压羃的消耗的旉Q远大于所节省的下载时_且不利于DebugQ且已有Google AJAX Libraries API{公开站台提供jQuery的js的引用服务,故Packed版本原本的优点已荡然无存?br />
JQuery目前最新的?.3.2版本Q這個版本你可以扑ֈ三類文gQ分別是Qjquery-1.3.2-vsdoc.jsQjquery-1.3.2.jsQjquery-1.3.2.min.js
jquery-1.3.2-vsdoc.js 是VS的智能感知版本,但這個版本只能用于智能感知,在瀏覽狀態下這個JS存在不少的BUGQ但在開發期能幫我們大大的提高輸入代碼的準率。實際應用一定要替換為Min版本?br /> jquery-1.3.2.js 無壓^,無智能感知版。這個版本比較大Q一般頁面應用比較少Q會影響頁面加載。代開源。。有興趣可以打開這個文件仔細的看一下,偶是沒這個勇氣的了?br /> jquery-1.3.2.min.js 是最常用的版本,?1.2時期這個壓^版?7KQ但是在1.3版有57K,原因是我在頭因用的百U中說明了?br />
這三個文件我們都了解了,那么我們在來了解一下,qր新的定?br />
1、什么是JQueryQJQuery是一個代nQƈ且有非常多居于它的插Ӟ最大的牚w是有Q跨瀏覽器支持,單W封裝DOM操作{。。想知道更多Q可以在GOOGLE里自己找?br />
2、不唐突的JavaScriptQ在JQuery里提倡這樣的JavaScriptQ到底什么是不唐H的JavaScript呢。其實就是實現JS代碼和HTML代碼分離Q在過去我們習慣的做法是在標記里加入on****=的屬性來進行JS交互Q在JQuery你將可以在HTML代碼不在出現這樣的東西,你也能輕杄令JS進行交互。真正實現樣式,xQ標a“三Ɗ分立?br />
3、JQuery強大的選擇器Q在過去我們用DOM的時候,我們只能通過IDL者標a去扑ְ象,你在JQuery上你可以用CSS來找象Q可以用標記LQ甚x持查詢方式去查找象。。D大的選擇器是JQuery的一大特Ԍ也是其中一個重點,我將會有一章詳細描q?br />
4、JQuery的鏈式操作在JQuery你將可以令對象好像鏈子那樣一直寫下去?br />agQblock.css('display', 'none').addClass('ThreeCategory').appendTo(target).slideDown();
5、Ajax。。在Ajax行的今天不支持這個東西,怎么行。JQueryAjax的支持也十分強大Q支持了我們傳說中的JSON數據分裝QAjax操作更加隨心所ƌӀ?br />
6、事件模型,事g其實是 JS的其中一個核心,我們用JS很大E度上就是因為她的事件模型。要徹底了解JQuery必須了解他的事g模型?br />
7、動畫效果,在JQuery里有兩個我們經常會使用的動畫效果分別是Q滑動效果,淡入淡出Q靈zȝ使用這兩個功能會令體檢更加豐富?br />
8、如何擴展JQueryQ這個是個重點,我們用JQuery目標是要化JS的復雜度Q但JQuery庫畢竟不是萬能的Q部分東襉K是需要我們自己去R寫Q這個擴展JQuery是令你寫的JS更好的集成到JQuery。同時那些JQuery插g也是利用了擴展JQueryQ所以不懂擴展就不能說懂得JQuery
9、D大插Ӟ了解JQuery的插Ӟ或許你想要的效果Q這些插g已經q你實現了,既然能站在巨人的肩膀上,Z么不M靠巨人。所靠山吃山,靠v吃vQ考老豆吃老豆。。。多點了解JQuery可以令你開發速度提?br />
這篇前言到這里。。。。下面將正式開始JQuery之旅
]]>
CSS+DIV布局最大的牚w是HTML文g里的代碼相對比較?yu),但是也造成了瀏覽器布局問題。。網上很多h都在說,我布局在IE里顯C正常,在FF下全部變形了。其實造成這樣問題的原因是你寫的CSSq不標準Q可以說你寫的CSS都是根絕IE的標準來寫的Q而不是CSS2.0的國際標準,無論是IE還是FFQ?.0版前的我沒留意)都是支持CSS2.0的,但是在技術上QIE有寫模糊功能Q可以o到非標準的CSS布局也能正確解析Q一下是我寫CSS代碼的五個習慣,我不敢說我這五個習慣都是好慣Q至我寫的CSS布局不會產生不良效果Q也是我寫的CSS有跨l瀏覽器能力?br />
W一Q容器類DIV必須要有5個東西{marginQpaddingQwidthQheightQoverflow}Q什么叫容器,是這個DIV只是用來攑օ部的DIV的,也可以說是一個定位的div..例如Q我們經怋用居中,一般是這樣做的body
{
}{
font-size: 12px;
margin: 0px;
padding: 0px;
height: 100%;
width: 100%;
overflow: auto;
text-align: center;
display: block;
}
/**//*---body我是作為最頂層容器?--所以它具備了我需要的所有東西,實現的效果是居中Q我加上了display: block;雖然這個是一個默認屬性,但是我們不能保證所有瀏覽器都是默認,Q如果是所有瀏覽器都默認的,我自己寫個瀏覽器的默認為none的你耍)*/
#body_Div
{
}{
margin: 0px auto;
padding: 0px;
text-align: left;
width: 1003px;
height:100%;
overflow:auto;
}
/**//*這個是核心層,多有的元素基本都是在這個層里的Q這個層也具備了我想要的屬性,text-align: left; 因為在上層我把文本對齊成為居中,所以這個層我要把它還原為左齊margin: 0px auto; 一般IE的CSSR寫者不會有這個auto值的Q在IE會自動,但是在FF如果了auto你將會發現FF里你的核心部分不是居中的。所以要做到通用Q我們就必須要加上auto|IE也支持auto?/span>*/
W二QQ動對象,都擁有獨立的父DIVQ關于這點。。有意見的h可能不少Q持有的觀點就是,“你這樣做只會oDIV過分的多Q過于復雜”,其實Q我也不想這樣做,但是- -QIE于動象的{marginQpadding}存在BUG所以為了減一切可能的出錯Q我唯有多花M點代|說實在的我只是想它更健康。這個父DIV主要作用其實是令到內部動象更可控制Q這個父DIV是一個單純的容器DIV
W三Q所有的動都需要閉合;這個有E驗的h都知道。。用完Q動你肯定需要把它閉合掉的,不閉合,可能不同瀏覽器在解析的時候會把你的Q動變成向下默認,Q可以這樣解析Q就是元素內部的子元素都默認h動屬性)
W四Q一個行向Q動如果超?個那么請使用UL來實現Q?br />
W五Q靈zM用類選擇Q我個h的做法是Q所有的id選擇器都是用于布局的,選擇器都是用于呈現效果的,這樣做的好處是Q當你想要的效果出現問題的時候,更快速地扑ֈ錯誤。這個是我有意識的把“架構”和“內容”分離?br />
明鏡?/a>
]]>
本h写着文章其实很兴奋...所以特写一随W来Ȁ动一?..
另外本h本Jquery深深地吸?...努力学习ING.....LUA只能停一下了,,LUA毕竟只是兴趣...Jquery我觉得将会给我工作带来很大的方便...所以决定以后写JS用Jquery别想我用prototype,除非....prototype也提供智能感知包....
明鏡?/a>
]]>
1?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl04_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/11/82583.html">lua学习之入?一)----环境搭徏
2?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl02_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82640.html">lua学习之入??----基础语法1
3?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl03_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/12/82687.html">lua学习之入??----基础语法2
4?a class="postTitle2" id="_ee331ba0f13_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="/AthrunOnline/archive/2009/05/14/82943.html">lua学习之入??----函数
在LUA里函数是个十分重要的内容,因ؓ我们实际开发的时?用的最多的是函数,用函数是装各个实现,在Q里曄听一些大虾说q?写LUA必须要懂得闭?常用pȝ函数,q有范型for写P代器,最后就是编译和q行q有错误信息.其实q章,我就卡了一下壳,卡壳的地方在闭包,因ؓ我没有完全理解闭包的作用,和闭包的好处,|上也没有明的说明闭包的优?所以闭包的概念,我也只能以个人感觉去?如果我说得不?Ƣ迎赐教.如果寚w包理解很?Ƣ迎来指?..你要偶拜你ؓ师也?达者ؓ师啊,偶很好学?
函数有两U用途:1.完成指定的Q务,q种情况下函C用语句用;2.计算q返回|q种情况下函CD句的表达式用?/p>
其实我们接触最早的,是函数,q记得我们的W一个LUA?print();q就是一个函?可以理解****()都可以当做是函数,其实大部分编E语a的函数都是以q个方式一p用的.认识了什么是函数,那么我们pq写一个函数吧
虽然我们不能输出L的?但是我们Ҏ(gu)错误提示可以知道l的值是nil?
完返回?那么我们要看参数C,LUA支持可变参数的模式的使用的方法和C语言的差不多,不熟(zhn)的可以先学C语言,毕竟我看到的LUA大多数都是嵌入C中的,所以C/C++臛_你要?
好了我们要进入我觉得比较隄?闭包
在我接触的编E语a?其实q没发现q闭包的概念,坦白的说一?是LUA我才接触闭包?闭包从网上的资料来看,是JAVASCRIPT里的匿名函数的?我接触新语言的时?dƢ用自己接触q的语言去进行对?d?我觉得这U学习的Ҏ(gu)q是比较有效果的,有兴的朋友也可以试试这个方?),在我看了|上公开的闭包程?最大的特点是使用,外面的函数有自己的局部变?内部的匿名函C用了外部函数的局部变?有点像面向对象思想里的意?后来我在LUA的一个论坛看C关于闭包的定义,如下:
q个是我在网上找的一个关于闭包的例子,个h感觉水^有限.可能使用|上的例子更有说服力
function sortbygrade (names, grades)
table.sort(names, function (n1, n2)
return grades[n1] > grades[n2] -- compare the grades
end)
end例子中包含在sortbygrade函数内部?/span>sort中的匿名函数可以讉Ksortbygrade的参?/span>gradesQ在匿名函数内部grades不是全局变量也不是局部变量,我们UC外部的局部变量(external local variableQ或?/span>upvalue。(upvalue意思有些误|然而在Lua中他的存在有历史的根源,q有他比?/span>external local variable短)?/span>
q个例子主要说明的是在外部函数和内部函数之见参数的?函数中就可以直接用变量进行传?q里需要说明一下的是table.sort(存放元素的数l?排序函数)具体的等后面我介l常用库的时候说.只要知道是表排序好.
函数写出来?但是我们需要更直观的看到这些资?br />所以我在最下面加上了如下代?/span>