Windows Phone开发过程中常见问题专家解答

移动开发
Windows Phone开发现在是比较前沿的一种开发模型,本文向大家简单介绍一下Windows Phone开发过程中遇到的一些问题,希望本文的介绍对你有所帮助。

本文和大家重点讨论一下Windows Phone开发过程中遇到的常见问题,微软近日在WindowsPhone7Series的官方论坛上列出了一些WindowsPhone7Series开发的常见问题的解答,这里和大家分享一下。

Windows Phone开发常见问题

微软近日在WindowsPhone7Series的官方论坛上列出了一些WindowsPhone7Series开发的常见问题的解答,其中我们以前一直不明确的一些问题(例如多任务,沙箱,网络等等)都有了解答。为了方便大家我将其一一翻译出来,希望能够对您带来一些帮助。当然,如果您愿意的话,去查看原文会获得更加准确的理解。

--------------------------------------------------------------------------------

Windows Phone开发前后台中的应用程序进程

我的程序能运行在后台吗?
不可以,WindowsPhone7Series的应用程序模型只支持在前台执行。如果另外一个程序(第三方或者内置的)在你的程序正在运行的时候启动,你将会得到一个你的程序将要被终止的事件通知。

我的程序从前台离开时会发生什么?
你的应用将会收到一个它将被关闭的通知。你的应用从前台离开的时刻并没有被马上终止,如果你需要保留状态,你需要自己编写一些逻辑来处理这些事情。

当我的程序从前台离开后重新运行的时候会发生什么?
你的应用程序将会从最初始的状态开始运行。如果需要保留状态,你应该自己编写逻辑来判断状态是否被保留并恢复它。

这是否意味着没有办法来编写应用进行有效的后台更新?
不是!我们提供了可以让你的应用所利用的PushNotification服务。例如聊天程序,轮流操作的游戏以及其他类型的依赖外部事件的程序都可以***的利用PushNotification。你可以从MSDN的这篇文章上了解更多关于PushNotification的信息:http://msdn.microsoft.com/en-us/library/ff402558%28VS.92%29.aspx

如果我的程序没有运行,我可以利用PushNotification来启动我的程序吗?
不能直接运行。当接收到一个对你的程序的PushNotification的时候,你的程序的令牌可以被更新至这新的信息,这时候用户将会被提示启动你的程序。程序并不会直接自动启动。

我可以设置一个定时器来启动我的程序吗?
不行,是否启动你的程序取决于用户。

我的程序可以被系统事件启动起来吗?
不太可能,但是它仍然是一个问题。绝大部分情况下,不可能由一个系统事件来启动起你的程序。但是当你的程序启动的时候或许你可以获得一个通知缓存。对于这个情况,当我们了解更多的时候我们会公布出来。

如果我不需要用户界面,我能编写一个服务的DLL驻留在系统中吗?
不行,你将不能编写系统服务DLL。所有的程序集都将运行在它们自己的独立的沙箱中,和操作系统以及其他应用程序隔离开。

Windows Phone开发中应用程序的安装

我可以怎样向设备中安装应用程序?
应用程序将会在从MarketPlace中下载后自动安装。

我可以不使用MarketPlace而手工安装应用程序吗?
不行,自行安装应用程序将是不允许的。唯一获得应用程序的途径是通过MarketPlace。

如果我不能按状态,我怎么测试我的应用程序?
作为一个注册了的开发者,你将会被允许注册一些设备用来直接部署你的应用程序用来测试。如果只是为了测试用不着把它部署到MarketPlace上面去。

我的应用只是为了我们的公司或者某些特殊的团体使用,我怎么通过MarketPlace将这些应用仅仅分发给他们?
目前MarketPlace并没有办法为私有应用程序锁定区域。当然也有针对移动运营商的例外情况。目前没有办法将你的程序针对特殊的团体或者设备做限制。.

Windows Phone开发中设备连通性

我们仍然使用ActiveSyncIs来将设备连接到电脑吗?
不,同步时自动的就像将ZuneHD连接到电脑上那样。

我应该如何通过Internet来传输数据?
HTTPGET或者WebServices之类的Web技术将被用来作为在Internet上通讯的方式。当你的程序没有运行的时候你还可以使用PushNotification来通讯。

我可以使用Socket来做点对点的通讯吗?
WindowsPhone7Series目前并不直接支持Socket类。尽管手机上的Silverlight尽量靠近桌面版的Silverlight3的特性列表,但是它只提供这些特性的一个子集所以并不包含所有的类(当然它也针对Silverlight3做了一些扩展)。

我如何能够和其他的客户端实时的连接?
目前WindowsPhone7Series的最初版本并不支持点对点的通讯。我们始终会评估开发人员和用户的需求,或许以后我们会决定将这个特性加上。

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

我在那么多演示中所看到的”Hub”控件在哪里?
在MIX上的演示中你所看到的“Hub”和“Pivot”控件我们还在持续完善,并不在当前的工具中所包含。

什么时候它们将会可用?
目前并没有针对这些控件的确切的时间表,,但是产品组将会密切关注开发者社区去了解开发人员需要什么样的有用的控件。如果你想要某个当前并没有的控件,请在论坛中留言。

