亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

VisualBasic的未來

2019-11-18 17:52:13
字體:
供稿:網(wǎng)友
VisualBasic的未來
一個版本中將出現(xiàn)的WebForms(Web表單),Webservices(Web服務(wù))和語言的改進(jìn)

本文讀者是已經(jīng)熟悉了VisualBasic的用戶。

概述:下一個版本的MicrosoftVisualBasic主要有以下三方面的改進(jìn):WebForms、Webservices和面向?qū)ο蟮恼Z法方面的改進(jìn)。WebForms使得經(jīng)驗豐富的VisualBasic用戶可以象現(xiàn)在編寫單機程序一樣簡單地開發(fā)網(wǎng)絡(luò)應(yīng)用程序。通過SOAP接口,Webservices讓你在可以聯(lián)網(wǎng)的任何地方配置你所設(shè)計的組件。另外,幾個在面向?qū)ο蟮恼Z言方面的關(guān)鍵性的改進(jìn)使得VisualBasic的代碼象C 一樣具有靈活性,這幾方面的改進(jìn)包括繼承性、多態(tài)性和重載。有關(guān)這方面的內(nèi)容可以參考SteveBallmer的“VBITSkeynoteonthenextgenerationofVisualBasic”

isualBasic已經(jīng)經(jīng)歷了很多次的改進(jìn)。然而從它誕生以來,我就一直喜歡它的一點是:就它的核心而言,你仍然可以象1991年一樣的編寫你的程序。當(dāng)然,和那時相比它的軟件包已經(jīng)有了很大的增強,但是這些改進(jìn)一般是補充性的,并沒有模糊作為編程工具本身具有的目的,這個目的就是:使VisualBasic能更簡單快捷地用于設(shè)計、編寫和調(diào)試出優(yōu)秀的面向?qū)ο蟮膽?yīng)用程序。

當(dāng)前使用的VisualBasic6.0版本引入WebClasses作為一種簡化手段,用于配置健壯的面向網(wǎng)絡(luò)的應(yīng)用程序。事實上,WebClasses提供了大量的途徑可以通過常見的工具把程序移植到網(wǎng)絡(luò)上。(關(guān)于VisualBasic6.0在網(wǎng)絡(luò)下的可伸縮性的詳盡討論可以參見TedPattison的”AdvancedBasicscolumn”(MicrosoftInternetDeveloper于1999年十月出版發(fā)行)

我最近有機會了解到了下一個版本的VisualBasic計劃采取的一些新的改進(jìn)。其中主要的改進(jìn)是在存儲容量方面,開發(fā)者可以使用的存儲容量擴(kuò)大了三倍。下一個版本的VisualBasic計劃將采用VisualStudio®環(huán)境中叫WebForms的特性。WebForms代表著一種全新的組件化的網(wǎng)絡(luò)解決方案。Webservices將成為一種新的基于xml的方案,它通過標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議發(fā)布中間層的事件處理功能。同時,VisualBasic語言將包括一些開發(fā)者長期以來一直要求的結(jié)構(gòu),這使得VisualBasic符合那些C 和java使用者所熟悉的面向?qū)ο蟮木幊塘?xí)慣。

在下一個版本的VisualBasic的測試版中,這些改進(jìn)將會被公布。在這里我會給出一些代碼片斷,但不是完整的方案。那么現(xiàn)在還有什么好擔(dān)心的呢?很簡單,只要你決心利用這些新的功能,你現(xiàn)在就可以通過這些特定的方法來設(shè)計你的程序,得到最好的實踐練習(xí),從而順利地幫助你過渡到下一個版本的VisualBasic。即使你不這么做,只要你按照我在本文末尾所提出的原則去組織你將來的程序,你也不會有什么損失的。

VisualStudioWebForms
VisualBasic的下一個版本將是VisualStudio開發(fā)環(huán)境的一部分,很可能為網(wǎng)絡(luò)開發(fā)者引入WebForm這個新的概念。引進(jìn)WebForm概念的目的是為了擴(kuò)展VisualBasic的隨機存取功能,從而使VisualBasic可以應(yīng)用于影響日益廣泛的網(wǎng)絡(luò)程序的編寫。使用VisualStudio中的任何一種語言的開發(fā)者都可以共享這種VisualStudioWebForms。

