سی شارپ #C چیست؟
سی شارپ که معمولا به صورت #C یا C Sharp هم نوشته نوشته میشود یک زبان برنامه نویسی شیءگرا، سطح بالا و قدرتمند است که مالک آن شرکت مایکروسافت میباشد. شرکت مایکروسافت این زبان برنامه نویسی را پس از آن که مدت کوتاهی زبان جاوا تحت مالکیت شرکت مایکروسافت بود، در سال ۲۰۰۱ پدید آورد. بسیاری از افراد فکر میکردند که زبان سی شارپ یک زبان تقریباً برابر با زبان جاوا است اما در حقیقت این زبان شبیه زبان سی پلاس پلاس ++C میباشد و درنهایت ساده بودن بسیار قدرتمند است و یادگیری آن به مرتب آسان تر میباشد.
زبان سی شارپ در ابتدا با هدف چندمنظوره بودن تشکیل شد. به طوری که هم یادگیری آن آسان باشد و هم قدرتمند باشد و نیازهای کاربران را رفع کند. شاید به جرئت بتوان گفت که یک برنامه نویس سی شارپ میتواند در هر زمینه ای برنامه بنویسد.
ویژگی های زبان سی شارپ
قبل از معرفی دوره های آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته بهتر است در مورد ویژگی های زبان سی شارپ صحبت کنیم. هر زبان برنامه نویسی دارای یکسری خصوصیات و ویژگیها است. زبان سی شارپ نیز دارای ویژگیهای مثبت بسیاری است، هر کاربر مبتدی که بخواهد این زبان برنامه نویسی را یاد بگیرد بهتر است با این ویژگیها آشنا شود تا هنگام انتخاب زبان تصمیم درستی بگیرد.
مزایای سی شارپ
- سی شارپ زبان رایگان و متن باز (Open Source) است :
زبان سی شارپ که یک زبان از خانواده دات نت (NET.) است یک زبان متن باز است و تمامی مشخصات زبان سی شارپ، کامپایلرها و ابزارهای مرتبط با پروژههای متن باز همگی در گیت هاب (Github) نیز موجود هستند. کامپایلرهای سی شارپ از سال ۲۰۱۴ منبع باز شدند تا کاربران بتوانند به راحتی از این زبان قدرتمند استفاده کنند.
- سی شارپ سریع و یادگیری آن آسان است :
همانطور که گفتیم زبان سی شارپ بسیار آسان است و به راحتی میتوان آن را یاد گرفت زیرا این زبان به زبان محاورهای انسان نزدیک است و فهم و خوانایی کدها حتی برای کسی که کار با این زبان را بلد نیست آسان است. به دلیل یادگیری آسان این زبان، کار کردن با سی شارپ برای کاربران مبتدی نیز آسان است زیرا از همان ابتدا هدف مایکروسافت از توسعه این زبان این بود که یک زبان آسان و درعین حال قدرتمند باشد.
- سی شارپ مدرن و بروز است :
سی شارپ با توجه به اینکه با درنظر گرفتن کسب و کارها و شرکتها طراحی شده است یک زبان مدرن است که همچنان در حال آپدیت شدن میباشد. شرکت های مختلف میتوانند نرم افزارها و اپلیکیشنهای مورد نیاز خود را بدون کم و کاستی با زبان سی شارپ طراحی کنند. در اینکه سی شارپ یک زبان چندمنظوره است شکی نیست و بسیار کارآمد میباشد.
- سی شارپ چند سکویی (Crossplatform) است :
آیا میدانید چند سکویی یعنی چه؟ یک زبان برنامه نویسی چند سکویی (یا چند پلتفرمی) است که بتوان با آن یک برنامهای نوشت و برای چندین پلتفرم خروجی گرفت. زبان سی شارپ نیز یک زبان چند پلتفرمی میباشد و با استفاده از آن میتوان برای محیط وب، Windows و حتی Android و IOS نیز خروجی گرفت.
طبیعتاً اینکه یک برنامه نویس بتواند یک بار کد بنویسد و برای چند پلتفرم خروجی بگیرد کار را سریعتر خواهد کرد و در زمان و هزینه نیز صرفه جویی خواهد شد. پس بنابراین کار کردن با زبان سی شارپ میتواند کار یک برنامه نویس را راحت کند و این یکی از موهبات این زبان است.
- سی شارپ دارای امنیت بالایی میباشد :
سی شارپ یک زبان برنامه نویسی ایمن است که قابلیت تبدیل نوع را ندارد زیرا این قابلیت ممکن است موجب از بین رفتن اطلاعات کاربر شود. زبان سی شارپ به حقوق کاربران بسیار اهمیت میدهد و قابلیت هایی دارد که توسعه دهندگان بتوانند به صورت ایمن کد بنویسند.
- سی شارپ در حال پیشرفت میباشد :
زبان سی شارپ به عنوان یکی از زبانهای سطح بالا و پرکاربرد از محبوبیت بسیار بالایی برخوردار است. این زبان هم اکنون نیز درحال پیشرفت و تکمیل شدن میباشد و میتواند به عنوان یک گزینه خوب برای یادگیری باشد. اگر نگاهی به تاریخچه زبان سی شارپ بیاندازید و با دیگر زبانهای برنامه نویسی دنیا آن را مقایسه کنید متوجه خواهید شد که زبان سی شارپ سریعتر از هر زبان دیگری در حال پیشرفت است.
معایب زبان سی شارپ
علاوه بر مزایا و ویژگیهای که برای این زبان شمردیم، سی شارپ معایبی نیز دارد. البته تمامی زبانهای برنامه نویسی هم دارای مزایا و هم معایب هستند و اگر بخواهیم صادقانه بگوییم معایب سی شارپ در مقایسه با دیگر زبانهای برنامه نویسی بسیار کمتر است. در آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته نیز ما به این معایب اشاره ای گذرا می کنیم.
از معایب سی شارپ میتوان به موارد زیر اشاره کرد :
- وابسته بودن به فریم ورک دات نت NET.
- عملکرد ضعیفتری در مبحث تولید اپلیکیشنهای موبایلی نسبت به دیگر زبانهای طراحی اپلیکیشن موبایل دارد.
- آپدیتهای API را دیرتر دریافت میکند.
- در محیطهای خارج از دات نت نمیتوان از آن استفاده کرد.
از کجا شروع کنیم؟
ما در پست آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته دقیقاً میخواهیم به این سوال پاسخ دهیم. از آن جایی که هر زبان برنامه نویسی نیازمند یکسری پیش نیازها میباشد بنابراین زبان سی شارپ نیز از این قاعده مستثنی نیست! برای شروع یادگیری هر زبان برنامه نویسی ابتدا بهتر است کمی راجب اصول اولیه برنامه نویسی مطالعه کنید.
این اصول میتواند شامل مفاهیم زیر باشد :
- مفهوم داده و متغیر
- تبدیل دادهها
- آرایهها (Arrays) و ساختار (Structure)
- آشنایی با مفهوم مفسر (Interpreter) و کامپایلر (Compiler)
- کلاس (Class) و شیء (Object)
پس از یادگیری مفاهیم اولیه حال نوبت آن است که با انواع دستورها آشنا شوید. اگر قبلاً سابقه فعالیت در برنامه نویسی با یک زبان دیگر را داشتهاید و با این مفاهیم آشنا هستید دیگر نیاز نیست این مفاهیم را از نو فرا بگیرید اما تمرین و تکرار میتواند موجب یادگیری بیشتر شود.
اگر هم قبلاً به هیچ وجه سابقه برنامه نویسی نداشتهاید نگران نباشید. خوشبختانه در حال حاضر و عصر اینترنت آموزش های فراوانی در رابطه با آموزشهای برنامه نویسی مخصوصاً آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته وجود دارد که میتواند شما را به یک برنامه نویس کامل تبدیل کند و شما را وارد بازار کار کند.
محیط برنامه نویسی سی شارپ
شرکت مایکروسافت برای برنامه نویسی سی شارپ IDE مخصوص خود را به نام ویژوال استودیو (Visual Studio) معرفی کرده است. مایرکروسافت ویژوال استودیو نه تنها از زبان سی شارپ بلکه از بسیاری زبانهای دیگر نظیر Python ،++C ،Fortran ،JavaScript و از همه مهمتر Visual Basic پشتیبانی میکند.
ویژوال استودیو قابلیت نصب برو روی سیستم عامل های ویندوز، لینوکس و مک را دارد. آخرین ورژن ویژوال استودیو ۲۰۱۹ بوده و ویژوال استودیو ۲۰۲۲ نیز به تازگی منتشر شده است.
نصب ویژوال استودیو
برای آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته در ابتدا لازم است ویژوال استودیو را بر روی سیستم خود نصب کنید. برای نصب ویژوال استودیو بر روی سیستم خود ابتدا باید سیستم عامل و سخت افزار مناسب را انتخاب کنید. در ادامه نسخه مورد نظر خود را دانلود کنید.
پیشنهاد ما دانلود نسخه ۲۰۱۹ ویژوال استودیو میباشد. یکی دیگر از پیشنیازهای ویژوال استودیو نصب Microsoft .NET Framework 4.5 یا بالاتر است. شما میتوانید از سایت اصلی این نرم افزارها را دانلود کنید.
حال نوبت به نصب ویژوال استودیو میرسد. نصب این نرم افزار بسیار آسان است اما درصورتی که نیازمند یک آموزش رایگان درباره نصب ویژوال استودیو هستید میتوانید به فرادرس مراجعه کنید. دقت کنید که حتماً پیشنیازهای نرم افزاری و سخت افزاری را رعایت فرمایید تا هنگام نصب به مشکل برنخورید.
ایجاد اولین برنامه در محیط ویژوال استودیو
در ادامه آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته میخواهیم اولین برنامه خود را بنویسیم. برای ایجاد برنامه جدید ویژوال استودیو را باز کنید. بر روی New Project کلیک کنید. در این پنجره و در سمت چپ #Visual C را انتخاب کنید. از بین پروژههای موجود Console Application را انتخاب کرده و در قسمت Name یک نام دلخواه برای پروژه خود انتخاب کنید و دکمه OK را کلیک کنید.
فرآیند ایجاد پروژه ممکن است چند لحظه طول بکشد. منتظر بمانید تا اولین صفحه از پروژه باز شود. اگر دقت کنید در سمت راست برنامه یک پنجره به نام Solution Explorer وجود دارد که در داخل آن فایل Program.cs وجود دارد. برنامههایی که میخواهیم بنویسیم داخل این فایل نوشته میشوند.
اجزای یک پروژه Console Application
در پست آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته بهتر است به این موارد نیز اشاره کنیم که وقتی شما اولین پروژه خود را ایجاد کنید میبینید که یکسری کدها از قبل در محیط ویژوال استودیو وجود دارند. این کدها برای راحتی کار به صورت پیشفرض وجود دارند تا نیازی به دوباره نوشتن نباشد. این کار باعث خواهد شد سرعت انجام کار افزایش پیدا کند.
یک برنامه سی شارپ دارای using System میباشد که اجازه استفاده از کتابخانهی System را به ما میدهد. یک namespace داریم که نام پروژه را تعیین میکند. class Program کلاس پیشفرض پروژه ما است که در ادامه میتوانید با فراگیری مباحث مربوط به کلاس نحوه ایجاد کلاسهای مختلف را یاد بگیرید.
و در نهایت static void Main(string[] args) داریم که همان بخش Main برنامه است. دستورات در ویژوال استودیو در داخل بخش Main نوشته میشوند.
نوشتن برنامه در محیط کنسول
حال میخواهیم یک دستور چاپ در محیط کنسول بنویسیم. توجه کنید دستوراتی که بخواهید در محیط کنسول بنویسید همگی باید با عبارت Console شروع شده باشند. همچنین زمانی که شما شروع به نوشتن یک دستور میکنید به صورت خودکار ادامه دستور به شما پیشنهاد داده میشود. دستور چاپ پیغام در خروجی بدین صورت است :
Console.WriteLine("Hello World!");
برای مشاهده خروجی دوراه وجود دارد. یک اینکه میتوانید بر روی دکمه Start کلیک کنید و یا از کیبورد دکمه F5 را بفشارید. برنامه را با استفاده از دکمه F5 اجرا کنید. چه اتفاقی میافتد؟ همانطور که میبینید برنامه پس از اجرا فوراً بسته میشود. برای جلوگیری از این اتفاق میتوانید کلید ترکیبی shift+F5 را بفشارید.
همانطور که میبینید برنامه اجرا شده است و یک پیغام هم همراه با آن نمایش داده شده است. پنجره cmd را ببندید. استفاده از کلید ترکیبی shift+F5 از لحاظ استاندارد درست نیست. برای اینکه از بسته شدن پنجره خروجی جلوگیری کنید باید یک دستور به انتهای برنامه خود اضافه کنید. این دستور ()ReadKey میباشد. این دستور را باید بدین صورت بنویسیم:
Console.ReadKey();
این متد موجب میشود برنامه تا زمانی که یک کلید از کیبورد فشار داده نشده، بسته نشود. حال دوباره با استفاده از دکمه Start برنامه را اجرا کنید. همانطور که میبینید دیگر خروجی برنامه بسته نمیشود. اگر دقت کنید مسیر فایل اجرایی نیز در همان پوشهای است که پروژه خود را ایجاد کردهایم. با ادامه آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته با ما همراه باشید.
تفاوت بین ()Write و ()WriteLine
هردوی این دو متد برای چاپ خروجی مورد استفاده قرار میگیرند. با این تفاوت که متد ()WriteLine هر خط دستور را چاپ کرده و دستور بعدی در خط بعدی چاپ خواهد شد. اما متد ()Write خروجی را به صورت پشت سر هم چاپ میکند. برای مثال اگر دو دستور چاپ با متد ()Write داشته باشیم هردوی آنها تنها در یک خط چاپ خواهد شد.
ساخت یک برنامه مبتدی
پس از آن که نحوه نوشتن یک دستور چاپ را یاد گرفتید نوبت آن است که یک برنامه ساده بنویسید. در این برنامه ما میخواهیم سه عدد ورودی از کاربر بگیریم و میانگین این سه عدد را حساب کنیم. همانطور که میدانید برای پیدا کردن ماینگین چند عدد ابتدا باید اعداد را با هم جمع کنید و سپس حاصل را تقسیم بر تعداد کنید. برای نوشتن این برنامه به صورت زیر در بخش Main اقدام کنید و سپس دکمه Start را کلیک کنید :
class Program { static void Main(string[] args) { int number1,number2,number3,avarage; Console.Write("Enter 1st number :"); number1 = int.Parse(Console.ReadLine()); Console.Write("Enter 2nd number :"); number2 = int.Parse(Console.ReadLine()); Console.Write("Enter 3rd number :"); number3 = int.Parse(Console.ReadLine()); avarage = (number1 + number2 + number3) / 3; Console.Write("Avarage of three numbers is {0}",avarage); Console.ReadKey(); } }
ابتدا چهار متغیر از نوع int تعریف میکنیم. سه متغیر جهت ذخیره اعداد و یک متغیر جهت ذخیره میانگین اعداد تعریف شده اند. با استفاده از تابع ()int.Parse رشته ورودی را که کاربر وارد میکند به نوع داده عددی (int) تبدیل میکنیم. و داخل این تابع با استفاده از تابع ()Console.ReadLine ورودی را از کاربر دریافت میکنیم.
درنهایت در داخل متغیر avarage عملیات جمع سه متغیر و تقسیم بر ۳ انجام میگیرد. حال برای چاپ از اشارهگر استفاده کرده و پیغام نهایی با استفاده از متد ()Console.Write چاپ میشود. برای اینکه پنجره خروجی فوراً بسته نشود از متد ()Console.ReadKey استفاده کردهایم. خروجی برنامه به صورت زیر خواهد بود :
تفاوت Console application و Windows form application
در برنامه نویسی سی شارپ دو نوع اپلیکیشن بیشتر از همه مورد استفاده قرار میگیرد. همانطور که از نام Console application پیداست این یک برنامه متنی است که خروجی آن در محیط cmd (خط فرمان) میباشد. در این نوع اپلیکیشن امکان استفاده از دکمهها یا رابط گرافیکی وجود ندارد. این نوع اپلیکیشن دقیقاً مانند کامپیوترهای قدیمی هستند که تنها دارای محیط command prompt بودند.
برعکس Windows form application دارای یک رابط کاربری گرافیکی (GUI) است. از این نوع اپلیکیشن برای طراحی برنامههای گرافیکی استفاده میشود. در حقیقت نحوه کدنویسی در Windows form هیچ تفاوتی با Console application ندارد. پس از آن که شما آیتم های مورد نظر خود (دکمه و …) را به برنامه اضافه کردید با دابل کلیک بر روی هر آیتم محیط کدنویسی کنسول باز میشود که باید کدهای خود را داخل آن بنویسید.
آموزش سی شارپ پیشرفته
پس از آن که مباحث اولیه و دستورات ساده سی شارپ را یاد گرفتید نوبت آن است که به مباحث پیشرفته بپردازید. اگر به دنبال یادگیری پیشرفته سی شارپ باشید حتماً با اصطلاح معماری سه لایه برخورد کردهاید. یکی از مهمترین مباحث موجود در آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته، معماری سه لایه میباشد. معماری سه لایه برای آسان تر شدن کار با نرم افزار و ایجاد تغییرات در برنامه به وجود آمده است که موجب سریعتر شدن انجام کارها میشود
. هر لایه به صورت مستقل از هم کار میکنند و در عین حال با دیگر لایه ها در ارتباط هستند. معماری سه لایه یک سرویس است، سرویس گیرنده-سرور که در ادامه پست آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته به توضیح هرکدام از این لایهها خواهیم پرداخت.
معماری سه لایه
در معماری سه لایه (Three layer architecture) ابتدا باید بدانیم لایه چیست. همانطور که میدانید لایه به یک بخش از برنامه گفته میشود. برای کاربران مبتدی درک معماری سه لایه سخت است. اما درصورتی که به صورت عملی کار کنید به راحتی به درک کافی از این موضوع خواهید رسید. زمانی که بخشهای مختلف یک برنامه به واسطه جداسازی منطقی (Logical separation) از هم جدا میشوند لایه را تشکیل میدهند. جداسازی در قالب Namepsaces و Classes انجام میپذیرد. در آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته معماری سه لایه برنامه نویسی #C معرفی می شود.
هر لایه از سه بخش به صورت زیر تشکیل میشود :
- Presentation Layer/ UI Layer : این لایه بالاترین لایه برنامه است و ظاهر برنامه (UI) را تشکیل میدهد. در این لایه که همان قسمت دیزاین اپلیکیشن است، اطلاعات به کاربر نمایش داده میشود، فعالیت های تعاملی در آن انجام میشود و تمامی آیتم هایی که در ظاهر برنامه نمایش داده میشوند در این لایه قرار میگیرند. کاربر تنها با این لایه در ارتباط خواهد بود و به دیگر لایه ها دسترسی نخواهد داشت.
- Business Layer : در این لایه همانطور که از نامش پیداست عملیات تجاری یا به عبارتی محاسبات و منطق صورت میپذیرد. تعریف کلاسها و انجام محسابات و ارسال آن به لایه UI، در لایه انجام میشود.
- Data Access Layer : لایه دسترسی به داده به لایه تجاری کمک میکند تا با پایگاه داده ارتباط برقرار کند. چهار عملیات اساسی ذخیره سازی دائمی یعنی ایجاد، خواندن، بروزرسانی و حذف در این لایه انجام میشود. به صورت کلی هرچیزی که با پایگاه داده مرتبط باشد در این لایه میباشد.
مزایای معماری سه لایه
معماری سه لایه مزایای فراوانی دارد که به صورت خلاصه به برخی از آنها اشاره میکنیم :
- طراحی سه لایه این امکان را به شما میدهد تا هر لایه دلخواهی را بدون دستکاری دیگر لایهها ویرایش و بروزرسانی کنید.
- از آن جایی که هر حوزهای متخصص خودش را دارد بنابراین معماری سه لایه این امکان را به توسعه دهندگان خواهد داد تا در طراحی هر لایه از متخصصین مربوطه استفاده کنید.
- این امکان باعث خواهد شد تا امنیت کدها افزایش یابد. در صورتی که مشکلی در یک لایه وجود داشته باشد بر دیگر لایهها تاثیر نخواهد گذاشت.
- موجب سهولت نگهداری کدها و مدیریت کدها میشود.
- موجب بهینه هرچه بیشتر برنامهها میشود، زیرا هرلایه در زمان دریافت آپدیت میتواند به صورت جداگانه بروزرسانی شود و موجب صرفه جویی در زمان و هزینهها خواهد شد.
چنانچه بخواهید هرچه بیشتر در مورد معماری سه لایه یاد بگیرید پیشنهاد میکنیم معماری سه لایه در مهندسی نرم افزار چ فرادرس را مطالعه نمایید.
سخن آخر در مورد آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته
در این پست در محوریت آموزش برنامه نویسی سی شارپ از مبتدی تا پیشرفته صحبت کردیم و با تاریخچه زبان برنامه نویسی سی شارپ آشنا شدیم. در این پست مزایا و معایب سی شارپ ذکر شد و همچنین به معرفی محیط برنامه نویسی ویژوال استودیو نیز پرداختیم.
زبان برنامه نویسی سی شارپ یک زبان سطح بالاست که یادگیری آن برای هرفردی مناسب است. زیرا همانطور که گفتیم با استفاده از سی شارپ شما میتوانید در زمینههای مختلف اپلیکیشنهای زیبا و کاربردی بسازید.
اگر مهارت کافی در تولید پروژه های تحت #C را داشته باشید براحتی می توانید برای خودتان کسب درآمد کنید. سایت پی استور برای فروش محصولات و پروژه های برنامه نویسی شما برنامه دارد. پیشنهاد می کنیم در فرصتی مناسب مقاله ما را برای کسب درآمد از طریق فروش فایل مطالعه بفرمایید.