آموزش سی شارپ

 

 

معرفی زبان برنامه نویسی #C سی شارپ

 

یکی از محبوب ترین زبان های برنامه نویسی #C است . این زبان قدرتمند در کنار ASP.NET کولاک میکند !

#C یک زبان برنامه نویسی چند مدلی است که شامل دستوری ، تابعی، عمومی، شیء گرا و جزء گرا است .

این زبان توسط شرکت مایکروسافت و از دل فریم ورک .NET مایکروسافت خلق و پرورش یافت و بعد ها توانست استاندارد های ISO و Ecma را دریافت کند و به‌عنوان یک زبان استاندارد تایید شود.

چرا سی شارپ؟

  • استفاده گسترده
  • چند سکویی بودن (Cross Platform)
  • بازار کار عالی در ایران
  • بازار کار جهانی خوب
  • کدنویسی آسان در ویژوال استودیو قدرتمندترین IDE موجود برای برنامه نویسی
  • با یادگیری زبان برنامه نویسی سی شارپ، دیگر نیاز به زبان های دیگر برای برنامه نویسی در پلتفرم های مختلف نخواهید داشت.
  • یک زبان برنامه نویسی مدرن و همه منظوره است.
  • کاملا شی گراست (object oriented)
  • جزء گراست (componentoriented)
  • به راحتی فرا گرفته می شود و یادگیری آن آسان است.
  • زبان ساخت یافته است (برنامه ها را می توان به اجزا و زیر برنامه های کوچکتر تقسیم کرد)
  • برای تولید برنامه های کارآمد قابل استفاده است.  و…

 

 

 

معرفی کامل سی شارپ

 

بدون شک یکی از محبوب ترین و پرکاربرد ترین زبان های برنامه نویسی حال حاضر دنیا سی شارپ نام دارد و بر اساس آخرین تحقیقات صورت گرفته این زبان جزو ۵ زبان برنامه نویسی برتر در دنیا می باشد، که همچنین بازار کار بسیار خوبی در ایران دارد. از زبان برنامه نویسی C# می توان برای ساخت برنامه های تحت ویندوز (دسکتاپ)، برنامه های تحت وب،Web service  ها، برنامه های موبایل و بازی ها استفاده کرد.

برای توسعه برنامه های ویندوز از طریق زبان سی شارپ می توان از پلتفرم های WinForms،WPF  و UWP استفاده کرد. حتی با استفاده از زبان سی شارپ و پلتفرم هایی مانند Xamarin و UWP می ‌توان برای اندروید،  iOS و ویندوزفون‌ ها برنامه ایجاد کرد.

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

 

 

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

 

مفهوم دات نت در زبان سی شارپ

 

در کنار سوال سی شارپ چیست ؟، حتماً این سوال هم مطرح می شود. چون زبان سی شارپ وابستگی زیادی به دات نت دارد. دات نت یک فریم ورک است که برای اجرای برنامه های سی شارپ به آن نیاز خواهید داشت.

یعنی اگر شما برنامه ای به زبان سی شارپ بنویسید و بخواهید آن را بر روی یک سیستم دیگر اجرا کنید حتماً باید بر روی آن سیستم دات نت نیز نصب باشد. دات نت یک محیط مدیریت شده و امن برای اجرای برنامه های سی شارپ فراهم می کند. البته دات نت فقط مختص به زبان سی شارپ نیست و زبان های دیگری نیز مبتنی بر دات نت وجود دارند، مثل زبان F# یا زبان Visual Basic که مایکروسافت در کنار سی شارپ این زبان ها را نیز ارائه می دهد.
دات نت از اجزای مختلفی تشکیل شده که هر کدام از آن ها وظایف مختلفی را در روند اجرای کدها ایفا می کنند.

بخش هایی مثل GC یا Garbage Collector که وظیفه مدیریت حافظه را در زمان اجرای برنامه های دات نت دارد، بخش JIT که وظیفه ترجمه کدهای برنامه به زبان ماشین را دارد و … اما به طور کلی اصلی ترین بخش دات نت CLR یا Common Language Runtime است که این بخش وظیفه اجرا و مدیریت کدها را به عهده دارد و بخشی مانند GC زیر مجموعه این بخش می باشد.

 

