30 views 八月 14, 10 by Timothy
Mono的大名,搞.NET的同学都知道。它使.NET程序在Linux下有了跨平台运行的可能。随着mono的逐步发展,现在已经逐渐趋于稳定和流行了。此文介绍一下Ubuntu中mono环境的搭建。
1.安装
1
| $ sudo apt-get install mono-gmcs libmono-system-data2.0-cil libmono-system-ldap2.0-cil libmono-system-messaging2.0-cil libmono-system-runtime2.0-cil |
当然,还有其他的一些包可选,比如:
libmono-winforms2.0-cil 提供WinForm程序开发功能
libmono-system-web2.0-cil 提供asp.net web程序开发功能
libmono-system-web-mvc1.0-cil 提供MVC的web开发框架
libmono-wcf3.0-cil 提供WCF开发功能
libmono-nunit2.4-cil Nunit,单元测试模块
2.安装好后,查看mono相关信息
1
2
3
4
5
6
7
8
| Mono JIT compiler version 2.4.4 (Debian 2.4.4~svn151842-1ubuntu4)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
TLS: __thread
GC: Included Boehm (with typed GC)
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none |
3.测试程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| using System;
using System.Linq;
namespace Test
{
class Program
{
static void Main()
{
Console.WriteLine("Hello Mono!");
Console.ReadLine();
}
}
} |
保存为test.cs,然后用gmcs编译,运行正常。
至此,mono环境配置成功。
24 views 六月 23, 10 by Timothy
最近抽空一直在学习Objective-C,打算不久的将来和同事一起搞iPhone应用开发,所以也咬牙入了Mac Mini和iPhone 3GS。教程看的是《Objective-C基础教程》(Learning Objective-C on the Mac),一本比较初级的教程,也比较适合入门。看了一大半了,不过发现没有动手实际写代码,很多东西还是容易遗忘。正所谓一个好脑袋,不如一支烂笔尖,虽然现在早已不是笔和纸流行的时代,还是打算把自己理解的东西,用学习笔记的形式,把这些记录在偶的Blog中,供以后参考和复习。
废话不多说了,先介绍下Objective-C,Objecive-C是对原有的C语言的扩展,它通过对C语言进行最小集合的扩展,使其本身具有了面向对象的能力。Objective-C并不是一个新的语言,早在20世纪80年代,就诞生了。
这里需要理解几个概念(Key concepts):
Objective-C: 对C语言的扩展,一门面向对象的编程语言
Cocoa: 苹果公司为Objective-C提供的工具包
Cocoa和Objective-C是苹果公司Mac OS X操作系统的核心
Cocoa的前身,是NextSTEP,是Jobs在成立NeXT公司时创建的一款功能强大的用户界面工具包,后来NeXT公司被苹果收购,NextSTEP被更名为Cocoa,这也是Cocoa的由来了。其实在很多Cocoa的函数中,有大量的函数是以"NS”开头的,NS就是NextSTEP的缩写,属于历史遗留问题了。而这些函数的命名也一直被保留下来。
按照惯例,任何编程语言都是以Hello World开始的,下面是Objective-C的Hello World程序:
1
2
3
4
5
6
7
8
| #import <fundation fundation.h>
int main(int argc, const char *argv[])
{
NSLog(@"Hello World and Objective-C!");
return (0);
} // main |
#import关键字: 类似于C语言里面的include。不过import比include更加智能。为了在C中的多个地方,不重复包含同一个头文件,常常需要用#ifdef等相关的预编译指令来进行判断。Objective-C中更为方便,只需要用import关键字简单实现头文件的包含即可,而不必担心同一个头文件会在多个地方被重复包含。
NSLog函数: 用以输出字符串,其中和C语言有个不一样的地方,字符串前面有个@符号。表示后面的字符串是属于NSString,而不是一般的字符串。NSString类型是Cocoa中特有的字符串类型。
运行程序,输出结果,就是打印一串字符串。
第一篇笔记到此结束,以后继续……
1,004 views 十一月 14, 09 by Timothy
扩展方法,是.NET 3.5中引入的新特性,在《扩展方法使用小结中》,我有具体的介绍。合理的使用扩展方法,能节约不少的代码量,甚至能在开发中给我们带来意想不到的效果,让代码更加的简洁、易懂。其实,网上早就有了不少的大牛写的各种出色的扩展方法,以至于我有了整理一个扩展方法库的想法,把一些实用、优秀的扩展方法收集起来,一来为资源共享,二来也是为了应用在以后的项目代码中,提高开发效率。 Read the rest of this entry »
270 views 五月 29, 09 by Timothy
最近败了个QWERTY全键盘的HTC Touch pro,全键盘的感觉不错,输入速度比以前靠触摸笔点屏幕快多了。装了个Python的Windows mobile版本,没事学着写Python玩玩。一日突发奇想,要是能在PPC手机上写C#的程序并能运行起来,那就太棒了。果然不出我所料,国外已经有大侠已经做好了这个东东,一个运行在Windows Mobile手机上的简单的C# IDE,让你可以随时在你的PPC手机上写C#的程序。这是作者自己实现的一个简单IDE,现在已经支持的功能如下:
* 可以创建基于图形用户界面的程序
* 可创建方法和类
* 可以调用所有的.NET Compact Framework的类。
* 执行文件操作
* 运行进程
* 使用.NET 2.0中的范型
* 支持C#的控制语句,包括循环、条件判断……
IDE的使用非常简单,写入你的代码,然后可以立即运行,看到结果。
简单的例子,如下:
1: using System.Windows.Forms;
2: namespace TestNS
3: {
4: class TestCL
5: {
6: public static void Main()
7: {
8: MessageBox.Show("Hello Timothy!");
9: }
10: }
11: }
点击菜单下面的Debug->Run,运行结果截图如下:

IDE自带一些简单的功能, 包括插入代码模板,编辑(复制、粘贴、剪切)功能,还支持插件功能。

软件下载地址: http://www.geocities.com/hrowson/wm5_software/cs_ide_mobile.zip
Code Sample: http://www.geocities.com/hrowson/wm5_software/cs_ide_mobile_samples.zip
用户手册、帮助文档地址: http://www.geocities.com/hrowson/wm5_software/cs_ide_mobile_manual/index.htm
作者主页:http://www.geocities.com/hrowson/wm5_software/index.htm
赶紧下载吧,write your C# code anywhere! 活活~~