精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微軟MVP推薦:WP7上的IronRuby開發

移動開發
本文的作者是一位微軟Visual C#/IronRuby MVP,也是《IronRuby Unleashed》一書的作者。他向我們推薦了一種無論對于.NET Framework開發人員還是Ruby開發人員都很重要的開發平臺,那就是在 Windows Phone 7 上使用 IronRuby。

前不久,我們曾給大家推薦過如何使用IronRuby開發Windows Phone 7應用程序這篇文章,今天繼續給大家介紹一篇IronRuby如何開發Windows Phone 7的文章,希望讀者能從中得到啟發。

以下為轉發的全文

幾年前,我是一個不折不扣的.NET迷。 我對其他的開發領域毫無興趣,整個人都沉醉于自己的封閉世界中。 隨后,我又誤打誤撞地學習了 Ruby,那種體驗簡直不可思議。 那種利用語言的內置功能來完成工作的方式深深地吸引了我。

還有的就是,您可以讓一個人領略 .NET 世界外部的事物,但.NET 將永遠深深地扎根在那個人的心里。 因此,當我一聽說微軟 要在Microsoft .NET Framework 上開發一種名為IronRuby的Ruby語言的實現時,心里十分激動,然后便一頭鉆了進去。

現在,有了 IronRuby,.NET 世界和 Ruby 世界之間就架起了一座彼此連接的橋梁。 這可以使無限種新可能變為現實,這種連接的好處超乎想象。

在本文中,我將向您介紹其中一種無論對于 .NET Framework 開發人員還是Ruby開發人員都很重要的好處,那就是您可以在Windows Phone 7 上使用IronRuby。

什么是IronRuby?

2006 年,微軟宣布開發IronRuby。 經過三年多的開發,IronRuby 團隊終于在四月份宣布IronRuby 的第一個穩定版本(1.0 版)正式面市。

IronRuby 支持 Ruby 語言的完整功能集,唯一增加的功能是:Ruby 代碼與 .NET Framework 代碼之間的集成。 該集成是完全無縫的,唯一需要做的就是將 .NET Framework 程序集加載到 Ruby 上下文中。 例如,下面這段 IronRuby 代碼首先加載 System.Windows.Forms 程序集,然后再利用其類:

  1.           require 'System.Windows.Forms' 
  2.  
  3. include System::Windows::Forms  
  4.  
  5. form = Form.  
  6.           new 
  7. form.height = 200  
  8. form.width = 400  
  9. form.text = "IronRuby Window" 
  10. form.show_dialog 

能夠實現該集成可能要歸功于動態語言運行時 (DLR),這是一個添加到 .NET Framework 基礎結構中的層,用于為在該框架上編寫的動態語言提供公共服務。 DLR 是在 CLR 基礎上編寫而成的,可以使在 .NET 上實現動態語言變得更加容易。 這是最近我們看到 .NET Framework 動態語言(包括 IronRuby、IronPython、IronJS、Nua、ClojureCLR 等等)不斷興起的主要原因之一。

IronRuby 的主要功能

Ruby 是一種動態語言,IronRuby 也是如此。 這就是說,在沒有編譯器的情況下,對于靜態語言中在編譯和生成期間完成的大多數操作,在運行時都能夠完成。 這種行為可以提供當前大多數靜態語言中難以或不可能實現的各種功能。

與 .NET Framework 對象的互操作性。Ruby 語言包含多種實現:MRI(即最初的實現)、Jruby、Rubinius、MacRub、IronRuby 等等。 IronRuby 之所以能夠脫穎而出,要歸功于其能夠與 .NET Framework 對象方便地進行交互。 這種互操作性是雙向的,即 .NET Framework 對象可以在 IronRuby 代碼中使用,IronRuby 對象也可以在 .NET Framework 代碼中使用。

