成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從開發人員角度看Windows 8及Visual Studio 11

開發 后端
本文是一位程序員從開發人員的角度看Windows 8和Visual Studio 11的工作原理和代碼測試。希望對大家有所幫助。

  前不久,微軟召開了Build大會,向開發者們公布了***版本的Windows 系統,即Windows 8的一些信息。從各方面的反應來看,總體還是比較積極的(微軟這次的大會算是舍了大本了,每個參會人員都免費得到一臺平板電腦呢

  ,我最近也找到有關的視頻了解學習了一下,和很多朋友一樣,我從開發人員的角度,比較關注的是,新版的Windows系統,及其在界面和整個生態環境方面的一些重大改變,將給我們這個行業,或者我們自己的公司和個人帶來什么切身的影響。

  帶著這樣的疑問,我下載了微軟提供的Windows Developer Preview版本安裝試用了一下,這一篇文章將結合我自己的體會,給大家一些實際的參考信息。

  關于BUILD大會的兩個主題演講,有時間的朋友,應該全部看一遍

  http://www.buildwindows.com/

  國內也有視頻網站有轉載,我這里就不介紹了。

  如果你想嘗鮮使用Windows Developer Preview,可以在這里下載

  http://msdn.microsoft.com/en-us/windows/apps/br229516

  我是參照下面這篇文章的介紹進行安裝的,我用移動硬盤安裝,還比較順利。

  http://www.cnblogs.com/wpf_gd/archive/2011/09/15/2177810.html

  【備注】如果對系統安裝不是特別清楚的同學,我建議你***燒錄一張DVD,然后在單獨的機器安裝,否則如果萬一出現問題,可能會對你的工作造成影響

  安裝好之后,可以看到下面這樣的界面,這就是一再被說到Metro界面風格

  很顯然,界面是***個重大的變化。但實際上,這個界面并不是Windows 8的首創,這個界面最早是出現在Zune中,然后出現在Windows Phone 7中,現在只是將它的使用范圍進一步擴大,微軟的目標是希望以后的桌面電腦、平板電腦、手機都使用這種風格的界面。

  【備注】據說,前不久,Metro這種界面設計的風格正式申請了專利,而且獲得了認證

  http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220110202834%22.PGNR.&OS=DN/20110202834&RS=DN/20110202834

  這種界面無疑是很適合觸摸式的操作的,而觸摸式是一個趨勢,這無可阻擋,所以Metro的出現時勢所必然。然而,之所以可以單獨申請專利,是因為它又區別于iPhone或者Android 的那種界面(仍然是一排一排的按鈕),我個人感覺還是不錯的,Metro的這種樣式,給用戶的信息量會多一些。

  不過,話說回來,Windows 8作為***個使用Metro的操作系統,為了保證向后兼容性,是不可能只提供Metro這種樣式的界面的,它仍然保留了傳統的桌面。這個界面其實跟Windows 7很像,但也是有很多改進的。這里就先不做太多贅述

也就是說,至少目前可以肯定的是,Windows 8將支持兩種風格的應用程序

  1. 傳統的應用程序,通過exe等形式發布,用戶可以自己復制,或者下載,然后安裝

  2. Metro應用程序,這些應用程序是必須通過Windows Store來發布,并且傳播的,用戶也只能通過這個Store去下載和安裝

  【備注】我們很多人都知道Apple Store,微軟在手機領域也有一個Windows Phone Marketplace ,以后還將有一個統一的Windows Store(http://msdn.microsoft.com/en-us/windows/apps/br216180?lcid=1033)

  從第二點來看,我覺得不會有太多人反對Windows 8以及Metro。從各方面的聲音來看,大家都提到一個字:Opportunity (機會),是的,對于Windows平臺的廠商(微軟),最終用戶,還有開發商以及開發人員,這意味著新的機會。

  在BUILD大會上,微軟的高層除了演示了各種客戶端的效果之后,其實還著重在強調云的概念。這是自然而然的,Windows 8如果想要華麗轉身,成為桌面電腦+平板電腦+手機的統一的系統,絕不僅僅是客戶端的事情。微軟的Windows Azure以及相關配套的一些服務,在很早之前就為此在做準備了。典型的問題就是,這么多Application,其實到時候都是統一托管在Windows Azure平臺上。另外,值得一說的是,Windows 8登錄就直接繼承了Windows Live ID,可以期待以后,只要有Windows Live ID,在不同設備上就能很自然地同步資源,或者進行一致性的操作。

#p#

好的,那么回到開發人員的視角,既然Metro勢在必行,那么我們有什么樣的機遇和挑戰呢?

  這次BUILD大會前后,就一直有很多朋友在議論,說微軟要拋棄Silverlight等等。這個說法其實不準確。準確地說是,Silverlight無法在Metro樣式的應用程序中運行,即便是Metro的IE,也是不接受Silverlight的,當然,它同時也不接受Flash。它不接受任何插件,它為HTML 5而來。

是的,你沒有聽錯,在Windows 8中,確實有兩個IE,一個是Metro版本的,一個是桌面版本的。(實際上,微軟正在開發Metro Office,我實在想看看那時怎么樣一個Office)

  下面這個是Metro版本的IE

  下面這個是桌面版的IE,與Windows 7里面的IE 9沒有太大的區別,雖然這個版本叫IE 10.這個IE 里面當然是繼續支持Silverlight的

  其實這里有一句潛臺詞,大家可以試想一下,雖然說Windows 8是希望覆蓋桌面電腦、平板電腦、手機(我相信這個目標也的確可以實現),但相比較桌面電腦而言,平板電腦和手機其實是沒有桌面的概念的,所以,我可以預見,在平板電腦和手機里面,就肯定只有Metro樣式的應用程序,在它們上面是不支持Silverlight的。

  其實,我自己做過基于Silverlight的項目,我的體會和很多人都相似,我沒有寄太大希望它能用在internet上面,相反,Silverlight目前在一些企業內部項目中倒還是用得不錯。因為,Silverlight作為一種技術,有它適用的地方,我們不能期望它能用在所有地方。

  但是,一個很大的好消息是,擁有Silverlight或者WPF開發經驗的開發人員,將能夠在Metro應用程序開發中占得先機。為什么這么說呢?因為Metro應用程序,支持三種編寫方式

  1. javascript

  2. xaml + C#/VB.NET

  3. C++

  是的,你看到有XAML,我們對這個不是很熟悉了嗎?如果是,你的經驗可以得到復用。我下面就用這種方式來創建我的***個應用程序,大家可以看看,其實也不是特別難。

  【備注】這里的XAML與WPF或者Silverlight從本質上是一樣的,但是也有些不一樣,本文不會做太多深入的展開。

#p#  

在下載得到的Windows Developer Preview這個系統中,已經預先安裝好了Visual Studio 11 Express(估計正式版該叫Visual Studio 2012吧,雖然這名兒實在讓人有點瘆得慌)

  目前這個版本,只有下面幾個模板

我參照微軟提供的例子,做了一個簡單的應用程序,體驗了一下

  1.   <UserControl x:Class="TheFirstMetroApplication.MainPage" 
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  6. mc:Ignorable="d" 
  7. d:DesignHeight="768" d:DesignWidth="1366" 
  8. xmlns:local="using:TheFirstMetroApplication" >  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  9.  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  10. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  11.   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  12.   mc:Ignorable="d" 
  13.   d:DesignHeight="768" d:DesignWidth="1366" 
  14.   xmlns:local="using:TheFirstMetroApplication" > 
  15.   <ScrollViewer> 
  16.   <StackPanel> 
  17.   <TextBlock Text="{Binding Title}" FontSize="30" Margin="10"></TextBlock> 
  18.   <ItemsControl ItemsSource="{Binding Items}"> 
  19.   <ItemsControl.ItemTemplate> 
  20.   <DataTemplate> 
  21.   <StackPanel Margin="50,0,0,10"> 
  22.   <HyperlinkButton Content="{Binding Title}" FontSize="20"></HyperlinkButton> 
  23.   <TextBlock Text="{Binding PubDate}"></TextBlock> 
  24.   </StackPanel> 
  25.   </DataTemplate> 
  26.   </ItemsControl.ItemTemplate> 
  27.   </ItemsControl> 
  28.   </StackPanel> 
  29.   </ScrollViewer> 
  30.   </UserControl> 

大家看這樣的語法,應該沒有什么不好理解吧

  【備注】其實還是有些細節改變了,例如HyperLinkButton,居然沒有了NavigationUrl屬性了,為什么呢?就是說不能直接做導航,而需要去響應事件代碼。(這方面我還沒有時間深入去研究每個細節點,以后再看)

  后臺代碼的部分,也是我們屬性的C#

  1.   using System;  
  2.   using System.Collections.ObjectModel;  
  3.   using System.Threading.Tasks;  
  4.   using Windows.UI.Xaml;  
  5.   using Windows.Web.Syndication;  
  6.   namespace TheFirstMetroApplication  
  7.   {  
  8.   partial class MainPage  
  9.   {  
  10.   public MainPage()  
  11.   {  
  12.   InitializeComponent();  
  13.   Loaded += new RoutedEventHandler(MainPage_Loaded);  
  14.   }  
  15.   void MainPage_Loaded(object sender, RoutedEventArgs e)  
  16.   {  
  17.   GetFeedAsync("http://www.cnblogs.com/chenxizhang/rss");  
  18.   }  
  19.   public class FeedData  
  20.   {  
  21.   public string Title { getset; }  
  22.   // using System.Collections.ObjectModel;  
  23.   private ObservableCollection<FeedItem> _Items = new ObservableCollection<FeedItem>();  
  24.   public ObservableCollection<FeedItem> Items  
  25.   {  
  26.   get 
  27.   {  
  28.  return this._Items;  
  29.   }  
  30.   }  
  31.   }  
  32.   public class FeedItem  
  33.   {  
  34.   public string Title { getset; }  
  35.   public string Author { getset; }  
  36.   public string Content { getset; }  
  37.   public DateTime PubDate { getset; }  
  38.   }  
  39.   private async Task GetFeedAsync(string feedUriString)  
  40.   {  
  41.   // using Windows.Web.Syndication;  
  42.   SyndicationClient client = new SyndicationClient();  
  43.   Uri feedUri = new Uri(feedUriString);  
  44.   try 
  45.   {  
  46.   SyndicationFeed feed = await client.RetrieveFeedAsync(feedUri);  
  47.   FeedData feedData = new FeedData();  
  48.   feedData.Title = feed.Title.Text;  
  49.   foreach (SyndicationItem item in feed.Items)  
  50.   {  
  51.   FeedItem feedItem = new FeedItem();  
  52.   feedItem.Title = item.Title.Text;  
  53.  feedItem.PubDate = item.PublishedDate.DateTime;  
  54.   feedItem.Author = item.Authors[0].Name.ToString();  
  55.  if (feed.SourceFormat == SyndicationFormat.Atom10)  
  56.   {  
  57.   feedItem.Content = item.Content.Text;  
  58.   }  
  59.   else if (feed.SourceFormat == SyndicationFormat.Rss20)  
  60.   {  
  61.  feedItem.Content = item.Summary.Text;  
  62.   }  
  63.   feedData.Items.Add(feedItem);  
  64.   }  
  65.   this.DataContext = feedData;  
  66.   }  
  67.   catch (Exception ex)  
  68.   {  
  69.   // Log Error.  
  70.   }  
  71.   }  
  72.   }  
  73.   } 

  這段代碼的意思是,在頁面加載的時候,讀取我的博客列表,并且綁定在當前頁面上。

  另外,需要注意的是,程序啟動的方式與WPF和Silverlight都有些不同

然后,還有一個專門的appxmanifest文件,來設置與程序有關的信息

  在當前的開發環境中,你可以選擇直接部署到本機,也可以部署到模擬器,當然還可以發布到Windows Store,我下面部署到模擬器給大家看一下

按下F5鍵就可以部署調試,一個類似于平板電腦的界面打開了

這個程序可以在桌面上找到

點擊右鍵,可以很方便地進行卸載

  就這樣,我們完成了***個Metro應用程序,雖然這只是皮毛中的皮毛。但至少我們有信心去接受這個挑戰和機遇,至少我是這么看的。

  Metro應用程序,將很容易與Windows 系統進行無縫整合,例如我們希望在Windows 里面搜索時能夠直接進入我們的應用程序中檢索,得到結果,我們只需要在程序的設置中打開一個開關。它這里稱為所謂的Declarations

然后,在EntryPoint里面實現一個方法

  【備注】這里具體功能我沒有實現,但那個參數里面是包含了用戶要搜索到文字的

  在Windows里面,如何集成搜索功能呢。請看下面的例子。

  【備注】由于我沒有對搜索進行定制,所以它仍然是打開了主界面

  總結:Windows 8提出一個全新的設想,不光是界面上的。我個人覺得應該是值得期待的,本文我通過例子編寫了***個基于XAML的Metro應用程序,大家可以發現,其實也并不是很復雜,我們之前的經驗可以得到復用,這無疑讓我們有了更充分地理由,迎接這個機遇和挑戰。

  更多動手實驗,請參考Windows 8 Hand-On Labs

  http://www.buildwindows.com/Labs

原文鏈接:http://www.cnblogs.com/chenxizhang/archive/2011/10/25/2224499.html

【編輯推薦】

  1. Visual Studio 11預覽版安裝手冊
  2. Visual Studio 11開發者預覽版發布(附下載)
  3. Visual Studio 2010中使用MTLM管理測試工具
  4. Visual Studio 2010 SP1公測版已經發布
  5. Visual Studio 2010中敏捷開發流程模板的應用
責任編輯:彭凡 來源: 博客園
相關推薦

2009-12-11 14:50:14

Visual Basi

2009-12-02 16:14:41

Visual Stud

2012-07-12 00:09:34

2009-12-03 14:06:26

Visual Stud

2021-07-16 17:05:56

Java 8語言Java 11

2021-07-08 09:57:47

Java 11Java 8開發人員

2011-06-20 08:43:15

Windows 8開發人員

2020-05-26 13:37:43

Android 11開發人員安卓

2010-08-16 09:21:35

Windows Pho

2011-09-14 04:10:11

Windows8平板電腦build

2019-02-28 06:14:18

物聯網物聯網開發IOT

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商

2015-08-07 09:54:26

升職開發者管理者

2011-03-11 09:54:01

Windows Ser

2013-09-10 09:17:34

Windows 8.1

2020-09-23 22:40:31

Python 開發編程語言

2015-02-10 09:24:04

Web開發JavaScript工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线一区二区三区 | 国产免费观看视频 | av免费网址| 激情欧美一区二区三区 | 欧美成人一区二区三区片免费 | 天堂视频一区 | 免费观看羞羞视频网站 | 国产精品久久国产精品 | 欧美激情视频一区二区三区在线播放 | 狠狠干网站 | 伊人亚洲| 一级片在线观看视频 | 欧美日韩国产在线观看 | 国产精品国产三级国产aⅴ中文 | 天天综合国产 | 国产国语精品 | 日韩有码在线观看 | 免费视频一区 | 午夜一区 | 午夜精品久久久久久久99黑人 | 精品av| 国产免费一区二区 | 国产精品久久久久无码av | 亚洲三级在线观看 | 中文字幕一区二区三区四区五区 | 中文字幕精品一区 | 国产精品久久久久久婷婷天堂 | 国产精品亚洲片在线播放 | 伊人久久综合 | 欧洲亚洲一区二区三区 | 成人免费影院 | 天天艹天天干天天 | 国产精品亚洲一区二区三区在线 | av日韩在线播放 | 免费国产一区 | 精品综合在线 | 日韩欧美在线免费观看视频 | 午夜小视频在线播放 | 久久久免费电影 | 久久新| 国产蜜臀97一区二区三区 |