我是windows mobile開發新手。我對windows mobile開發有一些疑惑,如下所示。在windows mobile上使用C#和C或C++的區別
1)就選擇開發語言而言,C#和C(C++)之間的主要區別是什麼。 (不是語法上的)。
2)我應該選擇哪種語言進行開發,爲什麼? 3)如果我將C#作爲移動開發,那麼我可以在桌面上訪問C#的所有API。
我是windows mobile開發新手。我對windows mobile開發有一些疑惑,如下所示。在windows mobile上使用C#和C或C++的區別
1)就選擇開發語言而言,C#和C(C++)之間的主要區別是什麼。 (不是語法上的)。
2)我應該選擇哪種語言進行開發,爲什麼? 3)如果我將C#作爲移動開發,那麼我可以在桌面上訪問C#的所有API。
1)用本地代碼編寫的應用程序運行得更快。此外,本機應用程序中的內存佔用空間較小。
2)這取決於您正在編寫的應用程序。如果它不需要頂級性能,並且它不需要很多本地功能,那麼應該管理代碼。如果你需要很大的靈活性,那就選擇本地。
3).Net Compact Framework有一部分桌面API。
1)太含糊回答
2)C#,因爲那裏是它的一個很好的支持框架(.NET精簡版)。
3)不是。並不是所有的API都可以在Compact Edition of .NET中找到。
除此之外,主要的區別是,C#的管理和C++是不是(除非你使用託管C++?)
它們都是面向對象的語言(不是C)。 C++允許你做自己的內存管理(這可能是好的或壞的),而C#是託管代碼,所以垃圾收集主要是由運行時爲你完成的。如果您使用C#,您將能夠訪問所有其他針對CLR的託管程序集。
如果您正在開發僅適用於Windows移動設備的應用程序,請使用任何.Net Compact Framework支持的語言。
您也可以使用C++(非託管),但全部取決於您正在開發的移動應用程序的種類。
你的里程可能會有所不同,但幾年前我們試圖爲Windows Mobile開發一個C#應用程序,性能令人難以置信的糟糕。我在說「我的對話框顯示爲」壞「需要10秒。我相信它已經變得更好了,但問題仍然存在:這些設備的資源限制比桌面PC更嚴格,並且使用.NET所帶來的性能更可能會對您產生顯着影響。 因此,如果你的應用程序對性能不敏感,那麼請使用C#,但如果你有任何性能問題,根據我的經驗,C#/ .NET不會在Windows Mobile上削減它。那麼C++是下一個最明智的選擇。
我在過去,以避免.NET框架開發WM除非絕對必要的時候被告知。
這顯然是由於.net框架加載了相當多的dll,因此具有較大的內存佔用量(顯然這在某種程度上被減輕了,如果還有其他的話)。運行該共享程序集的網絡應用程序) - 導致功耗使用率很低。
此外,發生的事故和內務(不受控制,在未定義的時間段內等 - 如果你周圍移動大量內存可能會成爲問題) - 在較低功耗的設備上,比如pda的這個不斷變化的設備在後臺周圍可能會變得明顯。
然而,在.net中編碼卻相當容易和快速。
如果:
然後去.net。
.net compact framework是.net桌面版本的子集 - 因此框架的某些功能和方面不可用。
如果你剛開始我推薦.net - 如果你正在開發一個商業解決方案等我推薦使用c/C++。
hth。
C#常被推薦在簡單的桌面或Web應用程序的發展,同時C++,它與硬件直接處理,用於需要高效率的應用程序。
我會說C#。鑑於您對Windows移動開發不熟悉,您可以更輕鬆地實現C#。另外,C#是由Windows開發的,所以它專門針對Windows應用程序。
不,您將只有桌面API的一部分庫。