05 2011 档案
摘要:在打算讲这篇文章之前我深思一个下午,打算分两篇来讲的,但是又怕读者看着嫌烦;其实稍微了解一点ActiveX插件的朋友都能知道,这样一扯可能出现一堆问题;但是我还是决定通过简单的方式尽量让初学者少接触底层的东西包括OLE(对象连接与嵌入)、COM(组件对象模型)之类的概念,但是ActiveX插件在开发上有很高的技术要求,虽然.NET为我们封装了很好的实现途径,但是我们也总不能停留在,知自然而不知其所以然的层面上;今天这篇文章我大概构思了一下,我主要会由浅入深的去逐层的讲解,对一些概念性的东西,我会给出参考资料供大家去学习,由于它的发展历史我也就不去讲解了,主要是实现为主;如果喜欢刨根问底的朋友可以去查询相关的文章或者看一些关于OLE、COM......
阅读全文
摘要:
说起数据提供程序大家都不陌生,数据提供程序的作用就是以统一的接口去访问不同的数据源,如OledbProvider、SqlServerProvider、OrcaleProvider等等;不同数据源的访问其实是不一样的,微软数据源的访问方式从ODBC到ADO.NET经历了很多路程,各大数据源提供商,都在不断的生产不同结构的数据库,为了以统一的接口去访问各种不同的数据源,微软的.NET为我们提供了ADO.NET,我们通过ADO.NET可以很方便的访问不同厂商生产的不同数据库,ADO.NET也为后期自定义数据提供程序规定了一套接口,只要我们自己去实现它就可以用同一种方式,访问我们自己的数据源,我们可以通过封装访问我们的XML数据源、文本数据源、二进制数据源、WebService数据源、对应用程序.......
阅读全文