動態類型化。IronRuby 變量類型可以在運行時計算得出,因此無需在代碼中指定變量的類型。 但是,這并不表示 IronRuby 沒有類型。 IronRuby 包含類型,而且和靜態語言中的類型一樣,每種類型都有其各自的規則。 以下代碼示例用幾個簡單的步驟說明了動態類型化機制:

  1.       # Declaring a numeric variable  
  2. a = 1  
  3.  
  4. # The variable is of a numeric type   
  5. # and therefore numeric operations are available  
  6. a = a * 2 + 8 / 4  
  7.  
  8. # The next line will raise an exception  
  9. # because it is not possible to add a string to a number  
  10. a = a + "hello" 
  11.  
  12. # However, the next line is entirely legit and will result  
  13. # in changing the variable type to String  
  14. a = "Hello" 

交互式控制臺。與 Windows 命令提示符類似,交互式控制臺也是一種可以檢索 IronRuby 代碼并立即執行該代碼的應用程序。 這種執行流也稱為讀取-求值-輸出-循環 (REPL)。 您可以定義變量、方法甚至類,加載 IronRuby 文件或 .NET Framework 程序集,并立即使用它們。 例如,圖 1 中顯示一個簡單的控制臺會話,該會話中創建了一個類并立即使用該類。

使用 IronRuby 控制臺

鴨子類型化。IronRuby 是一種面向對象的語言。 正如大家在面向對象的語言中所期待的那樣,IronRuby 支持類、繼承、封裝和訪問控制。 但是,與許多靜態語言一樣,它不支持接口和抽象類。

不過,這并不是該語言的設計缺陷。 有了動態類型化功能,聲明接口或抽象類之類的代碼約定顯得多此一舉。 唯一與對象有關的事項是是否定義了特定的方法;如果已定義,則無需進行標記。 這就是通常所說的鴨子類型化 - 如果某個類型的叫聲像鴨子,游泳姿勢也像鴨子,那么它就是一只鴨子,無需進行標記即可將其視為一只鴨子。

例如,下面的代碼示例包含兩個類,這些類包含一個名為 say_hi 的方法以及另一個名為 introduce 的常規方法,后者可以檢索一個對象并執行其 say_hi 方法。(請注意,這里不存在接口或其他標記機制。)

  1.           class Human  
  2.   def say_hi  
  3.     puts "Hi!" 
  4.   end 
  5. end 
  6. class Duck  
  7.   def say_hi  
  8.     puts "Quack!" 
  9.   end 
  10. end 
  11.  
  12. def introduce(obj)  
  13.   obj.say_hi  
  14. end 
  15.  
  16. human = Human.  
  17.           new 
  18. duck = Duck.  
  19.           new 
  20.  
  21. introduce(human) # prints "Hi!"  
  22. introduce(duck) # prints "Quack!" 

元編程。IronRuby 提供了強大的元編程功能。 元編程是一種可在運行時添加、更改甚至刪除方法的方式。 例如,可以向類中添加方法、寫入定義其他方法的方法或刪除現有類中的方法定義。 下面的代碼的類中添加了一個方法,添加的方法將反映到該類的所有當前實例和將來實例中。

  1.           # Creating a class with no methods  
  2. class Demo  
  3. end 
  4.  
  5. # Creating an instance of class Demo  
  6. d = Demo.  
  7.           new 
  8.  
  9. # Opening the class and adding a new method - hello_world  
  10. class Demo  
  11.   def hello_world  
  12.     puts "hello world" 
  13.   end 
  14. end 
  15.  
  16. # Using the newly added method on the class instance  
  17. d.hello_world # prints "hello world" 

此外,還有一些特殊的方法可用于捕獲對未定義的方法或常量的調用。 使用這些方法可以輕松地支持 find_by_[列名稱] 之類的動態方法名稱,其中 [列名稱] 可以替換為 find_by_name、find_by_city 或 find_by_zipcode 之類的任何值。

RubyGems。Ruby 語言功能再強大,如果沒有可以與其一起安裝和使用的外部庫,也不會取得如此巨大的成功。

