日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Framework 4.8发布

發(fā)布時間:2023/12/4 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Framework 4.8发布 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文地址:https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/

我們很高興地宣布今天發(fā)布.NET Framework 4.8。它包含在Windows 10 May 2019更新中。.NET Framework 4.8也可在Windows 7+和Windows Server 2008 R2 +上使用。

您可以從我們的?.NET下載站點安裝.NET 4.8 。要構(gòu)建面向.NET Framework 4.8的應用程序,可以下載.NET 4.8開發(fā)人員包如果您只想要.NET 4.8運行時,可以嘗試:

  • .NET 4.8 Web安裝程序?- 在安裝期間需要Internet連接

  • .NET 4.8脫機安裝程序?- 可以在以后以斷開連接狀態(tài)下載和安裝

.NET Framework 4.8包含更新的工具集以及幾個方面的改進:

  • [運行時]??JIT和NGEN改進

  • [BCL]??更新了ZLib

  • [BCL]??降低FIPS對密碼學的影響

  • [WinForms]??輔助功能增強功能

  • [WCF]??服務行為增強功能

  • [WPF]??高DPI增強,UIAutomation改進

您可以在.NET Framework 4.8發(fā)行說明中看到完整的改進列表 ?。.NET 4.8也更新了參考源。

?支持的Windows版本

Windows客戶端版本:Windows 10版本1903,Windows 10版本1809,Windows 10版本1803,Windows 10版本1709,Windows 10版本1703,Windows 10版本1607,Windows 8.1,Windows 7 SP1
Windows Server版本:Windows Server 2019,Windows Server版本1803,Windows Server 2016,Windows Server 2012,Windows Server 2012 R2,Windows Server 2008 R2 SP1

?.NET Framework 4.8中的新功能

運行時 - JIT改進

.NET 4.8中的JIT基于.NET Core 2.1。現(xiàn)在,.NET Framework中提供了所有錯誤修復和.NET Core 2.1中許多基于代碼生成的性能優(yōu)化。

運行時 - NGEN的改進

.NET Framework中的NGEN映像不再包含可寫和可執(zhí)行部分。這減少了可用于通過修改將要執(zhí)行的內(nèi)存來執(zhí)行任意代碼的攻擊的表面區(qū)域。

雖然在運行時內(nèi)存中仍然存在可寫和可執(zhí)行數(shù)據(jù),但此更改會刪除從NGEN映像映射的數(shù)據(jù),從而允許它們在不允許圖像中的可執(zhí)行/可寫部分的受限環(huán)境中運行。

運行時 - 所有程序集的反惡意軟件掃描

在以前版本的.NET Framework中,Windows Defender或第三方反惡意軟件會自動掃描從磁盤加載的所有程序集以查找惡意軟件。但是,從其他地方加載的程序集(例如使用Assembly.Load(byte []))將不會被掃描,并且可能會檢測到未檢測到的病毒。

Windows 10上的.NET Framework 4.8會觸發(fā)Windows Defender和許多其他實現(xiàn)反惡意軟件掃描接口的反惡意軟件解決方案對這些程序集的掃描。我們希望這會使惡意軟件更難以在.NET程序中偽裝自己。

BCL - 更新了ZLib

從.NET Framework 4.5開始,我們使用 clrcompression.dll中http://zlib.net的ZLib本機版本(用于數(shù)據(jù)壓縮的本機外部壓縮庫) ?,以便為deflate算法提供實現(xiàn)。在.NET Framework 4.8中,我們將clrcompression.dll更新為使用版本1.2.11,其中包括幾個關(guān)鍵的改進和修復。

BCL - 降低FIPS對密碼學的影響

.NET Framework 2.0+具有加密提供程序類,例如SHA256Managed,當在“FIPS模式”下配置系統(tǒng)加密庫時會拋出CryptographicException。拋出這些異常是因為托管版本未經(jīng)過FIPS(聯(lián)邦信息處理標準)140-2認證(JIT和NGEN映像生成都會使證書無效),這與系統(tǒng)加密庫不同。很少有開發(fā)人員將他們的開發(fā)機器置于“FIPS模式”,導致這些異常在生產(chǎn)(或客戶系統(tǒng))中引發(fā)。.NET Framework還使用“FIPS模式”設(shè)置來阻止加密算法,這些加密算法不被FIPS規(guī)則視為已批準的算法。

