[轉載] Window Phone 7開發中的各種不行 囧

 

前後臺中的應用程序進程

我的程序能運行在後臺嗎?

不可以,Windows Phone 7 Series的應用程序模型只支持在前臺執行。如果另外一個程序(第三方或者內置的)在你的程序正在運行的時候啓動,你將會得到一個你的程序將要被終止的事件通知。

我的程序從前臺離開時會發生什麼?

你的應用將會收到一個它將被關閉的通知。你的應用從前臺離開的時刻並沒有被馬上終止,如果你需要保留狀態,你需要自己編寫一些邏輯來處理這些事情。

當我的程序從前臺離開後重新運行的時候會發生什麼?

你的應用程序將會從最初始的狀態開始運行。如果需要保留狀態,你應該自己編寫邏輯來判斷狀態是否被保留並恢復它。

這是否意味着沒有辦法來編寫應用進行有效的後臺更新?

不是!我們提供了可以讓你的應用所利用的Push Notification服務。例如聊天程序,輪流操作的遊戲以及其他類型的依賴外部事件的程序都可以完美的利用Push Notification。你可以從MSDN的這篇文章上了解更多關於Push Notification的信息: http://msdn.microsoft.com/en-us/library/ff402558%28VS.92%29.aspx

如果我的程序沒有運行,我可以利用Push Notification來啓動我的程序嗎?

不能直接運行。當接收到一個對你的程序的Push Notification的時候,你的程序的令牌可以被更新至這新的信息,這時候用戶將會被提示啓動你的程序。程序並不會直接自動啓動。

我可以設置一個定時器來啓動我的程序嗎?

不行,是否啓動你的程序取決於用戶。

我的程序可以被系統事件啓動起來嗎?

不太可能,但是它仍然是一個問題。絕大部分情況下,不可能由一個系統事件來啓動起你的程序。但是當你的程序啓動的時候或許你可以獲得一個通知緩存。對於這個情況,當我們瞭解更多的時候我們會公佈出來。 如果我不需要用戶界面,我能編寫一個服務的DLL駐留在系統中嗎?

不行,你將不能編寫系統服務DLL。所有的程序集都將運行在它們自己的獨立的沙箱中,和操作系統以及其他應用程序隔離開。

 

應用程序的安裝

我可以怎樣向設備中安裝應用程序?

應用程序將會在從MarketPlace中下載後自動安裝。

我可以不使用MarketPlace而手工安裝應用程序嗎?

不行, 自行安裝應用程序將是不允許的。唯一獲得應用程序的途徑是通過MarketPlace

如果我不能按狀態,我怎麼測試我的應用程序?

作爲一個註冊了的開發者,你將會被允許註冊一些設備用來直接部署你的應用程序用來測試。如果只是爲了測試用不着把它部署到MarketPlace上面去。

我的應用只是爲了我們的公司或者某些特殊的團體使用,我怎麼通過MarketPlace將這些應用僅僅分發給他們?

目前MarketPlace並沒有辦法爲私有應用程序鎖定區域。當然也有針對移動運營商的例外情況。目前沒有辦法將你的程序針對特殊的團體或者設備做限制。.

 

設備連通性

我們仍然使用ActiveSyncIs來將設備連接到電腦嗎?

不,同步時自動的就像將Zune HD連接到電腦上那樣。

我應該如何通過Internet來傳輸數據?

HTTPGET或者WebServices之類的Web技術將被用來作爲在Internet上通訊的方式。當你的程序沒有運行的時候你還可以使用Push Notification來通訊。

我可以使用Socket來做點對點的通訊嗎?

Windows Phone 7 Series目前並不直接支持Socket類。儘管手機上的Silverlight儘量靠近桌面版的Silverlight 3的特性列表,但是它只提供這些特性的一個子集所以並不包含所有的類(當然它也針對Silverlight 3做了一些擴展)。

我如何能夠和其他的客戶端實時的連接?

目前Windows Phone 7 Series的最初版本並不支持點對點的通訊。我們始終會評估開發人員和用戶的需求,或許以後我們會決定將這個特性加上。

 

Hub/Pivot /Tab以及其他Silverlight中缺少的控件

我在那麼多演示中所看到的”Hub”控件在哪裏?

MIX上的演示中你所看到的“Hub Pivot 控件我們還在持續完善,並不在當前的工具中所包含。

什麼時候它們將會可用?

