2007年8月10日

  • 允许通过Build Toolbar选择"Debug" or "Relese"设置

"工具" -> "选项..." -> 选择"显示所有设置" -> "项目和解决方案" ->选择"显示高级生成配置"

  • 在VS2k5 Express工程中使用NUnit-GUI测试(以Visual C# 2005 Express为例)
    1. 创建一个新的类库工程。

      NUnit.1

    2. 添加NUnit框架引用。

      NUnit.2

    3. 编写测试代码。
      using System;
              using NUnit.Framework;
              namespace NUnitTest
              {
              [TestFixture]
              public class Class1
                  {
              [Test]
              public void Test1()
              {
              int a = 1;
              int b = 2;
              int sum = a + b;
              Assert.AreEqual(sum, 3);
              }
              }
              }
    4. 使用NUnit-GUI测试。这一步需要修改.csproj文件,加入下面代码:
      <PropertyGroup>
        <Nunit_Path Condition="'$(NUNIT_PATH)' == ''">C:\Program Files\NUnit 2.4.2</Nunit_Path>
        <StartAction>Program</StartAction>
        <StartProgram>$(NUNIT_PATH)\bin\nunit.exe</StartProgram>
        <StartArguments>/run $(TargetFileName)</StartArguments>
        <!--.csproj.user overwrites those values!-->
      </PropertyGroup>
      重新加载工程,F5

      NUnit.3

posted @ 2007-08-10 10:54 Voidclass 阅读(353) | 评论 (0)编辑

2007年8月3日

原来一直在Ubuntu 7.04下使用MonoDevelop 0.12,今天偶然发现MonoDevelop已经升级到0.14了。马上升级!!

http://www.getdeb.net/search.php?keywords=monodevelop

posted @ 2007-08-03 11:12 Voidclass 阅读(86) | 评论 (0)编辑

2007年8月2日

我的CNBlogs已经荒废太久了!!

使用Windows Live Writer发布blog,试试效果。

posted @ 2007-08-02 16:08 Voidclass 阅读(54) | 评论 (0)编辑

2006年11月22日

看了apan的《CardViewer系列之准备篇--资源下载推荐》之后,也把自己常用的资料整理一下。
  • OpenNETCF.org - OpenNETCF.org的最著名产品就是:Smart Device Framework(SDF),在.NET CF 1.0的时候,SDF 1.4起到了很好的补充作用,实现了很多.NET CF 1.0不具备的功能。目前,SDF的版本为2.0,对应.NET CF 2.0。其作用及被重视程度已远远不如1.4版本,因为现在.NET CF 2.0的功能已经相当丰富了。
    现在SDF 2.0有两个版:Community Edition和Extensions for Visual Studio。Community Edition是完全免费的,但是在Visual Studio中使用时,没有设计期支持。Extensions for Visual Studio和技术支持是收费的。另外,OpenNETCF.org还提供了一些其他的Lib,比如RAPI的.NET实现等等。
  • Mobile Client Software Factory - A new patterns & practices Guidance offering to help you build end to end solutions on the Mobile platform.相关的Webcast.
  • Mobile Line of Business Solution Accelerator - 黎波《行业移动解决方案的葵花宝典?》有更详细的说明。
  • Windows Mobile 5.0 Developer Resource Kit
apan推荐的几本书都是值得一读的。
posted @ 2006-11-22 09:14 Voidclass 阅读(1951) | 评论 (3)编辑

2006年10月25日

正常情况下,下面的代码:
namespace ClassLibrary1 {
    
public class Class1 {
        
private bool _bFlag;

        
public Class1() {
            _bFlag 
= true;
        }
    }
}
产生的IL代码应该是:
.method public hidebysig specialname rtspecialname
        instance void  .ctor() cil managed
{
  // 代码大小       14 (0xe)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
  IL_0006:  ldarg.0
  IL_0007:  ldc.i4.1
  IL_0008:  stfld      bool ClassLibrary1.Class1::_bFlag
  IL_000d:  ret
} // end of method Class1::.ctor


可是,我见到这样一段代码:
.method public hidebysig specialname rtspecialname
        instance void  .ctor() cil managed
{
  // 代码大小       14 (0xe)
  .maxstack  2
  IL_0000:  ldarg.0
  IL_0001:  ldc.i4.1
  IL_0002:  stfld      bool ClassLibrary1.Class1::_bFlag
  IL_0007:  ldarg.0
  IL_0008:  call       instance void [mscorlib]System.Object::.ctor()
  IL_000d:  ret
} // end of method Class1::.ctor

什么样的C#代码可以生产这样的IL呢?
先给变量赋值,然后才调用基类的构造函数。

找到原因了!
谢谢布鲁斯南提示。
C#代码是这样的:
namespace ClassLibrary1 {
    
public class Class1 {
        
private bool _bFlag = true;
    }
}
这时系统就会先给变量赋值,再去调用基类的构造函数。
posted @ 2006-10-25 13:28 Voidclass 阅读(1468) | 评论 (3)编辑

2006年10月9日

首先对被遗弃的小指赞一个!!!
赞的不仅是他的文章还有他的人品。
因为新的项目开始,我两个很菜的问题没有解决,实在不愿意在网上找了,累了。
被遗弃的小指的Messenger一直示忙,就发了Email,都得到了耐心、细致回复。谢谢!

关于Code Snippet的使用问题,如果还有朋友有不清楚的地方,请参考:
http://www.cnblogs.com/shanyou/archive/2006/08/13/codesnippets.html
http://www.cnblogs.com/tonyqus/archive/2006/06/29/437928.html


我想说的是面对今天的Inertnet, 你们茫然吗?

早晨八点上班,带上耳机,响起节奏强劲舞曲。让节拍控制身体,眼前的东西渐渐清晰了。
打开Firefox,伴随着Firefox,Gmail、Google Reader、Writely一一跳了出来。看看每个标签上标题,括号里的数字不是三五十就是(100+)。
打开Windows Live Mail Desktop,哇!吓我一跳,黑色粗体的Email满屏都是。颤抖的手,不敢去点"News"。
打开Maxthon2,屏幕狂闪,呵呵~~ 打开如此之多的标签,以至于我看不清每张网页的标题。摇摇头,昨天还剩下这么多东西没来得及看完呀。。。

今天又接新项目,应用到的技术又是似乎熟悉却又陌生的。没办法了,把当前Maxthon2的标签存在组里吧,以后再看。
Ctrl+T开一个新标签,输入www.google.com ……

邮件到达提醒、RSS订阅提醒、新闻组、BBS、小企鹅在晃动、小人在闪……
我一直是醒着的!

posted @ 2006-10-09 16:34 Voidclass 阅读(266) | 评论 (0)编辑

2006年9月21日

本来是发在我的个人主页上的,但是想来想去还去发到博客园了。虽然这里是关注.NET技术的,但这是我对“设计模式”的一些看法。DUDU路过时看一眼,如果不妥,马上撤。

今天在博客园看了TerryLee的一篇文章,“.NET设计模式(1):开篇”。看过之后我也想就这个问题写一点东西出来。

提到“设计模式”,现在盲目夸大的人或者说盲目的人确实很多。我在招聘场就见过一个人在谈论个人情况的时候,眉飞色舞的讲:“我会设计模式”,然后“背出”经典的23种设计模式。当时我在想,“设计模式”在这个人的心目中是一种技术吗??

其实我们大多数的程序员都在过去有意或无意中从“设计模式”受益。“告诉一个同事我们是怎么完成了一个包含相当多技巧的程序,这样他就不用从头开始再做一次。”(《C#设计模式》)每个程序员差不多都有过这个的经历,只不过现在被冠以“设计模式”的名字而以。

接下来,我又看了TerryLee的第二篇文章,.NET设计模式(2):单件模式(Singleton Pattern)文中使用C#来描述Signleton Pattern。详尽、易懂。我见过的“设计模式”的文章大多使用C++/C#或Java来描述,感觉太OO了。看这篇文章的时候,我想起了使用Delphi时,关于MDI子窗体单一实例的问题。一般用Delphi做过类似“进销存”软件的朋友都有过这样的经历,就是把很多不同的录入窗体、各式各样的查询统计窗体集成在一个MDI Application中。而这时,往往需要子窗体只被创建一次。我们一般是怎么做的哪?

子窗体:

unit CFrm;

interface

uses
  

type
  TCForm 
= class(TForm)
    
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  end;

function CForm: TCForm;

var
  FCForm: TCForm;

implementation

function CForm: TCForm;
begin
  
if FCForm = nil then
    FCForm :
= TCForm.Create(Application);
  Result :
= FCForm;
end;

{ TCForm }

procedure TCForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action :
= caFree;
  FCForm :
= nil;
end;

在MDI Application的MainForm中只要使用 CForm.Show(); 就可以了。

虽然不那么OO,但我个人认为归属到Singleton Pattern的范畴。也是可以的。虽然GoF的23种模式很OO,但没人要求“设计模式”一定OO。

PS:本文可能会让设计高手不屑,也可能会有很多人质疑。不想口水仗,只是写写我的想法。

posted @ 2006-09-21 17:00 Voidclass 阅读(1579) | 评论 (9)编辑

2006年9月18日

     摘要: From: http://www.dotnetrix.co.uk/tabcontrols.html1usingSystem.ComponentModel;2usingSystem.Drawing;3usingSystem.Windows.Forms;45namespaceDotnetrix.Samples.CSharp6{7[ToolboxBitmap(typeof(System.Windows....  阅读全文
posted @ 2006-09-18 23:36 Voidclass 阅读(1059) | 评论 (7)编辑

2006年9月16日

参考: http://bluehouse.wordpress.com/2006/01/24/how-to-create-a-notify-icon-in-c-without-a-form/

Tested with .NET Framework 2.0 and Windows XP Professional SP2.

我想创建一个带Notify Icon的应用程序,但是不需要Forms。那么如何编写一个没有窗体的NotifyIcon程序哪?我找到了 http://bluehouse.wordpress.com/2006/01/24/how-to-create-a-notify-icon-in-c-without-a-form/ 。稍做修改,形成如下代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.Windows.Forms;
 5 using System.ComponentModel;
 6 using System.Drawing;
 7 
 8 class Portal
 9 {
10     private IContainer container;
11     private NotifyIcon notifyIcon;
12 
13     public Portal()
14     {
15         Icon icon = new Icon(SystemIcons.Application, 1616);
16 
17         this.container = new Container();
18         this.notifyIcon = new NotifyIcon(this.container);
19         this.notifyIcon.Icon = icon;
20         this.notifyIcon.Visible = true;
21     }
22 }
23 
24 static class Program
25 {
26     [STAThread]
27     static void Main()
28     {
29         new Portal();
30         Application.Run();
31     }
32 }

posted @ 2006-09-16 14:11 Voidclass 阅读(2220) | 评论 (2)编辑

2006年4月21日

因为没备案, 被关了...... :-(

没有没比较好的国外空间推荐??
posted @ 2006-04-21 23:23 Voidclass 阅读(140) | 评论 (1)编辑

导航

统计

与我联系

常用链接

留言簿(2)

我参与的团队

随笔分类(18)

随笔档案(18)

收藏夹(1)

友情博客

积分与排名

最新评论

阅读排行榜

评论排行榜