對于為.NET Framework 4.8構(gòu)建的應用程序,將不再拋出這些異常(默認情況下)。相反,SHA256Managed類(以及其他托管加密類)會將加密操作重定向到系統(tǒng)加密庫。此策略更改有效地消除了開發(fā)人員環(huán)境與運行代碼的生產(chǎn)環(huán)境之間可能存在的混淆差異,并使本機組件和托管組件在相同的加密策略下運行。

針對.NET Framework 4.8的應用程序?qū)⒆詣忧袚Q到較新的寬松策略,并且在“FIPS模式”下不再會看到從MD5Cng,MD5CryptoServiceProvider,RC2CryptoServiceProvider,RIPEMD160Managed和RijndaelManaged引發(fā)的異常。依賴于先前版本的異常的應用程序可以通過將AppContext開關(guān)“Switch.System.Security.Cryptography.UseLegacyFipsThrow”設(shè)置為“true”來返回到先前的行為。

Windows窗體 - 輔助功能增強功能

在.NET Framework 4.8中,WinForms添加了三個新功能,使開發(fā)人員能夠編寫更易于訪問的應用程序。添加的功能旨在使視障用戶的應用程序數(shù)據(jù)通信更加健壯。當用戶通過鍵盤導航時,我們添加了對ToolTips的支持,我們已將LiveRegions和Notification Events添加到許多常用控件中。

要啟用這些功能,您的應用程序需要在App.config文件中啟用以下AppContextSwitches:

Windows窗體 - UIA LiveRegions支持標簽和StatusStrips

UIA Live Regions允許應用程序開發(fā)人員通知屏幕閱讀器控件的文本更改,該控件位于用戶工作的位置之外。這將派上用場的示例可以是顯示連接狀態(tài)的StatusStrip。如果刪除連接并且狀態(tài)發(fā)生更改,開發(fā)人員可能希望通知屏幕閱讀器此更改。Windows Forms已為Label控件和StatusStrip控件實現(xiàn)了UIA LiveRegions。

在Label控件中使用LiveRegion的示例:

講述者現(xiàn)在將宣布“準備就緒”,無論用戶在何處與應用程序進行交互。
您還可以將UserControl實現(xiàn)為Live區(qū)域:

Windows窗體 - UIA通知事件

在Windows 10 Fall Creators Update中,Windows引入了一種新方法,讓應用程序通知Narrator內(nèi)容已更改,而Narrator應該宣布更改。UIA通知事件為您的應用程序提供了一種方式來引發(fā)UIA事件,這會導致講述人根據(jù)您為事件提供的文本簡單地發(fā)布通知,而無需在UI中使用相應的控件。在某些情況下,這可能是一種直接提高應用程序可訪問性的方法。有關(guān)UIA通知事件的更多信息,請參閱此博客文章。

通知可能派上用場的一個示例是通知可能需要一些時間的某個過程的進度。

提升通知事件的示例:

Windows窗體 - 鍵盤訪問的工具提示

目前,只能通過將鼠標指針移動到控件中來觸發(fā)控制工具提示。此新功能使鍵盤用戶可以通過使用Tab鍵或帶有或不帶修飾鍵的箭頭鍵來聚焦控件來觸發(fā)控件的工具提示。此特定輔助功能增強需要額外的AppContextSwitch,如以下示例所示:

  1.創(chuàng)建一個新的WinForms應用程序。

  2.將以下XML添加到App.config文件中。

  3.將幾個按鈕和一個ToolTip控件添加到應用程序的表單中。

  4.設(shè)置按鈕的工具提示。

  5.運行應用程序并使用鍵盤在按鈕之間導航:

Windows窗體 - DataGridView控制可訪問的層次結(jié)構(gòu)更改