一個WebForms頁包括兩部分:實現(xiàn)WebForms頁可視界面的一個HTML文件和處理WebForms頁事件的源文件。既然目前有三分之一基于VisualBasic環(huán)境的開發(fā)是面向網(wǎng)絡(luò),Microsoft計劃進(jìn)一步增強這方面的功能。在下一個版本的VisualBasic中,你可以象現(xiàn)在使用VisualBasic生成表單一樣設(shè)計WebForms。你將擁有一個Web控件工具箱。你可以直接把控件拖放到HTML編輯器中使用,只需要設(shè)置一下它們的特性,編寫一些適當(dāng)?shù)拇a即可。(見Figure1)??偠灾?,你可以象你使用VisualBasic生成表單一樣來做這些工作。你會擁有完全符合IntelliSense®、WYSIWYG格式的表單設(shè)計和編譯過的代碼。所以只要你知道如何使用VisualBasic編寫應(yīng)用程序,WebForms就可以讓你成為一個網(wǎng)絡(luò)開發(fā)者而不用絲毫改變你的工作方式。

Figure1BuildingaWebForminFourSteps

WebForms在服務(wù)器上運行,只把HTML格式的表單傳給用戶。正如ActiveServerPage(asp)一樣,它既不是特定的瀏覽器,當(dāng)然也不是基于WebForm的應(yīng)用程序;但整個過程也是在服務(wù)器上運行。事實上,你正在運行一個程序,它為遠(yuǎn)程用戶生成HTML3.2格式的接口。跟ASP網(wǎng)頁不同,這些代碼是編譯運行而不是解釋的,所以運行速度有明顯的提高。

設(shè)計WebForms的目的是為了同時獲得ASP和WebClass兩者最好的特性。你可以使用VisualStudio家族中的任一種語言來生成WebForms。所以,你可以使用你所掌握的知識來編寫高效的、面向服務(wù)器的網(wǎng)絡(luò)應(yīng)用程序。

Webservices
Webservices是VisualStudio開發(fā)工具系統(tǒng)采取的第二大改進(jìn)。就核心而言,一個Webservices就是一個通過標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議發(fā)布的中間層的事件處理函數(shù)。既然它們使用HTTP作為傳送機制(見Figure2),所以可以通過防火墻進(jìn)行通信。只要合適地分配URL,你可以簡單地在一個網(wǎng)絡(luò)應(yīng)用程序中構(gòu)造多種Webservices。在程序運行時,所有這些內(nèi)部構(gòu)件之間的調(diào)用都會自動打包,通過XML接口進(jìn)行調(diào)用。開發(fā)者可以在任何平臺上、使用任何語言編寫和使用Webservices。如果你需要保密,你可以使用SecureSocketLayer(SSL)或標(biāo)準(zhǔn)校檢技術(shù)。



Figure2WebservicesArchitecture

如果你對這些聽起來開始覺得有點熟悉了,那是一個很好的開始。用于組件之間傳送數(shù)據(jù)的機制是SOAP,即簡單對象許可協(xié)議。DonBox在2000年三月出版的MSDN™Magazine中詳細(xì)的介紹了SOAP。

所有這些新的特性都是為了讓網(wǎng)絡(luò)程序開發(fā)者可以利用已存在的、可再次使用的Webservices進(jìn)行組合,從而可以更快的編寫他們的程序,而不用每次都重頭來編寫它們。這將帶來程序代碼提供者和程序開發(fā)者的新時代。

