程序集系统重构机房收费系统——起步

这段间时一直在查找程序集系统之类的问题,在现正好有机会和大家同享一下.

        开始机房收费系统重构也半个月过去了。但看自己的系统连一个简略的登录还没有实现。自己不免有些羞愧了。近来自己的习学态状总的说来还是不错的。但是由于自己对来原的识知把握的欠好所以致导了自己不知如何手下。老是觉感有很多多少的问题要决解:

    

  1. 写软件发开档文。
    1. 画数据流程图
    2. E-R
  2. uml
    1. 习学应用EA
  3. 建立数据库
    1. 习学触发器的应用
    2. 习学存储过程的建了与应用
    3. 习学数据库的范规化
    4. 习学ADO.net
    5. 习学应用SqlHelper对数据库拜访类的封装。
  4. 应用设计模式
    1. 尽可能多的应用设计模式。
  5. 应用三层构架
  6. 习学应用定名范规

        把这些问题都列出来,现发都是前以学过的内容。但是由于自己时当学的不踏实在现只能回过头来都看一遍了。返回去看了很多多少同窗的博客,觉感获收挺大的。

    

        通过半个多月的的大习复。天几前终究开始我的机房收费系统个人版了。先从写档文开始,但是我现发写到概要设计的时候我实在是写不下去了。原因是要写数据字典和接口实现。记得自己版一第的机房收费系统是在系统经已实现的前提下写的。写档文的时候可以看着系统一点一点的写。自己用了那几个法方,要需定义什么变量(当然那时候是没有接口的观点的)自己清晰的很。但是在现没有做系统的时候就要把这些都写出来。肯定是不能拿来原的系统作为参考的。那时的系统自己从来没有虑考什么定名范规三范式的。而且那时候更没有应用接口、设计模式。这让我怎么写呢。

    但是话说回来些档文的的目就是为了便利发开的。些档文和画uml图该应是要占个整发开过程80%的间时的。

    对于我这类刚体会了一点面向对象的想思的菜鸟说来,让我做到指挥若定,决胜千里。似乎有点难了。于是我胆大的决议,在档文只写到了概要设计的时候我开始了程编实现。

    

        从vbc#vb.net这个适度该应说是不大的。但做得真正的灵活运用还真多得捣腾几遍。开始用vb.net码编时总觉感不道知如何手下了。

    但几天的摸爬滚打总算实现了简略的登录。

    

    结总几个技巧要点值得注意。。

 

    1.Shared Static关键字:

    参考浏览:

    VB.net中shared和static关键字的区分密解

        其中vbstatic关键字的用作为:

    

        在类中的static成员变量意味着它为该类的有所实例所同享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它有所实例所见;

    

        vb.netshared关键字的用作:

     

        同享类或结构的成员使每一个实例都可以应用该成员,而不是采取非同享模式,在非同享模式下,每一个实例都要需有自己的副本。例如,如果一个变量的值应用于个整应用程序,这点很有效。如果声明该变量为 Shared,那么有所实例会拜访雷同的存储位置,而如果一个实例更改了变量值,有所实例会都拜访更新后的值。

     

        由此可见vb.net中的shared关键字的用法和vbstatic的用法是雷同的。

     

        2.应用抽象工厂时提示:

每日一道理
青春,有嬉笑声与哭泣声夹杂的年华,青春的少年是蓝天中翱翔的幼鹰,虽然没有完全长大,有些稚气,有些懵懂,脱不开父母的双手却极力想去找寻属于自己的一片天空,为的是一时的激情,为的是一种独自翱翔的觉感!

  未能加载文件或程序集“”或它的某一个依附项。系统找不到指定的文件

        决解法方:

    

        按照三层的构架,是DALFactory程序集里通过反射创立针对特定数据拜访层里的对应类实例,这样BLL调用接口时就道知调用这个对应类实例里的实现法方 

    

        而反射动态加载程序集是通过这类法方 Assembly.Load("程序集").CreateInstance("定名空间."),其中的“程序集”读取的是Webbin文件夹下对应的dll,即反射加载的程序集dllUI层的bin文件夹必须有,不然就会涌现如题的误错。

    需只把DAL层的异变径路放到:UI层的bin文件夹。

    

    但这之前定一要证保一下几点:

    

            1.反射程编求要在网站的Bin文件夹中有经已译编好的.DLL文件(即持保DLL文件存在),并且持保称名和译编前库类的称名分歧。

    可称:加添引用性。

     

            2.查看网站中的目项(库类)性属,确认否是默许定名空间和程序集称名以及Bin文件夹下的DLL文件称名否是分歧,不分歧则会涌现未能加载文件或者程序集,所以的修改目项的性属。

    可称:称名分歧性。

     

            3.议建在程编的时在创立库类的时候写上系统称名+目项称名,可以有效的免避Bug产出。即:SystemName.Model或者SystemName.IDALegBBS.Model

    可称:称名完整性。

     

     Assembly.Load(path)其中这个path是加载你目项webbin目录的程序集,也就是说你要反射的程序集在你的UIbin下定一要有,看看你引用没有呢?

     

           4Model无引用。

     

           5DALFactory引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL应用。

     

           6SQLServerDAL引用 ModelIDAL,被DALFactory加载的程序集,实现接口里的法方。

     

    两个要主的问题。大家可能也会碰到。

    当然不止是这两个问题。而且后以的问题也定一很多。但代码是一点点写的不写是永久完不成的。想手动还没有手动重构的同窗希望对你们有助帮。

    

文章结束给大家分享下程序员的一些笑话语录: 古鸽是一种搜索隐禽,在中国快绝迹了…初步的研究表明,古鸽的离去,很可能导致另一种长着熊爪,酷似古鸽,却又习性不同的猛禽类——犤毒鸟

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/30/3052180.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ie下的透明度,用滤镜filter:alpha

