CodeShot
.NET Fundamentals2 دقیقه مطالعه

مبانی .NET (.NET Fundamentals)

.NET یک Runtime + SDK + Framework Libraries است؛ CLR، BCL و SDK سه رکن اصلی آن برای اجرا، استفاده و ساخت برنامه‌ها هستند.

چرا مهم است؟

قبل از ورود به ASP.NET Core یا EF Core باید بدانید کد C# دقیقاً چطور از IL به Machine Code می‌رسد و CLR/BCL/SDK هرکدام چه نقشی دارند.

.NET چیست؟

.NET یک Runtime + SDK + Framework Libraries است که از چند زبان پشتیبانی می‌کند: C#، F#، Visual Basic. امروزه نسخه اصلی آن .NET (مانند .NET 8/9) است و جایگزین .NET Framework قدیمی شده.

اجزای اصلی .NET

CLR (Common Language Runtime) — محیط اجرای برنامه؛ وظایف: اجرای کد، مدیریت حافظه، Garbage Collection، مدیریت Exception، امنیت و Type Safety.

BCL (Base Class Library) — مجموعه کتابخانه‌های استاندارد (کار با فایل، تاریخ/زمان، Collection، Threading، Networking):

List<string> names = new(); // بخشی از BCL

SDK (Software Development Kit) — ابزارهای ساخت و اجرا: Compiler، CLI Commands، Templates، Build Tools:

dotnet new
dotnet build
dotnet run
dotnet test

نحوه اجرای کد

C# Code → Compiler → IL (Intermediate Language) → CLR → Machine Code

کد C# مستقیماً به زبان ماشین تبدیل نمی‌شود؛ ابتدا به IL و سپس توسط CLR اجرا می‌شود.

Managed Code

کدی که توسط CLR مدیریت می‌شود؛ مزایا: مدیریت خودکار حافظه، امنیت بیشتر، کاهش Memory Leak.

Garbage Collection

User user = new User();
user = null; // بعد از مدتی GC حافظه Object را آزاد می‌کند

Namespace و Assembly

Namespace برای سازمان‌دهی کلاس‌ها (namespace MyApp.Services { class UserService {} }) و جلوگیری از تداخل نام‌ها استفاده می‌شود. Assembly واحد خروجی برنامه (.dll/.exe) است و شامل IL Code، Metadata و Manifest می‌شود.

JIT Compiler و .NET Runtime

JIT (Just-In-Time Compiler) کد IL را هنگام اجرا به Machine Code تبدیل می‌کند تا بر اساس محیط اجرا بهینه‌سازی شود. انواع Runtime: .NET Runtime · ASP.NET Core Runtime · Desktop Runtime — مثلاً اجرای یک Web API نیاز به ASP.NET Core Runtime دارد.

.NET Framework در برابر .NET

.NET Framework .NET
فقط Windows Cross Platform
قدیمی مدرن
Web Forms ASP.NET Core
WCF gRPC / REST
محدودتر Performance بهتر

انواع پروژه رایج

Console Application · ASP.NET Core (Web API، MVC، Minimal API) · Worker Service (سرویس‌های Background) · Class Library

Dependency Injection

یکی از قابلیت‌های داخلی .NET برای کاهش وابستگی کلاس‌ها و تست‌پذیری بهتر:

public class OrderService
{
    private readonly ILogger logger;
    public OrderService(ILogger logger) => this.logger = logger;
}

Configuration و Logging

تنظیمات از appsettings.json، Environment Variables یا User Secrets خوانده می‌شود. سطوح رایج Logging: Trace · Debug · Information · Warning · Error · Critical

نکته کلیدی: یک برنامه C# اجرا می‌شود چون Compiler آن را به IL تبدیل می‌کند، سپس CLR با کمک JIT آن را به کد ماشین تبدیل می‌کند و Runtime مسئول Memory Management و Garbage Collection در طول اجراست.

خلاصه

  • .NET از سه رکن اصلی تشکیل شده: CLR (اجرا)، BCL (کتابخانه استاندارد) و SDK (ابزار ساخت).
  • کد C# قبل از اجرا به IL تبدیل می‌شود و JIT آن را هنگام اجرا به Machine Code تبدیل می‌کند.
  • Namespace و Assembly سازمان‌دهی کد و خروجی برنامه را مدیریت می‌کنند؛ DI و Configuration از قابلیت‌های داخلی .NET هستند.

حالا امتحان کن

🧩آزمون مبانی .NET (.NET Fundamentals)6 سؤال · نمره قبولی 60٪
این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←