Visual Studio 2008開發新特性系列課程(5):.NET Framework 3.5 新功能介紹
1.概要
? VS2008內建對.Net Framework3.5框架的支援..Fraework3.5框架裡面提供了大量的激動人心的新功能.本次課程將主要講述.Fraework3.5裡增強的新功能.
2..NET Framework 3.5 新特性
? 程式集的增加,新庫的增加,程式碼分為red bits 和green bits
red bits----包括以前net2.0和3.0中提供的所有庫
green bits—新的庫內容(基於red bits基礎上開發,儘量不改變red bits,所以向後相容)
? .NET Framework 實現對大整數的支援。
-----新的BigInteger 型別,該型別使您可以使用任意大小的整數,直至可以達到記憶體的極限。
? 高效能集合
-----新的HashSet 類
-----System.Collections.Generic
-----標準的集合方法(例如,新增、刪除和包含)並提供了多種集合操作(包括,並集、交集和對稱差)
HashSet<int> set1 = new HashSet<int>();
set1.Add(1);
set1.Add(3);
set1.Add(5);
set1.Add(3);
// set1 already contains 3; it isn't added twice
// set1 contains 1,3,5
HashSet<int> set2 = new HashSet<int>(new int[] { 2, 4, 6 });
// set2 contains 2,4,6
set2.UnionWith(set1); //集合運算,並集
set2.IntersectWith (set1); //集合運算,交集
? 管道-匿名管道
-----已提供了對.NET Framework 的匿名和命名管道的支援。
---- 在System.IO.Pipes 名稱空間。(可以用於不同程式的通訊)
----- 匿名管道用於父程式和子程式之間的通訊。
-----這些單向管道未命名,並且必須在同一臺計算機上本地使用。
-----管道用於在同一計算機或同一網路上的兩個或多個程式之間實現程式間通訊(IPC)。
----- 命名管道提供的功能更多。
-----對於初學者而言,它們是全雙工的,並且可以對網路使用。
-----命名管道支援單一名稱、基於訊息的通訊、非同步I/O 以及模擬等的多個伺服器示例。
服務端程式碼:
using (NamedPipeServerStream pipeStream = new NamedPipeServerStream("mypipe2"))
{
pipeStream.WaitForConnection();//等待連線
using (StreamWriter sw = new StreamWriter(pipeStream))
{
sw.AutoFlush = true;
sw.WriteLine(Console.ReadLine());
sw.WriteLine(Console.ReadLine());
}
}
客戶端程式碼:
using (NamedPipeClientStream pipeStream =new NamedPipeClientStream("mypipe2"))
{
pipeStream.Connect();//請求連線
using (StreamReader sr = new StreamReader(pipeStream))
{
string temp;
while ((temp = sr.ReadLine()) != null)
{
Console.WriteLine(temp);
}
}
}
通過使用命名管道,客戶端和伺服器端的程式就可以直接通訊。
? 改善了時區支援
---- System.TimeZoneInfo
---- 第一個型別是TimeZoneInfo。與其前輩TimeZone型別相比,TimeZoneInfo在時區方面提供了更好的支援,例如它能夠列舉出儲存於作業系統中的各個時區資訊
String id = "Alaskan Standard Time";
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(id);
? DateTimeOffset
---- 在大多數情況下該型別將會作為傳統DateTime型別的替代品使用。
---- 與DateTime只能儲存本地和UTC時間不同的是,DateTimeOffset型別可以表示任何時區中的時間——只要指定該時區相對於UTC的偏移量即可。
DateTimeOffset now = DateTimeOffset.Now;
DateTimeOffset now2 = DateTime.Now;
DateTimeOffset now3 = new DateTimeOffset(DateTime.Now);
DateTime tvShowPremiere = new DateTime(2007, 6, 13, 8, 0, 0);
DateTimeOffset tvShowPremiereLA = new DateTimeOffset(tvShowPremiere, new TimeSpan(-7, 0, 0));
? 高效能Socket API
---- 在.NET Framework 2.0 版本中,System.Net.Sockets 名稱空間提供了一個幾乎擁有Windows? WinSock Win32? API 的所有功能的Socket 類。該功能所屬的類包含為託管程式碼開發人員設計的各種方法和屬性。
---- 2.0 版本的Socket 類適合多種需要使用網路套接字的客戶端應用程式,以及一些伺服器和服務型別的應用程式。
---- 遺憾的是,。2.0 版本的Socket 類的主要問題是它不僅在分配必要的基礎物件以便在大量套接字上同時保持I/O 操作時需要佔用過多的CPU 迴圈,而且在執行單個套接字I/O 操作時也同樣如此。
---- 新版本提供了另一個使用套接字上執行非同步I/O 的方法模式。這種新模式並不要求為每個套接字操作分配操作上下文物件。
---- 封裝操作上下文的是一個SocketAsyncEventArgs 物件,而不是IAsyncResult 物件。該應用程式建立並管理(甚至可以重複使用)SocketAsyncEventArgs 物件。
? P2P
---- System.Net.PeerToPeer 名稱空間
---- System.Net.PeerToPeer 名稱空間位於System.Net.dll 程式集中,它提供了輕鬆建立對等(P2P) 應用程式所需的核心構建基塊。
? 新的GC方法
---- GCSettings.LatencyMode(可以指定垃圾回收的模式)
---- GC.Collect method
? 外掛模式
主機--->主機檢視--->主機介面卡--->【IContract】<-----外掛介面卡<-----外掛檢視<-----外掛
---- System.AddIn 名稱空間
---- 構建可擴充套件的宿主應用程式
---- 宿主與其載入項之間的互動會經歷下列三個主要階段:發現、啟用和生存期管理
---宿主和外掛通過隔離邊界彼此隔離。它們只引用各自的檢視,因此可以獲得用於通訊的約定的抽象層。此外,宿主/外掛不能直接自我引用,因此可以相對隔離與其通訊的所有其他元件。
---- 宿主和外掛通過隔離邊界彼此隔離。它們只引用各自的檢視,因此可以獲得用於通訊的約定的抽象層。此外,宿主/外掛不能直接自我引用,因此可以相對隔離與其通訊的所有其他元件。
相關文章
- Visual Studio Code 小白使用介紹
- 課程介紹
- .NET3.5新特性,Lambda表示式
- LeaRun.Framework━ .NET快速開發框架 ━ 工作流程元件介紹Framework框架元件
- Visual Studio 2022 安裝低版本的 .Net Framework(2.0~4.5)Framework
- net framework 3.5怎麼安裝 net framework 3.5無法安裝怎麼辦Framework
- .NET6系列:Visual Studio 2022 線路圖
- 用Visual Studio 2008開發IE BHO (瀏覽器幫助物件)之一瀏覽器物件
- .NET6 平臺系列1 .NET發展史之.NET Framework簡介Framework
- win10安裝net3.5不成功怎麼辦 win10安裝net framework 3.5失敗解決方法介紹Win10Framework
- .Net Core3 新特性/新功能 16條
- TiDB 5.0.0新特性介紹TiDB
- Python開發系列課程彙總 - 課程大綱Python
- 【譯】使用 .NET Aspire 和 Visual Studio 開發雲原生應用
- .NET6系列:微軟正式宣佈Visual Studio 2022微軟
- 通用新聞爬蟲開發系列(專案介紹)爬蟲
- 使用Visual Studio分析.NET Dump
- vue3.5新特性Vue
- 使用Visual Studio 2022開發前端前端
- [譯] Chrome 71 新特性介紹Chrome
- AnalyticDB for PostgreSQL 6.0 新特性介紹SQL
- Apache Cassandra 4.0新特性介紹Apache
- Angular 8的新特性介紹Angular
- webpack4新特性介紹Web
- 【IDL】IDL 8.4新特性介紹
- JavaScript 6 的新特性介紹JavaScript
- 在Visual Studio 2013中配置Entity Framework使用MySQLFrameworkMySql
- go 併發程式設計案例一 課程介紹Go程式設計
- Visual Studio 2022 Preview 1 和.NET 6 Preview 5 正式釋出View
- 《Visual Studio 2017 Web 開發》截圖Web
- React v16.6 新特性介紹React
- Redis4.0的新特性介紹Redis
- 【譯】向您介紹改版的 Visual Studio 資源管理器
- 螞蟻金服 SOFAArk 0.6.0 新特性介紹 | 模組化開發容器
- 開工大吉:Oracle 18c已經發布及新特性介紹Oracle
- .NET平臺系列22:.NET Core/.NET5/.NET6 對比 .NET FrameworkFramework
- OpenGL Android課程五:介紹混合(Blending)Android
- 前端系列-HTML5新特性前端HTML
- .NET平臺系列5 .NET Core 簡介