目前並沒有針對這些控件的確切的時間表,,但是產品組將會密切關注開發者社區去了解開發人員需要什麼樣的有用的控件。如果你想要某個當前並沒有的控件,請在論壇中留言。

我可以自己做一個嗎?

當然你可以做自己的控件。但是你需要瞭解到Pivot / Hub控件是個非常重要的需求,機會是好的但是在以後這些或許會作爲官方的工具的一部分發布。

 

設備存儲

什麼是”Isolated Storage

Isolated Storage 涉及的是在設備的文件系統中,你的程序所佔據的空間。你將無法訪問這個空間以外的內容 (包括其他應用程序的空間或者操作系統的空間。) 這樣做將會給你的程序提供一個自管理的安全的沙箱,並且預防其他程序不小心(或者惡意的)侵入你的應用程序空間。

Windows Phone 7 Series的設備上有沒有本地數據庫可以利用?

沒有,在最初的Windows Phone 7 Series上沒有本地數據庫API可以利用。

我應該如何爲我的應用程序存儲信息?

你可以將信息存儲在自己的存儲空間裏。如果你需要大型的數據庫這裏有一些選擇:Windows Phone 7 Seires 已經支持WebServices,它可以讓你容易的訪問存儲在Internet上的信息。使用一個可以被WebServices訪問的數據庫,你的應用程序就可以在連接Internet的情況下實時的獲取數據。

如何處理非連接的情景呢?

沒有連接到Internet的話,你將無法訪問雲端服務的數據。這種情況下,建議你的程序通過多種方式來處理(在設備上緩存自定義格式的數據,提醒用戶缺少連接)。

我的應用更加趨向於在非連接的場景下使用,如果我不能訪問雲端服務該怎麼做?

針對這種場景有兩種方案:

•制定你自己的數據格式,將數據存儲在設備的存儲空間裏。

•繼續開發針對Windows Phone 6.5或者之前版本的應用,那些版本可以支持本地數據庫。

以後會支持本地數據庫嗎?

當前我們沒有宣告這樣的計劃來增加這一功能;但是我們會密切關注開發人員和用戶的需求並識別哪些特性會給每個人帶來好處。

 

Native Code 的支持

我可以用c++來編寫我的應用程序嗎?

不行,當前C#Windows Phone 7 Series平臺上唯一支持的開發語言。

我可以用VB編寫我的應用程序嗎?

現在還不行,但是在以後的開發工具中我們會強烈考慮這一點的。

我可以用P/Invoke來調用系統API嗎?

不行,作爲ISV來說無法使用P/Invoke來訪問系統API。任何試圖使用P/Invoke的程序將會被從MarketPlace中退回。

我可以用P/Invoke來掉用我自己的native dll嗎?

不行,native code不能作爲你的應用程序的一部分來運行。P/Invoke是不允許的。

 

工具安裝的問題

我的安裝失敗了

在將你的失敗貼到論壇之前,請檢查系統的事件日誌或許能夠提供一些線索。

我的安裝結束了,但是我不能運行期Visual Studio 2010 Express for Windows Mobile. 我應該做什麼?

這自然取決於你所遇到的錯誤。這裏有一些基本的指導:

首先,檢查發行說明. 確保你的系統符合要求並且不是這裏已經列出來的問題。 (http://download.microsoft.com/download/D/9/2/D926FB38-BB43-4D87-AE5A-1A3391279FAC/ReleaseNotes.htm )

如果你遇到一個註冊表或者文件的權限問題,試着以管理員權限運行應用程序。

如果你還沒有重啓,試着重啓一下。對於某些人來說它將會清除掉很多問題。

我得到一個”The application cannot start 的錯誤

請看這篇Blog的說明:http://blogs.msdn.com/visualstudio/archive/2009/10/29/how-to-fix-the-application-cannot-start-error.aspx

 

Silverlight, XNA, Compact Framework

手機上使用的什麼版本的Silverlight?

手機上的Silverlight版本是一個很接近桌面上的Silverlight 3的子集。這裏也有一些Silverlight 3上並沒有的針對手機的特殊功能。但是許多在桌面版的Silverlight 3上正常運行的程序也能夠在手機上正常運行。

我可以在Silverlight裏面調用XNA的庫嗎?

SilverlightXNA使用同一個Compact Framework上的基礎代碼。如果這個調用沒有圖形用戶界面交互,多數情況下他們可以在SilverlightXNA之間共享。

 

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/twodays/archive/2010/03/22/5403918.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章