.box{ width:100px; height:100px; background-color:#000; filter:alpha(Opacity50); opacity: 0.5; } 转载于:https://www.cnblogs.com/liujinyu/p/3931087.html

mysql 修改字段类型

修改字段类型: alter table 表名 modify column 字段名 类型。 --如 alter table province_quality modify column quality float(8,2); mysql> describe province_quality ; --------------------------------------------------- | Field | Type |…

Ubuntu硬盘优化,降低硬盘温度(Acer V5 亲测成功 )

1.安装laptop-mode-tools sudo apt-get install laptop-mode-tools2.修改电源管理配置: laptop-mode.conf sudo vim /etc/laptop-mode/laptop-mode.conf修改配置文件: #有关参数的说明请参照文件里的注释说明 ENABLE_LAPTOP_MODE_ON_AC1 #当笔记本使用交流电时也开启…

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization;文中的示例代码需要引用这个命名空间。 为什么要做序列化和反序列化?.Net程序执行时,对象都驻留在内存中;内存中的对象如果需要传递给其他系统使用;或者在关机时…

C++智能指针使用指南 part2:智能指针本身的方法以及使用建议

目录往期文章智能指针本身的方法对于unique_ptr对于shared_ptr对于weak_ptr使用建议1、使用工厂函数而非new构造对象2、在类内部调用其他类的方法3、在某类内部将当前对象指针共享给其他对象4、 智能指针只能管理堆对象,不能管理栈上对象5、不能将this指针直接托管给…

“/”应用程序中的服务器错误。

运行时错误 说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。 详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位…

JAVA_Collection容器

因为项目的需要,今天抽时间把JAVA中的容器复习了一下,为了以后的不时之需,现在把它记下来。 容器有其名,知其意,用来盛放数据的集合,JAVA中为我们提供了三种容器类:set、list、map,三…

对于enable_shared_from_this、shared_from_this使用笔记

文章为转载汇总 参考:C11标准库的一个工具类enable_shared_from_this的作用及原理分析 从这篇文章中可以知道: 当一个类public继承enable_shared_from_this时,会获得一个共有方法shared_from_this: class T : public enable_shar…

db file sequential read 事件的优化(一)

db file sequential read 事件的优化(一) db file sequential read等待事件有3个参数:file#,first block#,和block数量。在10g中,这等待事件受到用户I/O等待级别的影响。当处理db fi…

2014-08-26 遇到的小问题

不能快速的保存bug的确是很不爽的事情 ,不仅客户着急 领导也着急 ,自己也着急。。。。。。。。哈哈 原来好好的一个平台 简单的一个插入记录 突然就报错了 错误为 could not insert #9521 原来项目是用 NHibernate 做的插入 抛出的异常 真是无法定位到底…

Fatal error: Please read “Security“ section of the manual to find out how to run mysqld as root

.通过在命令后面加上–userroot 进行强制使用root账号启动。 cd /etc/init.d mysqld --userroot 参考: https://blog.csdn.net/huo_wa/article/details/117550307?spm1001.2101.3001.6650.2&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECT…

取消cp别名'cp -i'(unalias)

在rhel4updae8系统是使用cp命令覆盖文件总是提示要输入yes或no,即使加上-f参数也无法强行覆盖。[2] 方法一: 输入alias命令,看到系统内部使用的是cp的别名。 #alias alias cpcp -i 输入unalias cp命令,解除别名。 unalias cp #&…

增加swap分区

在确定了服务器所需要使用的内存后,需要增加1024M的swap空间 具体操作: 1、dd if/dev/zero of/tmp/swap bs1M count1024M #创建1024M的文件块 2、mkswap /tmp/swap #创建swap文件 3、swapon /tmp/swap #激活swap文件 4、swapon -s #查看swap 5、修改…

python 实现 topk算法

这里的版本是针对的一个class的某一个成员变量进行的: 关于如何定义对象的比较方法,请参考往期文章:python定义对象的比较方法 class province_room_quality_data:def __init__(self, room, quality):self.room roomself.quality qualityd…

2013年,未知的旅程

去年就开始策划要辞职到外面去闯一闯,今年年初在上一家公司毅然辞职了,理由是自己需要出去锻炼锻炼。 带着一个月的工资,和一点积蓄,还有一个女朋友来到了这个我以前都没有来过的城市-深圳。 听好多人都说过深圳是个好地方&#x…

SQL基础

经过这几天我才发现原来我最弱的是数据库,好了现在就来补补吧 SQL(Struct Query Language) 结构化查询语言,属于第四代语言(接近于自然语言)符合主谓宾定状补 DDL (Data Define L)数据定义语言,创建一个数据库,创建一个…

主成分分析资料

推荐一份介绍主成分分析的资料:http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf,写的很好! 在R语言中使用PCA:http://www.cnblogs.com/bigshuai/archive/2012/06/18/2553808.html 转载于:https://…

关于mysql的binlog写满磁盘而导致mysql无法连接的问题。

问题描述与追踪 首先是mysql连不上: [rootVM-90-225-centos ~]# mysql -uroot -p Enter password: ERROR 2002 (HY000): Cant connect to local MySQL server through socket /var/lib/mysql/mysql.sock (111)然后查看mysql的状态: [rootVM-90-225-c…

.NET系统架构改造的经验和教训

转自: http://robbinfan.com/blog/43/rid-off-dotnet-experience 在互联网行业,基于Unix/Linux的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为Linux本身足够的开放性,更因为围绕传统Unix/Linux社区有大量的成熟开…