IMZRH的日志

努力成为一个有用的人

导航

随笔分类 -  DotNet

摘要:今天的重构指南和“提升方法”有点类似,不过要提升的不是方法,而是字段,让我们来看下面的代码: 1: public abstract class Account 2: { 3: } 4:  5: public class CheckingAccount : Account 6: { 7: private decimal _minimumCheckingBalance = 5m; 8: } ... 阅读全文

posted @ 2009-09-28 13:53 张荣华 阅读(469) 评论(0) 推荐(0) 编辑

摘要:在做项目实施时,经常需要给用户提供一个excel模板,让用户根据自己的实际情况在excel中按要求录入一个基础数据(比如部门人员数据、在线考试的试题库、设备信息等),这样做的原因一个是因为用户一般对excel比较熟悉;另一个原因是使用excel的话客户可以直接从其它数据源导入,而不是从头开始录入。当用户将处理好的电子表格交给我们后,一般实施人员会利用自己熟悉的工具将excel导入到系统数据表中,我... 阅读全文

posted @ 2009-09-20 20:19 张荣华 阅读(3905) 评论(2) 推荐(1) 编辑

摘要:昨天我们讨论了利用“提升方法”重构将多个子类要用到的方法提升到父类中,今天我们来看和“提升方法”相反的重构---降低方法,下面是待重构的代码: 1: public abstract class Animal 2: { 3: public void Bark() 4: { 5: // code to bark 6: } 7: } 8: 9: publi... 阅读全文

posted @ 2009-09-16 09:32 张荣华 阅读(426) 评论(1) 推荐(0) 编辑

摘要:提升方法的重构是指将方法提升到继承链的较高层次,该重构一般发生了当一个方法需要被更多的继承链中的多个实现使用时。 1: public abstract class Vehicle 2: { 3: // other methods 4: } 5: 6: public class Car : Vehicle 7: { 8: public void Turn(Direction direction) 9... 阅读全文

posted @ 2009-09-16 09:30 张荣华 阅读(532) 评论(1) 推荐(0) 编辑

摘要:今天的重构指南是关于移动方法的,移动方法是一个简单却容易被忽略的重构,正如它的名字所表达的意思一样,移动方法就是将方法移动到合适的位置。让我们来看下面的待重构代码: 1: public class BankAccount 2: { 3: public BankAccount(int accountAge, int creditScore, AccountInterest accountIntere... 阅读全文

posted @ 2009-09-15 17:16 张荣华 阅读(502) 评论(1) 推荐(0) 编辑

摘要:在有些情况下不将类中的集合对象暴露给用户是合理的,特别是当您为集合提供了另外的添加和删除方法时。基于这个原因,只暴露一个仅仅能遍历但不能修改的集合是明智的,下面让我们来看一段代码: 1: public class Order 2: { 3: private List<OrderLine> _orderLines; 4:  5: public IEnumerable<Or... 阅读全文

posted @ 2009-09-15 17:15 张荣华 阅读(717) 评论(1) 推荐(0) 编辑

摘要:软件开发中有一个极端的说法是“所有硬编码的字符串都应该放到资源文件中”,我个人对这个观点深表赞同,但有时限于项目的进度或是别的原因,还是习惯性的在代码中写了一些硬编码的字符串,比如像下面的这句代码: public void TestMethod() { string s = "这是一个测试字符串"; }如果在代码中包含了大量的硬编码字符串,而在项目后期每当字符串的值发生变... 阅读全文

posted @ 2009-09-11 17:12 张荣华 阅读(1467) 评论(1) 推荐(0) 编辑

摘要:前提条件: remote host和client都在一个局域网内,且必须在一个网段 remot host和client主机必须登录相同的用户,用户名必须一直 关闭防火墙或打开相应的端口,一般是4015 remote host和client的本地安全策略中的网络访问必须改为“经典,本地用户以自己的身份验证”,路径为控制面板->用户管理->本地安全设置->本地策略->安... 阅读全文

posted @ 2009-08-08 11:01 张荣华 阅读(1388) 评论(0) 推荐(0) 编辑

摘要:John Robbin 写了一篇博客,说是有人抱怨VS2008对多线程调试支持的不好,不支持他最希望看到的两个功能:1)多线程时调试时可以同时查看所有线程的堆栈信息;2)不允许设置断点只在特定的线程上触发,而不在其它的线程上触发. 对此john robbin 给出了它的答案,第一个功能vs2008本身无法实现,在vs2010中的Parallel Stacks window窗口可以实现这个功能;[其实我倒知道名叫"debuginspector"的vs addin 可以实现同时在vs2008中同时查看所有线程堆栈信息的功能.] 针对第二个功能,john robbin通过编写macro的方式给出了答案 阅读全文

posted @ 2009-07-14 09:18 张荣华 阅读(3006) 评论(0) 推荐(1) 编辑

摘要:利用FTP方式实现程序自动更新。 阅读全文

posted @ 2009-06-30 08:49 张荣华 阅读(6534) 评论(58) 推荐(1) 编辑

摘要:最近做的一个winform类型的项目中需要屏蔽系统热键,在网上搜索了一下,基本上都是调用api来进行hook操作,下面的代码就可以完成功能 阅读全文

posted @ 2009-06-19 20:31 张荣华 阅读(5878) 评论(10) 推荐(1) 编辑

摘要:最近在项目中应用到了agsxmpp框架,主要的目的是在项目中嵌入一个实时沟通(包括文本、语音聊天,群会议)模块,通过比较后决定采用agsxmpp框架实现,开始的时候很容易,根据官网上提供的示例进行修改,很快的实现了功能。但是今天在测试的时候发现了一个问题,在早期的开发过程中,服务器和客户端都是在同一台机器上,所以很容易连接成功,但是现在测试的时候服务器和客户端不是一台机器上就连接不上了。在连接时报... 阅读全文

posted @ 2009-04-29 04:29 张荣华 阅读(4838) 评论(5) 推荐(0) 编辑

摘要:手头正在处理的winform项目经过三个月左右的设计和开发,终于进行了测试和验收阶段。今天在给测试小组部署测试环境时遇到问题,就是按照OPC配置手册配置了OPC服务器(我们读取的是力控6.0软件)和OPC客户端(也是我们的应用服务器)后,OPC客户端仍然无法找到服务器,大概分析了一下原因,觉得是有一些dll没有注册的原因,因为以前也有遇到过这种情况,但是在安装了力控6.0的试用版后,这个错误就消失... 阅读全文

posted @ 2009-04-20 23:01 张荣华 阅读(8877) 评论(5) 推荐(2) 编辑

摘要:环境:VS2005 , Nunit2.4 sql server 2005 第一步:首先建立一个新工程AccountTest第二步:为此专案添加EnterpriseServices组件。当然作单元测试,也应该添加上NUnit框架第三步:编写测试基础类 using System; using System.Collections.Generic; using System.Text; using S... 阅读全文

posted @ 2009-03-23 17:46 张荣华 阅读(2059) 评论(1) 推荐(0) 编辑

摘要:Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 1. 及早检查 发现问题越早,这个问题就越容易解决。 2. 不要相... 阅读全文

posted @ 2009-02-23 13:04 张荣华 阅读(813) 评论(0) 推荐(0) 编辑

摘要:最近在学习NHibernate,因为写映射文件实在太麻烦了,所以找了个codesmith模板,然后修改了一下,基本上满足了项目的需求.有需要的朋友可以从这里下载. 阅读全文

posted @ 2009-02-17 09:38 张荣华 阅读(1710) 评论(7) 推荐(0) 编辑

摘要:hbm.xmlNHibernate文件中版本号可能引起的问题. 此处的2.2代表了NHibernate的版本号,必须与你安装的NHibernate的产品版本号相符.否则的话,举个例子,若为urn:nhibernate-mapping-2.0,则会出现如下错误: Could not find schema information for the element 'urn:n... 阅读全文

posted @ 2009-02-12 15:19 张荣华 阅读(14231) 评论(3) 推荐(0) 编辑

摘要:.NET2.0为数据库连接串提供了专门的配置节---connectionStrings,其格式如下:<connectionStrings > <add name="SQL 阅读全文

posted @ 2009-01-21 11:07 张荣华 阅读(1300) 评论(0) 推荐(0) 编辑

摘要:Asp.NET有许多秘密,当你了解了这些秘密后,可以使得你的ASP.NET应用程序达到极大的性能提升。举例来说,在使用Membership和profile进行Authentication和author 阅读全文

posted @ 2008-12-23 17:28 张荣华 阅读(3736) 评论(1) 推荐(1) 编辑

摘要:在吕林波的配置手册的基础上,加了一些使用注意事项! 阅读全文

posted @ 2008-12-18 16:16 张荣华 阅读(19816) 评论(1) 推荐(1) 编辑