国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

開發 前端
今天微軟開發團隊宣布發布.NET 5.0正式版。主要更新包括C#9和F#5在內的一系列新功能和改進。

今日是一年一度光棍節,首先祝各位碼農朋友們節日快樂,在關注技術的同時也要同時關注另一半,爭取早日脫單,今天不過節,只專心于技術!

[[351736]]

今天微軟開發團隊宣布發布.NET 5.0正式版。主要更新包括C#9和F#5在內的一系列新功能和改進。同期發布了ASP.NET Core,EF Core,C#9和F#5。可以在官方下載頁面下載跨平臺包括Windows,macOS和Linux和跨處理架構包括x86,x64,Arm32,Arm64。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

Windows Visual Studio用戶,需要Visual Studio 16.8或更高版本才能支持.NET 5.0,在macOS用戶,需要 Visual Studio for Mac的最新版本。VS Code的C#插件已經完全支持.NET 5.0和C#9。

一、.NET 5.0亮點

帶來了大量的功能改進,其中最亮眼的是:

  • .NET 5.0已通過在dot.net和Bing()上托管,進行了數月來的測試。性能和穩定性上有很大的提高。
  • C#9和F#5 帶了新的語言改進,例如C#9的Top-level編程和記錄,F#5提供了交互式編程,并提高了.NET上的功能性編程的性能。
  • .NET庫方面增強了Json序列化,正則表達式和HTTP(HTTP 1.1,HTTP/2)的性能。
  • 由于改進了GC,分層編譯和其他方面,P95延遲有所減少。
  • 通過ClickOnce客戶端應用程序發布,單文件應用程序,減小的容器映像大小以及添加的Server Core容器映像,應用程序部署選項更好。
  • Windows Arm64和WebAssembly擴展了平臺范圍。

1. 跨平臺和Microsoft支持

.NET 5.0有一個和.NET 3.1幾乎相同的平臺支持矩陣核心,適用于Windows,MacOS和Linux操作系統。如果操作系統支持使用.NET Core 3.1,則大多數情況下應該可以升級使用.NET 5.0。.NET 5.0最重要的新增功能是Windows Arm64。

.NET 5.0發布三個月后,會發布一個LTS版本.NET 6.0,.NET5.0技術支持會持續到2022年2月中。.NET6.0技術支持期為三年。

.NET 5.0是微軟第一個統一平臺愿景的實現版本,可以使用一組API,語言和工具來針對廣泛的應用程序類型,包括移動,云,桌面和IoT。

實現這一愿景的第一步是整合.NET倉庫,其中包括很大一部分的Mono。為.NET運行庫和庫提供一個存儲庫是在各處交付相同產品的前提。它還有助于進行廣泛的更改,這些更改會影響運行時和庫,這些存儲庫以前具有回購邊界。有些人擔心大型回購交易將更難管理。事實并非如此。

在.NET 5.0版本中,Blazor是利用回購合并和.NET統一的最佳示例。Blazor WebAssembly的運行時和庫現在是從合并的dotnet /運行時庫中構建的。服務器上的Blazor WebAssembly和Blazor使用完全相同的代碼。

2. 語言功能

作為.NET 5.0版本的一部分,C#9和F#5被包含在.NET 5.0 SDK中。Visual SDK也包含在5.0 SDK中。它不包括語言更改,但做了改進以支持.NET Core上的Visual Basic應用程序框架。

3. Top-level編程

Top-level編程是C#9中新推出的功能,下面一個led燈控制的演示程序,是官方Top-level編程的示例:

  1. using System; 
  2. using System.Device.Gpio; 
  3. using System.Threading; 
  4.  
  5.  
  6. var pin = 18
  7. var lightTime = 1000
  8. var dimTime = 200
  9.  
  10.  
  11. Console.WriteLine($"Let's blink an LED!"); 
  12. using GpioController controller = new (); 
  13. controller.OpenPin(pin, PinMode.Output); 
  14. Console.WriteLine($"GPIO pin enabled for use: {pin}"); 
  15.  
  16.  
  17. // turn LED on and off 
  18. while (true) 
  19. Console.WriteLine($"Light for {lightTime}ms"); 
  20. controller.Write(pin, PinValue.High); 
  21. Thread.Sleep(lightTime); 
  22.  
  23.  
  24. Console.WriteLine($"Dim for {dimTime}ms"); 
  25. controller.Write(pin, PinValue.Low); 
  26. Thread.Sleep(dimTime); 