安裝 Ruby 庫的主要方法是通過 RubyGems 系統。 這是一種程序包管理器,可以幫助分發和安裝稱為 gem 的 Ruby 庫。 有數千種免費的 gem 可以使用,幾乎涵蓋了包括測試框架、稅率計算庫以及 Web 開發框架等在內的所有編程方面和任務。

您應該會注意到某些 RubyGems 依賴于 C 庫。 這些 gem 無法在當前版本的 IronRuby 上運行,除非將 C 庫移植到 Ruby 或 C# 平臺上。

社區。IronRuby 的其中一個最大好處就是您可以訪問 Ruby 社區。 該社區包含遍布于眾多論壇、郵件列表、聊天室和博客中的寶貴內容,這些內容是由許多樂于助人解決任何問題的用戶提供的。 不要猶豫,趕快利用這些資源吧,它們真的非常有用。

IronRuby 和 Silverlight

Silverlight 2 中引入了一項全新的重要功能:針對 DLR 語言的支持。 這樣一來,開發人員就可以將 IronRuby 用于 Silverlight 應用程序,既可以將它融入到應用程序中,也可以使用它來編寫整個 Silverlight 應用程序。

且慢,Silverlight 可以在 Windows Phone 7 上運行,對吧? 當然可以。

Windows Phone 7

Windows Phone 7

萬眾期待的 Windows Phone 7 是微軟的下一代移動平臺,它是智能手機行業的一項創新性突破。 除了標準的多點觸控功能和炫目的新 UI 之外,從開發人員的角度來看,Windows Phone 7 的最大新聞莫過于它是在 Silverlight 平臺上開發的。

正是歸功于微軟這一利用成熟技術的明智之舉,廣大開發人員只需輕松簡單地學習一下,就可以創建移動應用程序了。

由于 DLR 語言可以在 Silverlight 環境中運行,因此您可以充分利用 IronRuby,使用它來編寫 Windows Phone 7 應用程序。

不過,有一些限制需要注意。 Windows Phone 7 自帶的 .NET Compact Framework 是 .NET Framework 的子集。 Compact Framework 專為移動應用程序和嵌入式應用程序而設計,包含完整 .NET Framework 的大約 30% 功能。 因此,它缺失了許多類,這會影響 IronRuby 的運行。

Reflection.Emit 命名空間是影響 IronRuby 的主要缺失功能。 IronRuby 使用此功能來動態地編譯代碼,以使應用程序更快地運行。 但是,它只屬于性能上的優化,并不是運行簡單腳本和應用程序所必備的組件。

另一個限制與新 Windows Phone 7 應用程序的創建方式有關。 這類應用程序只能通過 Visual Studio 并使用 C# 來創建。 這一要求迫使開發人員不得不使用 C# 編寫代碼來初始化 IronRuby 代碼。

最后一個重要限制是 RubyGems 無法在 Windows Phone 7 上運行。 因此,要使用 gem,必須和任何其他 IronRuby 代碼文件一樣,先將其代碼文件包含在應用程序文件中,然后再使用這些文件。#p#

在 Windows Phone 7 上構建簡單的 IronRuby 應用程序

要開發 IronRuby 驅動的 Windows Phone 7 應用程序,需要先安裝 Windows Phone 7 開發人員工具,這些工具可從 developer.windowsphone.com 上進行下載。

安裝這些工具之后,請打開 Visual Studio,然后轉到“文件”|“新建”|“項目”。 在“新建項目”對話框中,選擇“Silverlight for Windows Phone”類別,然后選擇“Windows Phone 應用程序”項目模板。 為該項目命名,然后繼續操作。

新項目一打開,您就會看到已自動創建了一個簡單的 XAML 文件。 請注意,XAML 通常是 Silverlight 必需的,并不依賴于語言。 因此,即使應用程序代碼將使用 IronRuby 來編寫,也必須使用 XAML 來創建 UI。在這個簡單的應用程序中,默認的 XAML 文件已經夠用,因此這里無需做任何更改。

