摘要: 今天把系统的详细设计发给领导看,领导看了一会问了个问题:我看BLL层的类和函数跟DAL层的基本对应,是不是这个BLL层可以不要?这个问题还真把我给问住了.....。。工作了整整两年了,大大小小的项目也做了好几个,仔细回想一下,好像我所做过的项目都是离不开数据库的,Access、SqlServer、Oracle,常见的都有,再想想,页面除了表单就是列表,再有就是信息显示,这些就是项目的主要功能点(也...阅读全文
posted @ 2011-04-07 22:25 天堂口 阅读(5093) 评论(106) 编辑

今天把系统的详细设计发给领导看,领导看了一会问了个问题:我看BLL层的类和函数跟DAL层的基本对应,是不是这个BLL层可以不要?

这个问题还真把我给问住了.....。。

 

工作了整整两年了,大大小小的项目也做了好几个,仔细回想一下,好像我所做过的项目都是离不开数据库的,Access、SqlServer、Oracle,常见的都有,

再想想,页面除了表单就是列表,再有就是信息显示,这些就是项目的主要功能点(也有一些其他的非页面的功能点,比较少)。

数据库操作的组件从ADO.NET,到LINQ2SQL,到EF,最后还是回到了ADO.NET,因为快。

其他的什么NH,Ibatis,也用过,感觉也没有方便多少,配置项多得不得了。

 

还是回头说说领导的问题,我想了老半天,照他这么说,直接在页面写sql语句不是更好,DAL层都不用要了。想是这么想,俺也不能这么说啊。

我的回答是:BLL层的设计是针对功能页面的,DAL层的设计是针对数据库的。我也不知道回答是否准确,反正领导回了我一句:明白。这事就算摆平了。

 

当个程序员还真不容易,C#.NET得会吧,还得熟练,还得有架构能力,什么扩展性,健壮性,....一样都不能少。

数据库知识得会吧,还得会优化。

HTML+css+js得会吧,还得做得漂亮,还得快,还得兼容各种浏览器,尤其是IE6!

 

这些就算是我们的基本技能吧。

 

附加的技能,得会调查需求,尤其是那些政府项目,调查需求就够搞俩月的,这个领导来说一个意见,另外一个领导来看看又是一个意见,前次去一个县城做一个项目,12个县长,为什么呢?1个正的,11个副的!小小的不到20个页面的项目硬是做了半年,还半死不活的。

还有就是得安装和配置windows系列的服务器,起码2003和2008得会哦,还得会调优,会优化才行,不然天天打电话跟你说网站慢,得把人逼疯。

 

俺是想到哪说到哪儿,发发牢骚而已。

俺就是一个程序员,增删改查程序员....

最后想了想,BLL层一定得要,现在不是都流行那啥,DDD嘛....

DDD,俺也会!

 

posted @ 2011-04-07 22:25 天堂口 阅读(5093) 评论(106) 编辑

升五星了,上个月MVP也申请成功了,散散分,下一级怕兴趣不浓厚了,说说题外话

在论坛和QQ上回答了很多人的问题,说句老实话,技术是一回事,很多初学者差的是自己的职业素质不足,真要在工作中自己出了问题自己还不知道。

下面的话仅仅是给初学者的一些建议,老鸟请屏蔽。

1. 问题描述不清。

    作为一个程序员很重要的一个能力应该是解决问题的能力,在解决不了自己问题的时候最起码要能做到清楚地描述自己的问题好让其他人解决,如果你的问题别人看都看不懂,怎么帮你去解决。这样问问题的又大致分为以下几类

1.1 确实表达能力有问题,描述不清楚的。
    那应该去锻炼锻炼这方面的能力。如果你没有这个基本能力,那么领导的话你听不懂,你的话领导不明白。干活的时候不仅和同事无法交流,甚至可能活都是你干的,功劳最后还是别人的。

1.2 问题描述极其简略,那意思就是分我给了,问题就是别人的了。
    这种人在工作中肯定也是不负责任型的,发问题的目的是解决问题,所以发布的信息应该对其他人解决你的问题有帮助,而不是只要发了问题,事情就是别人的了。

1.3 空泛的问题。
    有些人问的问题就是一本书的内容,比如"我要做个XXX管理系统,麻烦那位给我写一下,只要增删改查就可以了"。放心,这种人代码放上去也看不懂,后续问题还多的呢。

2. 没有学会在失败中成长。

    很多人写的代码及其不规范,我在回复的时有时会点出来,有时候就是简单的拼写错误导致的错误,可是发帖者只关心他当前的问题是否解决了,不关心他为什么犯这个错误,为什么别人一眼就能看出来,我要怎么避免类似的错误,而且经常将我注释中注明的其它该注意的问题一律忽略。

3. 由于没有工作经验,职业素质不足。

  如果你在工作中问你的同事问题,是否应该先问问对方是否有空,而且再加一个"请"字。问完问题了,无论结果如何,是否应该加个谢谢。反正我是见过很多人QQ上或者群里问问题不知道说这些。甚至于我都说了,我现在忙,2个小时以后再给你写,对方还是紧追不舍,拜托,你给我发工资啊?

    还记得有次推荐了自己的学生去某公司,后来这个公司的朋友给我说,这个学生问他一个算法的问题,我这位朋友把思想和他说了,他居然还继续追问,那究竟该怎么写呢?我当时听的脸都红了。没想明白的可以想想我这学生说的话有什么问题。
==
回28楼,碰到这种问题,你必须先去写程序,如果完成不了把你写的程序让对方修改这都是下策了,绝对不能让别人去替你完成,尤其是不能让同事去替你完成,这样你想想如果你要试用转正的时候,他会给你什么样的评价?
    246楼其实说的蛮明白的了,其实在公司中,如果你的Leader没有具体安排某人去带你的话,那么其他的同事未必一定要去帮你,毕竟自己的工作才是最重要的。而即使安排了某人去帮你,对方肯定也有自己的事,从常识上来说是不能不停地打扰的,而且如果这些东西你自己不看不想不做就只知道问人,别人会对你的印象很差。
    总有人会说,那我还是不会怎么办,很简单,拼了命地去看去学。我刚来上海的时候在第一家公司,前三个月平均睡眠时间也就是6个小时,没人能问问题,一般下班后看书到2点,晚上睡在公司,午餐公司报,晚饭我经常就是3元一碗的面,吃苦这两个字,岂是说说这么简单。


    唉,还是那句老话,什么事别人都帮你做了,你是干什么吃的,公司给你发工资干吗?
==
    顺便提一句,初学者面临接触的难题经常会说"学校没教过","老师没讲过",这种推卸责任的回答可以让你的项目组长血都喷出来,你至多能说"这个东西我没有接触过,请问是否能有相关的资料可以参考"(请注意且勿自以为是,我见过这样的回答"这个东西我没做过,把你们以前的源代码拿来让我看看")。自学能力是程序员必需的能力,你总是会发现有那么多的东西是在学校里从来没有学过的,甚至于你的老师也未必一定会,但你现在要去搞定它。

4. 避免无谓的狂妄自大。 
    有时候看标题就是"我发现了微软的一个bug"、"C#的继承机制存在很大的问题",这要是iv或者sp1234这样的牛人说我可能还会将信将疑,多数情况下最后发现是楼主的问题。不过好点的是,一般自负的人比不自信的人容易找到工作。

5. 学会吸取他人的经验 

  上面提到的东西可能对某些初学者有用,也可能没用,请勿对号入座。我经常告诉初学者的都是我多年的工作经验,愿意听就听听,不愿意听我也不想的去辩驳。我和我老婆聊的时候都有这个感触,如果在我年轻的时候有这样一个人告诉我该做什么,该怎么去做,我们奋斗的时间至少会减少一半,我工作十年了,如果我能早知道我该怎么做,至少在5年前我就应该达到现在的成绩。
==
    回257楼,其实上面这种说话就是不甘心而已,其实就算知道怎么做,也未必能减少5年的时间,但是肯定能节约时间。不过我在工作3年内都没有职业规划,这是不应该的。有些话开始没想在论坛上多说,做为一个男人年轻的时候还是应该多关注一下事业,尤其是在大城市,如果没有事业的,感情也很成问题,我在这上面浪费的时间太多了。

    我给初学者的最后一个建议,你要有自己的职业规划,你要知道你今年应该达到什么目标,明年该干什么,三年后我要达到什么目标,目标不要太高,但是是你蹦一个就能达到的。
   
    就.NET而言,算法(数据结构) + 英语(日语) + 其他能力(表达、团队、逻辑、管理) + 具体语言的基本功(比如C++, C#语言 含面向对象概念) 是非常重要的,现在拼的就是个综合实力,别指望单凭某些技术打天下,asp.net再好也未必能应聘到微软和google。也别动不动就说.NET工资低,我认识的朋友做.NET的税前很少有低于10K的,虽然不高,但料想也不算低吧?

==
    这里的算法就是像排序、查找、字符串相关的算法,数据结构是计算机专业必须要会的东西,也是大公司面试必考的内容。不仅仅是做出来,还要考虑时间负责度和空间复杂度,有空了专门开个帖子谈谈这个话题

 

刚才提到初学者需要注意职业素质,其实老鸟也一样。
    我老婆所在的公司一次面试一个程序员,对方是做过搜索引擎开发的,薪资要价大概在10K~15K,应该说从技术的角度来说此人没什么问题,但这个人已经是在这家公司的第三个项目小组面了,面试中显示此人不是很有礼貌(把做完的纸仍到面试官前面、翘腿抖腿手不停地转笔),而且口气很自负,说话绝对。面试官也就是项目小组中的tech leader回来就问了大家一句"你们愿意和这样的同事共事么?",结局可想而知。

  我不想去评价公司如何如何,因为我们改变不了公司,我们只能改变自己,如果你觉得你技术不错,但你连着应聘了三个小组都没成功说明了什么?很可惜的是,我相信这位应聘者虽然经历了这些失败但肯定还是不知道自身的问题。

  再有一个很关键的就是人脉了,找工作最难找上的就是投简历,最容易找上的一种就是熟人介绍。你认识的朋友多了,将来机会也就会多些。

    我老婆第一次跳槽是到我所在的公司(当时我和她还没谈),她的一个朋友也是我的朋友,可以说过来就是走走形式,我们这里负责面试的经理也很给我面子,面她的时候带着我一起面的,就是聊了聊家常就进来的。

    第二次跳槽就纯粹是偶然了,ust在VMM的超人群里吼了一声问有谁想跳槽,我接了个话,ust给了一个联系方式,也就一周她就跳槽成功了。

    你认识的人多了,机会自然就会在不经意的时候找你。

    广结朋友,帮助别人迟早你也会得到别人的帮助。

posted @ 2008-11-12 19:10 天堂口 阅读(440) 评论(5) 编辑

最近做了个实际小项目,得到了一些小经验。

首先做项目时要考虑项目的可维护性和可扩展性因为我的任务本来是要去该原来的那个项目。可惜原来那个项目作者应该是个初学者,连普通的规范都没有。一张表,列名又有中文又有英文,性别是sex,系别就变成了xibie,看起来特恼火。让我更加恼火的是里面变量全是默认状态。整个表单,全是DropDownList1,DropDownList2,DropDownList3,RadioButtonList1,RadioButtonList2,TextBox1,TxetBox2.本来不大点个程序,我改了两个小时,彻底被它征服了。于是决定自己重新做一个。小项目也花不了一天时间。

我用了一个上午的实际把新项目做出来调试好。就等着客户验收了。本来以为是大功告成,可是客户告诉我,需求不是这样的!!!!我狂倒!!!!!原来告诉我需求那个人也不是直接从客户那里得到的需求,而是经过了口头传送,并且没有需求文档,我只是按照别人的要求做了还做得忒费劲整出来的功能,结果全都用不上,我自己都快疯了!真愁人!好在最后客户的 需求没有那么难办,很快可以改好了所以需求很重要,特别重要!

一个小项目,本来没什么值得说道的,没有想到也是几经曲折。不过还好这也是经验!我想经验就是这样积累起来的吧。以前只知道学习知识,现在才明白,只有项目才能够锻炼出来真本事!终于知道为什么招聘都需要有经验的人了!!!新手就是新手,不在乎你会多少,始终是新手,经验才是硬道理!

posted @ 2008-10-26 09:54 天堂口 阅读(203) 评论(4) 编辑
NET开发框架的几个主要组成部分:首先是整个开发框架的基础,即通用语言运行时以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO .NET,以及网络应用开发技术ASP .NET和Windows编程技术Win Forms;在开发语言方面,.NET提供了VB,VC++,C#, Jscript等多种语言支持;而Visual Studio .NET则是全面支持.NET的开发工具。下面就让我们来一步步的来了解它们:

通用语言运行时,即Common Language Runtime 。Microsoft .NET 给开发人员带来了一种全新的开发框架,而通用语言运行时则处于这个框架的最低层,是这个框架的基础。开发人员对于所谓的C运行时、VB运行时、Jave虚拟机这些概念已经非常熟悉了,而通用语言运行时则为多种语言提供了一种统一的运行环境。另外它还提供了更多的功能和特性,比如统一和简化的编程模型,用户不必迷惑于Win32 API和COM;避免了DLL的版本和更新问题(常称为DLL地狱),从而大大简化了应用程序的发布和升级;多种语言之间的交互,例如我们甚至可以在VB中使用C++编写的类;自动的内存和资源管理等等。Microsoft .NET正是基于通用语言运行时,实现了这些开发人员梦寐以求的功能。

基于通用语言运行时开发的代码称为受控代码,它的运行步骤大体如下:首先使用一种通用语言运行时支持的编程语言编写源代码,然后使用针对通用语言运行时的编译器生成独立于机器的微软中间语言(Microsoft Intermediate Language),同时产生运行所需的元数据,在代码运行时再使用即时编译器(Just In Time Compiler)生成相应的机器代码来执行。

当然对于开发者而言,他们除了关心通用语言运行时提供那么多新特性外,它究竟给开发者提供了什么样的编程接口,这就是基础类库(Base Class Library)。这组基础类库包括了从输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。它使用一种点号分隔的方法,使得查找和使用类库非常容易。例如基础类库中的根,它的命名空间是System,提供数据访问的类库的命名空间是System.Data。在使用时,开发者只需在自己的应用中添加所需的基础类库的引用,然后就可以使用这个类库中的所有方法、属性等等。跟传统的Windows编程相比,使用和扩展基础类库都非常容易,这使得开发者能够高效、快速的构建基于下一代互联网的网络应用。

几乎所有的应用程序都需要访问从简单的文本文件到大型的关系型数据库等各种不同类型的数据 。在Microsoft .NET中访问数据库的技术是ADO .NET。ADO .NET提供了一组用来连接到数据库,运行命令,返回记录集的类库,与从前的ADO(ActiveX Data Object)相比,Connection和Command对象很类似,而ADO .NET的革新主要体现在如下几个方面:

首先,ADO .NET提供了对XML的强大支持,这也是ADO .NET的一个主要设计目标。在ADO .NET中通过XMLReader,XMLWriter, XMLNavigator, XMLDocument等可以方便的创建和使用XML数据,并且支持W3C 的 XSLT、DTD、XDR等标准。ADO .NET对XML的支持也为XML成为Microsoft .NET中数据交换的统一格式提供了基础。

其次,ADO .NET引入了DataSet的概念,这是一个驻于内存的数据缓冲区,它提供了数据的关系型视图。不管数据来源于一个关系型的数据库,还是来源于一个XML文档,我们都可以用一个统一的编程模型来创建和使用它。它替代了原有的Recordset的对象,提高了程序的交互性和可扩展性,尤其适合于分布式的应用场合。

另外,ADO .NET中还引入了一些新的对象,例如DataReader可以用来高效率的读取数据,产生一个只读的记录集等等。简而言之,ADO .NET通过一系列新的对象和编程模型,并与XML紧密结合,使得在Microsoft .NET中的数据操作十分方便和高效。 ASP .NET是Microsoft .NET中的网络编程结构,它使得建造、运行和发布网络应用非常方便和高效 。我们可以从以下几个方面来了解ASP .NET:

1. ASP .NET网络表单

ASP .NET网络表单的设计目的就是使得开发者能够非常容易的创建网络表单,它把VB中的快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。具体的说:在ASP .NET中可以支持多种语言,不仅仅支持脚本语言,通用语言运行时支持的所有语言在ASP .NET中都可以使用;代码和内容分开,在现在的ASP(Active Server Pages)开发中,内容和脚本交错,维护和升级很困难,将他们分开可以使得开发人员和设计人员能够更好的分工合作,提高开发效率;另外在ASP .NET中通过引入服务器端控件,将类似VB的快速开发应用到了网络开发中来,这样大大提高了构建网络表单效率,并且服务器端控件是可扩展的,开发者可以建造自己需要的的服务器端控件。

2. ASP .NET网络服务

网络服务(Web Service)是下一代可编程网络的核心,它实际上就是一个可命名的网络资源,可用来在Internet 范围内方便的表现和使用对象,就像使用今天的 COM对象一样,不同的是使用和表现网络服务是通过SOAP(简单对象访问协议)甚至HTTP来实现的。在ASP .NET中,建造和使用网络服务都非常方便:

在ASP .NET中建造网络服务就是编写一个后缀为.ASMX的文件,在这个文件中加入想要表现出来的方法就可以了,网络服务的建造者不需要了解SOAP,XML的细节,只需要把精力集中在自己的服务本身,这也为独立软件服务开发商提供了很好的机会;使用网络服务最简单的方式就是使用HTTP协议(HTTP GET 或HTTP POST),用户只需要直接访问网络服务(.ASMX文件)的URL即可;当然用户还可以通过SOAP在自己的应用中更灵活的使用网络服务。

3. ASP .NET应用框架

ASP .NET应用不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能;由于ASP .NET的应用框架基于通用语言运行时,发布一个网络应用,仅仅是一个拷贝文件的过程,即使是组件的发布也是如此,更新和删除网络应用,可以直接替换/删除文件;开发者可以将应用的配置信息存放XML格式的文件中,管理员和开发者对应用程序的管理可以分开进行;提供了更多样的认证和安全管理方式;在可靠性等多方面都有很大提高。

传统的基于Windows的应用(Win Forms),它仍然是Microsoft .NET战略中不可或缺的一部分。在Microsoft .NET中开发传统的基于Windows的应用程序时,除了可以利用现有的技术例如ActiveX控件以及丰富的Windows接口外,还可以基于通用语言运行时开发,可以使用ADO .NET、网络服务等,这样也可以实现诸如避免DLL地狱、多语言支持等.NET的新特性。从上面的介绍中我们已经知道Microsoft .NET开发框架支持多种语言,在目前的测试版中已经支持 VB,C++,C#和Jscript四种语言以及它们之间的深层次交互

。而且微软支持第三方生产针对Microsoft .NET的编译器和开发工具,这也就是说几乎所有市场上的编程语言都有可能应用于Microsoft .NET开发框架。这样开发者可以任意选择自己喜爱的语言,这种开放和交互的特性正是开发者所热爱的。

需要特别指出的是,微软在Microsoft .NET中推出了全新的C#语言,这种全新的面向对象的语言使得开发者可以快速的构建从底层系统级到高层商业组件的不同应用。C#在保证了强大的功能和灵活性的同时,给C和C++带来了类似于VB的快速开发,并且它还针对.NET作了特别设计,比如C#允许XML数据直接映射为它的数据类型等等,这些特性结合起来使得C#成为优秀的下一代网络编程语言。

与此同时Microsoft .NET对原有的VB和C++也做了很大的改进,使得它们更加适应Microsoft .NET开发框架的需求。例如在Visual Basic .NET中增加了继承等面向对象的特性,结构化的出错处理等等;可管理的C++扩展,大大提高了利用C++来开发Microsoft .NET应用的效率等。

Visual Studio .NET作为微软的下一代开发工具,它和.NET 开发框架紧密结合,是构建下一代互联网应用的优秀工具,目前已经有Beta测试版面世。Visual Studio .NET通过提供一个统一的集成开发环境及工具,大大提高了开发者的效率;集成了多种语言支持;简化了服务器端的开发;提供了高效地创建和使用网络服务的方法等等。 .NET框架的一个主要目的是使COM开发变得更加容易

。COM开发过程中最难的一件事是处理COM基本结构。因此,为了简化COM开发,.NET框架实际上已自动处理了所有在开发人员看来是与“COM”紧密相关的任务,包括引用计算、接口描述以及注册。 必须认识到,这并不意味着.NET框架组件不是COM组件。事实上,使用Visual Studio 6.0的COM开发人员可以调用.NET框架组件,并且在他们看来,后者更像是拥有iUnknown数据的COM组件。相反,使用Visual Studio.NET的.NET框架开发人员则将COM组件视作.NET框架组件。

为了避免引起误解,这里需对这种关系加以特别说明:COM开发人员必须手动去做大多数.NET框架开发人员可以在运行时自动执行的事情。例如,必须手写COM组件的安全性模块,且无法自动管理模块占用的内存,而在安装COM组件时,注册条目必须放进Windows注册表中。对.NET框架而言,运行时实现了这些功能的自动化。例如,组件本身是自我描述型的,因而无需注册到Windows注册表中便能安装。

当把COM与Microsoft事务服务器(MTS)和分布式COM(DCOM)结合在一起时,就变成了COM+。COM+提供了一组面向中间层的服务。特别是COM+提供了进程管理功能和数据库与对象连接池处理功能。在将来的版本中,它还将提供一种称为分区的功能——专门为应用程序服务提供商设计的更强大的进程隔离功能。

COM+服务主要面向中间层应用程序开发,并主要为大型分布式应用程序提供可靠性和可扩展性。这些服务是对.NET框架所提供服务的补充;通过.NET框架类,可以直接访问这些服务。 .NET框架有几个要素值得一提

。首先是它的安全系统和配置系统。这两个系统协同工作,有力地遏止了运行不安全代码的可能性,并大幅度减少了号称“DLL Hell”的对应用程序进行配置时所面临的挑战。

安全系统是一个高度细化、基于事实的系统,它赋予开发人员和管理员多种代码处理权限(而不仅仅是“on”或“off”)。将来,还会根据代码本身的核心要素来决定如何实施上述权限。

例如,当.NET框架应用程序被下载到某一系统中时,它会申请一组权限(诸如对临时目录的写入权限)。运行时将收集有关应用程序的事实信息(诸如:它是从何处下载的、是否用了有效签名、甚至它访问系统的准确程度),并按管理策略决定是否允许应用程序运行。运行时甚至还可告之应用程序它无法授权申请的所有权限,并允许应用程序自行决定是否继续运行。

有这种安全系统作保障,许多应用程序配置问题便会迎刃而解。开发人员和管理员(最终是用户)所面临的最大挑战之一是版本的管理问题。如果在您新装了某个应用程序之后,一切都限于瘫痪状态,而在这之前系统一直运行得非常良好,那么最大的可能是新安装的应用程序重写了一些共享库,并极有可能修正了现有应用程序正使用的程序错误。这种情况出现的频率很高,以致人们将它称为:“DLL Hell”。

.NET框架拥有的几项高级功能可以彻底消除“DLL Hell”现象。首先,它有一个非常强大的内部命名系统,能够有效地防止两个库因互相重名而被错当为对方的情况发生。除此之外,它还提供一项被称作“并行”配置的新功能。如果前例中新安装的应用程序确实重写了共享库,现有应用程序可对该库进行修复。等现有应用程序再次启动时,它会检查所有的共享文件。如果发现文件被更改,同时这些更改又是不兼容的,则它可以请求运行时提取一个它可以使用的版本。得益于强大的安全系统,运行时可以安全地执行该操作,这样应用程序就完成了本身的修复工作。

总之,Microsoft .NET开发框架在通用语言运行时的基础上,给开发者提供了完善的基础类库、下一代的数据库访问技术ADO .NET、网络开发技术ASP .NET,开发者可以使用多种语言及Visual Studio .NET来快速构建下一代的网络应用。随着相关的互联网标准及技术的普及,可以预言将会有越来越多的开发者采用这种开发结构,开发出丰富多样的下一代互联网应用来。
posted @ 2008-10-05 11:42 天堂口 阅读(533) 评论(0) 编辑

强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。

C# 是强类型语言;因此每个变量和对象都必须具有声明类型。


弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。

强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 和 Python 等都是强类型语言。

使用哪种语言还是要按需而定。编写简单小应用,使用弱类型语言可节省很多代码量,有更高的开发效率。而对于构建大型项目,使用强类型语言可能会比使用弱类型更加规范可靠。


posted @ 2008-10-05 11:35 天堂口 阅读(308) 评论(0) 编辑


如果你已经有较多的面向对象开发经验,跳过以下这两步:
  第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!
  第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework。ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习ASP.NET就越快。 举个例子:下面简单列出几个对掌握ASP.NET非常重要的概念: 对象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型 .NET Framework当然还有许多其它的东西,但不理解与把握清楚上述这些东西,是很难真正把握ASP.NET的。 出于急迫的心情与现实的考虑,不少人没有扎实的面向对象基础就想直接学习ASP.NET,其结果只能是欲速则不达。 在具备了OO基础之后,以下是具体的学习ASP.NET技术步骤。
  第一步:学习HTML与CSS
  这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理解HTML网页嵌套的block结构与CSS的box模型。许多ASP.NET控件最后都必须转化为HTML。而且,div+CSS是当前主流的网页布局模型。 学习这部分时,关键在于理解概念,而不需要将精力花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。
  第二步:学习JavaScript
  JavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的HTML代码,从而达到动态修改网页显示特性的目的。
  JavaScript在目前的网站开发中用得很多,非常重要。
  另外,它也是目前非常流行的AJAX技术的基础。
  第三步:学习计算机网络原理
  找一本大学<计算机网络>教材,重点看看它的有关互联网的部分,了解一些域名解析和HTTP协议等知识。这是进行互联网开发的理论基础。
  第四步:学习ASP.NET表示层技术,会设计Web页面
  需要结合先前打好的面向对象技术的基础,至少掌握以下内容:
  (1) 各种Web控件的使用方法,
  (2) 理解信息在网页中的传送方式,比如Cookie,ViewState,Session等的使用。
  (3) ASP.NET应用程序与网页的生命周期,以及相关对象(比如httpcontext,response,request)的用途。
  (4) ASP.NET实现事件驱动的内幕
  (5) 自定义用户控件
  再次强调一下,没有OO基础,很难掌握上述技术,就只能被这些东东牵着鼻子走了,会很被动。
  第五步 掌握数据库技术
  具体地说,要学习以下内容:
  (1) 学会使用SQL Server 2005:不要求精通它的各种工具与管理配置技术,但至少知道如何连接,如何建表,如何创建存储过程
  (2) 学习ADO.NET,掌握使用代码人工访问数据库(别用VS2005的向导)的方法
  (3) 学习数据绑定控件的使用
  第六步 理解多层架构
  这时,先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了,现在,网站架构大多采用多层架构:表示层、业务逻辑层、数据存取层以及数据库本身。
  可以先上网找一此多层架构的资料看,再找一个现成的比较复杂的开源ASP.NET项目分析一下其架构就差不多了。基本上都是一个套路,到处应用。
  有的朋友问:学习架构是不是必须学习设计模式。
  我的看法是:不必!当然,你如果学习过设计模式,那当然更好。但在实际开发中,如果只想着机械地套用某种模式,反而起不到好的结果。我的观点:在学习设计模式时要多思多悟,其思想就会渐渐地融入你的大脑,在真实的设计实践中,忘掉所有的写在书上的模式,一切从实际出发,相信你的直觉,只要达到设计要求的方案就是可行的方案,事实上,你这样做了之后,回过头来再看,会发现你的设计往往暗合设计模式的理论。
  第七步 学习XML与Web Service
  先了解XML的基础知识,找本讲XML的书看一下就差不多了,然后,再学习Web Service。Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。
  学 到了这里,如果你还有兴趣,不妨再去看看SOA,不过SOA的资料都是理论与概念,看起来比较郁闷,而且离实际开发可能比较远。所以,这是可选项。
  第八步 学习AJAX
  学习AJAX的主要目的是创建具有更丰富特性的Web表示层,而经过前面七步的学习,到此再学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。
  在基础未具备的前提下直接学AJAX,就象“浮沙之上筑高台”,所以,将AJAX的学习次序安排在这里。
  第九步 学习RIA技术
  RIA:Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技术来说,主要指微软的Silverlight(WPF_E),毕竟前头一路行来都是微软路线。
  不过目前学习它主要是为了技术储备。估计此技术的普及需要2到3年的时间,因为预装Vista的机器今年才开始大卖。
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn/ ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=108315

 

 

posted @ 2008-10-02 11:28 天堂口 阅读(345) 评论(0) 编辑
摘要: 最近做项目,使用GridView进行数据编辑,怎么也获取不到用户输入的值,只能获取到目标TextBox和它之前绑定的值。百思不得其解,后来在网上求助,发现原来是gridView的EnableViewState属性在作怪。下面,就来认识一下这个ViewState 。什么是ViewState?ViewState 用来跟踪和保存控件的状态信息。否则这些信息可能会丢失,原因可能是这些值不随着 form 回...阅读全文
posted @ 2008-10-01 10:52 天堂口 阅读(443) 评论(0) 编辑
摘要: 对象/关系数据库映射(object/relational mapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一...阅读全文
posted @ 2008-09-29 09:09 天堂口 阅读(1163) 评论(0) 编辑

公告

昵称:天堂口
园龄:3年5个月
粉丝:9
关注:3
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

文章分类

最新评论

阅读排行榜

评论排行榜

推荐排行榜