從示例中可以看到target-typed的使用以及new對controller變量的分配。GpioController類型在定義等式左側所定義。而類型是在右側推斷的。該新語法是得替代傳統的var方法。

通過定義方法并利用同一文件或其他文件中定義的類型,Top-level編程還可能更加復雜。

4. 邏輯和屬性模式

C#9包括對新模式的支持。下面的CCS811氣體傳感器程序是邏輯模式的示例:

  1. var threshChoice = Console.ReadKey(); 
  2. Console.WriteLine(); 
  3. if (threshChoice.KeyChar is 'Y' or 'y') 
  4. TestThresholdAndInterrupt(ccs811); 

另一個新模式是屬性模式。可以在Mycroft Information Access 6.0示例中看到幾個屬性檢查。在下面的代碼是從所拍攝的PN532 RFID和NFC讀取器示例:

  1. if (pollingType is not { Length: <=15 }) 
  2. return null; 

該代碼測試pollingType是否為null或包含>15個字節。用來作為返回之前要測試的兩個錯誤條件。測試條件可以寫:

  1. byte[]?nullpollingType is null or { Length: > 15 } 

另外兩種模式。第一個是邏輯圖形中Mcp25xxx CAN總線。

  1. public static byte GetRxBufferNumber(Address address) => address switch 
  2. >= Address.RxB0D0 and <Address.RxB0D7 => 0, 
  3. >= Address.RxB1D0 and <Address.RxB1D7 => 1, 
  4. _ => throw new ArgumentException(nameof(address), $"Invalid address value {address}."), 
  5. }; 

第二個是一個邏輯模式在壓電蜂鳴器控制器。

  1. if (element is not NoteElement noteElement) 
  2. // In case it's a pause element we have only just wait desired time. 
  3. Thread.Sleep(durationInMilliseconds); 
  4. else 
  5. var frequency = GetFrequency(noteElement.Note, noteElement.Octave); 
  6. _buzzer.PlayTone(frequency, (int)(durationInMilliseconds * 0.7)); 
  7. Thread.Sleep((int)(durationInMilliseconds * 0.3)); 

5. 記錄

C#9包括一種稱為記錄的新型類。與常規類相比,它具有許多優點,其中一半與更簡潔的語法有關。在下面的記錄是Bh1745 RGB傳感器的示例:

  1. public record ChannelCompensationMultipliers(double Red, double Green, double Blue, double Clear); 

可以這樣給其賦值:

  1. ChannelCompensationMultipliers = new (2.2, 1.0, 1.8, 10.0); 

6. 可空斷言改進

.NET庫現在已完全支持可空斷言。如果啟用可空性,將從平臺上獲取更多類型信息。

大類通常在從構造函數調用的幫助器方法中實例化對象成員。C#編譯器無法遵循對對象分配的調用流程。退出構造函數時,它會認為該成員為null,并使用發出警告CS8618。MemberNotNull屬性可解決此問題。該屬性應用于助手方法。然后,編譯器將看到設置了該值,并意識到該方法是從構造函數中調用的。

