摘要: 此处的Activex是ATL方式的。[ComVisible(false)] [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("00000001-0000-0000-C000-000000000046")] internal interface IClassFactory { void CreateInstance([MarshalAs(UnmanagedType.Interface)] object pUnkOuter, ref Guid refiid, [MarshalAs(Unm 阅读全文
posted @ 2013-08-20 18:07 forhells 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 需要解决三个问题,运行环境检测与安装,按顺序执行安装,activex注册。运行环境检测与安装最开始的方法,百度之后,根据网上的搜索的结果,使用了RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A25302D-30C0-39D9-BD6F-21E6EC160475}', 'Version', version),最后的结果,我发现,跟我想的不一样,没有判断到是否已经安装了vc++9的环境,每次安装都会重复安装,最后,我发现,Uninstall中的GUID是 阅读全文
posted @ 2013-08-14 08:52 forhells 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 原来不知道自己想要什么,一般习惯于三层,而且还是bll简单化的三层,现在是越来越清晰的明白自己想要什么了。简单化的三层存在的问题:1.表驱动的,N个表,就有N*3个类。2.业务全部被放到了界面后面隐藏的类里面去了。换界面不容易。3.业务复杂的话,修改起来比较崩溃。比如说一个业务有5个表参加了,那么里面的业务代码长,复杂,表的关系也是复杂。绕来绕去头晕了。修改起来也是小心异常。原来打算使用DDD驱动,但是这个东西,首先要有业务专家,分析起来头大,水平不够就算了。所以就选用了csla.net。最后参加了几个复杂一些的项目。我发现,我只需要这样三个东西来做业务:1.业务类,应该是UI对应的类,而不是 阅读全文
posted @ 2013-05-25 11:27 forhells 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 最近需要对asp的加接字符串进行加密。思考良久。想用计算机的机器存储密钥区,懒得用c++,于是用了C#做了一个,注册到平台里面,但是很悲具,老是提示,对象已存在,最后才发现,需要将用户名iuser_**给予密钥容器的访问权限。现在能做到,除非你能登录到这个系统,否则的话,你得不到密钥,你也不知道加密的连接字符串是啥。 阅读全文
posted @ 2012-07-01 19:45 forhells 阅读(214) 评论(2) 推荐(0) 编辑
摘要: 1.这两天在考虑一个问题,频繁的读写磁盘会不会对磁盘造成影响。最后看了http://www.cnblogs.com/slime/archive/2010/03/09/1681198.html此文章,明白了,我1秒有最多22个线程的读写根本不算是频繁读写。2.怎么保存一个byte[]到文本中去。3.在判断状态的时候,太多if,else经常会有漏掉状态的情况,考虑使用 职责链模式。 阅读全文
posted @ 2011-11-17 22:43 forhells 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 最近在找如果让GridView有可以改变列宽的能力,找了很久,同时也要用到updatepanle,其实是自己太懒了,不注意去分析,最后终于看到有个加拿大人以此写了一个ajax的扩展控件。于是拿过来用。出了一些问题。因为他用的是ajaxtoolkit的早期版本。在.net3.5会报告说是找不到ajaxtoolkit,其实很简单,看了,ajaxtoolkit的代码,将他源码中最后注册部分的ajaxtookit变成Sys.Extended.UI,注意是GridViewResizeBehavior.js.文件。 1 /* 2 This source code was adapted from Mat. 阅读全文
posted @ 2011-07-30 23:18 forhells 阅读(1601) 评论(0) 推荐(1) 编辑
摘要: 本人愚钝,编程近六年,才明白了责任分离是啥意思。以设计模式解析(第2版)的例子来说明,强调下:假设你是一个会议上担任讲师,听课的人在课后还要去听其他课,但他们不知道下堂课的听课地点,你的责任之一,就是确保大家都知道下堂课去哪上。一般是这样做的。1.get听课人的名单2.for i=0 i< 人数 a.getnextclass //找到当前的人的下堂课是什么, b.getplace//找到地点 c.getpath //找到路线 d.givemap //设置听课人的属性现在我这样做1.get听课人的集合2.tell集合gonextclass3.集合的gonextclass for i=0 i 阅读全文
posted @ 2011-04-21 21:26 forhells 阅读(263) 评论(1) 推荐(0) 编辑
摘要: 目前所做的工作,大多是这样的:第一种:1.后台sql.2.前台ui.逻辑全部放到了ui.sql的辅助类。ui to sql的辅助类。sql to ui的辅助类。第二种:1.后台sql.2.中间层.3.前台ui.逻辑大部分放到了中间层.sql的辅助类。ui to sql的辅助类。sql to ui的辅助类。中间层,权限,业务逻辑,业务规则。等等。程序员非常勤快的,1,2,3,换了一个平台,继续1,2... 阅读全文
posted @ 2010-11-21 19:27 forhells 阅读(198) 评论(1) 推荐(0) 编辑
摘要: 通用权限管理系统的模型设计原来的权限管理,是将“模块权限”和“资源权限”直接分配给“用户”。好处:易于实现,在“模块权限”和“资源权限”的控制上面,比较方便,容易。坏处:用户类别多,用户数量大时,整个系统维护工作量大。如果引入“角色”,如果将“... 阅读全文
posted @ 2010-11-17 08:59 forhells 阅读(712) 评论(1) 推荐(1) 编辑
摘要: 编译器错误信息: CS0016: 未能写入输出文件,..\Temporary ASP.NET Files\WebApp\d087da43\c12930d8\9ze28k_8.dll”--拒绝访问今天给客户安装网站,最后出现这个错误。经常查找,说是要给windows下面的temp文件夹建用户。因为客户的是XP系统,所以我就加了Network service用户的权限。然后没有重启IIS错... 阅读全文
posted @ 2010-05-07 21:47 forhells 阅读(226) 评论(0) 推荐(0) 编辑