سی شارپ چیست؟

 

ارتباط سی شارپ با Net Framework.

سی شارپ یکی از زبان‌های بر پایه چارچوب دات نت (NET Framework.) است. دات نت فریمورک شامل کتابخانه‌های غنی برای توسعه نرم افزار است که شامل فناوری‌هایی مانند ASP.Net و ADO.Net و LINQ می‌باشد. همچنین، کدهای سی شارپ در چارچوب دات نت، ابتدا به زبان میانی مشترک یا (CIL (Common Intermediate Language تبدیل شده و با استفاده از زبان مشترک زمان اجرا یا (CLR (Common Language Runtime اجرا می‌شود.

کاربرد سی شارپ در لینوکس

در حال حاضر و به لطف پشتیبانی دات نت از پلتفرم های مختلف، امکان برنامه نویسی و اجرای کدهای سی شارپ بر روی پلتفرم های مختلف وجود دارد. شما به راحتی می توانید دات نت را بر روی سیستم عامل لینوکس نصب کنید و با ابزار هایی مثل VS Code که به آن اصطلاحاً IDE یا Integrated Development Environment گفته می شود و برای نوشتن برنامه ها از آن استفاده می کنیم.

 

سی شارپ چیست

در سیستم عانملی مثل لینوکس شروع به کد نویسی کنید. به صورت رسمی این موضوع بعد از ارائه Dot Net Core امکان پذیر شد، ولی قبل از معرفی Dot Net Core که آخرین نسل از فریم ورک دات نت است، باید از ابزار های جانبی مثل Mono استفاده می کردیم، اما در حال حاضر دات نت به صورت پیش فرض قابلیت چند پلتفرمی را پشتیبانی می کند.

قواعد زبان سی شارپ

  • سی شارپ حساس به حروف کوچک و بزرگ است. (Case-Sensitive)
  • در سی شارپ ۷۹ کلمه کلیدی وجود دارد و از این ۷۹ کلمه نمی‌توان برای نام‌گذاری شناسه‌ها (مانند نام متغیر، نام کنترل، نام شیء، نام کلاس و…) استفاده کرد.
  • بعد از نوشتن هر خط دستور باید از (;) که سمی‌ کالن (Semicolon) نامیده می‌شود استفاده کرد.
  • در ابتدای کدها، باید از کلمه کلیدی using برای تعریف namespace ها استفاده می‌کنیم. namespace ها یا فضای نام برای دسته بندی کلاس‌ها و کوتاه تر کردن کدنویسی به کار می‌رود.

 

برنامه نویسی متا

برنامه نویسی متا از طریق خصیصه های C Sharp بخشی از این زبان است. بسیاری از این خصیصه ها، کارایی GCC ها و دایرکتیوهای پیش پردازنده مبتنی بر پلتفرم Visual C++ را تکثیر می کنند.

متدها و توابع در سی شارپ

مانند C++ و برخلاف جاوا، برنامه نویس های C Sharp باید از کلمه کلیدی Virtual  استفاده کنند تا اجازه دهند متدها توسط زیرکلاس ها بازنویسی و Override شوند.

متدهای Extension در C# به برنامه نویس ها اجازه می دهند از متدهای استاتیک استفاده کنند، مانند اینکه آنها از جدول متدهای یک کلاس گرفته شده باشند و به برنامه نویس ها اجازه می دهند به یک شی متدی اضافه کنند که حس می کنند باید روی آن شی و مشتقات آن وجود داشته باشد.

نوع dynamic  اجازه اتصال متد Run-time‌ را می دهد و اجازه فراخوانی های متد مانند جاوا اسکریپت و ترکیب بندی شی در زمان اجرا را می دهد.

زبان برنامه نویسی C# از نشانگرهای تابع با وابستگی زیاد به نوع از طریق کلمه کلیدی delegate  پشتیبانی می کند. مانند Signal‌ و Slot شبه C++ مربوط به فریم ورک Qt، سی شارپ هم دارای معناشناسی در زمینه رویدادهای به سبک Publish-Subscribe‌ است، البته C#‌ برای این کار از delegate ها استفاده می کند.

زبان برنامه نویسی سی شارپ فراخوانی های متد synchronized  جاوا مانند از طریق [MethodImpl(MethodImplOptions.Synchronized)]  دارد و از طریق کلمه کلیدی lock  از قفل های منحصر متقابل پشتیبانی می کند.

Property در سی شارپ

زبان برنامه نویسی سی شارپ Property هایی به عنوان شکر نحوی برای یک الگوی رایج ارائه می کند که در آن یک جف متد، accessor (getter) و mutator (setter) عملیات ها را روی یک خصیصه از یک کلاس محصور می کنند. نیازی به نوشتن متدهای اضافی برای بکارگیری getter/setter وجود ندارد و به جای فراخوانی های متد طولانی، از طریق قاعده نحوی خصیصه می توان به property دست یافت.

Namespace در سی شارپ

یک namespace  سی شارپ همان سطح از انزوای کد را مانند Package  در جاوا یا namespace  ‌در C++ ارائه می کند که قوانین و ویژگی های آن بسیار مشابه package  است.

 

C SHARP

چرا سی شارپ؟

 

  • آسان بودن یادگیری برنامه نویسی سی شارپ

سی شارپ جزء زبان های سطح بالا است و به زبان های برنامه نویسی چون  C, C++ و جاوا نزدیک است؛ بنابراین یادگیری این زبان آسان است و شما با داشتن یک منبع مناسب می توانید به خوبی این زبان برنامه نویسی را یاد بگیرید. (به آموزش های ما در قسمت زبان های برنامه نویسی حتما سر بزنید)

  • استفاده گسترده از زبان سی شارپ برای توسعه برنامه های دسکتاپ (ویندوز) و تحت وب

زبان C# به صورت گسترده برای تولید برنامه های دسکتاپ ، تحت وب و Web service ها مورد استفاده قرار می گیرد؛ مایکروسافت با خرید شرکت  Xamarin قدم بزرگی در مسیر رشد هر چه بیشتر استفاده از زبان #C برداشت. Xamarin  امکانی را فراهم کرده است که به سادگی می‌توان با استفاده از زبان #C برای دستگاه‌های اندرویدی و iOS اپلیکیشن موبایل تولید کرد.

  • استفاده از زبان سی شارپ برای تولید بازی

زبان سی شارپ به صورت گسترده برای تولید بازی های مختلف مورد استفاده قرار می گیرد.

  • زبان #C دارای برنامه های تحت وب یکپارچه ای است
  • کدنویسی آسان در نرم افزار ویژوال استودیو که قدرتمندترین IDE موجود برای برنامه نویسی است.
  • زبان برنامه نویسی سی شارپ دارای کتابخانه بزرگی است که می تواند عملکرد سطح بالاتری نسبت به دیگر زبان ها همچون جاوا و C++ ارائه دهد.
  • بازار کار عالی در ایران و خارج از ایران
  • پشتیبانی و بروزرسانی مداوم توسط شرکت مایکروسافت
  • زبان برنامه نویسی C# کاملا شی گرا است.

 

کاربردهای سی شارپ

این زبان برای طیف وسیعی از اهداف می‌­تواند استفاده شود. مانند :

  •   کتابخانه و اجرای ویندوز
  •   برنامه‌­های کاربردی وب
  •   برنامه­‌های موبایلی بومی ios و اندروید
  •   خدمات ویندوز کنسول و سیستم بازی
  •   بازی‌­های ویدیویی و واقعیت مجازی
  •   نرم­‌افزار سازمانی
  •   فناوری بلاک چین و دفتر کل توزیع شده
  •   برنامه نویسی در سطح سخت افزار

 

برنامه نویسی شی گرا (Object Oriented Programming)

برنامه نویسی شی گرا که به اختصار OOP نیز نامیده می‌شود، در حقیقت منطقی برگرفته از زندگی روزمره‌ی ما انسان ها است. اگر به اطراف خود بنگرید، اشیای مختلفی را می بینید،  پس انسان بر اساس اشیا فکر می کند. در برنامه نویسی شی گرا نیز ما تلاش می کنیم تا مفاهیم برنامه نویسی را  همانند اشیای دنیای واقعی مدل کنیم. زیرا ذهن انسان توانایی بالایی در مدل سازی اشیا دارد.

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

یکی از قابلیت های زبان سی شارپ، نوشتن سرویس های ویندوز است. سرویس های ویندوز برنامه هایی هستند که توسط کاربر دیده نمی شوند و در پس زمینه ویندوز در حال اجرا هستند. به عنوان مثال سرویس به روز رسانی ویندوز، شما به صورت مستقیم این سرویس را مشاهده نمی کنید و این سرویس در پس زمینه در حال اجرا می باشد و در بازه های زمانی مختلف به صورت خودکار سایت مایکروسافت را برای به روز رسانی های جدید چک می کند و در صورت وجود به روز رسانی آن را دانلود کرده و نصب می کند. بوسیله زبان سی شارپ به راحتی می توانید سرویس های ویندوز را نوشته و آن ها را اجرا کنید.

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

حث بازی نویسی امروزه خیلی طرف دار دارد و خیلی افراد جذب این حوزه می شوند. ابزاری که از آن در سی شارپ برای نوشتن بازی استفاده می شود Unity نام دارد. این ابزار در هنگام نصب Visual Studio در صورت انتخاب در زمان نصب بر روی سیستم شما نصب می شود و می توانید شروع به یادگیری Unity کنید. ابزار Unity امکان نوشتن بازی برای ابزار های مختلف مثل گوشی های هوشمند و کامپیوتر های شخصی را می دهد.

 

برنامه نویسی هوش مصنوعی در سی شارپ

شاید با شنیدن واژه هوش مصنوهی اولین زبانی که به ذهن ما می آید، زبان پایتون است. زبانی قدرتمند با قابلیت های خیلی زیاد. اما قابلیت های هوش مصنوعی در سی شارپ چیست؟ آیا امکان نوشتن برنامه های مبتنی بر هوش مصنوعی در سی شارپ وجود دارد. باید بگوییم بله. برای مثال، یکی از ابزار هایی که توسط مایکروسافت ارائه شده ابزار ML.NET است که برای بحث بادگیری ماشین استفاده می شود و شما می توانید از این ابزار برای نوشتن برنامه های یادگیری ماشین استفاده کنید.

 

توسعه صفحات وب در سی شارپ

برای کدنویسی سمت سرور وبسایت‌ها با استفاده از سی شارپ، می‌توانید از تکنولوژی محبوب ASP.Net استفاده کنید. ASP مخفف Active Server Page است. برای کار با این فریمورک، باید ابتدا زبان سی شارپ را به خوبی یاد بگیرید، چون بسیاری از کدهای مورد استفاده در ASP.Net به زبان سی شارپ هستند. همچنین، پایگاه داده مورد استفاده، Microsoft SQL Server و وب سرویس مورد نیاز جهت اجرای صفحاتی که با ASP نوشته شده باشند، IIS می‌باشد. منحنی یادگیری دشوار و هزینه‌های بیشتر برنامه نویسی سمت سرور یک وب سایت با استفاده از ASP.Net از معایب این تکنولوژی است.

 

 

کد نویسی با سی شارپ

هوش مصنوعی

یکی از شاخه‌های پرکاربرد هوش مصنوعی، یادگیری ماشین است. یادگیری ماشین یعنی کامپیوترها بتوانند بدون برنامه‌ای با دستورات واضح، چیزهای جدیدی را با استفاده از نمونه‌ها و تجربیات خود یاد بگیرند. یادگیری ماشین یا ML که مخفف Machine Learning است، در زمینه‌های گوناگون کاربرد دارد، مانند موتورهای جستجو، فیلتر کردن ایمیل‌های دریافتی، تشخیص چهره، تشخیص پزشکی و زبان شناسی. با استفاده از سی شارپ و بسته‌ی نرم‌افزاری ML.Net می‌توانید با زبان سی شارپ و در حوزه یادگیری ماشین، برنامه‌نویسی کنید.

 

مایکروسافت حتی در محصولاتش مانند ویندوز، بسته نرم‌افزاری آفیس و موتور جستجوی Bing از این کتابخانه استفاده کرده است. در حال حاضر، فقط سیستم‌های ۶۴ بیتی می‌توانند از ML.Net استفاده کنند و حتما باید Net Core 3.0. را روی سیستم خود نصب کرده باشید تا بتوانید از آن استفاده کنید. ویژگی‌های ML.Net عبارتند از: Cross-Platform بودن، قابلیت اتصال #C به کتابخانه‌ی معروف Tensorflow، استفاده از هر نوع سیستم مدیریت پایگاه داده ی رابطه‌ ای (RDBMS) مانند Oracle ،SQLite ،PostgreSQL، قابلیت الگوسازی و یادگیری ماشینی خودکار و آموزش شبکه عصبی عمیق با GPU.

 

 

تفاوت بین زبان هایC ، C++، Objective-C و C#

این چهار زبان برنامه نویسی مختلف نام های مشابهی دارند اما تفاوت هایی در نحوه عملکرد و شیوه استفاده از آنها وجود دارد.

  • C قدیمی ترین زبان است که تقریباً در همه سیستم ها برای اجرای کامپایلرها و کنترل عملکردهای اصلی یک سیستم عامل مورد استفاده قرار می گیرد.
  • ++C در سال ۱۹۷۹ ساخته شد، برنامه نویسی شی گرا با کلاس را معرفی کرد که مهمترین تفاوت آن با زبان C است. از گرامر و سینتکس زبان C استفاده می کند.
  • Objective-C در سال ۱۹۸۳ شروع به کار کرد اما در سال های اخیر محبوب شده است. نیروی محرکی برای برنامه های Mac و iPhone می باشد و بالاتر از زبان C قرار می گیرد. شی گرا و محدود به سخت افزار اپل است.
  • C# (سی شارپ) توسط مایکروسافت در سال ۲۰۰۱ ساخته شد، اصلی ترین زبان شی گرا برای پلتفرم .NET است. در واقع اشتراک زیادی با C ندارد و بیشتر رقیب پلتفرم جاوا است. در آن زمان مایکروسافت زبان ها را با برچسب # نامگذاری می کرد، مانند A#، F#. علاوه بر این قالب بندی و مدیریت کتابخانه ها در آن بسیار متفاوت تر از زبان C است. C# مانند C به کد ماشین نزدیک به نیست (گرچه می تواند کد ماشین را به صورت محدود از طریق MSIL مدیریت کند).

 

آموزش سی شارپ

IDE های زبان سی شارپ

مایکروسافت IDE های مختلفی را برای برنامه نویسی #C ارائه می کند:

  • Visual Studio 2010 (VS)
  • Visual Studio Express
  • Visual Web Developer
  • Visual Studio Code (VSC)

فایل‌های کد منبع سی شارپ را می ‌توان با استفاده از یک ویرایشگر متن اصلی، مانند Notepad، نوشت و با استفاده از کامپایلر خط فرمان .NET Framework کامپایل کرد.

نسخه های متن باز جایگزین .Net Framework  می توانند روی سیستم عامل های دیگر نیز کار کنند. به عنوان مثال،Mono یک کامپایلر #C دارد و روی چندین سیستم عامل از جمله لینوکس، مک، اندروید، BSD، iOS، ویندوز، سولاریس و یونیکس اجرا می ‌شود.

از آنجایی که سی شارپ بخشی از پلتفرم .Net Framework  است، به کتابخانه عظیم کدها و مؤلفه‌های آن مانند Common Language Runtime (CLR)، .Net Framework Class Library، Common Language Specification، Common Type System، Metadata and Assemblies، Windows Forms، ASP.Net و ASP.Net AJAX، Windows Workflow Foundation (WF)، Windows Communication Foundation (WCF) و LINQ دسترسی دارد.

 

مقایسه سی شارپ با جاوا

سی شارپ و جاوا زبان های برنامه نویسی سطح بالایی هستند که شباهت های زیادی با هم دارند (و همچنین تفاوت های زیادی). هر دو زبان شی گرا هستند و تحت تأثیر ++C قرار گرفته اند. اما در حالی که سی شارپ برای توسعه برنامه در اکوسیستم مایکروسافت مناسب است، جاوا برای برنامه های وب سمت کلاینت به عنوان بهترین گزینه در نظر گرفته می شود. همچنین، در حالی که #C ابزارهای زیادی برای برنامه نویسی دارد، جاوا دارای زرادخانه بزرگتری از ابزارها برای انتخابIDE ها و ویرایشگرهای متن است.

سی شارپ برای پروژه های واقعیت مجازی مانند بازی ها، موبایل و برنامه های کاربردی وب استفاده می شود و به طور خاص برای پلتفرم‌ های مایکروسافت و چندین سیستم عامل غیر مبتنی بر مایکروسافت، مانند Mono Project که با Linux و OS X کار می ‌کند ساخته شده است. جاوا برای ایجاد برنامه‌ های پیام‌ رسانی و توسعه برنامه‌ های مبتنی بر وب و سازمانی در اکوسیستم‌ های منبع باز استفاده می‌ شود.

 

 

هم سی شارپ و هم جاوا از آرایه ها پشتیبانی می کنند. با این حال، هر زبان از آنها به طور متفاوت استفاده می کند.

 

ورژن های زبان برنامه نویسی سی شارپ

 

جدول ورژن ها

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

مزایا

این زبان دارای مزایای مختلفی است، از جمله:

  • Syntax مشابه جاوا، زبان C++‎ و C
  • قدرتمندترین زبان برنامه نویسی که از Net Framework. استفاده می‌کند.
  • دارای امنیت بالا
  • قابلیت استفاده مجدد از کدها
  • دارای کتابخانه های غنی برای استفاده در زمینه های مختلف
  • چندسکویی بودن (Cross-Platform)

معایب

  • ارتباط ضعیف با API
  • عدم امکان استفاده مستقیم از زبان اسمبلی
  • وابستگی زیاد به چارچوب Net.
  • منحنی یادگیری دشوار

ویژگی های کلی زبان سی شارپ

سی شارپ یک زبان سطح بالا، شئ گرا، مدرن و چند منظوره بر پایه Net. است. این زبان از خانواده زبان های C است و استانداردهای ECMA/ISO را داراست.

پیش نیازهای یادگیری سی شارپ

  • دانش اولیه C یا ++C یا هر زبان برنامه نویسی یا اصول برنامه نویسی
  • علاوه بر این، مفهوم OOP مسیر یادگیری #C را کوتاه تر می کند
ما در آکادمی آنلاین قاسمی این امکان را فراهم نموده ایم تا با سبکی کاملا متفاوت و اصولی شما را از آغاز تا پایان دوره برنامه نویسی با #C همراهی کنیم و موفقیت شما را در این درس شاهد باشیم.
C#, آموزش برنامه نویسی با سیشارپ, آموزش سی شارپ, آموزش کدنویسی به زبان سی شارپ, برنامه نویسی به زبان سی شارپ, درس سی شارپ هنرستان, زبان سی شارپ, سی شارپ از مقدماتی, سی شارپ حرفه ای, طراحی فروشگاه با سی شارپ, کاربردهای سی شارپ, مزایای سی شارپ, نمونه برنامه با سی شارپ
نوشتهٔ پیشین
اصول SEO
نوشتهٔ بعدی
برنامه نویسی با PHP

پست های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

You cannot copy content of this page

error: Content is protected !!