下面是一個在BMxx80溫度傳感器中的示例:

  1. [MemberNotNull(nameof(_calibrationData))] 
  2. private void ReadCalibrationData() 
  3. switch (this) 
  4. case Bme280 _: 
  5. _calibrationData = new Bme280CalibrationData(); 
  6. _controlRegister = (byte)Bmx280Register.CTRL_MEAS; 
  7. break; 
  8. case Bmp280 _: 
  9. _calibrationData = new Bmp280CalibrationData(); 
  10. _controlRegister = (byte)Bmx280Register.CTRL_MEAS; 
  11. break; 
  12. case Bme680 _: 
  13. _calibrationData = new Bme680CalibrationData(); 
  14. _controlRegister = (byte)Bme680Register.CTRL_MEAS; 
  15. break; 
  16. default: 
  17. throw new Exception("Bmxx80 device not correctly configured. Could not find calibraton data."); 
  18.  
  19.  
  20. _calibrationData.ReadFromDevice(this); 

實際的代碼中使用了條件編譯。因為項目是多目標的,并且.NET 5.0+僅支持此屬性。使用該屬性可以跳過運行時檢查(在構造函數中)。

7. 應用部署

編寫或更新應用程序后,需要對其進行以使用戶受益。這可能是到Web服務器,云服務或客戶端計算機的,并且可能是使用Azure DevOps或GitHub Actions之類的服務的CI/CD流的結果。

.NET 5.0,專注于改進單個文件應用程序,減小docker多階段構建的容器大小,并為使用.NET Core部署ClickOnce應用程序提供更好的支持。

8. 容器

容器是最重要的云趨勢,.NET軟件堆棧的多個級別以多種方式對容器進行支持。首先是在基礎方面的支持,這越來越受到容器方案和部署容器化應用程序的開發人員的影響。

為和容器協調器的合作變得更加容易。添加了OpenTelemetry支持,以便可以從應用程序中捕獲分布式跟蹤和指標。dotnet-monitor是一個新工具,旨在作為從.NET進程訪問診斷信息的主要方法。特別是,已經開始構建dotnet-monitor的容器變體,可以將其用作應用程序sidecar。還在構建dotnet/tye,以提高微服務開發人員在開發和部署到Kubernetes環境中的生產率。

.NET運行時現在支持cgroup v2,預計它將在2020年以后成為與容器相關的重要API。Docker當前使用cgroup v1(.NET已經支持)。相比之下,cgroup v2比cgroup v1更簡單,更高效,更安全。Linux發行版和容器運行時正在。一旦變得更常見,.NET 5.0將在cgroup v2環境中正常工作。

除了Nano Server,還將發布Windows Server Core鏡像。該鏡像支持以下組合:Windows Server 2019長期服務通道(LTSC)、. NET 5.0和x64。還有其他更改,以減小Windows Server Core鏡像的大小。

作為使用" .NET"作為產品名稱的一部分,現在將.NET Core 2.1、3.1和.NET 5.0鏡像發布到repos系列。同.NET Core 2.1和3.1一起發布,同時支持多版本。.NET 5.0鏡像將發布到新位置。請相應地更新您的語句和腳本。

作為.NET 5.0的一部分,將SDK映像重新建立在ASP.NET鏡像之上,而不是buildpack-deps,以顯著減小在多階段構建方案中提取的聚合映像的大小。

Ubuntu 20.04 Focal 多階段構建成本:

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

下載節省量:100 MB(-30%)

Debian 10 Buster 多階段構建成本:

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

凈下載節省量:146 MB(-40%)

對Alpine和Nano Server進行了類似的更改。Alpine或Nano Server沒有任何buildpack-depssdk鏡像。對于多階段構建,將看到Alpine和Nano Server以及5.0的巨大成功。

9. 單文件應用

單個文件應用程序作為單個文件發布和部署。該應用程序及其依賴項都包含在該文件中。當應用程序運行時,依賴項直接從該文件加載到內存中(不影響性能)。

在.NET 5.0中,單個文件應用程序主要集中在Linux上(稍后再介紹)。它們可以是框架相關的,也可以是獨立的。依賴于全局安裝的.NET運行時,依賴于框架的單個文件應用程序可能很小。自包含的單文件應用程序較大(由于帶有運行時),但不需要作為安裝前步驟就安裝.NET運行時,因此可以正常工作。通常,依賴框架對開發和企業環境有利,而對于ISV,獨立包含通常是更好的選擇。