使用下一個版本的VisualBasic,你很快就可以把一個具體項目中的函數(shù)以Webservice的形式發(fā)布和實現(xiàn)。你也許很熟悉把一個VisualBasic的類定義為public的過程。在下一個版本的VisualBasic中將會有一個新的標(biāo)志,暫時叫作webpublic。這意味著程序?qū)⒆鳛閃ebservice發(fā)布。它不僅僅可以通過COM接口為需要它的當(dāng)?shù)仨椖克?,而且可以為任何引用了它的URL地址的網(wǎng)絡(luò)程序服務(wù)。正如你可以把引用加入到一個新項目中的公共對象中一樣,你也可以把引用加到網(wǎng)絡(luò)程序中,然后象使用當(dāng)?shù)爻绦蛞粯邮褂盟?br>
當(dāng)然,運行機制是有些不同的。VisualBasic能夠通過COM接口對當(dāng)?shù)貙ο蠼馕鲆?。?dāng)你加入一個網(wǎng)絡(luò)服務(wù)的引用到你的應(yīng)用程序中時,遠(yuǎn)程對象將自動生成接口的定義,并使用SOAP協(xié)議發(fā)送到VisualStudio開發(fā)環(huán)境中來。雖然這些將以XML形式產(chǎn)生,但你不用自己做任何連接的工作。VisualBasic將為你自動處理它。在接收到接口定義以后,你就可以使用IntelliSense,如同你已經(jīng)編寫了引用該對象的代碼一樣。

這有一個簡單的例子。在某些場合下,你也許想編寫這個叫Seahawks的函數(shù),它可能和下面這些代碼有點類似:

PublicFunctionSeahawks(ByValopponentAsString)AsString

Seahawks="lose"
EndFunction

如果你構(gòu)造的項目中包括了這個函數(shù),VisualBasic將自動生成關(guān)于這個函數(shù)的XML格式的描述,并把它發(fā)布到網(wǎng)上。

<?xmlversion='1.0'?>

<methodshref='http://julian/Football/Teams'>
<methodname='Seahawks'href='Seahawks'>
<request>
<paramdt='string'>opponent</param>
</request>
<responsedt='string'/>
</method>
</methods>

這個XML文件將用于描述Seahawks函數(shù)。如果你使用的是VisualStudio開發(fā)環(huán)境,你就可以把任何已經(jīng)發(fā)布的Webservice直接拖放到應(yīng)用程序中,創(chuàng)建一個新類。如果你想調(diào)用Internet網(wǎng)上任何地方的Webservice,你只需要創(chuàng)建包含Webservice的類的一個實例,然后就可以調(diào)用它的已發(fā)布的方法。

當(dāng)Seahawks函數(shù)被調(diào)用時,它會通過XML信息包自動通信。如果你使用的是Microsoft®InternetExplorer5.0(包含了XML支持),你可以在你的瀏覽器中試運行該函數(shù)。你也可以如下一樣使用URL地址調(diào)用該函數(shù):

http://julian/webservice1/component1.methods/Seahawks?opponent=Miami

它將返回如下XML格式的數(shù)據(jù):

<?xmlversion="1.0"?>
<Response>lose</Response>

為了方便Webservices的開發(fā),VisualBasic將引入一個新的對象類型,即WebService。你可以象現(xiàn)在創(chuàng)建一個當(dāng)?shù)氐腄LL文件一樣簡單地設(shè)計和發(fā)布你的WebService到遠(yuǎn)程服務(wù)。

語言上的改進(jìn)

長期以來,在喜歡VisualBasic的程序開發(fā)者和喜歡另外一些更“復(fù)雜”的語言的程序員之間的關(guān)系一直都很緊張。我不止一次的為我所最愛的編程語言反駁諸如”玩具語言”之類的控訴,他們認(rèn)為VisualBasic缺乏OOP的特征。

好,那么猜猜發(fā)生了什么?下一個版本的VisualBasic將最終結(jié)束他們的抱怨。Microsoft計劃加入面向?qū)ο缶幊痰娜筇匦裕豪^承性、多態(tài)性和重載。這還不是所有!另外一些結(jié)構(gòu),包括結(jié)構(gòu)化的錯誤處理和瀏覽也將被引入VisualBasic語言。

繼承性的特性允許你設(shè)計一個基類,然后編寫一些派生類,它們繼承基類的功能,這樣做可以節(jié)約時間,并提高程序的可重用性。例如,你編寫了一個名叫BaseClass的基類,它有一個函數(shù):

FunctionGetCustomerName()
'Dosomestuff
EndFunction

