TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2159 2.63K
بهبود‌های NET7. فقط از جنس Performance نیست!

یکی از مهم ترین تغییرات در NET7. در بحث Network مشاهده می‌شود که می‌توان آن‌ها را به چهار دسته زیر تقسیم بندی کرد:

۱- بهبود‌های مربوط به HTTP
۲- معرفی API جدید QUIC
۳- امنیت شبکه
۴- مسائل مربوط به WebSocket ها


🔽 بررسی موارد مربوط به HTTP
🔹یکی از تاثیر گذارترین تغییرات مدیریت connection هایی هست که attempt failures در آن‌ها رخ داده است.
🔹دومین مورد Thread safe شدن HttpHeader ها است.
🔹مورد بعدی قابل درک‌تر شدن خطاهای HTTP/2 و HTTP/3:
در لایه های پایینی ممکن است خطاهای خاصی رخ دهد. مثلا امکان دارد در HTTP2 خطای REFUSED_STREAM (0x7) رخ دهد یا در HTTP3 با خطای H3_EXCESSIVE_LOAD (0x0107) مواجه شوید.

اینها همگی خطاهایی هستند که برای کاربر در لایه‌های بالاتر کد معنای خاصی ندارند.
در عوض در NET7. ما می‌توانیم با استفاده از HttpProtocolException که در inner exception کلاس HttpRequestException است خطاهای مربوطه را catch کنیم:

try
{
using var response = await httpClient.GetStringAsync(url);
}
catch (HttpRequestException ex) when (ex.InnerException is HttpProtocolException pex)
{
Console.WriteLine("HTTP error code: " + pex.ErrorCode)
}

زمانی هم که با ریسپانس‌های HttpContent کار می‌کنیم، مستقیم می‌توانیم از HttpProtocolException استفاده کنیم:

using var response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
using var responseStream = await response.Content.ReadAsStreamAsync();
try
{
await responseStream.ReadAsync(buffer);
}
catch (HttpProtocolException pex)
{
Console.WriteLine("HTTP error code: " + pex.ErrorCode)
}

🔽 توضیح مختصری در مورد QUIC
پروتکل QUIC یا Quick UDP Internet Connections یکی از پروتکل‌های لایه transport شبکه است که قبلا مایکروسافت پیاده سازی خود را در قالب MsQuic ارائه داده بود.
بعدها در NET5. در کدهای خود هم از این امکان استفاده می‌کرد.
در NET7. هم امکان استفاده از این قابلیت با استفاده از System.Net.Quic امکان پذیر شده است.

نحوه کارکرد آن نیز در استفاده از سه کلاس زیر خلاصه می‌شود:

QuicListener 
QuicConnection
QuicStream

در این بین تمرکز اصلی ما بر روی مورد اول یعنی (بهبود‌های مربوط به HTTP) بود و توضیح کوتاهی نیز در مورد مورد QUIC ارائه دادیم.

برای مشاهده توضیحات کامل می‌توانید از 🔗 این لینک استفاده کنید.

🔗لینک ویرگول این پست.

___________

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#حامد_حاجیلو (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

________
Microsoft News .NET 7 Networking Improvements Introducing new networking features in .NET 7 including HTTP space, new QUIC APIs, security, WebSockets, and more!
  • 👍 18
  • ❤ 6
  • 🔥 3
  • 👏 2
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →