Windows 8 应用开发与Windows Phone的几个重要不同

Windows 8/RT和Windows Phone使用的类库有许多相似之处,但实际开发中,仍存在许多的不同,下面举出几个关键异同。


1.Runtime不完全一样,Windows 8/RT采用完整的Windows Runtime以及完整的.NET Framework 4.5支持,而Windows Phone 8 采用精简版的Windows Runtime以及.NET For Windows Phone,支持的类库并不实现.NET Framework 4.5所描述的所有功能和方法。详见我之前的一篇关于.NET 4.5的文章http://blog.csdn.net/yuanguozhengjust/article/details/19181931。于是就造成了一些Windows 8/RT可以实现,而WP8无法实现的功能缺陷,如:

▲ 不完整的异步编程(特指async/await关键字的应用)支持

▲ ZIP文件操作

▲ 文件的操作

……

不过好在WP8功能目前比较少,有些实现不了的也无关紧要,但是老这么差一点,未必有点掉开发者的胃口。


2.几个基本的不同

(1)对话框

Windows Phone 8类似传统的C#编程:

Message.show("Hello");

Windows 8:

var ms = new MessageDialog("服务器错误!","错误");
                await ms.ShowAsync();

而且需要using Windows.UI.Popups;才能使用,调用对话框的方法也必须添加async关键字。


(2)独立存储(特指应用程序参数设置)

Windows Phone 8:

IsolatedStorageSettings.ApplicationSettings["WebSetting"] = true;

Windows 8:

Windows.ApplicationModel.Core.CoreApplication.Properties["id"] = id.Text;

(3)使用HttpWebRequest的网络请求

Windows Phone 8:

private void Button_Click(object sender, EventArgs e)
        {
           ...
                    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
                    request.BeginGetResponse(new AsyncCallback(getResponse), request);
            ...
        }

void getResponse(IAsyncResult result)
        {
            HttpWebRequest req = (HttpWebRequest)result.AsyncState;
            HttpWebResponse response = (HttpWebResponse)req.EndGetResponse(result);
            Stream stream = response.GetResponseStream();
            using (StreamReader reader = new StreamReader(stream))
            {
                string str = reader.ReadToEnd();
                ...
            }
        }

Windows 8:

HttpWebRequest request = HttpWebRequest.Create(new Uri(URL)) as HttpWebRequest;
                WebResponse rq = await request.GetResponseAsync();
                using (StreamReader r = new StreamReader(rq.GetResponseStream()))
                {
                    info = await r.ReadToEndAsync();
                }
                rq.Dispose();

(4)页面跳转:

Windows Phone 8:

this.NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));

Windows 8:

this.Frame.Navigate(typeof(Main),info);



3.此外,两个平台的后台机制也有所不同,所能使用的编程语言也有不一样的地方,微软的WP8.1据说与RT统一度提升,不知道具体能给开发者带什么样的福利或者噩梦,让我们拭目以待吧!


转载请注明出处:http://blog.csdn.net/yuanguozhengjust/article/details/19183839

Windows 8 应用开发与Windows Phone的几个重要不同

上一篇:FastAPI实战:简易MockServe


下一篇:单反相机如何手动使对焦更加的精确?