天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

OS X 上使用.NET開發(fā)應(yīng)用程序

  MonoMac是面向Mac OSX API的C#綁定,其API設(shè)計(jì)主要受到了MonoTouch的啟發(fā),后者可以基于Mono開發(fā)原生的ios應(yīng)用程序。MonoMac套件的目標(biāo)之一,也是發(fā)布獨(dú)立的 .app應(yīng)用程序,讓最終用戶擺脫對(duì)Mono的依賴。MonoTouch的成功則是一個(gè)良好的基礎(chǔ),于是Mono開始將Cocoa API使用C#和.NET世界中的模式與慣例用法表現(xiàn)出來,并提供開發(fā)人員整套Cocoa應(yīng)用程序的開發(fā)工具。

  Mono之父Miguel de Icaza表示,.NET從一開始便設(shè)計(jì)成為一個(gè)易于互操作的框架,他對(duì)于跨運(yùn)行時(shí)及框架的無縫通信提供了許多高級(jí)的支持,這對(duì)創(chuàng)建Cocoa API的綁定很有幫助。MonoMac的設(shè)計(jì)原則與MonoTouch非常接近,它充分考慮到.NET程序員的習(xí)慣需求,例如使用Lambda表達(dá)式和委托來表示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僅僅是一套用于開發(fā)OSX應(yīng)用程序的類庫。MonoMac團(tuán)隊(duì)同樣發(fā)布了一套基于MonoDevelop的開發(fā)工具,其生成結(jié)果便是Mac OS下的app應(yīng)用程序包。此外,Mono 2.8還包含了一個(gè)新工具叫做“Mono打包器(bundler)”。這個(gè)打包器可以檢查你的.NET應(yīng)用程序,并將其依賴的部分打包在一起。這個(gè)技術(shù)如今已經(jīng)用于OSX版本的Banshee項(xiàng)目(一款基于Mono和Gtk#的播放器),這樣發(fā)布后的應(yīng)用程序無需在目標(biāo)機(jī)器裝有Mono框架。

  MonoMac使用MIT X11許可協(xié)議發(fā)布。源碼分為兩部分:monomacmaccore,都可以在GitHub上獲得。前者包含了面向MacOS的綁定,而后者則包含了MonoMac和MonoTouch共用的代碼。

  看完上面這段介紹,聰明的你知道主角是MonoMac了,下面我向大家介紹下開發(fā)環(huán)境的搭建和第一個(gè)Helloworld程序的開發(fā):

  第一步:需要有一臺(tái)Mac 電腦,可以采用虛擬機(jī)搭一個(gè)也行,為了更好的操作體驗(yàn)還是準(zhǔn)備一臺(tái)Mac的機(jī)器比較好,2011年1月14日蘋果優(yōu)惠打折,毫不猶豫的就在香港apple商店上下單買回來一個(gè)MacBook Air(CPU:1.86 GHz Intel Core 2 Duo, 4GB RAM,128G SSD),價(jià)格10000HK$。

  第二步:Mac開發(fā)環(huán)境Xcode和Monodevelop的安裝,當(dāng)然在安裝mac系統(tǒng)時(shí),如果選擇IT用戶,很多開發(fā)系統(tǒng)也就自動(dòng)安裝好了,比如jdk、maven、svn,Python的環(huán)境, 然而不是所有的軟件開發(fā)環(huán)境都會(huì)安裝好,比如xcode 、ios sdk 。

  1、到,選擇 Mac 和ios 開發(fā),登陸后就可以下載Mac開發(fā)工具,里面包括Xcode,這個(gè)工具是免費(fèi)的,這點(diǎn)比微軟的政策好啊,就是要善待開發(fā)者。Xcode的環(huán)境和 Visual Studio 非常的相像,有Visual Studio的使用經(jīng)驗(yàn)非常容易入門.。

  下載完軟件,點(diǎn)擊運(yùn)行如圖:

      2、上邊的那幅圖中有xcode和ios SDK的安裝說明,下面那幅圖是軟件安裝的圖標(biāo),點(diǎn)擊下邊的Xcode and ios SDK開始安裝。

          3、一路繼續(xù)就可以了

          4、下載和安裝 MonoDevelop 2.4, 這是Mono的一個(gè)IDE ,是開源和免費(fèi)的,他要求 Mono 2.4 和 GTK。 Mono安裝過程十分普通,而MonoDevelop的安裝方式對(duì)于Windows用戶可能有些特別。在加載了dmg文件以后,會(huì)彈出這樣一個(gè)界面:

        1. 根據(jù)提示,此時(shí)您只需要將MonoDevelop的圖標(biāo)拖至右側(cè)目錄中就可以了。
        2. 下載和安裝 MonoMac。 MonoMac的插件安裝參考http://www.mono-project.com/MonoMac#Obtaining_MonoMac也很簡單。安裝完MonoMac的插件,在MonoDevelop的新建項(xiàng)目的對(duì)話框上就有了MonoMac的項(xiàng)目類型。

          下面我們就用MonoDevelop和Xcode一起使用來完成第一個(gè)Mac Helloworld程序的開發(fā),下面的內(nèi)容主要基于這篇博客http://www.satter.org/2010/09/NET-development-for-os-x.html,所有用到的圖片也是這篇博客的,我只是按照這篇博客的內(nèi)容熟悉了一下開發(fā)環(huán)境,其中也碰到了一些問題,我會(huì)以紅色的文字進(jìn)行標(biāo)識(shí),相信也是你體驗(yàn)的時(shí)候會(huì)碰到的問題,不過這篇博客需要翻墻才能閱讀,你懂的:

          首先需要?jiǎng)?chuàng)建一個(gè)MonoMac的工程,我們命名為HelloMonoMac:

        6a00d8341c55c153ef0133f425f49e970b-800wi  MonoDevelop是英文的,是因?yàn)樵谥形牡腗ac系統(tǒng)下,MonoDevelop界面上的中文會(huì)亂碼,通過MonoDevelop—〉Preferences –>Visual Style –>General—>User Interface Language 選擇English就可以解決。

          創(chuàng)建的項(xiàng)目有下面文件:

        • info.plist - 一個(gè)文本文件包含應(yīng)用程序的一些屬性字符串,類似于.NET項(xiàng)目的AssemblyInfo.cs,具體參考 reference guide.
        • Main.cs - Main.cs里包含了項(xiàng)目的啟動(dòng)代碼.
        • MainMenu.xib - 菜單資源和代碼文件. 具體參考Interface Builder User Guide
        • MainWindow.xib - 主窗口的界面文件,具體參考Interface Builder User Guide 而MainWindow.xib.designer.cs文件則是MonoDevelop根據(jù)xib文件中的標(biāo)記所自動(dòng)創(chuàng)建的C#代碼,在絕大部分情況下我們不會(huì)去修改它。

          MonoMac使用Xcode的模式構(gòu)建UI應(yīng)用,Xcode使用MVC模型。XIB文件中包含UI和你的代碼,也就是View。你的控制器和模型用.NET來寫,也就是你必須使用Xcode來構(gòu)建UI,因此必須安裝Xcode。

          使用Interface Builder進(jìn)行界面的布局,在MonoDevelop的項(xiàng)目上雙擊MainWindow.xib文件,便會(huì)打開Interface Builder。我的使用過程中卻發(fā)生這樣的一件事,無論怎么雙擊也打不開Interface Builder,開始以為是MonoDevelop的問題,就使用Xcode創(chuàng)建一個(gè)項(xiàng)目,也是一樣的問題,最后是通過下面的方法解決的:通過Finder找到Developer/Applications/Interface Builder 先運(yùn)行Interface Builder,就可以了。

          下圖有4個(gè)窗口,左為Library窗口(近似于VS中的Toolbox),可以通過拖拽方式將控件加入到窗口里去;中間上方是可視化的UI編輯器,下方則是對(duì)象管理器,顯示了界面中定義的對(duì)象;右側(cè)便是用來修改屬性的Inspector窗口(近似于VS中的Properties窗口):

        interfacebuilder

          在Library里找到NSButton,把它拖到中間的UI 編輯器窗口上,修改“Button”為“點(diǎn)擊我”:

        interfacebuilder2

          下面添加一個(gè)NSTextField,方法和NSButton類似,我們要做的一件事就是按下按鈕的時(shí)候,修改TextField的文本顯示:

        interfacebuilder3

          下一步是建立UI和控制器之間的接口,首先是一個(gè)更新文本的屬性,然后是通過一個(gè)事件 控制按鈕的點(diǎn)擊,控制器來我們使用C#代碼進(jìn)行編寫。到Library找到MainWindowController

          并在下方下拉框中選取Outlets,并使用下方加號(hào)添加一個(gè)id,修改為NSTextField:

        interfacebuilder4

          下一步是建立label和NSTextField之間的映射,這是個(gè)比較有趣的操作。回到MainWindow.xib窗口,選中“File’s owner”,在屬性窗口中選擇第五個(gè),一個(gè)向右的箭頭按鈕。再將label右側(cè)的小圓點(diǎn)拖動(dòng)至NSTextField,當(dāng)你釋放鼠標(biāo)你要看你NSTextField標(biāo)簽所聯(lián)系在一起:

        interfacebuilder5

          快完成了。下一步是在Interface builder建立一個(gè)按鈕點(diǎn)擊事件。 到Library的窗口。確定它仍然顯示MainWindowController。選取Action。點(diǎn)擊“+”和增加buttonClicked 類型為 NSButton。在屬性窗口中,您應(yīng)該看到一個(gè)新收到行動(dòng)稱為buttonClicked。把它和在畫布上的按鈕按照標(biāo)簽相同的方法建立關(guān)聯(lián)。

        interfacebuilder6

          最后一步是保存我們的界面修改結(jié)果,這一步很重要哦,因?yàn)镸onoDevelop是根據(jù)xib的內(nèi)容,自動(dòng)生成了相關(guān)的C#代碼。

          現(xiàn)在我們回到MonoDevelop項(xiàng)目中,將下面的代碼加入到MainWindow.Controller.cs文件。關(guān)鍵是添加一個(gè)方法——buttonClicked,也需要NSButton。程序就會(huì)按鈕點(diǎn)擊的時(shí)候觸發(fā)請(qǐng)求該這個(gè)方法:

        int count = 0;  
        partial void buttonClicked(NSButton sender)
        {
        label.StringValue
        = string.Format("Button clicked {0} times.", ++count);
        }

        NET技術(shù)OS X 上使用.NET開發(fā)應(yīng)用程序,轉(zhuǎn)載需保留來源!

        鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

        主站蜘蛛池模板: 真人做受120分钟免费看 | 国产精品视频大全 | 日本特殊精油按摩 | 免费在线看视频 | 97蜜桃123 | 日本人娇小hd | 成人毛片一区二区三区 | 2022国产91精品久久久久久 | 一起碰一起噜一起草视频 | SM高H黄暴NP辣H调教性奴 | 99久久免费精品 | 国产亚洲欧美高清在线 | 老司机午夜影院味味 | 大香伊人久久精品一区二区 | 快播可乐网 | 色狠狠色综合吹潮 | 国产人妻777人伦精品HD | 欧美日韩高清一区二区三区 | 95国产欧洲精华液 | 真实国产熟睡乱子伦对白无套 | 9966在线观看免费高清电影 | 精品国产午夜福利在线观看蜜月 | 嫩草国产精品99国产精品 | 久久99亚洲AV无码四区碰碰 | 成人亚洲乱码在线 | 亚洲精品高清AV在线播放 | 天天射天天干天天插 | 中文字幕高清在线中文字幕 | 韩日午夜在线资源一区二区 | 一边摸一边桶一边脱免费 | 伊人久久大香网 | 精品久久久99大香线蕉 | 中文字幕精品视频在线 | 99亚洲精品自拍AV成人软件 | 91精品国产品国语在线不卡 | 色综合久久88色综合天天提莫 | 挠黑色超薄丝袜脚心vk40分钟 | 免费国产黄线在线播放 | 看电影来5566一区.二区 | 欧美z000z猪 欧美xxx性 | 日本一本免费线观看视频 |