2010-05-26 47 views
4

我正在嘗試爲我自己的公司構建一個雙平臺應用程序,我試圖在晚上開始。.NET程序員學習Objective C和Cocoa有多難?

我有.NET版本完成,但還沒有完成UI部分。我正在考慮購買一些第三方控件。

如果我買這些控件,但是,他們顯然只能在我的Windows版本。我想知道如果我應該嘗試在GTK#中使用UI,並使用Mono和CocoaSharp,或者只是在MS技術中構建這些東西,然後教我自己的Mac端?

我只是真的在Mac世界的陌生,我想知道有多少學習曲線有可能是。

我想也許改寫Ruby或Python我的核心邏輯。這就是爲什麼我可以將.NET版本與.NET控件一起使用,並且大概在Mac上掛接相同的代碼。

這是一款針對消費者的教育應用。因此,它不應該需要很多技術複雜的安裝。

回答

3

如果與UI的.NET應用程序的非可視部分是相當大的,那麼你可以去完整的.NET,採取以下兩個步驟的策略:

  1. 非可視部分

    • 將非可視的.NET部件開發爲最獨立的平臺。
    • 非可視代碼的平臺相關代碼應該被隔離在提供相同接口的小類中,以便可以根據平臺進行插入。
  2. 用戶界面

    • 使用System.Windows.Forms的(或你最喜歡的工具包)的Windows
    • 使用可可橋(見this page的選擇)的Mac OS X.

您仍然可以從學習Objective-C中受益:如可可橋樑通常很大程度上依賴於蘋果的API,你會發現很多在蘋果的示例代碼幫助(這是在Objective- C)。

在Windows上,應用程序將與Microsoft .NET運行時一起運行,並且在Mac OS X上,該應用程序將與Mono運行時一起運行。

DeepMeta application使用此策略。正如你所看到的,兩種平臺上的用戶體驗都非常好。

3

避免使用跨平臺UI工具;其結果永遠不會像原生實現那樣好,這在OS X上尤爲糟糕,因爲大多數客戶希望在其應用程序中獲得一定程度的優化。在像C++這樣的獨立於平臺的語言中實現核心邏輯併爲每個平臺上的接口維護不同的代碼庫可能是一個很好的解決方案,尤其是如果你有一個非常複雜的模型。

無論如何,你不應該有太多的學習困難可可,如果你是一個很好的.NET程序員;幾年前我做了相反的事情,沒有太大麻煩。 Objective-C比C#更加面向C語言,但是如果你知道關於指針的基礎知識,那麼你會沒事的。 Cocoa和.NET在某些方面肯定有區別,但它們都是高層框架,你不應該有太多的理解。獲得一本好書(Hillegass是最重要的作者),並通過它來理解這兩個API在某些領域中如何使用不同的設計模式,並且如果它與您使用的不同至。

根據我的經驗,這將讓你在長期運行一個更好的程序員通過擴大你的知識,即使你不寫任何更多的Cocoa應用程序。