這個簡單的應用程序中,最值得關注的部分是代碼。 不過,在對此進行深入探討之前,我們需要添加對 IronRuby 和 DLR 程序集的引用。 這些程序集并不是常規的程序集,我們需要的是適用于 Windows Phone 7 的程序集,它們可以從 ironruby.codeplex.com/releases/view/43540#DownloadId=133276 上獲取。 可以在下載的程序包的 silverlight/bin 文件夾中找到所需的程序集。

接下來,我們需要編寫 IronRuby 代碼。 向應用程序中添加一個新的文本文件,然后將其命名為 MainPage.rb。 此外,為了便于部署到手機中,請打開此文件的屬性,然后將“生成操作”屬性更改為“嵌入的資源”。

接下來,將下面的代碼復制到該文件中。

  1.           # Include namespaces for ease of use  
  2. include System::Windows::Media  
  3. include System::Windows::Controls  
  4.  
  5. # Set the titles  
  6. Phone.find_name("ApplicationTitle").text = "MSDN Magazine" 
  7. Phone.find_name("PageTitle").text = "IronRuby& WP7" 
  8.  
  9. # Create a new text block  
  10. textBlock = TextBlock.  
  11.           new 
  12. textBlock.text = "IronRuby is running on Windows Phone 7!" 
  13. textBlock.foreground = SolidColorBrush.  
  14.           new(Colors.Green)  
  15. textBlock.font_size = 48  
  16. textBlock.text_wrapping = System::Windows::TextWrapping.Wrap  
  17.  
  18. # Add the text block to the page  
  19. Phone.find_name("ContentGrid").children.add(textBlock) 

以上IronRuby代碼非常簡單易懂;我們設置了標題,創建了一個文本塊,其中包含一些文本,并將其添加到頁面中。 請注意,您可以在上面提及的 Windows Phone 環境運行限制下,使用Ruby語言中的所有功能(這里就不演示了),例如類、元編程和庫。

現在,剩下的任務就是實際執行 IronRuby 代碼了。 要在應用程序加載時執行該代碼,請將下面的代碼添加到位于 MainPage.xaml.cs 文件內的 MainPage 類構造函數中。

下面代碼以通過類構造函數執行 IronRuby 代碼

  1.           // Allow both portrait and landscape orientations  
  2. SupportedOrientations = SupportedPageOrientation.PortraitOrLandscape;  
  3.  
  4. // Create an IronRuby engine and prevent compilation  
  5. ScriptEngine engine = Ruby.CreateEngine();  
  6.  
  7. // Load the System.Windows.Media assembly to the IronRuby context  
  8. engine.Runtime.LoadAssembly(typeof(Color).Assembly);  
  9.  
  10. // Add a global constant named Phone, which will allow access to this class  
  11. engine.Runtime.Globals.SetVariable("Phone", this);  
  12.  
  13. // Read the IronRuby code  
  14. Assembly execAssembly = Assembly.GetExecutingAssembly();  
  15. Stream codeFile =   
  16.   execAssembly.GetManifestResourceStream("SampleWPApp.MainPage.rb");  
  17. string code = new StreamReader(codeFile).ReadToEnd();  
  18.  
  19. // Execute the IronRuby code  
  20. engine.Execute(code); 

上面的代碼十分簡短,完美地演示了通過 C# 代碼運行 IronRuby 代碼有多么容易。

另外,請務必將以下 using 語句添加到該類中:

  1.           using System.Reflection;  
  2. using System.IO;  
  3. using Microsoft.Scripting.Hosting;  
  4. using IronRuby; 

上面的第三行代碼可以將 System.Windows.Media 程序集加載到 IronRuby 上下文中,從而使該代碼可以與該程序集的類和枚舉進行互操作。

下一行允許 IronRuby 代碼訪問當前的 Silverlight 頁面。 該行代碼通過名為 Phone 的常量向 IronRuby 代碼公開當前實例 (this)。

其余的代碼從嵌入的文件(請注意,應用程序的命名空間將添加到文件名中,因此 MainPage.rb 變成了 SampleWPApp.MainPage.rb)中讀取 IronRuby 代碼,然后使用引擎實例來執行該代碼。

