2009-08-21 39 views
2

我是windows mobile開發新手。我對windows mobile開發有一些疑惑,如下所示。在windows mobile上使用C#和C或C++的區別

1)就選擇開發語言而言,C#和C(C++)之間的主要區別是什麼。 (不是語法上的)。

2)我應該選擇哪種語言進行開發,爲什麼? 3)如果我將C#作爲移動開發,那麼我可以在桌面上訪問C#的所有API。

回答

1

1)用本地代碼編寫的應用程序運行得更快。此外,本機應用程序中的內存佔用空間較小。

2)這取決於您正在編寫的應用程序。如果它不需要頂級性能,並且它不需要很多本地功能,那麼應該管理代碼。如果你需要很大的靈活性,那就選擇本地。

3).Net Compact Framework有一部分桌面API。

1

1)太含糊回答

2)C#,因爲那裏是它的一個很好的支持框架(.NET精簡版)。

3)不是。並不是所有的API都可以在Compact Edition of .NET中找到。

2
從語法

除此之外,主要的區別是,C#的管理和C++是不是(除非你使用託管C++?)

它們都是面向對象的語言(不是C)。 C++允許你做自己的內存管理(這可能是好的或壞的),而C#是託管代碼,所以垃圾收集主要是由運行時爲你完成的。如果您使用C#,您將能夠訪問所有其他針對CLR的託管程序集。

0

如果您正在開發僅適用於Windows移動設備的應用程序,請使用任何.Net Compact Framework支持的語言。

您也可以使用C++(非託管),但全部取決於您正在開發的移動應用程序的種類。

2

你的里程可能會有所不同,但幾年前我們試圖爲Windows Mobile開發一個C#應用程序,性能令人難以置信的糟糕。我在說「我的對話框顯示爲」壞「需要10秒。我相信它已經變得更好了,但問題仍然存在:這些設備的資源限制比桌面PC更嚴格,並且使用.NET所帶來的性能更可能會對您產生顯着影響。 因此,如果你的應用程序對性能不敏感,那麼請使用C#,但如果你有任何性能問題,根據我的經驗,C#/ .NET不會在Windows Mobile上削減它。那麼C++是下一個最明智的選擇。

0

我在過去,以避免.NET框架開發WM除非絕對必要的時候被告知。

這顯然是由於.net框架加載了相當多的dll,因此具有較大的內存佔用量(顯然這在某種程度上被減輕了,如果還有其他的話)。運行該共享程序集的網絡應用程序) - 導致功耗使用率很低。

此外,發生的事故和內務(不受控制,在未定義的時間段內等 - 如果你周圍移動大量內存可能會成爲問題) - 在較低功耗的設備上,比如pda的這個不斷變化的設備在後臺周圍可能會變得明顯。

然而,在.net中編碼卻相當容易和快速。

如果:

  • 你認爲「快贏」是不是認真的高效的代碼或
  • 你不電池壽命護理或
  • 您的應用程序的心不是性能敏感或
  • 更重要你不知道如何用本地語言編碼
  • 你不關心開放標準和合規性

然後去.net。

.net compact framework是.net桌面版本的子集 - 因此框架的某些功能和方面不可用。

如果你剛開始我推薦.net - 如果你正在開發一個商業解決方案等我推薦使用c/C++。

hth。

0
  1. C#常被推薦在簡單的桌面或Web應用程序的發展,同時C++,它與硬件直接處理,用於需要高效率的應用程序。

  2. 我會說C#。鑑於您對Windows移動開發不熟悉,您可以更輕鬆地實現C#。另外,C#是由Windows開發的,所以它專門針對Windows應用程序。

  3. 不,您將只有桌面API的一部分庫。