日历
公告
分类
日志列表
最新回复
最新留言
链接
统计信息
搜索
其它


虾米的blog!
  C#插件构架实战
  一、引言

1. 问题的引入

假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。

2. 几个解决方案的对比

我总结了一下我所接触到的插件构架,大致上可分为以下几类:

i> 脚本式

使用某种语言把插件的程序逻辑写成脚本代码。而这种语言可以是 Python ,或是其他现存的已经经过用户长时间考验的脚本语言。甚至,你可以自行设计一种脚本语言来配合你程序的特殊需要。当然,用当今最流行的 XML 是再合适不过了。

这种形式的特点在于,稍有点编程知识的用户就可以自行修改你的脚本( ^_^ 假如你不加密它的话)。我们无法论证这是好处还是坏处。因为,这种情况所造成的后果是不可预知的。

ii> 动态函数库 DLL

插件功能以动态库函数的形式存在。
……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2010-6-28 11:36:00
  求两线的交点
 

转自网络

'功能描述:求两线的交点
'传入参数:
'返回参数:交点
'依赖关系:
'作者:
'创建日期
'**************************************************
Public Function FindIntersection(pLines1 As ITopologicalOperator, plines2 As ITopologicalOperator, maxDev As Double) As IPoint
        Dim pIntersect As IGeometry
        Set pIntersect = pLines1.Intersect(plines2, esriGeometry0Dimension)
        If pIntersect Is Nothing Then Exit Function
   &nbs
……

[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2009-12-5 12:52:00
  项目经理职责
  国际软件项目经理的七大素质:
1、在一个或多个应用领域内使用整合了道德、法律和经济问题的工程方法来设计合适的解决方案。
2、 懂得确定客户需求并将其转换成软件需求的过程。
3、 履行项目经理的职责,善于处理技术和管理方面的事务。
4、 懂得并使用有用的项目管理工具。
5、调谐互相冲突的目标,在成本、时间、知识、现有系统以及组织的限制下找出可接受的折衷办法。
6、在一个典型的软件开发环境中谈判、有效地工作、在必要时进行领导,并与有关负责人(包含外方)进行良好沟通。
7、 从最初创建建议书一直到项目签收结束都应用国际标准。
……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2009-8-17 14:23:00
  wms
 

1.       You can programmatically create a *.WMS in the format that appears below, and fill the respective information
……

[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2009-8-3 16:22:00
  通过网页修改activex安全设置,添加信任站点,禁用弹出窗口阻止程序
 

信任站点的注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]

ActiveX的注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\[0-4]\[*]

[0-4]


……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2009-2-14 17:48:00
  C#中如何去除窗体默认的关闭按钮?
     很时候,在winform的设计下,会遇到新建窗体时不需要用到默认的关闭按钮的情况,而是用另外设置关闭 button或其他控件来控制窗体的关闭。

    之前我遇到这个问题时,问了很朋友,都没找到方法,VS的窗体属性里也没那一项,在MSDN里也没有相关的资料。 但后来偶然发现,原来办法是很简单的,只需要在初始化窗体的时候不显示那关闭按钮就可以了。

    具体方法是,加上一句 “ this.ControlBox = false;”。

   如下:


……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2008-11-18 12:35:00
  如何自动关闭空闲的sde连接?
  在连接sde的应用中,如果连接的客户比较多的情况下,可能会出现sde连接占用cpu资源十分严重,以至于出现系统死机的情况。

Sde提供了TCPKEEPALIVE参数,用来侦测客户端连接情况。当TCPKEEPALIVE为True时,那么在2小时(TimeOut默认设置7200000ms,即2小时)内,如果客户端没有向sde发送请求,sde连接将自动关闭,如果TCPKEEPALIVE为false,那么当客户端没有向sde发送请求超过timeout规定时间,sde连接仍然占用。因此,如果我们想让系统自动关闭空闲的sde连接,那么我们就要把TCPKEEPALIVE设置为true。默认安装的时候TCPKEEPALIVE的值为false。

TCPKEEPALIVE参数可以通过sde命令来更改,例如:
Sdeconfig –o alter –v TCPKEEPALIVE=TRUE –u sde –p sde
改完后重启sde服务。

注意:sde直连应用的情况下TCPKEEPALIVE参数不起作用。

TCPKEEPALIVE的TimeOut时间是可以更改的,我们可以更改操作系统设置TimeOut间隔时间(5分钟-2小时)。
……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2008-10-31 17:31:00
  sql server2005安装过程中com+警告问题
  到管理工具下的服务里把Distributed Transaction Coordinator这个服务启动。这里我又遇到问题,因为我的这个服务遇到错误无法启动。没办法,继续Google,找到如下解决方法:
???? 把 C:\WINDOWS\system32\dtclog 这个目录重命名(如果有),然后重新建立该目录。
???? 在命令行下: msdtc -resetlog
???? 然后 msdtc 就可以启动了。
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2008-9-24 17:29:00
  GML
  GML是XML在地理空间信息领域的应用。利用GML可以存储和发布各种特征的地理信息,并控制地理信息在Web浏览器中的显示。

  地理空间互联网络作为全球信息基础架构的一部分,已成为Internet上技术追踪的热点。许多公司和相关研究机构通过Web将众多的地理信息源集成在一起,向用户提供各种层次的应用服务,同时支持本地数据的开发和管理。GML可以在地理空间Web领域完成了同样的任务。GML技术的出现是地理空间数据管理方法的一次飞跃。
……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2008-4-12 17:36:00
  关于VBSCRIPT中取随机数的问题
 

Randomize 语句
--------------------------------------------------------------------------------

描述
初始化随机数生成器。
语法
Randomize [number]
number 参数可以是任何有效的数值表达式。


……
[ 阅读全文 | 回复 | 引用通告

  Post  by  虾米 发表于 2008-4-2 14:54:00
首页 上一页 下一页 尾页 页次:1/10页  10篇日志/页 转到:
Power By
Powered by Oblog.