mono可以在mac os下写可视化monodevelop界面颜色吗

Mono&2.0将更完美的Winforms带往Linux和Mac&OS&X
Mono是跨平台的.NET运行环境,而MonoDevelop则是基于这个环境的强大的可视化集成开发环境.
无论你喜不喜欢.Net(Mono)应用程序,你都不能忽视已经存在的一些优秀的Mono应用程序,如Tomboy、F-Spot、GNOME
Do等等.而前不久发布的Mono
2.0,将带来更多的Winforms应用程序,即来自Windows平台的.Net应用程序.
今天要介绍的是一个来自Windows下的优秀SCM工具:Plasticscm。
看下图,你可能会惊叹:Wow!这么漂亮一个软件,是SCM工具吗?
惊叹之外,你再看仔细点,熟悉的背景、熟悉的面板。对,这就是我们熟悉的GNOME桌面。
Plasticscm完美地运行在了GNOME桌面上,靠的就是Mono 2.0。
这张截图是Plasticscm中Code Review中的代码diff功能,几乎与Windows下表现形式是一模一样的。
再来看一张图,是Mono 2.0支持下的Plasticscm在Mac OS X下的表现,嗯,效果还是一样的OK。
OK,本文只是借Plasticscm来反应Mono 2.0。
作为一个界面设计地比较复杂的.Net应用程序,它能如此完美的运行在Linux/Mac OS
X,这不能不说明Mono作为一个跨平台的.Net环境,已经非常强悍了。
那么,Mono会带来什么效应呢?希望大家一块讨论。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Mono向Mac OS应用程序开发示好-阿里云资讯网
Mono向Mac OS应用程序开发示好
发布时间:
更新时间:
来源:网络
上传用户:自由自在
Mono正在努力改进各个平台上的使用体验。近日Miguel de Icaza在博客上宣布MonoMac发布了新的版本。MonoMac是面向Mac OSX API的C#绑定,其API设计主要受到了MonoTouch的启发,后者可以基于Mono开发原生的iOS应用程序。MonoMac套件的目标之一,也是发布独立的.app应用程序,让最终用户对Mono的依赖。
多年以前,Geoff Norton创建了CocoaSharp,这是第一套面向Cocoa API的.NET绑定。从那时起,Mono用户开始尝试利用.NET客户端调用Objective-C的API。几年下来,也出现了其他几个设法集成Objective-C和.NET语言的框架,它们各有。一年多前Mono希望可以将这些竞争对手结合起来,可惜最后无疾而终。
之后MonoTouch的成功则是一个良好的基础,于是Mono开始将Cocoa API使用C#和.NET世界中的模式与惯例用法表现出来,并提供开发人员整套Cocoa应用程序的开发工具。在设计方面,MonoMac参考了《Framework Design Guidelines》一书中总结出的设计决策及建议,主要包括: 减少意外 基于C#及其他.NET类库 降低出错的可能 增加开发乐趣 提高生产力,节省开发人员时间 利用一切.NET方面的知识
Miguel表示,.NET从一开始便设计成为一个易于互操作的框架,他对于跨运行时及框架的无缝通信提供了许多高级的支持,这对创建Cocoa API的绑定很有帮助。MonoMac的设计原则与MonoTouch非常接近,它充分考虑到.NET程序员的习惯需求,使用Lambda表达式和委托来表示Objective-C API中的“block”。
Cocoa的API由两部分组成,一部分是基于C的API,例如AudioToolbox、CoreGraphics、CoreFundation和CoreText,它们利用P/Invoke的方式直接封装成C#类。而在UI层面上则是的Objective-C编写的API,例如Foundation和AppKit。MonoMac提供了新的一套新的绑定引擎MonoMac.ObjCRuntime,以及btouch绑定生成器。btouch绑定生成器接受C#语言形式的API约定,自动生成一个绑定,例如MSActionCell:[BaseType (typeof (NSCell))]
interface NSActionCell {
[Export (&initTextCell:&)]
IntPtr Constructor (string aString);
[Export (&initImageCell:&)]
IntPtr Constructor (NSImage image);
[Export (&target&)]
NSObject Target { }
[Export (&action&)]
Selector Action { }
[Export (&tag&)]
int Tag { }
由于生成Objective-C API有大量重复工作,MonoMac还提供了一个头文件解析工具,可以从Objective-C的头文件中生成绝大部分的API。对于某些生成的结果还需要进行一些修改才能满足设计的要求,例如,NSArray的参数和返回值需要根据文档修改为的强类型。
MonoMac还没有覆盖完整的Cocoa API,不过已经基本可以用于创建API,并已放接纳社区的贡献。目前的绑定有: AddressBook(完成) AudioToolbox(完成) AppKit(90%完成) CoreAnimation(完成) CoreFoundation(已完成设计原则中需要的部分) CoreText(完成) CoreLocation(完成) CoreData(完成) CoreGraphics(完成) Foundation(已完成设计原则中需要的部分,包括其他部分的辅助工具) WebKit(
MonoMac仅仅是一套用于开发OSX应用程序的类库。MonoMac团队同样发布了一套基于MonoDevelop的开发工具,其生成结果便是Mac OS下的app应用程序包。此外,Mono 2.8还包含了一个新工具叫做“Mono打包器(bundler)”。这个打包器可以检查你的.NET应用程序,并将其依赖的部分打包在一起。这个技术如今已经用于OSX版本的Banshee项目(基于Mono和Gtk#的播放器),这样发布后的应用程序无需在目标机器装有Mono框架。
MonoMac使用MIT X11许可协议发布。源码分为两部分:monomac和maccore,都可以在GitHub上获得。前者包含了面向MacOS的绑定,而后者则包含了MonoMac和MonoTouch共用的代码。如果您对OS X下的.NET开发及MonoMac感兴趣,可以参考这篇开发向导。
另一方面,最近Logos Bible Software的技术领导人David Mitchell在Mono邮件列表上表示,他们基于Mono,将原本为Windows平台开发的软件移植到了Mac平台上,两者共享了绝大部分代码,唯一不同的只是UI方面从WPF变成了OS X的原生界面。不过与MonoMac的做法不同,Logos Bible Software的做法是在Objective-C编写的UI界面中调用.NET代码。&
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@ 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现。下面让我们来看看httpd.conf的内容,它主要分成3大部分: Section 1:Global Environment Section 2:'Main' server configuration Section 3:Virtual Hosts 【第一...
说明: 控制哪些主机能够访问服务器的一个区域 语法: Allow from all|host|env=env-variable [host|env=env-variable] ... 上下文: 目录, .htaccess 覆盖项: Limit 状态: Base 模块: mod_access Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或...
用apache搭建的WEB服务器,如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有两个方法可以实现(仅限于我知道的,当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。   方法一:在httpd.conf文件最后面,加入以下代码      NameVirtualHost 221.*.*.*      &VirtualHos...
找到Apache 的 httpd.conf 配置文件将: Options Indexes FollowSymLinks 改为: Options FollowSymLinks 也就是把 Indexes 去掉。 额外的信息:在apache中设置虚拟主机 在IIS中我们可以方便的通过不同的IP或者端口再或者主机头来设置虚拟主机, 在apache中也一样可以。 假设有www.abc1.org和ww...
有时候为了服务器具有更好的效率,可以定时重启apache服务等。让网站运行的效果更快。 采用at命令添加计划任务。有关使用语法可以到window-》“开始”-》运行“cmd”-》执行命令“at /”,这样界面中就会显示at命令的语法。下面我们讲解下如何让服务器定时启动apache与mysql: 1、在c:盘根目录新建一个autostartserver.bat文件,然后右键编辑,将文件内容...
今天用远程桌面连接登录到终端服务器时,总是弹出“终端服务器超出最大允许连接数”,无法正常登录服务器。上网一查才知道:引起该问题的原因在于Windows Server 2003中设置终端服务的缺省连接数为2个链接,并且当登录远程桌面后如果不是采用注销方式退出,而是直接关闭远程桌面窗口,那么实际上会话并没有释放掉,而是继续保留在服务器端,这样就会占用总的链接数,当这个数量达到最大允许值时就会出现...
若您要投稿、删除文章请联系邮箱:zixun-group@,工作人员会在5个工作日内回复。
售前咨询热线
服务与支持
账号与支持
关注阿里云
International使用MonoMac实现Mac OSX上运行.NET开发应用程序
MonoMac是面向Mac OSX API的C#绑定,其API设计主要受到了的 启发,后者可以基于Mono开发原生的iOS应用程序。MonoMac套件的目标之一,也是发布独立的 .app应用程序,让最终用户摆脱对Mono的依赖。MonoTouch的成功则是一个良好的基础,于是Mono开始将Cocoa API使用C#和.NET世界中的模式与惯例用法表现出来,并提供开发人员整套Cocoa应用程序的开发工具。
Mono之父Miguel de Icaza表示,.NET从一开始便设计成为一个易于互操作的框架,他对于跨运行时及框架的无缝通信提供了许多高级的支持,这对创建Cocoa API的绑定很有帮助。MonoMac的设计原则与MonoTouch非常接近,它充分考虑到.NET程序员的习惯需求,例如使用Lambda表达式和委 托来表示Objective-C API中的“block”。
Cocoa的API由两部分组成,一部分是基于C的API,例如AudioToolbox、CoreGraphics、CoreFundation 和CoreText,它们利用P/Invoke的方式直接封装成C#类。而在UI层面上则是大量的Objective-C编写的API,例如 Foundation和AppKit。MonoMac提供了新的一套新的绑定引擎MonoMac.ObjCRuntime,以及btouch绑定生成器。
MonoMac仅仅是一套用于开发OSX应用程序的类库。MonoMac团队同样发布了一套基于MonoDevelop的开发工具,其生成结果便是 Mac OS下的app应用程序包。此外,Mono 2.8还包含了一个新工具叫做“Mono打包器(bundler)”。这个打包器可以检查你的.NET应用程序,并将其依赖的部分打包在一起。这个技术如 今已经用于OSX版本的项目(一款基于Mono和Gtk#的播放器),这样发布后的应用程序无需在目标机器装有Mono框架。
MonoMac使用MIT X11许可协议发布。源码分为两部分:和,都可以在GitHub上获得。前者包含了面向MacOS的绑定,而后者则包含了MonoMac和MonoTouch共用的代码。
看完上面这段介绍,聪明的你知道主角是MonoMac了,下面我向大家介绍下开发环境的搭建和第一个Helloworld程序的开发:
第一步:需要有一台Mac 电脑,可以采用虚拟机搭一个也行,为了更好的操作体验还是准备一台Mac的机器比较好,日苹果优惠打折,毫不犹豫的就在香港apple 商店上下单买回来一个MacBook Air(CPU:1.86 GHz Intel Core 2 Duo, 4GB RAM,128G SSD),价格10000HK$。
第二步:Mac开发环境Xcode和Monodevelop的安装,当然在安装mac系统时,如果选择IT用户,很多开发系统也就自动安装好了,比 如jdk、maven、svn,python的环境, 然而不是所有的软件开发环境都会安装好,比如xcode 、ios sdk 。
到,选择 Mac 和iOS 开发,登陆后就可以下载Mac开发工具,里面包括Xcode,这个工具是免费的,这点比微软的政策好啊,就是要善待开发者。Xcode的环境和 Visual Studio 非常的相像,有Visual Studio的使用经验非常容易入门.。
下载完软件,点击运行如图:
上边的那幅图中有xcode和IOS SDK的安装说明,下面那幅图是软件安装的图标,点击下边的Xcode and iOS SDK开始安装。
一路继续就可以了
下载和安装 , 这是Mono的一个IDE ,是开源和免费的,他要求 。 Mono安装过程十分普通,而MonoDevelop的安装方式对于Windows用户可能有些特别。在加载了dmg文件以后,会弹出这样一个界面:根据提示,此时您只需要将MonoDevelop的图标拖至右侧目录中就可以了。
下载和安装 MonoMac。 MonoMac的插件安装参考也很简单。安装完MonoMac的插件,在MonoDevelop的新建项目的对话框上就有了MonoMac的项目类型。
下面我们就用MonoDevelop和Xcode一起使用来完成第一个Mac Helloworld程序的开发,下面的内容主要基于这篇博客,所有用到的图片也是这篇博客的,我只是按照这篇博客的内容熟悉了一下开发环境,其中也碰到了一些问题,我会以红色的文字进行标识,相信也是你体验的时候会碰到的问题,不过这篇博客需要翻墙才能阅读,你懂的:
首先需要创建一个MonoMac的工程,我们命名为HelloMonoMac:
MonoDevelop是英文的,是因为在中文的 Mac系统下,MonoDevelop界面上的中文会乱码,通过MonoDevelop—〉Preferences –&Visual Style –&General—&User Interface Language 选择English就可以解决。
创建的项目有下面文件:
info.plist - 一个文本文件包含应用程序的一些属性字符串,类似于.NET项目的AssemblyInfo.cs,具体参考 .
Main.cs - Main.cs里包含了项目的启动代码.
MainMenu.xib - 菜单资源和代码文件. 具体参考
MainWindow.xib - 主窗口的界面文件,具体参考 而MainWindow.xib.designer.cs文件则是MonoDevelop根据xib文件中的标记所自动创建的C#代码,在绝大部分情况下我们不会去修改它。
MonoMac使用Xcode的模式构建UI应用,Xcode使用MVC模型。XIB文件中包含UI和你的代码,也就是View。你的控制器和模型用.NET来写,也就是你必须使用Xcode来构建UI,因此必须安装Xcode。
使用Interface Builder进行界面的布局,在MonoDevelop的项目上双击MainWindow.xib文件,便会打开Interface Builder。我 的使用过程中却发生这样的一件事,无论怎么双击也打不开Interface Builder,开始以为是MonoDevelop的问题,就使用Xcode创建一个项目,也是一样的问题,最后是通过下面的方法解决的:通过 Finder找到Developer\Applications\Interface Builder 先运行Interface Builder,就可以了。
下图有4个窗口,左为Library窗口(近似于VS中的Toolbox),可以通过拖拽方式将控件加入到窗口里去;中间上方是可视化的UI编辑 器,下方则是对象管理器,显示了界面中定义的对象;右侧便是用来修改属性的Inspector窗口(近似于VS中的Properties窗口):
在Library里找到NSButton,把它拖到中间的UI 编辑器窗口上,修改“Button”为“点击我”:
下面添加一个NSTextField,方法和NSButton类似,我们要做的一件事就是按下按钮的时候,修改TextField的文本显示:
下一步是建立UI和控制器之间的接口,首先是一个更新文本的属性,然后是通过一个事件 控制按钮的点击,控制器来我们使用C#代码进行编写。到Library找到MainWindowController
并在下方下拉框中选取Outlets,并使用下方加号添加一个id,修改为NSTextField:
下一步是建立label和NSTextField之间的映射,这是个比较有趣的操作。回到MainWindow.xib窗口,选中“File’s owner”,在属性窗口中选择第五个,一个向右的箭头按钮。再将label右侧的小圆点拖动至NSTextField,当你释放鼠标你要看你 NSTextField标签所联系在一起:
快完成了。下一步是在Interface builder建立一个按钮点击事件。 到Library的窗口。确定它仍然显示MainWindowController。选取Action。点击“+”和增加buttonClicked 类型为 NSButton。在属性窗口中,您应该看到一个新收到行动称为buttonClicked。把它和在画布上的按钮按照标签相同的方法建立关联。
最后一步是保存我们的界面修改结果,这一步很重要哦,因为MonoDevelop是根据xib的内容,自动生成了相关的C#代码。
现在我们回到MonoDevelop项目中,将下面的代码加入到MainWindow.Controller.cs文件。关键是添加一个方法——buttonClicked,也需要NSButton。程序就会按钮点击的时候触发请求该这个方法:
int count = 0;
partial void buttonClicked(NSButton sender)
label.StringValue = string.Format(&Button clicked {0} times.&, ++count);
此时可以选择菜单Run - Run,或直接使用快捷键Command(即Win键) + Alt + Enter便会编译项目,这样你就可以看到这个程序运行起来了。
作者: 自由、创新、研究、探索……
版权:本文版权归作者和博客园共有
用mac来开发.net程序,这不是食饱没事干么
引用来自“JavaGG”的帖子用mac来开发.net程序,这不是食饱没事干么你搞错了吧,是用.NET来开发Mac应用,呵呵
很强大,很多.net程序员不用在学object C了!
还是XCODE 的开发模式,没有什么意义,人之所以能,是因为相信能!
上一篇讲述了在MAC OS读取配置文件以及写日志,那么只算是完成了基本的配置,下面的才是重点。
由于时间关系,就简单描述下,并不具体分析源码。最后奉上源码。
第一步,安装MONO框架。你可以在MONO官网去下载。注意&MonoFramework-MRE-2.10.5_0.macos10.xamarin.x86.dmg&在低版本MAC OS上运行有问题。建议安装&MonoFramework-MRE-2.10.4_0.macos10.xamarin.x86.dmg&文件。
第二步,执行程序。将可执行程序&MonitoringApp&复制到电脑桌面,双击运行。
注:在MONO提供的开发工具(MonoDevelop)中,编译后会生成&MonitoringApp&脚本。用记事本打开,就会发现如下代码:
exec mono "/Users/PRODUCTION/Desktop/App/lib/MonitoringApp/MonitoringApp.exe" "$@"
通过这段AppleScript,就明白了利用MONO在Mac OS上执行.NET程序的原理了,还包装了一层壳,一层你蜕不掉的壳&&通过在终端上运行的AppleScript来启动MONO虚拟机,然后运行MonitoringApp.exe。这段AppleScript是通过终端运行的,带来了以下麻烦:
1)写死的路径。比如我将MonitoringApp文件移动位置,就不能运行了,因为这段脚本中,路径是死的。当然你可以去学习AppleScript,然后去搜MonitoringApp.exe文件,然后执行。但是对于只有3天时间的我,显然是不可能的。
2)无法脱离终端运行。但是AppleScript启动的程序无法脱离终端运行。打个比方,你将终端关了,OK,你的程序也关了。这问题当时我一直没解决,现在想解决,却没苹果电脑测试了。
二:环境配置
第一步,配置配置文件。配置文件名字必须是&Configuration.txt&。本目录提供了一个参考文件。具体参数说明如下: &&& MonitoringDirectoryType:目录类型,仅支持两个值(Immediate、Cycle)。Immediate表示即时监控(默认值),Cycle表示周期监控。&&& &&& Path:监控目录路径。必须是存在的路径。 &&& TargetPath:目标目录路径。可以是远程目录路径。不能使用SMB路径,而应该是用如&/Volumes/mes_data/n81a&的类型。 &&& IncludeSubdirectories:是否涵盖子目录。 &&& Filter:过滤字符串。如&*&表示监控所有文件,&*.txt&表示监控所有的文本文件。 &&& BackupPath:备份路径。 &&& BackupExpired:备份过期时间。单位是天。必须为整数。默认值30天。 &&& CycleMinutes:周期循环时间。单位是分。 必须为整数。默认值60分钟。 &&& 注意事项: &&&&&&& 1)8个配置缺一不可。必须全部配置,并写值。 &&&&&&& 2)支持多个目录。但是要求所有的值都以多个的形式表示,如&['Immediate','Cycle']&表示两个目录,相应的其他配置项也必须写两个值。 &&&&&&& 3)所有的符号必须为英文符号。值必须用单引号括起来。 &&&&&&& 4)有些值只对某种类型起作用,比如CycleMinutes只对MonitoringDirectoryType为Cycle的类型目录起作用,因此当目录类型为Immediate时,值属于无效状态。 &&&&&&& 5)配置名以冒号结束。配置值涵盖在中括号中。 &&&&&&& 6)每个配置项配置完成前,请不要换行。每个配置项之间请换行。程序是按行读取配置项的。 &&&&&&& 7)配置名和配置值不区分大小写。
&&& 配置完配置文件后,请将文件复制到系统用户的根目录下。如&/Users/nzocnzoc&。
注:其实上面的都是屁话,具体的你还是自己看代码吧。值得注意的是,最好你所有的文字都用英文,否则复制过去可能都是乱码,即使设置了语言为中文也不行。
第二步,配置开机启动。请先将程序拖入对应用户的登陆项里。具体设置在:【系统偏好设置(System Preferences)】-&【用户账户(Accounts)】-&【登陆项(Login Items)】。然后再连接远程服务器。具体配置在【前往】-&【连接服务器】中配置,请使用记住密码(切记)。配置完毕,然后将目标目录拖入至目标用户的登陆项中,如此,就能在开机启动时自动连接远程目录。 &&& 注意:由于网线连接或者WIFI连接相对缓慢,在登陆项中,请将远程目录的位置尽量移后,以便有充足的时间来缓冲。没办法,这是个比较蛋疼的办法,但是总归是实现了开机启动而且连上了远程目录。 第三步:重启电脑,测试是否成功。一定要测试是否文件能够上传到远程目录。
三:问题诊断。
如果文件没有成功上传,程序又没有提供异常提示,请先参考&/Users/当前用户&路径下的Data目录中的错误日志。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其实这个项目代码倒是很简单,1天不到就可以写完,但是移植到Mac OS上问题就来了。很多时候,我们都说MONO可以跨平台,事实上也是可以的,但是问题却很多。
代码必须全部用英文,包括注释,否则移植可能会出乱码。
需要在Mac OS上使用MonoDevelop(MONO的开发工具)编译生成。
Mac的文件系统与Window系统很不一样,使用.NET代码获取路径时,比如程序启动路径等均无法获取。
MONO for Mac OS不支持控制台应用程序,画Window应用程序界面最好用Gtk#画,否则可能界面显示可能会有问题。如需隐藏界面,最好将宽度和高度设置为0,设置属性和方法均无效,不知道下个版本会不会修复。
注意MONO框架版本问题。有可能最新版本不支持某些代码或者不支持某些低版本苹果系统。
笔者在这里权当是抛砖引玉,如果有朋友也使用过MONO for Mac OS,希望能分享下经验。
阅读(...) 评论()如何在OS X上使用.NET开发应用程序
发表于 22:57|
来源博客园|
作者geff zhang
摘要:MonoMac 是面向Mac OSX API的C#绑定,其API设计主要受到了 MonoTouch 的 启发,后者可以基于Mono开发原生的iOS应用程序。MonoMac套件的目标之一,也是发布独立的.app应用程序,让最终用户摆脱对Mono的依
导读:作者geff zhang写了一篇关于.NET应用程序的文章《》,以下是文章内容:
是面向Mac OSX API的C#绑定,其API设计主要受到了的启发,后者可以基于Mono开发原生的iOS应用程序。MonoMac套件的目标之一,也是发布独立的.app应用程序,让最终用户摆脱对Mono的依赖。MonoTouch的成功则是一个良好的基础,于是Mono开始将Cocoa
API使用C#和.NET世界中的模式与惯例用法表现出来,并提供开发人员整套Cocoa应用程序的开发工具。
Mono之父Miguel de
Icaza表示,.NET从一开始便设计成为一个易于互操作的框架,他对于跨运行时及框架的无缝通信提供了许多高级的支持,这对创建Cocoa
API的绑定很有帮助。MonoMac的设计原则与MonoTouch非常接近,它充分考虑到.NET程序员的习惯需求,例如使用Lambda表达式和委 托来表示Objective-C API中的&block&。
Cocoa的API由两部分组成,一部分是基于C的API,例如AudioToolbox、CoreGraphics、CoreFundation 和CoreText,它们利用P/Invoke的方式直接封装成C#类。而在UI层面上则是大量的Objective-C编写的API,例如 Foundation和AppKit。MonoMac提供了新的一套新的绑定引擎MonoMac.ObjCRuntime,以及btouch绑定生成器。
MonoMac仅仅是一套用于开发OSX应用程序的类库。MonoMac团队同样发布了一套基于MonoDevelop的开发工具,其生成结果便是 Mac OS下的app应用程序包。此外,Mono
2.8还包含了一个新工具叫做&Mono打包器(bundler)&。这个打包器可以检查你的.NET应用程序,并将其依赖的部分打包在一起。这个技术如 今已经用于OSX版本的项目(一款基于Mono和Gtk#的播放器),这样发布后的应用程序无需在目标机器装有Mono框架。
MonoMac使用MIT X11许可协议发布。源码分为两部分:和,都可以在GitHub上获得。前者包含了面向MacOS的绑定,而后者则包含了MonoMac和MonoTouch共用的代码。
看完上面这段介绍,聪明的你知道主角是MonoMac了,下面我向大家介绍下开发环境的搭建和第一个Helloworld程序的开发:
第一步:需要有一台Mac电脑,可以采用虚拟机搭一个也行,为了更好的操作体验还是准备一台Mac的机器比较好。
第二步:Mac开发环境Xcode和Monodevelop的安装,当然在安装mac系统时,如果选择IT用户,很多开发系统也就自动安装好了,比如jdk、maven、svn,python的环境, 然而不是所有的软件开发环境都会安装好,比如xcode 、ios sdk 。
到,选择Mac和iOS开发,登陆后就可以下载Mac开发工具,里面包括Xcode,这个工具是免费的,这点比微软的政策好啊,就是要善待开发者。Xcode的环境和Visual Studio 非常的相像,有Visual Studio的使用经验非常容易入门.。
下载完软件,点击运行如图:
上边的那幅图中有xcode和IOS SDK的安装说明,下面那幅图是软件安装的图标,点击下边的Xcode and iOS SDK开始安装。
一路继续就可以了
2.下载和安装 , 这是Mono的一个IDE ,是开源和免费的,他要求。 Mono安装过程十分普通,而MonoDevelop的安装方式对于Windows用户可能有些特别。在加载了dmg文件以后,会弹出这样一个界面:
根据提示,此时您只需要将MonoDevelop的图标拖至右侧目录中就可以了。
3. 下载和安装 MonoMac。 MonoMac的插件安装参考也很简单。安装完MonoMac的插件,在MonoDevelop的新建项目的对话框上就有了MonoMac的项目类型。
下面我们就用MonoDevelop和Xcode一起使用来完成第一个Mac Helloworld程序的开发,下面的内容主要基于这篇博客,所有用到的图片也是这篇博客的,我只是按照这篇博客的内容熟悉了一下开发环境,其中也碰到了一些问题,我会以红色的文字进行标识,相信也是你体验的时候会碰到的问题,不过这篇博客需要翻墙才能阅读,你懂的:
首先需要创建一个MonoMac的工程,我们命名为HelloMonoMac:
MonoDevelop是英文的, 是因为在中文的Mac系统下,MonoDevelop界面上的中文会乱码,通过MonoDevelop&〉Preferences
&&Visual Style &&General&&User Interface Language
选择English就可以解决。
创建的项目有下面文件:
info.plist&&一个文本文件包含应用程序的一些属性字符串,类似于.NET项目的AssemblyInfo.cs,具体参考 .
Main.cs&&Main.cs里包含了项目的启动代码.
MainMenu.xib&&菜单资源和代码文件. 具体参考
MainWindow.xib&&主窗口的界面文件,具体参考 而MainWindow.xib.designer.cs文件则是MonoDevelop根据xib文件中的标记所自动创建的C#代码,在绝大部分情况下我们不会去修改它。
MonoMac使用Xcode的模式构建UI应用,Xcode使用MVC模型。XIB文件中包含UI和你的代码,也就是View。你的控制器和模型用.NET来写,也就是你必须使用Xcode来构建UI,因此必须安装Xcode。
使用Interface Builder进行界面的布局,在MonoDevelop的项目上双击MainWindow.xib文件,便会打开Interface Builder。我的使用过程中却发生这样的一件事,无论怎么双击也打不开Interface
Builder,开始以为是MonoDevelop的问题,就使用Xcode创建一个项目,也是一样的问题,最后是通过下面的方法解决的:通过 Finder找到Developer\Applications\Interface Builder 先运行Interface
Builder,就可以了。
下图有4个窗口,左为Library窗口(近似于VS中的Toolbox),可以通过拖拽方式将控件加入到窗口里去;中间上方是可视化的UI编辑 器,下方则是对象管理器,显示了界面中定义的对象;右侧便是用来修改属性的Inspector窗口(近似于VS中的Properties窗口):
在Library里找到NSButton,把它拖到中间的UI 编辑器窗口上,修改&Button&为&点击我&:
下面添加一个NSTextField,方法和NSButton类似,我们要做的一件事就是按下按钮的时候,修改TextField的文本显示:
下一步是建立UI和控制器之间的接口,首先是一个更新文本的属性,然后是通过一个事件 控制按钮的点击,控制器来我们使用C#代码进行编写。到Library找到MainWindowController并在下方下拉框中选取Outlets,并使用下方加号添加一个id,修改为NSTextField:
下一步是建立label和NSTextField之间的映射,这是个比较有趣的操作。回到MainWindow.xib窗口,选中&File&s
owner&,在属性窗口中选择第五个,一个向右的箭头按钮。再将label右侧的小圆点拖动至NSTextField,当你释放鼠标你要看你NSTextField标签所联系在一起:
快完成了。下一步是在Interface builder建立一个按钮点击事件。到Library的窗口。确定它仍然显示MainWindowController。选取Action。点击&+&和增加buttonClicked
类型为 NSButton。在属性窗口中,您应该看到一个新收到行动称为buttonClicked。把它和在画布上的按钮按照标签相同的方法建立关联。
最后一步是保存我们的界面修改结果,这一步很重要哦,因为MonoDevelop是根据xib的内容,自动生成了相关的C#代码。
现在我们回到MonoDevelop项目中,将下面的代码加入到MainWindow.Controller.cs文件。关键是添加一个方法&&buttonClicked,也需要NSButton。程序就会按钮点击的时候触发请求该这个方法:
int count = 0;
partial void buttonClicked(NSButton sender)
&label.StringValue = string.Format(&Button clicked {0} times.&, ++count);
此时可以选择菜单Run&&Run,或直接使用快捷键Command(即Win键) + Alt + Enter便会编译项目,这样你就可以看到这个程序运行起来了。
原文链接:
推荐阅读相关主题:
网友评论有(0)
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章

我要回帖

更多关于 monodevelop 中文界面 的文章

 

随机推荐