目前,可訪問的層次結(jié)構(gòu)(UI自動化樹)將編輯框樹元素顯示為當前編輯的單元格的子元素,但不顯示為DataGridView的根子元素。可以使用Inspect工具觀察層次結(jié)構(gòu)樹更新:

?WCF - ServiceHealthBehavior

健康端點具有許多優(yōu)點,并且編排工具廣泛使用它來根據(jù)服務健康狀況管理服務。監(jiān)控工具還可以使用運行狀況檢查來跟蹤和警告服務的可用性和性能,并將其作為早期問題指標。

ServiceHealthBehavior是一種擴展IServiceBehavior的WCF服務行為。添加到ServiceDescription.Behaviors集合后,它將啟用以下內(nèi)容:

  • 使用HTTP響應代碼返回服務運行狀況:可以在查詢字符串中指定HTTP / GET運行狀況探測請求的HTTP狀態(tài)代碼。

  • 發(fā)布服務運行狀況:使用“?運行狀況”查詢字符串,使用HTTP / GET請求顯示服務特定的詳細信息,包括服務狀態(tài)和節(jié)流計數(shù)和容量。在故障排除錯誤行為的WCF服務時,了解并輕松訪問所顯示的信息非常重要。

配置ServiceHealthBehavior:

有兩種方法可以公開運行狀況端點并發(fā)布WCF服務運行狀況信息:使用代碼或使用配置文件。

  • 使用代碼啟用運行狀況端點?

  • 使用config啟用健康端點

  • 使用HTTP響應代碼返回服務運行狀況:

    可以通過查詢參數(shù)(OnServiceFailure,OnDispatcherFailure,OnListenerFailure,OnThrottlePercentExceeded)查詢運行狀況。可以為每個查詢參數(shù)指定HTTP響應代碼(200 - 599)。如果省略查詢參數(shù)的HTTP響應代碼,則默認使用503 HTTP響應代碼。

    查詢參數(shù)和示例:

  • OnServiceFailure:

    • 示例:通過查詢https:// contoso:81 / Service1?health&OnServiceFailure = 450,當ServiceHost.State大于CommunicationState.Opened時,將返回450 HTTP響應狀態(tài)代碼。

  • OnDispatcherFailure:

    • 示例:通過查詢https:// contoso:81 / Service1?health&OnDispatcherFailure = 45 5,當任何通道調(diào)度程序的狀態(tài)大于CommunicationState.Opened時,將返回455 HTTP響應狀態(tài)代碼。

  • OnListenerFailure:

    • 示例:通過查詢https:// contoso:81 / Service1?health&OnListenerFailure = 4 65,當任何通道偵聽器的狀態(tài)大于CommunicationState.Opened時,將返回465 HTTP響應狀態(tài)代碼。

  • OnThrottlePercentExceeded:指定觸發(fā)響應的百分比{1 - 100}及其HTTP響應代碼{200 - 599}。

    • 示例:通過查詢https:// contoso:81 / Service1?health&OnThrottlePercentExceeded = 70:350,95:500,當節(jié)流百分比等于或大于95%時,返回500響應代碼; 當百分比等于或大于70%且小于95%時,返回350; 否則,返回200。

    出版服務健康狀況:

    啟用運行狀況端點后,可以在html中顯示服務運行狀況(通過指定查詢字符串:https:// contoso:81 / Service1?運行狀況)或xml(通過指定查詢字符串:https:// contoso:81 / Service1?health&Xml)格式。https:// contoso:81 / Service1?health&NoContent返回空的html頁面。

    注意:

    始終限制對服務運行狀況終結(jié)點的訪問是最佳做法。您可以使用以下機制限制訪問:

  • 為健康端點使用不同于其他服務的端口,并使用防火墻規(guī)則來控制訪問。

  • 將所需的身份驗證和授權(quán)添加到運行狀況端點綁定。

  • WPF - 屏幕旁白者不再宣布具有折疊或隱藏可見性的元素

    屏幕閱讀器不再宣布具有折疊或隱藏可見性的元素。如果向用戶宣布這些元素,則包含具有折疊或隱藏可見性的元素的用戶界面可能被屏幕閱讀器誤傳。在.NET Framework 4.8中,WPF不再包含UIAutomation樹的Control View中的Collapsed或Hidden元素,因此屏幕閱讀器無法再宣布這些元素。

    WPF - SelectionTextBrush屬性,用于非基于Adorner的文本選擇

    在.NET Framework 4.7.2中,WPF添加了在不使用adorner層的情況下繪制TextBox和PasswordBox文本選擇的功能(參見此處)。此場景中所選文本的前景色由SystemColors.HighlightTextBrush決定。

    在.NET Framework 4.8中,我們添加了一個新屬性SelectionTextBrush,允許開發(fā)人員在使用基于非裝飾器的文本選擇時為所選文本選擇特定畫筆。

    此屬性僅適用于啟用了基于非裝飾器的文本選擇的WPF應用程序中的TextBoxBase派生控件和PasswordBox。它不適用于RichTextBox。如果未啟用基于非裝飾器的文本選擇,則會忽略此屬性。

    要使用此屬性,只需將其添加到XAML代碼并使用適當?shù)漠嫻P或綁定。

    生成的文本選擇如下所示:

    您可以結(jié)合使用SelectionBrush和SelectionTextBrush來生成您認為合適的背景和前景的任何顏色組合。

    WPF - 高DPI增強功能

    WPF在.NET 4.8中增加了對Per-Monitor V2 DPI感知和混合模式DPI擴展的支持。有關(guān)這些Windows概念的更多信息,請參見此處。

    WPF中最新的Per監(jiān)視器應用程序開發(fā)指南指出,只有純WPF應用程序可以在高DPI WPF應用程序中無縫工作,并且不完全支持Hosted HWND和Windows Forms控件。

    .NET 4.8改進了對支持混合模式DPI擴展的平臺上的高DPI WPF應用程序中托管HWND和Windows Forms互操作的支持(Windows 10 v1803)。當托管HWND或Windows窗體控件創(chuàng)建為混合模式DPI縮放窗口時(如“ 混合模式DPI縮放和DPI感知API ”文檔中所述,通過調(diào)用SetThreadDpiHostingBehavior和SetThreadDpiAwarenessContext API),可以托管此類Per-Monitor V2 WPF應用程序中的內(nèi)容,并對它們進行適當調(diào)整大小和縮放。此類托管內(nèi)容不會在本機DPI上呈現(xiàn) - 相反,操作系統(tǒng)會將托管內(nèi)容擴展到適當?shù)拇笮 ?/p>

    對Per-Monitor v2 DPI感知模式的支持還允許在高DPI應用程序的本機窗口下托管(即,父級)WPF控件。Windows 10 v1607(周年紀念更新)將提供Per-Monitor V2 DPI Awareness支持。當通過應用程序清單啟用Per-Monitor V2 DPI Awareness模式時,Windows添加了對child-HWND的支持以接收DPI更改通知。

    WPF利用此支持來確保在本機窗口下托管的控件可以響應DPI更改并自行更新。例如,在Windows窗體中托管的WPF控件或表現(xiàn)為Per Monitor V2的Win32應用程序 - 現(xiàn)在能夠正確響應DPI更改并自行更新。

    請注意,Windows支持Windows 10 v1803上的混合模式DPI擴展,而v1607以上版本支持Per-Monitor V2。

    要試用這些功能,必須啟用以下應用程序清單和AppContext標志:

      1.在您的應用程序中啟用Per-Monitor DPI:在app.manifest中打開Per-Monitor V2

      2.在WPF中啟用高DPI支持:目標.NET Framework 4.6.2或更高版本

      3.在app.config中設(shè)置AppContext開關(guān)

      或者,在App.Config中設(shè)置AppContextSwitch Switch.System.Windows.DoNotUsePresentationDpiCapabilityTier2OrGreater = false以啟用.NET 4.8中引入的Per-Monitor V2和混合模式DPI支持。

    最終App.Config中的運行時部分可能如下所示:

    AppContext開關(guān)也可以在注冊表中設(shè)置。您可以參考AppContext類以獲取其他文檔。

    WPF - 支持UIAutomation ControllerFor屬性

    UIAutomation的ControllerFor屬性返回一個自動化元素數(shù)組,這些元素由支持該屬性的自動化元素操作。此屬性通常用于自動建議可訪問性。當自動化元素影響應用程序UI或桌面的一個或多個段時,將使用ControllerFor。否則,很難將控制操作的影響與UI元素相關(guān)聯(lián)。此功能增加了控件為ControllerFor屬性提供值的功能。

    AutomationPeer中添加了一個新的虛擬方法:

    要為ControllerFor屬性提供值,只需覆蓋此方法并返回此AutomationPeer操作的控件的AutomationPeers列表:

    WPF - 鍵盤訪問的工具提示

    當前工具提示僅在用戶將鼠標光標懸停在控件上時顯示。在.NET Framework 4.8中,WPF添加了一項功能,可以使工具提示在鍵盤焦點上顯示,也可以通過鍵盤快捷鍵顯示。

    要啟用此功能,應用程序需要通過AppContext開關(guān)“Switch.UseLegacyAccessibilityFeatures.3”和“Switch.UseLegacyToolTipDisplay”來定位.NET Framework 4.8或選擇加入。

    示例App.config文件:

    啟用后,包含工具提示的所有控件將在控件接收鍵盤焦點后開始顯示。隨著時間的推移或鍵盤焦點發(fā)生變化時,工具提示可以被解除。用戶還可以通過新的鍵盤快捷鍵Ctrl + Shift + F10手動關(guān)閉工具提示。一旦工具提示被解除,它可以通過相同的鍵盤快捷方式再次顯示。

    注意:Ribbon控件上的RibbonToolTips不會顯示在鍵盤焦點上 - 它們只會通過鍵盤快捷鍵顯示。

    WPF - 添加了對SizeOfSet和PositionInSet UIAutomation屬性的支持

    Windows 10引入了新的UIAutomation屬性SizeOfSet和PositionInSet,應用程序使用它們來描述集合中項目的數(shù)量。然后,UIAutomation客戶端應用程序(如屏幕閱讀器)可以查詢應用程序以獲取這些屬性,并宣布應用程序UI的準確表示。

    此功能添加了對WPF應用程序的支持,以將這兩個屬性公開給UIAutomation。這可以通過兩種方式實現(xiàn):

      1.DependencyProperties?

    新的DependencyProperties SizeOfSet和PositionInSet已添加到System.Windows.Automation.AutomationProperties命名空間。開發(fā)人員可以通過XAML設(shè)置其值:

      2.AutomationPeer虛擬方法?

    虛擬方法GetSizeOfSetCore和GetPositionInSetCore也已添加到AutomationPeer類中。開發(fā)人員可以通過覆蓋這些方法為SizeOfSet和PositionInSet提供值:

    自動值?

    ItemsControls中的項目將自動為這些屬性提供值,而無需開發(fā)人員的其他操作。如果ItemsControl已分組,則組的集合將表示為一個集合,每個組計為一個單獨的集合,該組中的每個項目都提供其在該組內(nèi)的位置以及該組的大小。虛擬化不會影響自動值。即使一個項目沒有實現(xiàn),它仍然會計入集合的總大小,并影響它的兄弟項目集合中的位置。

    僅當開發(fā)人員以.NET Framework 4.8為目標或已將AppContext開關(guān)設(shè)置為“Switch.UseLegacyAccessibilityFeatures.3”(例如通過App.config文件)時,才會提供自動值:

    結(jié)尾

    請在.NET Framework 4.8中嘗試這些改進,并在下面的評論中或通過GitHub分享您的反饋。

    原文地址:https://www.cnblogs.com/minotauros/p/10736607.html

    .NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

    總結(jié)

    以上是生活随笔為你收集整理的.NET Framework 4.8发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。