NET. در سال 2000 معرفی شد و توسعهٔ آن تا امروز ادامه داشته است. NET Framework. محصول اصلی خانوادهٔ داتنت است که توسط غول نرمافزاری دنیا (مایکروسافت) طراحی و به بازار عرضه شده است. در این مقاله ابتدا به مهمترین تفاوتهای NET. و NET Core. اشاره کرده و در ادامه با روش ایجاد و دیباگ یک برنامهٔ کنسولی با NET Core. و به زبان #C در محیط ویژوال استودیو 2017 آشنا خواهید شد.
در ابتدا، دولوپرهایی که از تکنولوژیهای مایکروسافت استفاده میکردند، برای توسعهٔ صفحات وب سراغ وب فرم (ASP.NET Web Form) میرفتند. در ادامه ASP.Net MVC معرفی شد که با وب فرم کاملاً متفاوت بود. اخیراً نیز Net Core. توسط مایکروسافت معرفی شده است که در ادامه خواهیم دید NET Framework. و NET Core. چه تفاوتهایی با یکدیگر دارند:
- در NET Core. از تمام مدلهای NET Framework. پشتیبانی نمیشود؛ به این دلیل که بسیاری از این مدلها بر اساس امکانات و تکنولوژیهای ویندوز نوشته شدهاند و استفاده از آنها در سایر پلتفرمها مثل لینوکس ممکن نیست. برای مثال، در NET Core. نمیتوان پروژهای از نوع WPF ایجاد کرد (WPF تکنولوژی مایکروسافت برای پیادهسازی اینترفیس جذاب و روانتر در برنامههای ویندوزی است).
- در NET Core. تنها بخشی از امکانات NET Framework. پیادهسازی شده است. هدف از این کار برنامهنویسی و پیادهسازی سادهتر مدلها عنوان شده است.
- قبلاً در NET Framework. شما مجبور بودید از وب سرور سنگین IIS و سیستمعامل ویندوز استفاده کنید در حالی که در NET Core. میتوان از مک و لینوکس هم استفاده کرد. باتوجه به اینکه سرویسدهندههای ویندوزی کمی نسبت به سرویس دهندههای لینوکسی گرانتر هستند، این موضوع از حیث کاهش هزینهها هم میتواند برای دولوپرها حائز اهمیت باشد.
- موضوع جذاب دیگر بحث #اپنسورس بودن NET Core. است که به دولوپرها اجازه میدهد اصلاحات دلخواه خود را در سورس داتنت اضافه نمایند و این در حالی است که در NET Framework. تنها قسمتی از کد به صورت Read-only و اپنسورس ارائه شده است.
ساخت برنامهٔ Hello World با استفاده از زبان #C و فریمورک NET Core.
در ادامه خواهیم دید که چهطور میتوان برنامهٔ سادهٔ Hello World را به زبان #C با NET Core. ایجاد کرد. در ویژوال استودیو 2017، کلیهٔ امکانات لازم برای ایجاد یک برنامهٔ NET Core. مهیا است. هر برنامهای که با NET Core. نوشته شده است، در تمامی پلتفرمهایی که از آن پشتیبانی میکند نیز قابل اجرا است (البته تا زمانی که وابستگیهای پلتفرمی خاصی در آن وجود نداشته باشد). این ادعا مصداق این است که چنانچه برنامهای در پلتفرم ویندوز نوشته شده باشد، میتواند بدون هیچ تغییری در کد، در لینوکس هم اجرا شود. البته این در حالی است که در لینوکس هم فریمورک NET Core. باید نصب شده باشد.
در ادامه، قصد داریم یک برنامهٔ کنسولی ساده با استفاده از این فریمورک اپنسورس ایجاد نماییم. از جملهٔ پیشنیازهای نوشتن چنین برنامهای، میتوان به ویژوال استودیو 2017 به همراه NET Core. اشاره کرد (میتوانید این برنامه را با هر دو نسخهٔ NET Core 1.1. یا NET Core 2.0. ایجاد نمایید).
برای این منظور، وارد محیط Visual Studio 2017 شوید. منوی File > New > Project را انتخاب کنید و در پنجرهٔ New Project، تب Templates را باز نموده، سپس #Visual C را انتخاب و در نهایت روی NET Core. کلیک کنید. حال از سمت راست، تمپلیت (Console App (.NET Core را انتخاب کنید و در کادر متن Name، عنوان Hello World را تایپ نمایید و در نهایت دکمهٔ OK را کلیک کنید.
ویژوال استودیو از تمپلیت برای ایجاد پروژه شما استفاده میکند. تمپلیت C# Console Application برای NET Core. به صورت خودکار کلاسی به نام Program ایجاد میکند که متدی به نام Main درون خود دارد. ساختار کلی این متد به این شکل است:
static viod Main (string[] args)
این متد یک آرایه رشتهای را به عنوان آرگومان دریافت میکند. تابع Main نقطهٔ آغازین برنامه است و زمانی که برنامه را اجرا کنید، این متد به صورت خودکار فراخوانی میشود. هر آرگومانی که موقع فراخوانی برنامه در کامندلاین وارد کنید، در آرایهٔ args ذخیره خواهد شد. در بدنهٔ تابع Main متدی تحت عنوان WriteLine دیده میشود؛ چنین متدی این وظیفه را دارا است تا مقدار آرگومان خود را در کنسول چاپ میکند.
حال زمان اجرای برنامه است. برای این منظور، روی فلش سبز رنگ در نوار ابزار کلیک نمایید تا برنامه اجرا شود (یا کلید F5 را فشار دهید). در این حین، پنجرهٔ کنسول ظاهر میشود اما بلافاصله بسته خواهد شد! دلیل چنین اتفاقی این است که متد Main به انتها میرسد و بلافاصله برنامه نیز به دنبال آن خاتمه مییابد. برای اینکه بتوان در پایان برنامه مانع از بسته شدن پنجرهٔ کنسول شد، باید کد زیر را به انتهای بدنهٔ متد Main اضافه کرد:
Console.Write("Press any key to continue...");
Console.ReadKey(true);
با نوشتن این کد، پیامی به کاربر جهت فشردن یک کلید نمایش داده میشود و برنامه منتظر میماند تا کاربر کلیدی را بفشارد و پس از این مرحله، برنامه به پایان خواهد رسید.
در ادامه، از منوی اصلی گزینهٔ Build > Build Solution را انتخاب نمایید. با این کار، برنامهٔ شما به یک زبان میانی (IL) کامپایل خواهد شد که سپس توسط کامپایلر JIT که مخفف واژگان Just In Time است، به کد باینری (کد ماشین یا همان صفر و یک) تبدیل میشود. اکنون برنامه را مجدداً اجرا نمایید.
میبینید که عبارت Hello World نمایش داده میشود و بلافاصله بعد از آن برنامه منتظر میماند تا کاربر کلیدی را فشار دهد و با فشردن کلید، برنامه خاتمه مییابد. به عنوان سورسکد کامل برنامهٔ Hello World در داتنت کور داریم:
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.WriteLine("press any key to continue...");
Console.ReadKey(true);
}
}
}
در این آموزش، ما یک برنامهٔ بسیار ساده را در NET Core. ایجاد کردیم. مطمئناً با انجام نمونههای بیشتر، به مرور زمان با مزایا و امکاناتی که NET Core. در اختیار دولوپرها قرار میدهد بیشتر آشنا خواهید شد.
نیاز به توضیح نیست که این محصول مایکروسافت هنوز در ابتدای راه است و بدون شک در آینده بیشتر از آن خواهید شنید.