就是這樣。 我們已經創建了一個應用程序,該應用程序加載后,會運行 IronRuby,而該代碼將更改標題并向 Silverlight 頁面添加一個文本塊。 剩下要做的所有事情就是運行該應用程序,運行結果如下圖 所示。

Windows Phone 7 上運行的 IronRuby 驅動的應用程序

每時每刻都在完善

即使在 Windows Phone 7 上使用 IronRuby 的工作流還并不完善,而且您需要注意各種限制,但這只是個起步而已。 IronRuby 和 Windows Phone 7 平臺都是嶄新的,它們時刻都在不斷完善。

二者的結合同時給 .NET Framework 開發人員和 Ruby 開發人員展現了廣大的前景。 現在,.NET 開發人員在編寫 Windows Phone 7 應用程序時,可以充分利用 Ruby 語言無以倫比的功能,例如,將 IronRuby 控制臺融入到其應用程序中或提供可擴展性功能。 而另一方面,Ruby 開發人員也可以史無前例地使用自己的語言來編寫移動應用程序。

毫無疑問,一個充滿大量機遇和無限可能的嶄新世界已經誕生。 而且一切盡在您的掌控之中。

編者注:Shay Friedman 是一位 Microsoft Visual C#/IronRuby MVP,也是《IronRuby Unleashed》(Sams 出版,2010 年)一書的作者。他現在擔任 Sela Group 的動態語言主管,負責全球范圍的課程咨詢和開設工作??梢栽?IronShay.com 上閱讀他的博客文章。本文出自MSDN 雜志2010年九月刊。

【編輯推薦】

  1. 不編程也開發 無代碼開發Windows Phone 7應用工具
  2. 使用IronRuby開發Windows Phone 7應用程序
  3. Windows Phone 7設計評測報告
  4. 諾基亞向開發者贈送E7及Windows Phone 7手機
  5. 微軟發布Windows Phone 7開發者向導

 

責任編輯:佚名 來源: MSDN
相關推薦

2011-02-28 10:42:14

Windows Pho微軟

2011-08-19 09:09:01

AndroidWP7Windows Pho

2011-06-10 09:03:36

AndroidWindows Pho開發者

2011-05-10 08:53:46

iOSWindows Pho開發者

2012-01-01 19:33:19

2012-05-15 14:00:51

WP7開發環境

2012-07-06 09:26:13

Windows PhoWindows Pho

2011-06-13 09:34:02

微軟AndroidWindows Pho

2012-03-04 20:55:33

WP7

2013-02-25 11:19:43

WP開發Windows PhoWP開發者

2012-05-25 12:57:31

Windows Pho

2012-03-22 14:50:00

WP7微軟諾基亞

2012-04-05 13:39:42

WP7開發Windows Pho

2013-06-17 14:10:08

WP7開發Windows Pho豆瓣電臺

2011-09-22 14:20:10

雷軍小米WP7

2011-07-28 09:26:18

MangoWindows Pho富士通

2011-03-08 10:26:45

Windows Pho諾基亞Qt

2011-04-27 09:58:56

Windows PhoLBS微軟

2012-06-21 09:07:22

微軟WP7WP8

2011-02-15 09:50:02

Windows PhoKinectMWC
點贊
收藏

51CTO技術棧公眾號