我可以自己做一个吗?
当然你可以做自己的控件。但是你需要了解到Pivot/Hub控件是个非常重要的需求,机会是好的但是在以后这些或许会作为官方的工具的一部分发布。

Windows Phone开发中设备存储

什么是”IsolatedStorage”
“IsolatedStorage”涉及的是在设备的文件系统中,你的程序所占据的空间。你将无法访问这个空间以外的内容(包括其他应用程序的空间或者操作系统的空间。)这样做将会给你的程序提供一个自管理的安全的沙箱,并且预防其他程序不小心(或者恶意的)侵入你的应用程序空间。

在WindowsPhone7Series的设备上有没有本地数据库可以利用?
没有,在最初的WindowsPhone7Series上没有本地数据库API可以利用。

我应该如何为我的应用程序存储信息?
你可以将信息存储在自己的存储空间里。如果你需要大型的数据库这里有一些选择:WindowsPhone7Seires已经支持WebServices,它可以让你容易的访问存储在Internet上的信息。使用一个可以被WebServices访问的数据库,你的应用程序就可以在连接Internet的情况下实时的获取数据。

如何处理非连接的情景呢?
没有连接到Internet的话,你将无法访问云端服务的数据。这种情况下,建议你的程序通过多种方式来处理(在设备上缓存自定义格式的数据,提醒用户缺少连接)。

我的应用更加趋向于在非连接的场景下使用,如果我不能访问云端服务该怎么做?
针对这种场景有两种方案:
◆制定你自己的数据格式,将数据存储在设备的存储空间里。
◆继续开发针对WindowsPhone6.5或者之前版本的应用,那些版本可以支持本地数据库。

以后会支持本地数据库吗?
当前我们没有宣告这样的计划来增加这一功能;但是我们会密切关注开发人员和用户的需求并识别哪些特性会给每个人带来好处。

Windows Phone开发中NativeCode的支持

我可以用c++来编写我的应用程序吗?
不行,当前C#是WindowsPhone7Series平台上唯一支持的开发语言。

我可以用VB编写我的应用程序吗?
现在还不行,但是在以后的开发工具中我们会强烈考虑这一点的。

我可以用P/Invoke来调用系统API吗?
不行,作为ISV来说无法使用P/Invoke来访问系统API。任何试图使用P/Invoke的程序将会被从MarketPlace中退回。

我可以用P/Invoke来掉用我自己的nativedll吗?
不行,nativecode不能作为你的应用程序的一部分来运行。P/Invoke是不允许的。

Windows Phone开发中工具安装的问题

我的安装失败了
在将你的失败贴到论坛之前,请检查系统的事件日志或许能够提供一些线索。
我的安装结束了,但是我不能运行期VisualStudio2010ExpressforWindowsMobile.我应该做什么?

这自然取决于你所遇到的错误。这里有一些基本的指导:
◆首先,检查发行说明.确保你的系统符合要求并且不是这里已经列出来的问题。(http://download.microsoft.com/download/D/9/2/D926FB38-BB43-4D87-AE***-1A3391279FAC/ReleaseNotes.htm)
◆如果你遇到一个注册表或者文件的权限问题,试着以管理员权限运行应用程序。
◆如果你还没有重启,试着重启一下。对于某些人来说它将会清除掉很多问题。
我得到一个”Theapplicationcannotstart”的错误
请看这篇Blog的说明:http://blogs.msdn.com/visualstudio/archive/2009/10/29/how-to-fix-the-application-cannot-start-error.aspx
Silverlight,XNA,和CompactFramework

手机上使用的什么版本的Silverlight?
手机上的Silverlight版本是一个很接近桌面上的Silverlight3的子集。这里也有一些Silverlight3上并没有的针对手机的特殊功能。但是许多在桌面版的Silverlight3上正常运行的程序也能够在手机上正常运行。

我可以在Silverlight里面调用XNA的库吗?
Silverlight和XNA使用同一个CompactFramework上的基础代码。如果这个调用没有图形用户界面交互,多数情况下他们可以在Silverlight和XNA之间共享。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/twodays/archive/2010/03/22/5403918.aspx

 

责任编辑:佚名 来源: cnblogs.com
相关推荐

2010-08-10 15:09:55

Flex开发

2010-07-21 09:16:47

Perl常见问题

2010-05-12 17:04:20

BlackBerry开

2011-04-14 15:35:53

嵌入式系统嵌入式

2011-05-13 14:56:44

SybaseOracle

2010-07-21 14:42:15

Windows Pho

2010-12-27 14:50:16

Windows 部署服

2010-03-25 09:08:43

CentOS配置

2010-09-27 13:45:38

2021-11-14 15:46:45

Windows 11Windows微软

2012-11-06 09:47:34

Windows 8升级

2013-03-04 13:58:10

2009-11-09 10:42:53

ibmdwRational

2010-04-23 09:58:30

Oracle管理

2011-10-11 09:50:44

PhoneGap常见问题

2020-11-10 23:06:38

物联网智能产品开发IOT

2010-07-21 09:29:33

Perl常见问题

2009-06-14 22:28:14

ibmdwWebSphere

2009-04-13 11:42:29

IBMdWRational

2011-07-13 17:57:15

SQLite
点赞
收藏

51CTO技术栈公众号