日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

從Windows的角度看Mac OS X上的軟件開發(fā)( 八 )


最后要提的是,正因為OS X的文化與Windows有許多不同處,筆者建議跨足OS X的開發(fā)者應該要盡可能貼近甚至配合OS X的習慣 。舉例來說,大多數OS X應用程序都不需要安裝程序,只需要直接將軟件拷貝到想要存放的目錄(通常是/Applications)即可 。而解安裝也就直接刪除該.app bundle就解決了 。在Windows上就沒那么容易了(特別是有相當多組件依存關系的軟件) 。這些都是開發(fā)上需要注意的地方,但是開發(fā)者多付出一份心力,使用者就會多一份便利,終究會得到用戶肯定的 。
項目; Windows; Mac OS X
系統(tǒng)內部編碼 Unicode (UTF-16) Unicode (文件系統(tǒng)使用 UTF-8, 系統(tǒng)API一般使用 CFString/NSString, 內部使用UTF-16)
語系處理 區(qū)分Codepage 不區(qū)分Codepage
應用程序的設定管理方式 Windows registry Property list files
IPC的幾種方式 COM/Windows RPC Objective-C Distributed Object/Apple Event/BSD Socket
腳本語言的支持 VBScript/JScript/CScript/DOS Batch script AppleScript/Perl/Ruby/Python/shell script
表三:一些重要的系統(tǒng)特性(摘錄)
項目 Windows (.NET) Mac OS X (Cocoa)
字符串處理 System.String NSString
數據結構與容器 System.Collections NSArray/NSDictionary/etc.
HTTP網絡存取 System.Net System.Net,NSURLConnection
XML解譯 System.XML NSXMLDocument etc.
表四:幾個代表性的.NET namespace/class在Cocoa中的對應class
跨平臺的建議最后簡短分享一些跨平臺軟件開發(fā)所可能遇到的問題 。
要同時在Windows和Mac上開發(fā),有兩種可能的思維方式 。一種是追求真正的"write once, run everywhere" 。此時開發(fā)的選擇,可能是采用Java平臺,Adobe的AIR,抑或使用C搭配像QT這樣的跨平臺鏈接庫 。這三種主流方案各有千秋,但在視覺和用戶體驗上往往皆無法與原生(native)的Mac應用程序相比 。
因此,另一個方向則是體認到,要保有Windows及Mac各自平臺的特長,就必須割舍GUI跨平臺的可能性 。也就是說,GUI是最無法移植到其他平臺的部分 。我們能做的是將共通的邏輯部分獨立出來,然后開發(fā)兩套前端接口(frontend) 。若以在Windows及Mac上皆能使用為前提,共通邏輯開發(fā)語言的選擇就很少了,不是C就是C。所幸Windows和Mac上具有平臺特色的語言,要和C結合,也不是那么困難的事(在.Net上是透過C/CLI,在Mac上是透過Objective-C這兩種擴展的語言) 。

推薦閱讀