日本在线啊啊| 免费观看国产精品| 99久久www免费| 日韩精品一区二区三区老鸭窝| 日韩精品免费一区| 亚洲色图欧美视频| 久久99精品国产.久久久久久| 欧美福利小视频| 好吊视频在线观看| 欧美2区3区4区| 欧美性xxxxx极品娇小| 中文字幕日韩一区二区三区| 日日躁夜夜躁白天躁晚上躁91| 日韩精品乱码av一区二区| 久久视频精品在线| 中文字幕xxx| 日本成人手机在线| 91官网在线观看| 国产精品久久成人免费观看| 婷婷色在线视频| 免费精品视频在线| 97在线精品国自产拍中文| 国产成人免费在线观看视频| 国产精品tv| 欧洲精品视频在线观看| 成品人视频ww入口| 国产精品剧情| 中文字幕欧美激情| 久久日韩精品| 亚洲精品久久久久久动漫器材一区| 日韩主播视频在线| 高清在线视频日韩欧美| 波多野结衣爱爱视频| 日韩精品免费| 亚洲色图第一页| 欲求不满的岳中文字幕| 国产一区二区三区免费观看在线 | 四虎精品永久在线| 亚洲精品国产首次亮相| 中文字幕日韩免费视频| 中国毛片在线观看| 日本欧美高清| 日韩av一区在线| 欧美夫妇交换xxx| 欧美成人精品午夜一区二区| 欧美日韩一二区| 韩国日本美国免费毛片| 天堂中文av在线资源库| 性做久久久久久| 阿v天堂2018| 欧洲精品二区| 亚洲成人精品一区二区| 99在线观看视频免费| 欧美xxx黑人xxx水蜜桃| 亚洲黄色性网站| 台湾无码一区二区| 色呦呦呦在线观看| 一区二区三区不卡视频在线观看| 亚洲欧美日韩不卡| 超碰在线网址| 亚洲精品成人少妇| 欧美在线观看黄| av中文字幕在线观看第一页| 亚洲成精国产精品女| www..com日韩| 午夜激情电影在线播放| 欧美日韩亚洲一区二| av免费中文字幕| 性感美女一区二区在线观看| 欧美在线三级电影| www.色就是色.com| 日韩精品成人在线观看| 亚洲国产精品电影| 女女互磨互喷水高潮les呻吟| 成人高清电影网站| 久久精品男人天堂| 久久机热这里只有精品| 在线观看亚洲| 日本一区二区三区在线播放| 中文字幕 国产| 国产精品综合一区二区| 国产精品三区在线| 亚洲人成色777777精品音频| 91一区二区三区在线观看| 欧美一进一出视频| 视频一区二区三区不卡| 一个色在线综合| 免费在线激情视频| 欧美综合影院| 亚洲成人黄色在线观看| 99久久久无码国产精品性| 欧美韩国日本在线观看| 欧美高清激情视频| 亚洲国产精品无码久久久| 精品无人区卡一卡二卡三乱码免费卡| 国产激情美女久久久久久吹潮| 亚洲 国产 欧美 日韩| 国产精品美女久久久久av爽李琼 | 91精品国产免费| 中文字幕影片免费在线观看| 成人羞羞动漫| 国a精品视频大全| 中文字幕一区二区三区免费看 | 精品久久久久久一区| 国产1区2区3区在线| 亚洲免费在线看| 日批视频在线免费看| 91精品国产一区二区在线观看 | 麻豆传媒在线完整视频| 婷婷一区二区三区| 香蕉视频禁止18| 成人午夜三级| 久久久国产精品免费| 国产成人精品777777| 国产.精品.日韩.另类.中文.在线.播放| 欧美激情专区| 丁香花在线电影| 欧美精品久久一区| 国产传媒国产传媒| 亚洲激情网址| 91情侣在线视频| 最新国产在线观看| 欧美午夜无遮挡| 小早川怜子一区二区三区| 国产99久久精品一区二区300| 欧美日韩国产第一页| 夜夜嗨av禁果av粉嫩avhd| 久久天天做天天爱综合色| 免费看欧美黑人毛片| 成人在线视频国产| 少妇高潮久久77777| 无码人妻av一区二区三区波多野| 成人a区在线观看| 男女爱爱视频网站| 亚洲国产aⅴ精品一区二区三区| 亚洲欧美色图片| 欧美bbbbbbbbbbbb精品| 成人黄色在线网站| 国产玉足脚交久久欧美| 亚洲精品aⅴ| 成年无码av片在线| 国产伦理一区二区| |精品福利一区二区三区| 深夜黄色小视频| 国产真实有声精品录音| 奇门遁甲1982国语版免费观看高清| 色噜噜一区二区三区| 亚洲国产日韩精品| 日韩成人av一区二区| 亚洲国内欧美| 精品国产一区二区三区麻豆小说 | 欧洲天堂在线观看| 欧美午夜精品久久久久久浪潮| 男女一区二区三区| 夜久久久久久| 欧美日韩免费观看一区| 日韩成人影音| 日韩专区在线播放| 国产日本精品视频| 亚洲一区二区三区四区不卡| 毛茸茸free性熟hd| 亚洲欧美日韩在线观看a三区| 久久精品国产美女| 欧美aaa视频| 色婷婷成人综合| 一本一道人人妻人人妻αv| 中文字幕一区日韩精品欧美| 午夜视频在线网站| 欧美日韩p片| 国产欧美日韩视频一区二区三区| 精品人人视频| 国产一区二区三区四区福利| 亚洲天堂aaa| 一区二区三区中文字幕在线观看| 蜜桃色一区二区三区| 性久久久久久| 亚洲在线视频一区二区| 日韩精品免费视频一区二区三区 | 欧美一级免费| 欧美成人午夜剧场免费观看| 天堂av2024| 91官网在线免费观看| 国产精品视频一区二区三| 成人性生交大片免费看中文| 国产日韩一区二区在线观看| 欧美a级成人淫片免费看| 99精品欧美一区二区三区| 欧美大胆性生话| 久久久999精品视频| 五月天激情婷婷| 欧美日韩亚洲综合一区二区三区| 欧美色图一区二区| 久久嫩草精品久久久精品一| 亚洲国产午夜精品| 国产精品综合色区在线观看| 最新av在线免费观看| 私拍精品福利视频在线一区| 国产日韩精品在线观看| 69av成人| 菠萝蜜影院一区二区免费| 欧美视频在线观看一区二区三区| 欧美性生交片4| av资源吧首页| 国产精品久久国产精麻豆99网站| 屁屁影院国产第一页| 精品一区二区久久久| jizzjizzxxxx| 欧美日韩第一区| 亚洲亚洲精品三区日韩精品在线视频| 97视频一区| 亚洲aⅴ男人的天堂在线观看| 超级碰碰久久| 欧美劲爆第一页| 日本在线观看www| 亚洲欧美日韩中文在线制服| 国产综合视频在线| 欧美高清你懂得| 无码日韩精品一区二区| 偷拍一区二区三区| 国产97免费视频| 国产精品久久毛片a| 右手影院亚洲欧美| 成人夜色视频网站在线观看| 亚洲天堂一区二区在线观看| 日韩高清在线不卡| 香港三级韩国三级日本三级| 精品动漫一区| 久久久久福利视频| 我不卡伦不卡影院| 亚洲人成影视在线观看| 欧美女王vk| 欧美一级爱爱| 国产中文字幕一区二区三区 | 亚洲热在线视频| 麻豆freexxxx性91精品| 日韩在线xxx| 国产精品美女久久久| 妞干网在线观看视频| 欧美午夜不卡| 男人的天堂avav| 欧美深夜福利| 国产一区二区四区| 国产精品xvideos88| 中文字幕色呦呦| 亚洲精品99| eeuss中文| 最新精品国产| 日本中文字幕一级片| 欧美成人69| www.日本在线视频| 欧美午夜不卡| 免费成人在线视频网站| 亚洲一区区二区| 国产视频在线视频| 日本最新不卡在线| 人人干人人干人人| 精品在线免费视频| 中文字幕一区二区在线观看视频 | 免费av不卡| 久久最新资源网| 午夜羞羞小视频在线观看| 欧美寡妇偷汉性猛交| 99在线视频影院| 奇米4444一区二区三区| 成人在线不卡| 91在线免费视频| 成人午夜三级| 欧美主播一区二区三区美女 久久精品人| 免费av一区二区三区四区| 亚洲国产一区二区三区在线| 国产大片一区| 成人免费a级片| 免费国产自线拍一欧美视频| 搡女人真爽免费午夜网站| 国内国产精品久久| 欧美激情 亚洲| 日本一区二区三区四区在线视频| 久久久久久久久久97| 亚洲成人av免费| 少妇高潮av久久久久久| 在线播放亚洲一区| 欧美自拍偷拍一区二区| 国产亚洲精品美女久久久久| 精品欧美色视频网站在线观看| 欧美国产日本高清在线| 欧洲亚洲两性| 666精品在线| 国产精品美女久久久久久不卡| 一区二区免费电影| 日韩午夜av| 中文字幕22页| 99热在这里有精品免费| 日韩视频在线观看免费视频| 亚洲黄色尤物视频| 波多野结衣av无码| 日韩美一区二区三区| 国产中文在线观看| 美女av一区二区| 老司机2019福利精品视频导航| 成人欧美一区二区三区在线湿哒哒| 另类尿喷潮videofree| 在线观看日韩片| 国产精品外国| 亚洲妇女无套内射精| 国产精品欧美一级免费| 日本亚洲色大成网站www久久| 7777精品伊人久久久大香线蕉超级流畅| 人妻少妇精品无码专区久久| 久热精品视频在线| 97精品国产99久久久久久免费| 国产乱码一区| 欧美1区2区3区| 美女一区二区三区视频| 97精品国产97久久久久久久久久久久 | 欧美日韩一级黄色片| 精品美女一区二区| 麻豆视频在线免费观看| 国产成人在线亚洲欧美| 久久香蕉精品香蕉| 久久久天堂国产精品| 乱一区二区av| 久久久久久久久久久久| 天天亚洲美女在线视频| 亚洲春色一区二区三区| 色妞欧美日韩在线| 国模视频一区| 欧美久久久久久| 亚洲视频二区| 欧洲熟妇的性久久久久久| 亚洲视频 欧洲视频| 亚洲最新av网站| 中文字幕亚洲国产| 国产福利亚洲| 亚洲精品人成| 日韩电影在线一区二区三区| 色婷婷在线影院| 色综合一个色综合| 日本aaa在线观看| 欧美性在线视频| 台湾佬综合网| 国产免费毛卡片| 91天堂素人约啪| 国产性xxxx高清| 日韩国产激情在线| 26uuu亚洲电影| 欧美一区二区三区四区在线观看地址 | 色综合导航网站| 77成人影视| 人妻无码久久一区二区三区免费| 成人av在线一区二区三区| 国产一级淫片免费| 精品国产a毛片| 黑森林国产精品av| 精品免费国产| 久久九九电影| 99久久99久久精品免费| 欧美色大人视频| 久草中文在线观看| 91视频婷婷| 夜夜精品视频| 成年人免费观看视频网站| 欧美日韩在线观看一区二区| 精品欧美色视频网站在线观看| 成人高清在线观看| 在线视频日韩| 久久成人激情视频| 欧美日本一道本在线视频| 国产高清一区二区三区视频| 99在线视频播放| 亚洲影音一区| 成人无码av片在线观看| 欧美男人的天堂一二区| 欧美韩日亚洲| 欧美日韩精品一区| 美女一区二区久久| 久久久久久久久久久久久久久久久| 亚洲国产精品久久久久秋霞不卡| 亚洲一二三四| 中文字幕一区二区三区有限公司| 国产不卡视频在线播放| 久久久久久久极品| 一本色道久久88综合亚洲精品ⅰ | free欧美| 宅男噜噜99国产精品观看免费| 成人高清视频在线观看| 草莓视频18免费观看| 欧美成人精品在线| 欧美变态网站| www.亚洲高清| 亚洲成av人片| 97电影在线观看| 极品日韩久久| 狠狠色丁香久久婷婷综合丁香| 日韩黄色精品视频| 深夜福利日韩在线看| 欧美18免费视频| 亚洲娇小娇小娇小| 精品久久久中文| 成年视频在线观看| 台湾成人av|