一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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 { get; set; }

[Export (
"action")]
Selector Action { get; set; }

[Export (
"tag")]
int Tag { get; set; }
}

NET技術Mono向Mac OS應用程序開發示好,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 黄色免费视屏 | 免费精品在线视频 | 国产精品日本不卡一区二区 | 亚洲伊人色| 六月婷婷激情综合 | 91在线精品麻豆欧美在线 | 国产激情一区二区三区成人91 | 麻豆精品 | 91精品久久久久亚洲国产 | 色呦呦视频 | 天天躁天天弄天天爱 | 日韩美女拍拍免费视频网站 | 色综合综合在线 | 精品伊人久久久久7777人 | 91精品国产免费久久久久久青草 | 国产午夜一级鲁丝片 | 国内精品视频免费观看 | 午夜色大片在线观看 | 综合激情五月婷婷 | 天天色天天做 | 亚洲影视一区 | 欧美成狂野欧美在线观看 | 伊人国产在线播放 | 5月色婷婷 | 激情国产视频 | 久久免费国产精品一区二区 | 色哟哟在线观看视频高清大全 | 亚洲伊人精品综合在合线 | 欧美一级一一特黄 | 黄色影院在线看 | 欧美激情视频在线观看一区二区三区 | 五月婷婷色 | 国产一进一出视频网站 | 国产精品久久网 | 成人免费观看www视频 | 久色免费视频 | 久久久精品久久 | 国产精品麻豆久久久 | 色综合成人网 | 国产女人伦码一区二区三区不卡 | 欧美大片a特激情刺激 |