在所有平臺上,都有一個名為" apphost"的組件。這是成為可執行文件的文件,例如在Windows上或myapp.exe./myapp在基于Unix的平臺上。對于單文件應用程序,創建了一個新的應用程序主機"超級主機"。它具有與常規apphost相同的角色,但還包含運行時的靜態鏈接副本。超級主機是單文件方法的基本設計點。該模型是在帶有.NET 5.0的Linux上使用的模型。由于各種操作系統限制,無法在Windows或macOS上實現此方法。在Windows或macOS上沒有超級主機。在這些操作系統上,本機運行時二進制文件(約3個)位于單個文件應用程序旁邊(導致"不是單個文件")。

框架相關的單文件應用程序:

  1. dotnet publish -r linux-x64 --self-contained false /p:PublishSingleFile=true 

自包含的單文件應用程序:

  1. dotnet publish -r linux-x64 --self-contained true /p:PublishSingleFile=true 

還可以使用項目文件配置單個文件發布。

  1. <Project Sdk="Microsoft.NET.Sdk"> 
  2.  
  3.  
  4. <PropertyGroup> 
  5. <OutputType>Exe</OutputType> 
  6. <TargetFramework>net5.0</TargetFramework> 
  7. <!-- The OS and CPU type you are targeting --> 
  8. <RuntimeIdentifier>linux-x64</RuntimeIdentifier> 
  9. <!-- Determine self-contained or framework-dependent --> 
  10. <SelfContained>true</SelfContained> 
  11. <!-- Enable single file --> 
  12. <PublishSingleFile>true</PublishSingleFile> 
  13. </PropertyGroup> 
  14.  
  15.  
  16. </Project> 

10. ClickOnce

ClickOnce一直是流行的.NET部署選項。.NET Core 3.1和.NET 5.0 Windows應用程序現在支持它。在.NET Core 3.0添加Windows Forms和WPF支持時,許多人會希望使用ClickOnce進行應用程序部署。在過去的一年中,.NET和Visual Studio團隊共同努力,以在命令行和Visual Studio中啟用ClickOnce發布:

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

目前支持的主要部署模型是框架相關的應用程序。對.NET桌面運行時(即包含WPF和Windows窗體的運行時)的依賴很容易。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

Mage的最大變化是它現在是在NuGet上分發的.NET工具。這意味著不需要在計算機上安裝任何特殊的東西,只需要.NET 5.0 SDK就可以將Mage安裝為.NET工具。也可以使用它來發布.NET Framework應用程序,但是,SHA1簽名和部分信任支持已被刪除。Mage安裝命令如下:

  1. dotnet tool install -g Microsoft.DotNet.Mage 

制作并分發ClickOnce安裝程序后,用戶將看到熟悉的ClickOnce安裝對話框。

二、工具改善

新改進了Windows窗體設計器,更改了目標框架適用于.NET 5.0及更高版本的方式,更改了WinRT的支持方式,并進行了其他改進。

1. Windows窗體設計器

Windows Forms設計器(用于.NET Core 3.1和.NET 5.0)已經在Visual Studio 16.8中進行了更新,現在支持所有Windows Forms控件。它還支持WinForms控件的Telerik UI。設計器包括期望的所有設計器功能,包括:拖放,選擇,移動和調整大小,剪切/復制/粘貼/刪除控件,與屬性窗口集成,事件生成等。數據綁定和對更廣泛的第三方控件的支持即將推出。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

2. .NET 5.0目標框架

新版本更改了用于目標框架的方法。以下項目文件演示了新的.NET 5.0目標框架。

  1. <Project Sdk="Microsoft.NET.Sdk"> 
  2.  
  3. <PropertyGroup> 
  4.  
  5. <OutputType>Exe</OutputType> 
  6.  
  7. <TargetFramework>net5.0</TargetFramework> 
  8.  
  9. </PropertyGroup> 
  10.  
  11. </Project> 