現(xiàn)在你想再寫一個類,它可以象調(diào)用本身的函數(shù)一樣調(diào)用基類的GetCustomerName函數(shù)。過去的方法是什么呢?這在過去沒有辦法。然而,現(xiàn)在的新的方法只需在新的類的上面插入如下簡單的一行語句:

InheritsBaseClass
FunctionGetCustomerID()
'Dosomestuff
EndFunction

編寫兩個或更多的名字相同但具有不同標(biāo)識符的函數(shù),這就是重載。在某種程度上,VisualBasic在函數(shù)調(diào)用時對內(nèi)部類型的轉(zhuǎn)換以及屬性的設(shè)置中已經(jīng)實現(xiàn)了重載。比較以下兩行有效的VisualBasic代碼:

Text1.Text="7"
Text1.Text=7

在這兩個調(diào)用中,Text1中的text都將被設(shè)為字符串“7”。這就是重載調(diào)用,因為VisualBasic知道如何處理輸入的不同的數(shù)據(jù)類型。它把它們作為變量處理,并自動進(jìn)行轉(zhuǎn)化。當(dāng)你調(diào)用一些參數(shù)類型有明確定義的函數(shù)時,VisualBasic也會作同樣的轉(zhuǎn)化。下面的兩個函數(shù)調(diào)用:

a=SetVal("This")
a=SetVal(7)

都可以正確調(diào)用以下函數(shù):

FunctionSetVal(xAsString)
Form1.Text1.Text=x
EndFunction

既然VisualBasic已經(jīng)可以傳送多種不同的變量類型,為什么還需要重載功能呢?這是因為雖然目前單獨的一個函數(shù)已經(jīng)可以處理多種數(shù)據(jù)類型,它不能根據(jù)傳入的不同的數(shù)據(jù)類型產(chǎn)生不同的動作。相反的,比較以下兩個函數(shù):

FunctionGetCustomerID(custnameasstring)AsInteger

'LookupcustomerIDbasedoncustomername
EndFunction

FunctionGetCustomerID(purchaslong)AsInteger
'LookupcustomerIDbasedonpurchaSEOrder
EndFunction

通過重載,你可以根據(jù)輸入的數(shù)據(jù)類型來實現(xiàn)函數(shù)。這對于下一個版本的VisualBasic是很重要的,因為它具有一個新的特性――缺省數(shù)據(jù)類型保護(hù)。一般來說變量的自動轉(zhuǎn)換是有利的,但可以想到有時也會給你帶來麻煩。例如在前面的SetVal的例子中,如果你要傳送的是字符7而不是字符串“7”,那會發(fā)生什么情況呢?下一個版本的VisualBasic將會自動捕獲這個錯誤。(如果你的代碼是基于VisualBasic以前的無類型識別的功能,這個特性會被禁用)

最后,多態(tài)性是對已定義的類的再定義過程。例如,你想寫一個BaseClass類的派生類,但你想重新改寫GetCustomerName函數(shù)。在下一個版本的VisualBasic中,你可以用類似以下這種新方法來實現(xiàn)這種類的定義:(注意:最終的語法取決于正式的版本)

InheritsBaseClass
FunctionGetOrders()
OverridesFunctionGetOrders()
•••
EndFunction

更多的語法特性

下一個版本的VisualBasic可能不僅僅只有我以上提到的那些有關(guān)面向?qū)ο蠓矫娴母倪M(jìn)。對于scalability和可重用性而言,還有一些線程生成、錯誤處理和許多長期以來一直被期待著的新的改進(jìn)。

目前,VisualBasic支持apartment-threaded模型。雖然這種模型為應(yīng)用程序的開發(fā)提供了真正的高效率,但它還不夠理想。下一個版本的VisualBasic將在這方面有所改進(jìn)。它采用freethreaded模型,這在編寫scalable的網(wǎng)絡(luò)應(yīng)用程序時將很有用處。VisualBasic還將包括一些語法結(jié)構(gòu),你可以用來產(chǎn)生多線程。典型的線程發(fā)生操作如下所示:

sett=NewThread(NewThreadstart
(AddressOf(BaseClass.Function1))

從這個例子中,可以看到下一個版本的VisualBasic有AddressOf結(jié)構(gòu),用它來返回函數(shù)的地址。你不再被迫跳過那些需要函數(shù)指針的API函數(shù)了!如果你需要返回調(diào)用,你可以利用它來做到這一點。

計劃中的另一項改進(jìn)是結(jié)構(gòu)化的出錯處理。不久以前,VisualBasic還要求你在代碼中插入大量的OnError聲明。多年以來,我一直對插入如此多的GOTO語句感到不安。這些語句一再告誡我不要再使用它們!現(xiàn)在讓我們來面對這個問題――我們需要一種出錯處理機制。

下一個版本的VisualBasic采用集中處理出錯的方式。VisualBasic將象那些“高尚的”語言一樣支持try...catch...finally結(jié)構(gòu)。你可以在你的代碼的頂端放置一個包含有出錯處理的子程序。這里是實現(xiàn)出錯處理的一個例子:

SubSafeWrite()
Try
Open"Testfile"
•••
Write#1
Catch
Kill"Testfile"
Finally
Close#1
EndTry
EndSub

還有一些其他方面令人激動的改進(jìn),現(xiàn)在的VisualBasic的使用者將會逐漸熟悉它們。在下一個版本的VisualBasic中,你可以在變量聲明的同時對變量進(jìn)行初始化:

Dimaasinteger=10

你也可以在一個表達(dá)式中建立和初始化一個新的對象。你也可以通過類來共享變量。最后,但不僅僅如此,繼承的概念擴(kuò)展到了項目的用戶界面的基礎(chǔ)。關(guān)于VisualBasic的一個具有代表性的觀點是它很難在相同的基礎(chǔ)上創(chuàng)建多種不同的表單。(在聯(lián)合開發(fā)的環(huán)境中,通常有這種要求)。在下一個版本的VisualBasic中,你可以通過模板類型來實現(xiàn)。

多年以來,人們一直期待著這些改進(jìn),這是為什么呢?讓我們來看看。VisualBasic的通信(在這方面我已經(jīng)從事了將近十二年)變得越來越復(fù)雜,遠(yuǎn)遠(yuǎn)超過1991年的第一版。VisualBasic早期最初用于小型的便攜式的工具樣機的快速設(shè)計和開發(fā)。結(jié)果,VisualBasic獲得了“玩具語言”的名聲(在我看來,這是意料之外的)?,F(xiàn)在它顯然不再是玩具了,再這么說的人就是出于一種盲目的偏見了?,F(xiàn)在各個領(lǐng)域都有大量的基于VisualBasic的軟件包。VisualBasic正在發(fā)展著。去年,在中心研究所,我和一個軟件開發(fā)者進(jìn)行了交談,他使用Web-Class編寫的程序每星期接受上百萬次的點擊。

下一個版本的VisualBasic所發(fā)生的變化是令人驚喜的。如果你想獲得它們所帶來的那些好處,那就使用它們。如果你不想,你可以理直氣壯的使用你目前仍然使用的。然而,了解在象VisualBasic這種比C 和Java容易使用的多的語言中,也可以實現(xiàn)C 和Java所實現(xiàn)的功能,是有好處的。

未來的發(fā)展趨勢

這種預(yù)覽式的介紹你留下了什么樣的印象呢?這個問題問得很好,但是你可以找到問題的答案。在過去的一年中,可以明顯的看到ASP開發(fā)的變化,這些開發(fā)程序常常由一些易讀的ASP腳本組成,在這些腳本的基礎(chǔ)上運行整個程序。由于ASP是對整個腳本代碼進(jìn)行解釋執(zhí)行的,在對各組件進(jìn)行組裝時,人們逐漸發(fā)現(xiàn)這種技術(shù)的固有的局限性。我聽到越來越多的開發(fā)者說,他們要把他們的事件處理函數(shù)從腳本代碼中完全脫離出來,放在更快捷的編譯方式的模型下實現(xiàn),這些模型用C++或VisualBasic編寫,通過COM接口進(jìn)行組裝。

對于你所能想到的各種理由,VisualBasic都是能夠滿足的。使用VisualBasic來設(shè)計組件實際上并不比使用VBScript或JScript®困難多少。你可以編寫執(zhí)行起來更快的代碼,并且很容易就能達(dá)到你的要求。當(dāng)下一個版本的VisualBasic發(fā)布后,你可以使用VisualBasic來生成面向網(wǎng)絡(luò)的對象,這種對象和ASP兼容??傊?,走組件組合的路線不管是現(xiàn)在還是將來都會被認(rèn)為是最好的選擇。

正如我前面時候提到的那樣,使用VisualBasic(和WebClasses)編寫的面向Internet的應(yīng)用程序已經(jīng)有很廣泛的基礎(chǔ)。問題是,大部分的基于WebClasses的應(yīng)用程序并沒有經(jīng)過很好的設(shè)計。它們沒有很好地區(qū)分應(yīng)用程序的不同的層次,把中間層的過程和基于DHTML的用戶界面混淆了。

下一個版本的VisualBasic將引入WebClasses,它是經(jīng)過精心挑選后確定的網(wǎng)絡(luò)開發(fā)的工具。因為它更具有scalable、更強大、而且是真正的language-agnostic。它在VisualStudio的所有的工具中起作用。如果你注意多層開發(fā)的一些基本規(guī)則,你可以很容易地完成這個轉(zhuǎn)變。特別要注意,把中間層過程和顯示層過程分開。強烈推薦在做這些工作時,參考Windows®DNA2000的體系結(jié)構(gòu)。核心的事件處理功能必需在中間層完成,你可以使用各種你所喜歡的編譯語言編寫的用于實現(xiàn)這些功能的各個組件。然后,這些組件組裝在一個ASP腳本文件中,這樣各組件就可以協(xié)同工作了。如果你把大部分的邏輯運算放在事件對象中而不是腳本中的話,那就是最理想的了。它不僅對將來向Webservices轉(zhuǎn)變是一個好的主意,它也是一種值得效仿的實踐。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲成人黄色影院| 久99久精品视频免费观看| 欧美区二区三区| 成人动漫视频在线观看完整版| 麻豆精品国产传媒mv男同| 免费的黄色av| 在线人体午夜视频| 精品香蕉一区二区三区| 亚洲av片不卡无码久久| 影院欧美亚洲| 四虎成人欧美精品在永久在线| 一区二区三区黄色片| 午夜精品爽啪视频| 一本大道一区二区三区| 成人精品视频久久久久| 成人免费区一区二区三区| 手机在线国产视频| 野战少妇38p| 欧美视频在线免费播放| 日本黄在线观看| 色老太综合网| 色天天久久综合婷婷女18| 黄色网在线免费观看| 91久久国产精品| 奇米888一区二区三区| 国产在线精品一区二区中文| 欧美大片拔萝卜| 国产乱码精品一区二区三| 日本不卡视频一二三区| 亚洲国产精品一区二区久久| 日韩欧美亚洲一区二区三区| 国产又白又嫩又紧又爽18p| 国产精品蜜臀| 国产又粗又猛又爽又黄的网站| 在线观看日本中文字幕| 国产白袜脚足j棉袜在线观看| 成人精品一区二区| 国产69精品一区二区亚洲孕妇| 国产91视频在线| 26uuu色噜噜精品一区二区| 蜜桃视频在线播放| 女厕嘘嘘一区二区在线播放| 久久在线91| 伪装者免费全集在线观看| 麻豆资源在线| 伊人久久成人| 欧美影院在线播放| 香蕉综合视频| 91精品国产高清自在线看超| 成人免费看片载| www在线看| 国产日韩欧美中文在线播放| 国产日韩v精品一区二区| 欧美一区二区三区网站| 芬兰videosfree性少妇| 久久久久久噜噜噜久久久精品| 国产成a人亚洲精v品在线观看| 亚洲高清影视| 玖玖在线免费视频| 桃花视频大全不卡免费观看网站| 欧美激情精品久久久久久蜜臀| 麻豆精品99| 日本成人在线电影网| 国产精品一线二线三线| 欧美成aaa人片在线观看蜜臀| 欧美一区高清| 国产精品初高中害羞小美女文| 欧美三级日本三级少妇99| 黄色免费网站在线| 国产精品27p| 岛国视频一区| 国产av自拍一区| 成人国产精品一区二区| 日本a在线天堂| 久草在线资源视频在线观看| 麻豆视频一区二区| 丝袜美腿亚洲一区二区图片| 在线a人片免费观看视频| 国产aⅴ爽av久久久久成人| 国产美女在线看| 久久久久久久久久久99| 欧美激情视频一区二区三区不卡| 四色最新网址| 日韩精品电影| 国产亚洲精品免费| av天堂一区二区| 九色国产蝌蚪视频| 黄色一级大片在线免费看产| 久久香蕉精品视频| 亚洲精品.com| 成年人免费观看视频网站| 欧美久久久久久久久中文字幕| 狠狠色狠狠色综合婷婷tag| 日批在线观看视频| 国产午夜精品一区二区三区欧美| 亚洲午夜精品一区 二区 三区| 成人av色在线观看| 在线精品高清中文字幕| 国产伦精品一区二区三区视频免费| 伊人久久综合一区二区| 羞羞影院体验区| 蜜桃av久久久亚洲精品| 日韩妆和欧美的一区二区| 亚洲精品久久久久久一区二区| 精品国产凹凸成av人导航| 国产精品久久久久久久妇| 不卡影院免费观看| 精品剧情v国产在线观看在线| 97人妻精品一区二区免费| 亚洲午夜一区二区三区| 另类综合图区| 亚洲综合日本| 亚洲成年人在线| 黑人一区二区三区四区五区| 日本va欧美va精品发布| 最近中文字幕mv2018在线高清| 久久综合成人网| 久久精品人人做人人爽97| 国产福利一区二区精品秒拍| 小小影院久久| 无码人妻丰满熟妇区96| 日韩综合小视频| 九九九九九伊人| 最新中文字幕免费视频| 亚洲电影中文字幕| 日本黄色三级视频| 亚洲国产视频二区| 日韩专区在线观看| 四虎永久在线精品| 国产精品视频一区二区三区| www.国产成人| 亚洲中无吗在线| 天天操天天操天天操天天| 中文字幕制服丝袜成人av| 中文字幕人成人乱码亚洲电影| 国产一区二区0| 国产精品久久久久久一区二区| 91在线观看一区二区| a√免费观看在线网址www| 91高清免费看| 国产精品一级黄片| 亚洲国产日韩在线一区模特| 天天舔夜夜操| 中国xxxx自拍视频| 色综合久久中文综合久久97| 日韩精品在线中文字幕| 亚洲欧美自拍另类| 欧美精品福利在线| 午夜黄色福利视频| 91久久精品一区二区| 精品综合久久88少妇激情| 免费av一区二区| 欧美日韩一二三四五区| 欧美不卡高清一区二区三区| 亚洲av人无码激艳猛片服务器| 国产微拍精品一区| 国产喷水theporn| 国产大屁股喷水视频在线观看| 97在线观看免费高| 韩国av一区二区三区在线观看| 豆国产97在线| 免费人成年激情视频在线观看| 97久久精品人人澡人人爽缅北| 亚洲一区日韩精品| 亚洲永久精品一区| 人交獸av完整版在线观看| 亚洲精品视频网址| 亚洲一卡二卡在线观看| 精品人妻少妇一区二区| 四虎网站在线观看| 久草亚洲一区| 91精品一区二区三区四区| 欧美日韩一二三| 欧美特黄一区二区三区| 男人资源在线播放| 国产盗摄在线视频网站| 波多野结衣一二三四区| 视频在线观看免费影院欧美meiju| 国产videos久久| 91久久国产精品| 精品人妻av一区二区三区| 夜夜操天天操亚洲| 亚洲天堂一二三| 全国精品久久少妇| 中文字幕在线二区| 国产无遮挡裸体视频在线观看| 成人噜噜噜噜| 欧美成人a交片免费看| 美女免费视频一区| 色偷偷偷综合中文字幕;dd| www.国产精品视频| 国产综合激情| 日本sm极度另类视频| 午夜成人免费电影| www亚洲一区| 91成人精品观看| 欧美一卡2卡3卡4卡| 亚洲大片在线观看| 国产福利久久| 男人的天堂一区| 日本在线影院| 欧美视频免费| 精品国产一区二区三区在线| 亚洲精品免费在线观看视频| 久久精品日韩| 国产三级日本三级在线播放| 青青青青久久精品国产一百度| 日韩av黄色网址| 国产原创欧美精品| 麻豆极品一区二区三区| 久久久久久91亚洲精品中文字幕| h精品动漫在线观看| 男人的天堂avav| 国产精品白浆流出视频| 麻豆一区在线| 婷婷激情综合| 欧美videos极品另类| 一本一本久久a久久精品综合小说| 欧美日韩电影在线播放| 日韩美脚连裤袜丝袜在线| www.超碰在线.com| 天堂蜜桃一区二区三区| 欧美一区欧美二区| www.日韩大片| 激情文学综合丁香| 国产在线免费看| 免费成人在线看| 国产免费成人在线| 成人h动漫精品一区| 美女福利视频导航| 久久久久亚洲av成人毛片韩| 天天操天天怕| 欧美丝袜第三区| 男人晚上看的视频| 国产精品美女久久久久aⅴ国产馆| 欧美电影在线观看网站| 三上悠亚亚洲一区| 五月激情六月综合| 成人自拍视频在线| 日韩高清有码在线| 久久综合久中文字幕青草| 自拍偷拍亚洲天堂| 成人妇女淫片aaaa视频| 久久久国产一级片| 亚洲精华液一区二区三区| 欧美精品乱码视频一二专区| 日本一区免费在线观看| 久久精品国产亚洲AV成人婷婷| 国产又爽又黄无码无遮挡在线观看| 国产精品99一区二区三| 爆乳熟妇一区二区三区霸乳| 国产日韩在线视频| freehdxxxx护士| 一级黄色片在线播放| 欧美自拍视频在线| 欧美午夜精品久久久久久超碰| 中文字幕欧美日韩一区| 亚洲日本成人在线观看| 欧美日韩国产电影| 欧美体内she精视频在线观看| 91国产丝袜播放在线| 久久精品99久久无色码中文字幕| 国产精品最新乱视频二区| 香蕉久久久久久久| 亚州精品国产精品乱码不99按摩| 国产在线一区二区三区欧美| 国产精品香蕉视屏| 91牛牛免费视频| 久久久亚洲欧洲日产国码αv| 午夜在线视频观看| 在线视频亚洲欧美| 国产剧情精品在线| 亚洲午夜久久久久久久久红桃| 国产v综合v亚洲欧| 91香蕉在线观看| 国内精品伊人| 久久久久久欧美精品se一二三四| 亚洲精品大全| 精品人妻一区二区三区四区不卡| 日日夜夜精品视频免费| 九色精品美女在线| 国产午夜视频在线观看| 亚洲一区二区精品3399| 亚洲黄色有码视频| 日韩视频在线免费播放| 最新av番号| 高清中文字幕一区二区三区| 国产高清一区视频| 精品国产美女| 制服丝袜av在线| 91黄色免费版| 欧美捆绑视频| 2023av在线| h视频免费在线| 国产精品成人一区| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲婷婷在线观看| 91福利在线视频| 伊大人久久香线焦宗合一75大| 欧美日韩在线视频免费观看| 欧美精品网站| 中文字幕视频在线免费观看| 欧美77777免费视频| 97精品人妻一区二区三区在线| 欧美在线观看你懂的| 中文字幕在线观看一区| 国产黄色网页| 亚州成人av在线| 久久视频一区二区| 亚洲精品一级二级三级| 亚洲三级视频网站| 久久视频这里只有精品| 国产亚洲精品久久飘花| 一区二区三区视频在线观看视频| 啊灬啊灬啊灬啊灬高潮在线看| 精品一区二区三区的国产在线观看| 首页国产欧美久久| 亚洲精品视频在线| 69av自拍偷拍| 欧美v亚洲v| 国产激情一区二区三区在线观看| 99国产精品久久久久久久久久| 日韩成人在线视频网站| 看片一区二区| 亚洲人成人99网站| 五码日韩精品一区二区三区视频| 精品国产91乱高清在线观看| 国产99久久九九精品无码免费|