摘要:ORM模型在现在的项目开发中用的还是比较多的,他的好坏我们就不讨论了,已学习为主吧; ORM模型的大概思想就是实体与我们库中的表的对应关系,一个实体就好比表中的一行数据,将实体的操作视为对表的操作,如增、删、该、查就是对表的同样操作,我们只需要简单的封装一下就可以省很多的重复劳动,通过ORM模型对我们的代码的简洁程度还是有目共睹的,我们将对数据库的操作通过ORM转换后执行,前者我们省掉了很多复杂的SQL组装,后者其实是一样的只不过将SQL的组装通过ORM将MODEL的一些属性通过反射的方式获取然后拼接SQL去执行,在项目的数据库变更,很容易就切换了上下文的数据库访问代码......
阅读全文
摘要:做开发的人,尤其是做客户端(C/S)系统开发的人都会遇到一个头疼的问题,就是软件的自动更新;系统发布后怎样自动的更新程序,在下有幸开发过一个自动更新程序,更新程序与任何宿主程序是完全独立的;只要在主程序里面启动更新程序就行了;更新程序也是一个可执行文件,在启动的时候可以设置是否是自动更新和是否是手动更新,自动更新的意思就是说不需要人工的干预实现从远程服务器下载更新包,而如果是手动更新就会涉及到用户点击程序中的按钮实现更新;在自动更新与手动更新中可以根据项目的需要进行选择,有的程序必须要求用户进行更新才能继续使用,所以程序自动更新是有必要的;手动更新就是用户可以随时更新程序,不需要严格的控制版本问题;下面本人就来讲一下具体的实现细节,我贴出部分代码,源码属公司财产本人不宜上传....
阅读全文
摘要:在很久以前,我刚开始接触.NET的时候,总是搞不清楚.NET与VisualStudio之间的关系,我开发的东西是怎么样层层流转最终形成可执行文件的;这样的疑惑一直困扰着我,我想也困扰着许许多多刚接触.NET的开人员;尽管在学校的学生学过编译原理、操作系统等等计算机原理方面的理论知识;但是就是无法将这股力量用到实实在在的理解上;下面本人就简谈一下.NET中的主要核心东西:高级语言(C#,VB.NET,J#等)、编译器、CLR引擎、VisualStudio系列工具等等之间是如何协调工作的,这样的理解有利于我们自己在开发软件项目的时候可以借鉴一下好的思想(如:文档对象模型、脚本引擎等等),好的实现方式,这里不存在具体的设计模式,这篇文章所讲的类容以具体的模块划分如何协调工作为主,针对初学者而言;.NetFramwork是一个技术框架的统称,在这个框架里面是一系列为了实现软件开发而具有的所有支撑....
阅读全文
摘要:过程式的开发方式已逐渐退出大众的眼线,随之而来的是各种各样的高抽象的开发模式;我们不得不承认在没有设计模式的时候,我们很难总结出有价值的开发模型,便于以后重复使用和推广;面向对象的流行,让我们开发人员重新站在一个高的起点来看待软件模型,抽象固然是好事,但是也给初学者带来了迷惑,将软件中的东西都想成很简单的封装,我们只需要调用就行,这样越来越多的开发人员开始慢慢的往上“浮”[王清培版权所有,转载请给出署名],有一定编程经验和感触的人,能够明白我所说的“浮”,也算是给初学者提个醒吧......
阅读全文
摘要:文章开头本人申明一点,本人写的文章力求让看的人能理解精髓而不是专业化,博客园的好多人在写文章的时候总想着怎么怎么专业化,巴不得看的人都看不懂才能体现出他的技术,他的牛B,技术不是用来显威风用的,在你掌握了某种技术的时候,不要想着横扫博客园之类的思想,有点技术就开始浮躁连说话都开始像李莲英;我不是想这样攻击别人,在技术的这条路上大家能平易近人互相学习,以交流技术为主,不要想着看别人的文章就是在挑刺,想法设法打击别人的信心,人无完人,人外有人,山外有山,各有所长,大家互补才能真正使我们国家的软件实力得到发展,本人很少说此类的话;说者无意,也许听着有心;本人所要说的是环境而不是想说谁,希望会技术的人能多帮助一些想学技术的人......
阅读全文
摘要:观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,最求技术的人,始终都是为了技术而学技术,目的只有一个一起最求技术的最高境界; 观察者模式是设计模式里经常被用到的一种,什么叫观察者模式,字面理解就是一个或多个对象观察某个对象这种观察是有目的地,当被观察者发生某种事件时能准确的反馈到外界,通知大家你发生了什么;尤其是在今天面向对象编程的不断成熟,什么都讲究抽象将重复劳动省到最少,方法成员都以类为容器封装;这是一种好的编程规则,就好比我们所生存的大自然坏境一样,汽车与人都是独立的生存个体,大家互不干扰,我不需要知道我存在的意义,存在的意义是对别人而言......
阅读全文
摘要:打印想必大家都遇到过这样的问题,不想用那些太过强大的打印控件,在我开发的过程中也遇到了这样的情况我想要实现基本的纸面套打也就是将不同的纸面合同协议之类的A4纸打印上规定好的文字;上网搜了搜没有合适的第三方工具要么就是很复杂的报表设计器要么就是需要一系列的注册过程的工具; 所以本人就实现了模板打印设计器组件,纸面套打支持多页同时打印.支持多份同时打印完全自动化,一键生成所有的纸面文档; 该打印工具支持C/S和B/S(ActiveX控件),的效果基本一样操作方式也基本一样;先看一下总体界面C/S界面.....
阅读全文
摘要:其实C#的事件与委托在日常开发过程中不用也能解决问题,但是用于不用是不同的;更能体现出对象的高内聚、低耦合,两个对象要想互操作,对外提供接口;甚至是让另一个对象来处理本对象在发生指定事件的时候的操作;打个比方,我把自己比喻成一个对象,把饭店老板比喻成另一个对象;这两个对象是完全独立的,我并不知道我要到哪家饭店吃饭,而同样饭店老板也不知道谁会来吃饭;如果不存在事件,我到了一家饭店,我跟老板讲我要吃饭,老板不回话,我说我要吃白菜.....等等;都是我自己在操作过程,这样太死板了,我不知道这家饭店是否有我点的菜没有回馈信息;正常的吃饭应该是我到饭店了,老板自己触发了一个事件,事件是他看到有顾客来吃饭了,主动来问我几个人吃饭,吃些什么;而不是我来到一个“真空”饭店;事件是一种传递信息的过程,C#本身是一种面向对象语言.....
阅读全文
摘要:先给大家说声不好意思,在本人的".net简谈分层架构思想(彻底分离每个层)"文章中由于缺乏示例代码,所以给大家理解带来不便,小弟先赔礼;这篇文章我补充所有实现彻底分层的全部代码。 彻底分层的好处是能合理的分配各个人员的工作量,比如在我们某一个项目团队里面可能有的人偏向于UI设计开发,有的偏向于业务逻辑的编写,熟悉公司核心业务的人可以不需要管UI层和业务层的实现方式,只要实现数据访问层的代码,供上层调用;在本人的一个项目里面,为了能让所有的实现彻底分离开发是技术的要求也是业务的要求,项目大概是这样的:对所有的实现我并不知道存不存在,也不知道实现的项目或这程序集(dll)文件在哪里.....
阅读全文
摘要:提到分层,我就想起一句图灵奖获得者说过的话:计算机科学领域任何问题,都可以间接的通过添加一个中间层来解决;当初看到这句话的时候还不能深刻的体会到这句话的真正灵魂是什么。之所以要写这篇文章作为技术爱好者之一更愿意与大家分享技术给我们带来的快乐,本人将从另一个角度来解析.NET分层架构的真正奥秘。分层,一些技术功底比较薄弱的程序员听到分层就会联想到三层架构(BLL,DAL之类的),其实不是,分层是一个很大的技术框架思想,三层架构只不过是对普通的信息系统来说,将信息的流转通过三层来分解,在开发系统时一般总会在解决方案中新建一个Model层、一个BLL层、然后DAL层;其实如果是这样建项目的话跟一个解决方案中放上一个程序一样的只不过可以用文件夹分开建立文件是一回事;技术水品的不同对三层的理解各不相同.....
阅读全文
摘要:自从面向对象开发方式的出现,抽象的概念就开始日新月异的发展,面向对象编程、面向接口编程、面向组件编程等等;这一系列的概念都是软件工程所追求的思想范畴,高类聚低耦合。 今天我要简谈的是面向对象里面非常重要的也是非常抽象的概念,接口。谈起接口多少人曾经为之痛苦过,尤其是一些刚入门的开发人员(包括小弟),百思不得其解,啥叫接口,接口能干嘛用,用不用有什么区别;等等问题困扰着,这些问题不解决不弄明白,很难在面向对象领域混,更别谈面向对象开发了,可能有人认为面向对象开发就是麻烦我不用一样也能开发,开发一个项目又是分这个层,又是分那个层的,繁琐。这中情况我就没有权利去发表任何意见了.....
阅读全文