到目前為止,新表單比目前使用的樣式更緊湊,更直觀。另外,正在擴展目標框架以描述操作系統依賴性。

Windows桌面API(包括Windows窗體,WPF和WinRT)僅在net5.0-windows可用??梢灾付ú僮飨到y版本,例如net5.0-windows7或net5.0-windows10.0.17763.0。如果要使用WinRT API,則需要為Windows 10版本。

使用新的net5.0-windows TFM時,跨平臺方案可能會更具挑戰性。如果您要避免為Windows構建或避免在Linux上提取Windows運行時程序包,

3. WinRT Interop(重大更改)

Windows API主題上,已移至一個新模型,以作為.NET 5.0的一部分來支持WinRT API。包括調用API(在任一方向上;CLR <==> WinRT),兩個類型系統之間的數據封送處理以及打算在類型系統或ABI邊界上統一對待。

在.NET 5.0中現有的WinRT互操作體系已被去除,這是一個巨大的變化。這意味著使用WinRT和.NET Core 3.x的應用程序和庫將需要重建,并且不能按原樣在.NET 5.0上運行。使用WinRT API的庫將需要多目標來管理.NET Core 3.1和.NET 5.0之間的這種差異。

未來,將依靠Windows中的WinRT團隊提供的新CsWinRT工具。它生成基于C#的WinRT互操作程序集,可以通過NuGet交付該程序集。Windows團隊正是針對Windows中的WinRT API所做的。希望將WinRT(在Windows上)用作互操作系統的任何人都可以使用該工具,以將本機API公開給.NET或將.NET API公開給本機代碼。

CsWinRT工具在邏輯上類似于TLBIMP和tlbexp,雖然好多了。tlb工具依賴于.NET運行時中的許多COM互操作管道。CsWinRT工具僅依賴于公共.NET API。就是說,C#9中的函數指針功能(部分在.NET 5.0運行時中實現)在某種程度上受到CsWinRT工具需求的啟發。

