دات‌نت چیست؟ پلتفرم توسعه نرم‌افزار با C# و ASP.NET Core

معرفی

دات‌نت (.NET) یک پلتفرم رایگان، متن‌باز و چندسکویی برای ساخت و اجرای نرم‌افزار است که توسط مایکروسافت و جامعه توسعه‌دهندگان پشتیبانی می‌شود. این پلتفرم اجزای مختلفی از جمله محیط اجرا (Runtime)، کتابخانه‌ها، کامپایلر، ابزارهای خط فرمان و کیت توسعه نرم‌افزار (SDK) را در بر می‌گیرد. معرفی .NET در مستندات Microsoft Learn نیز اجزای اصلی .NET و نقش SDK و Runtime را توضیح می‌دهد.

دات‌نت با زبان سی‌شارپ (C#) یکسان نیست. C# یک زبان برنامه‌نویسی است، درحالی‌که .NET محیط اجرا، کتابخانه‌ها و ابزارهای لازم برای ساخت و اجرای برنامه‌ها را فراهم می‌کند. C# زبان اصلی و رایج این اکوسیستم است، اما .NET از زبان‌های دیگری مانند F# و Visual Basic نیز پشتیبانی می‌کند. برای مطالعه نکات بیشتر، حتما زبان‌های پشتیبانی‌شده در .NET را بررسی کنید.

تفاوت .NET، ASP.NET Core و .NET Framework

ASP.NET Core خودِ دات‌نت نیست، بلکه چارچوب یا پشته توسعه وب (Web App Stack) در اکوسیستم .NET است که برای ساخت رابط‌های برنامه‌نویسی کاربردی (API)، وب‌اپلیکیشن‌ها و سرویس‌های بک‌اند به کار می‌رود. این چارچوب بر قابلیت‌های Runtime و کتابخانه‌های .NET تکیه دارد. برای آشنایی بیشتر، معرفی ASP.NET Core را مطالعه کنید.

عبارت «دات‌نت کور» معمولاً به .NET Core اشاره دارد که نسلی چندسکویی از این پلتفرم است که پیش از انتشار .NET 5 عرضه شد. از نسخه 5 به بعد، واژه Core از نام محصول اصلی حذف شد و نسخه‌های جدید با نام .NET منتشر شدند. جزییات این موضوع در تغییر نام .NET Core در .NET 5 منتشر شده است.

.NET Framework نیز محصول دیگری از خانواده دات‌نت است که فقط روی Windows اجرا می‌شود. بنابراین، نباید آن را با نسخه‌های جدید و چندسکویی .NET یکسان دانست.

دات‌نت در بازار کار ایران

در آگهی‌های استخدامی ایران ممکن است عنوان‌هایی مانند «.NET Developer»، «C# Developer» و «Backend Developer .NET» دیده شوند. بااین‌حال، این متن داده محلیِ تاریخ‌دار و قابل‌اتکایی برای نتیجه‌گیری درباره فراوانی این عنوان‌ها یا مهارت‌های پرتکرار ارائه نمی‌کند.

برای ارزیابی هر موقعیت شغلی، بهتر است شرح آگهی همان شرکت را با دقت بررسی کنید و میان مهارت‌های موردنیاز تمایز قائل شوید. برای مثال، تسلط به C#، توسعه وب با ASP.NET Core، کار با SQL، طراحی API و آشنایی با ابزارهای استقرار نرم‌افزار، مهارت‌های متفاوتی هستند که ممکن است در یک موقعیت شغلی به‌صورت هم‌زمان یا جداگانه درخواست شوند.

ویژگی‌های کلیدی

برای آشنایی بهتر با این ابزار، توجه به موارد زیر می‌تواند مفید باشد.

  • محیط اجرا و SDK یکپارچه

    Runtime برنامه‌های .NET را اجرا می‌کند و SDK ابزارهای لازم برای توسعه را در اختیار برنامه‌نویس قرار می‌دهد. .NET CLI نیز همراه SDK نصب می‌شود و فرمان‌هایی مانند dotnet build، dotnet test و dotnet publish را برای ساخت، آزمون و انتشار برنامه فراهم می‌کند.

  • پشتیبانی از چند سیستم‌عامل

    .NET برای توسعه چندسکویی طراحی شده است و بسیاری از برنامه‌ها و سرویس‌های آن روی Windows، Linux و macOS اجرا می‌شوند. بااین‌حال، بعضی فناوری‌های رابط کاربری مانند WPF و Windows Forms مختص Windows هستند.

  • مدیریت بسته با NuGet

    NuGet سامانه مدیریت بسته در .NET است. با آن می‌توان کتابخانه‌های عمومی یا خصوصی را به پروژه اضافه کرد، Package Referenceها را ثبت کرد و وابستگی‌های پروژه را هنگام Build یا Restore دریافت و مدیریت کرد.

  • کتابخانه استاندارد گسترده

    .NET مجموعه بزرگی از کتابخانه‌ها و API-های آماده برای کارهایی مانند فایل، شبکه، JSON، هم‌زمانی، رمزنگاری و بسیاری از عملیات عمومی برنامه‌نویسی فراهم می‌کند و نیاز به پیاده‌سازی دوباره قابلیت‌های پایه را کاهش می‌دهد.

  • پشتیبانی مناسب از توسعه سرویس

    .NET بستر اجرای ASP.NET Core است. با ASP.NET Core می‌توان API، برنامه وب، سرویس‌های بک‌اند و برخی پردازش‌های پس‌زمینه را ایجاد کرد و آن‌ها را روی محیط‌های مختلف مستقر کرد.

  • ابزارهای خط فرمان

    .NET CLI یک ابزار چندسکویی برای ایجاد، Build، اجرا، Test و Publish پروژه‌ها است. این قابلیت باعث می‌شود عملیات اصلی پروژه بدون وابستگی به یک IDE خاص انجام شود و در فرایندهای CI/CD نیز قابل استفاده باشد.

کاربردها

در ادامه، مهم‌ترین موارد این بخش به تفکیک معرفی شده‌اند.

  • ساخت API و سرویس بک‌اند

    دات‌نت انتخاب موجهی است وقتی تیم در C# و ASP.NET Core تجربه دارد یا سرویس‌های موجود همین پشته را دارند. اگر تیم و زیرساخت فعلی بر Node.js، Laravel یا Spring Boot استوار است، هزینه آموزش و مهاجرت را پیش از شروع پروژه بسنجید.

  • توسعه در اکوسیستم C#

    اگر بخشی از تیم با C# کار می‌کند یا کتابخانه‌ها و منطق کسب‌وکار موجود با این زبان نوشته شده‌اند، .NET از استفاده مجدد و نگهداری یکپارچه‌تر پشتیبانی می‌کند. برای پروژه‌ای بدون این وابستگی، انتخاب پشته باید بر اساس مهارت تیم و نیاز محصول باشد.

  • سامانه‌های متصل به پایگاه داده

    برای سرویس‌هایی با داده رابطه‌ای، .NET می‌تواند به PostgreSQL یا MySQL متصل شود. این ارتباط به‌تنهایی دلیل انتخاب .NET نیست. اگر پایگاه داده و سرویس‌های فعلی با فناوری دیگری پایدار هستند، مهاجرت فقط در صورت منفعت روشن فنی یا عملیاتی توجیه دارد.

  • پردازش‌های پس‌زمینه و زمان‌بندی‌شده

    وقتی پردازش‌های پس‌زمینه باید کنار APIهای ASP.NET Core و در یک پشته C# نگهداری شوند، استفاده از .NET می‌تواند پیچیدگی عملیاتی را کاهش دهد. اگر این پردازش‌ها مستقل‌اند، ابزار و زبان فعلی تیم ممکن است انتخاب کم‌هزینه‌تری باشد.

  • استقرار کانتینری سرویس‌ها

    سرویس‌های دات‌نت را می‌توان در Docker بسته‌بندی و روی Linux اجرا کرد. این گزینه برای تیمی مناسب است که فرایند ساخت، تنظیم متغیرهای محیطی، ثبت لاگ و پایش کانتینرها را دارد. در غیر این صورت، کانتینری کردن صرفاً هزینه عملیاتی اضافه می‌کند.

  • مقایسه پشته‌های جایگزین

    Java یا PHP به‌تنهایی جایگزین کامل .NET نیستند و معمولاً همراه فریم‌ورکی مانند Spring Boot یا Laravel ارزیابی می‌شوند. Node.js نیز محیط اجرای JavaScript است و انتخاب آن معمولاً با فریم‌ورک وب و ابزارهای همان اکوسیستم کامل می‌شود. معیار اصلی، پشته موجود، مهارت تیم، هزینه مهاجرت و نیاز استقرار است.

ابزارهای جایگزین

اگر این ابزار پاسخگوی نیاز شما نبود، گزینه‌های زیر را بررسی کنید.

پرسش‌های رایج درباره دات‌نت

اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.

آیا دات‌نت همان C# است؟

خیر. C# یک زبان برنامه‌نویسی است، اما دات‌نت پلتفرم، محیط اجرا، کتابخانه‌ها و ابزارهایی است که برنامه‌های C# معمولاً با آن ساخته و اجرا می‌شوند.

تفاوت دات‌نت و ASP.NET Core چیست؟

دات‌نت پلتفرم عمومی توسعه و اجرا است. ASP.NET Core فریم‌ورکی در این اکوسیستم است که مشخصاً برای ساخت برنامه‌ها و سرویس‌های وب استفاده می‌شود.

برای یادگیری بک‌اند دات‌نت از کجا شروع کنم؟

ابتدا مبانی C#، شی‌گرایی، Git و SQL را یاد بگیرید. سپس یک API عملی با ASP.NET Core بسازید که عملیات CRUD، احراز هویت، اتصال به پایگاه داده، چند تست خودکار و استقرار آزمایشی داشته باشد. وقتی بتوانید API را از ابتدا اجرا کنید، خطاهای رایج را رفع کنید، تست‌ها را اجرا کنید و راهنمای اجرای پروژه را بنویسید، برای پروژه پیچیده‌تر یا مرحله بعد آماده‌اید.

آیا دات‌نت فقط روی Windows اجرا می‌شود؟

خیر. نسخه‌های جدید دات‌نت روی Windows، Linux و macOS اجرا می‌شوند. بسیاری از سرویس‌های بک‌اند دات‌نت نیز روی سرورهای Linux مستقر می‌شوند.

آیا برای استفاده از دات‌نت باید Visual Studio نصب کنم؟

خیر. می‌توانید با SDK دات‌نت و ابزار خط فرمان کار کنید. Visual Studio یا Visual Studio Code توسعه و دیباگ را راحت‌تر می‌کنند، اما برای اجرای خود دات‌نت الزامی نیستند.

آموزش‌های مرتبط در فرادرس

منابع پیشنهادی

برچسب‌ها و کلیدواژه‌ها