Simply The Best.

.NET FrameWork C# VB.NET CodeDom

博客园 首页 新随笔 联系 订阅 管理
  19 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks

2006年3月10日 #

VS2005
       做一个SomeApp_R1.1_VS2005的C#工程,结果发现自动生成的Source中的NameSpace 变成了SomeApp_R1.__VS2005 ,其中的1.1中点后面的1变成了下划线( _ )。

      所以以后在NameSpace命名中,可以在一个字符中用点,但是后面要跟上下划线老兄( _ )

 还要说的是:
VS2003中NameSpace 会变成 SomeApp_R1._1_VS2005 ,自动Source会插入一个下划线


   
posted @ 2006-03-10 11:21 吹口琴的程序员 阅读(60) 评论(0) 编辑

2006年3月7日 #

项目要对应.NET Framework2.0 开始使用Visual Studio 2005

什么Side by Side运行,互换性,etc的问题的考虑,调查。
说是Side by Side实际上一用才知道没有实现的地方其实很多。(容下回分解)

MS新的产品的推出提高生产率,可我们不得不付出我们的青春去迎合他。
什么时候能有一个保证互换性,或者支持Can自动省级的MS UpGrade就好了。

posted @ 2006-03-07 11:12 吹口琴的程序员 阅读(31) 评论(0) 编辑

使用VS2003 C#1.0编译器的时候,如果一行的文字超过2046个,会有编译器ERROR,ErrorNo :CS1034
VS2005 C#2.0的时候这个限制被取消了。

posted @ 2006-03-07 10:59 吹口琴的程序员 阅读(179) 评论(1) 编辑

2006年1月16日 #

(1)在OnConnection中,判断connectMode时,一定要加上ext_cm_AfterStartup

   if(connectMode == Extensibility.ext_ConnectMode.ext_cm_UISetup
    || connectMode == Extensibility.ext_ConnectMode.ext_cm_Startup
    || connectMode == Extensibility.ext_ConnectMode.ext_cm_AfterStartup) // this line will work when u choose addin in addin manager
这样子,在vs的Addin Manager中选中插件时,插件才会重新显示出来,一般的范例中,只有前两个判断

(2)QueryState中,设置state时,要使用下面语句

    if( 是你加入的command )
    {
     if( 满足显示的条件 )
      status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported|vsCommandStatus.vsCommandStatusEnabled;
     else
      status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported;
    }
    else
     status = (vsCommandStatus)vsCommandStatus.vsCommandStatusUnsupported;
这样做,才能在条件不满足时,插件的菜单变灰

(3)判断代码窗口存在的方法是

(applicationObject.ActiveWindow != null) && (applicationObject.ActiveWindow.Type == vsWindowType.vsWindowTypeDocument)

就是说当前有活动窗口,而且其类型是文档类型

(4)在文档窗口插入字符的方法是

   TextSelection ts = (TextSelection)applicationObject.ActiveDocument.Selection;
   EditPoint ep = ts.ActivePoint.CreateEditPoint();
    
   ep.Insert(strCode);
当然,还可以调用EditPoint的其它方法,来实现删除,替换等等

posted @ 2006-01-16 17:12 吹口琴的程序员 阅读(40) 评论(0) 编辑

2005年12月6日 #

Design Pattern : Flyweight Pattern : KeyPoint

posted @ 2005-12-06 20:59 吹口琴的程序员 阅读(74) 评论(0) 编辑

Design & Pattern : Factory Series : Generalization

简单工厂模式(Simply Factory Pattern),
工厂方法模式(Factory Method Pattern),
抽象工厂模式(Abstract Factory Pattern)

想把这3个模式的特点和关联总结一下。

Pattern Name 工厂 Factroy Return Value 决策部 Director 实例对象的关系 最有特点的Code 特点
简单工厂模式 FactoryClass 同根的不同子实例 有,由FactroyClass中的IF文决策 一个树结构,同根 FactoryClass{
   public FactoryClass (){
if (cun>3)
  return new CA();
else
  return new CB();
}}
Simply,直接返回最终实例
工厂方法模式 EventFactoryClass 同根的不同子实例 一个树结构,同根,子实例中的方法动作不同 efc.MethodRun() 实例和方法的绑定
抽象工厂模式 RootClass 根的实例 无,由RootClass的Member决定 根实例本身,多种(个)Member的组合 RootClass{
  SubClass1 sub1;
  SubClass2 sub2;
}
MemberClass的隔离&组合


工厂和抽象工厂,总之工厂:就是返回实例对象的Class。
工厂方法模式的名称中主要强调了方法,可以理解为工厂的零件决定方法的含义,既然和工厂挂上了边,是可以要返回一个实例的,但不是必须的。

决策点:就是决定返回哪个实例的分支处理。
posted @ 2005-12-06 18:36 吹口琴的程序员 阅读(96) 评论(0) 编辑

Design & Pattern : Proxy Pattern : keypoint

适用范围:对于同一个对象,需要根据状态的不同,来动态地执行相应的动作的场合

设计上的要点:一个对象,它必须是相对范围内全局对象,该对象内存在改变自身状态的方法,接着就是根据这个状态的改变,来执行不同方法的工厂模式(Factory Pattern)了。

经典的例子:是运用Timer  , TimeCallBack来实现和描述的。

为网络和互联网应用开发的C#中有很多代理行为,ADO.NET中数据库的连接类全部都是代理(Proxy)。

Adapter ,Proxy 都是在对象外围构建了一个薄层,but, Adapter是为对象提供一个不同的接口,而Proxy则是为对象提供的是相同的接口,这个接口可以推迟处理过程和数据转换的工作。

Decorator也具有与它所包含的对象相同的接口,但它的目标是为原对象添加额外的(有时是可视化的)功能,而Proxy则正好相反,它控制对所包含的类的访问。
posted @ 2005-12-06 10:08 吹口琴的程序员 阅读(61) 评论(0) 编辑

2005年12月5日 #

前段时间的台湾人,来大陆演讲,确实给大陆人的我,激灵了好几番。出口旁证佐引,中华文化被他们继承的很好,反观大陆人,在曾经那个做《沁园春 雪》的老毛的领导下,却让更多的人成为抛弃中华文化的一代。

应该也有自己的问题,亡羊补牢为时未晚。现在做起,大学的时候就有过恶补文学方面的想法,现在是愈甚了。

图片说明:为民进党败选请辞党主席的苏贞昌,昨天一早悄悄到党部收拾包袱,小心翼翼地把母亲亲笔写给他的“好酒沉瓮底”扛回家。


posted @ 2005-12-05 13:38 吹口琴的程序员 阅读(502) 评论(0) 编辑

2005年11月4日 #

posted @ 2005-11-04 11:17 吹口琴的程序员 阅读(320) 评论(0) 编辑

2005年10月31日 #

posted @ 2005-10-31 08:54 吹口琴的程序员 阅读(1481) 评论(0) 编辑