這種新的WinRT互操作模型有幾個好處:

  • 可以獨立于.NET運行時進行開發和改進。
  • 它與為其他操作系統(如iOS和Android)提供的基于工具的互操作系統對稱。
  • 該工具可以利用其他.NET功能(AOT,C#功能,IL鏈接),而以前的系統則不提供該功能。
  • 簡化.NET運行時代碼庫。
  • 無需添加NuGet引用即可使用WinRT API。對于indows 10 TFM(在前面的.NET 5.0 TFM部分中已經討論過)就足夠了。如果目標是.NET Core 3.1或更早版本,則需要引用WinRT軟件包。

4. 本機導出

已經為導出本機二進制文件啟用導出,而本機二進制文件在很長一段時間內都已調用.NET代碼。該方案的構建塊是對UnmanagedCallersOnlyAttribute的。

.NET Native導出項目支持:

  • 公開自定義的本地出口。
  • 不需要像COM這樣的高級互操作技術。
  • 跨平臺工作。

5. 事件管道

事件管道是在.NET Core 2.2中添加的新的系統和API,可以在任何操作系統上執行性能和其他診斷調查。在.NET 5.0中,事件管道已得到擴展,以使事件探查器能夠寫入事件管道事件。對于以前依靠ETW(在Windows上)監視應用程序行為和性能的分析探查器,此方案至關重要。

新版本中可以通過事件管道獲得程序集加載信息。這項改進是開始提供類似的診斷功能(作為.NET Framework的一部分)的開始,例如?,F在,可以使用通過以下命令來收集此信息:

  1. dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 -- ./MyApp –my-arg 1 

工作流在dotnet-trace docs中進行了描述??梢圆榭春唵螠y試應用程序的程序集加載信息。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

6. Microsoft.Extensions.Logging

Microsoft.Extensions.Logging庫中的控制臺日志提供程序進行了改進。可以通過ConsoleFormatter自定義對控制臺輸出的格式和顏色進行完全控制。格式化程序API通過實現VT-100(大多數現代終端支持的)轉義序列的子集來實現豐富的格式化??刂婆_記錄器可以解析不受支持的終端上的轉義序列,使您可以為所有終端編寫單個格式化程序。

除了支持自定義格式器外,還添加了內置的JSON格式器,該格式器向控制臺發出結構化JSON日志。

7. Dump調試

調試托管代碼需要了解托管對象和構造。數據訪問組件(DAC)是運行時執行引擎的子集,該引擎具有這些構造的知識,并且可以在沒有運行時的情況下訪問這些托管對象?,F在,可以使用WinDBG或dotnet dump analyze在Windows上分析在Linux上收集的.NET Core進程dump。

還添加了對從macOS上運行的.NET進程捕獲ELF dump的支持。由于ELF不是macOS上的本機可執行文件(像lldb這樣的本地調試器將無法與這些dump一起使用)文件格式,因此將其設為選擇加入功能。要在macOS上支持收集,請設置環境變量COMPlus_DbgEnableElfDumpOnMacOS=1??梢允褂胐otnet dump analyze來分析產生的dump。

8. 打印環境信息

隨著.NET擴展了對新操作系統和芯片體系結構的支持,有時需要一種打印環境信息的方法。.NET5創建了一個簡單的.NET工具dotnet-runtimeinfo來執行該操作。

可以使用以下命令安裝和運行該工具。

  1. dotnet tool install -f dotnet-runtimeinfo 
  2. dotnet-runtimeinfo 

該工具以可以生成諸如如下格式的環境信息。

  1. **.NET information 
  2. Version: 5.0.0 
  3. FrameworkDescription: .NET 5.0.0 
  4. Libraries version: 5.0.0 
  5. Libraries hash: cf258a14b70ad9069470a108f13765e0e5988f51 
  6.  
  7.  
  8. **Environment information 
  9. OSDescription: Linux 5.8.6-1-MANJARO-ARM #1 SMP Thu Sep 3 22:01:08 CEST 2020 
  10. OSVersion: Unix 5.8.6.1 
  11. OSArchitecture: Arm64 
  12. ProcessorCount: 6 
  13.  
  14.  
  15. **CGroup info** 
  16. cfs_quota_us: -1 
  17. memory.limit_in_bytes: 9223372036854771712 
  18. memory.usage_in_bytes: 2740666368 

其他更新

1. Windows Arm64

.NET應用程序現在可以在Windows Arm64上本機運行。這是在.NET Core 3.0中添加的對Linux Arm64的支持(對glibc和musl的支持)。

在.NET 5.0中,可以在Windows Arm64設備(例如Surface Pro X)上開發和運行應用程序。已經可以通過x86仿真在Windows Arm64上運行.NET Core和.NET Framework應用程序。這是可行的,但是本機Arm64執行具有更好的性能。

用于Arm64的MSI安裝程序是此版本的最終更改之一。下面是.NET 5.0 SDK安裝程序。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

Windows Arm64上支持SDK,控制臺和ASP.NET Core應用程序,但Windows桌面組件暫不支持。

2. Windows上支持ICU

ICU庫用于Unicode和全球化支持,以前僅在Linux和macOS上使用?,F在在Windows 10上使用相同的庫。此更改使全球化API的行為(如特定文化區域的字符串比較)在Windows 10,macOS和Linux之間保持一致。還將ICU與Blazor WebAssembly支持一起使用。

3. System.Text.Json

在.NET 5.0中已進行了顯著改善,在性能,可靠性,并使熟悉Newtonsoft.Json的人們更容易采用。它還包括對將JSON對象反序列化為記錄的支持。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

使更新可用時,用戶將看到更新對話框。

光棍節微軟發布dotNET 5.0正式版本,新功能嘗鮮

三、總結

.NET 5.0是另一個重要版本發布,它改善.NET使用的許多方面。已經實現了從單文件應用程序到性能,從Json序列化可用性到Arm64支持的一系列廣泛改進。C#9和F#5中的新語言改進將使代碼更具表現力,更易于編寫。.NET 5.0也是現有應用程序的絕佳選擇,在許多情況下,可以輕松進行升級。

 

責任編輯:趙寧寧 來源: 蟲蟲搜奇
相關推薦

2013-07-09 16:46:13

高峰交易

2012-11-05 15:40:17

網絡通信

2024-01-24 13:25:54

2012-10-10 16:27:39

StartOS 5.0Ylmf OS

2023-03-22 18:07:00

iOS蘋果功能

2019-07-23 07:20:23

蘋果 iOS系統

2024-09-18 15:45:00

iOS 18蘋果iOS 17

2012-11-07 16:40:37

2022-07-22 07:03:39

微軟Windows 11

2023-02-06 14:59:27

iOSiOS 16蘋果

2020-11-11 18:40:01

機器人人工智能系統

2012-11-08 17:33:53

智慧云

2009-07-10 08:29:50

Silverlight

2021-09-22 08:48:32

iOS應用系統

2020-12-30 09:35:56

安卓微信微信豆新功能

2012-11-09 13:56:15

光棍節

2024-03-06 16:25:30

iOS 17.4蘋果

2013-11-12 09:48:57

傲游云瀏覽器

2012-11-09 13:11:58

筆記本

2011-12-20 10:50:29

Firefox發布
點贊
收藏

51CTO技術棧公眾號

成人av集中营| 欧洲免费在线视频| 免费激情视频在线观看| 在线播放 亚洲| 奇米成人av国产一区二区三区| 亚洲精品在线网站| 九热爱视频精品视频| 久久久久国产精品一区二区| 亚洲精品国产免费| 亚洲а∨精品天堂在线| 欧美一级二级三级视频| 欧美国产日产韩国视频| 日韩三级免费| 欧美日韩不卡一区| 青青草免费观看免费视频在线| 亚洲国产激情av| 日本在线观看一区二区| 精品一区亚洲| 日韩av电影院| 国产色噜噜噜91在线精品| 91精品国产综合久久久蜜臀图片| 亚欧无线一线二线三线区别| 麻豆国产精品777777在线| 国产亚洲一区二区在线| 婷婷亚洲五月| 久久无码高潮喷水| 欧美日韩精品欧美日韩精品| 呦呦在线视频| 91九色蝌蚪国产| 成人免费小视频| 能在线观看的av| 中文无字幕一区二区三区| 国产 porn| 欧美性20hd另类| 99热国产在线中文| 青草成人免费视频| www欧美在线观看| 日韩成人中文字幕在线观看| 亚洲一区在线日韩在线深爱| 精品一区二区综合| 麻豆成人在线看| 乱人伦中文视频在线| 亚洲免费在线观看视频| 国产高清视频网站| 亚洲国产va精品久久久不卡综合| 国产激情在线观看视频| 亚洲欧洲一区| 男女曰b免费视频| 精品国产污网站| 欧美高清视频看片在线观看| 精品综合在线| 亚洲综合免费观看高清完整版| 95在线视频| 日韩中文字幕在线看| 欧美久久一区| 黄网站免费观看| 日韩手机在线导航| 综合亚洲自拍| 国产美女被遭强高潮免费网站| 久久av影院| 97精品国产97久久久久久粉红| 中文字幕一区二区三区乱码图片| 五月天在线免费视频| 偷窥少妇高潮呻吟av久久免费| 黄色免费视频大全| www日韩中文字幕在线看| 国产综合色产在线精品| 久草在线视频网站| 中文字幕av一区二区| 国产精品白丝jk白祙喷水网站| 激情综合网av| 三级网站在线| 久久免费精品日本久久中文字幕| 2021中文字幕一区亚洲| 91麻豆精品国产综合久久久| 一区二区三区av| 日韩高清av一区二区三区| 成人激情诱惑| 国产视频网站在线| 欧美一级爱爱| 亚洲国模精品私拍| 成人av在线一区二区三区| 久久大胆人体视频| 黄动漫在线免费观看| 国产一区二区视频在线观看| 国产欧美日韩综合| 欧洲vs亚洲vs国产| 国产在线播放av| 亚洲成人av动漫| 亚洲图片在线综合| 国产欧美日韩视频在线观看| youjizzjizz亚洲| 97超超碰碰| 欧美一级片免费看| 国产99久久久国产精品免费看| 欧美激情极品| 羞羞的视频在线观看| 天天操天天爱天天爽| 国产精品成人国产乱一区| 欧美日韩亚洲综合一区二区三区| 国产精品精品国产一区二区| 僵尸再翻生在线观看| 日韩a级在线观看| 日韩精品日韩在线观看| 日韩成人免费| 男人本色网站| 黄色国产精品视频| 欧美不卡视频一区发布| 欧美一区二区啪啪| 色呦呦国产精品| 国产精品美女久久久久久久| 免费精品视频在线| 91久久夜色精品国产按摩| 国产精品毛片av| 成人综合日日夜夜| av成人资源网| 999精品色在线播放| 99久久精品国产亚洲精品 | 日本亚洲欧洲无免费码在线| 男女裸体影院高潮| 国产传媒一区二区| 日韩欧美国产综合| 色哟哟一区二区在线观看| 香蕉加勒比综合久久| 欧美一区二区国产| 红桃av永久久久| 精品无人区卡一卡二卡三乱码免费卡| 一区二区三区视频在线观看免费| 亚洲亚洲精品三区日韩精品在线视频 | 免费看的国产视频网站| 国产精品999| 在线国产亚洲欧美| 福利一区在线观看| 天天揉久久久久亚洲精品| sis001亚洲原创区| 国产精品天天av精麻传媒| 你懂的网址一区二区三区| 丁香五月网久久综合| 精品一区二区三区三区| 中文欧美字幕免费| 裤袜国产欧美精品一区| 国产剧情在线| 未来日记在线观看| 中国动漫在线观看完整版免费| 欧美老女人性开放| 亚洲成人影院麻豆| 毛片激情在线观看| 中文字幕在线看| 成人软件网18免费视频| 六月婷婷激情综合| 99re视频在线播放| 久久中文字幕视频| 亚洲国产女人aaa毛片在线| 亚洲国产欧美日韩另类综合| 成人小视频免费观看| 国产精品久久观看| 亚洲视频在线观看一区| 福利视频第一区| 国产欧美日韩免费观看| 91嫩草亚洲精品| 日韩国产欧美视频| 国产视频在线观看一区二区三区 | 亚洲午夜久久久影院| 成人av网址在线| 99国产精品久久久久久久久久久 | 欧美精品不卡| 亚洲免费在线| 91免费国产视频网站| 久久国产精品免费精品3p| 综合综合综合综合综合网| 粉嫩蜜臀av国产精品网站| 四虎5151久久欧美毛片| 国产精品一区二区三区网站| 欧美偷拍一区二区| 国产精品www色诱视频| 嫩草影院中文字幕| 午夜影院一区| 韩国欧美国产一区| 欧美男人的天堂一二区| 国产有码一区二区| 噜噜噜久久亚洲精品国产品麻豆| xx欧美视频| 成人午夜av在线| 一区二区三区在线免费播放| 26uuu亚洲伊人春色| 超碰在线人人爱| 欧美一级一片| 在线亚洲一区二区| 日韩欧美精品久久| 日本在线一区二区| 国产不卡在线播放| 美日韩精品视频免费看| 男女超爽视频免费播放| 亚洲一区二区三区免费| ww久久中文字幕| 国产精品小说在线| bl视频在线免费观看| 久久电影国产免费久久电影| 日韩精品在线观看一区| 日本精品免费在线观看|