برنامهنویسی به زبان #C یکی از پرکاربردترین زبانهای برنامهنویسی است که برای توسعه نرمافزارهای متنوع از وب سایتها تا برنامههای دسکتاپ و حتی برنامههای موبایل استفاده میشود. با طراحی شیگرا، #C امکانات قوی و انعطافپذیری را برای برنامهنویسان فراهم میکند. این زبان، به همراه محیط توسعه Visual Studio، ابزارهایی برای توسعه سریع و با کیفیت برنامهها ارائه میدهد. این مقدمه اولیه میتواند به دانشجویان و علاقمندانی که تمایل به یادگیری برنامهنویسی دارند، درک اولیهای از این زبان ارائه دهد و آنها را برای مراحل بعدی آموزش آماده کند.
مقدمه
سی شارپ #C یک زبان برنامه نویسی با هدف کلی و چند منظوره است که توسط مایکروسافت توسعه یافته و بر روی داتنت فریمورک Framework NET. اجرا میشود. سی شارپ بهطور گسترده برای ساخت اپلیکیشنهای موبایل، بازی÷ها و اپلیکیشنهای ویندوز استفاده میشود.
Net Framework. چیست؟
داتنت فریمورک Net Framework. یک پلتفرم توسعه نرم افزار است که توسط شرکت مایکروسافت برای ساخت و اجرای برنامههای کاربردی ویندوز توسعه یافته است. چارچوب داتنت شامل ابزارهای توسعه دهنده، زبانهای برنامه نویسی و کتابخانهها برای ساخت برنامههای دسکتاپ و وب است. همچنین برای ساخت وب سایتها، وب سرویسها و بازیها استفاده میشود.چارچوب داتنت برای ایجاد برنامههایی بود که روی پلتفرم ویندوز اجرا میشدند. اولین نسخه از چارچوب Net در سال ۲۰۰۲ منتشر شد. نسخه ۱.۰ Net Framework. نام داشت. فریمورک داتنت مایکروسافت از آن زمان به بعد راه درازی را پیموده است و نسخه فعلی ۴.۸.۱ Net Framework. است. فریمورک مایکروسافت داتنت میتواند برای ایجاد برنامههای کاربردی مبتنی بر فرم و مبتنی بر وب استفاده شود. خدمات وب نیز میتواند با استفاده از چارچوب Net. توسعه یابد.
این فریمورک همچنین از زبانهای برنامه نویسی مختلفی مانند ویژوال بیسیک و سی شارپ پشتیبانی میکند. بنابراین توسعه دهندگان میتوانند زبانی را برای توسعه برنامه موردنیاز انتخاب کنند. در این مقاله با برخی از اصول چارچوب Net آشنا خواهید شد.
معماری Net Framework.
Net Framework Architecture. یک مدل برنامه نویسی برای پلتفرم Net است که یک محیط اجرا و یکپارچهسازی با زبانهای برنامه نویسی مختلف را برای توسعه ساده و استقرار برنامههای مختلف ویندوز و دسکتاپ فراهم میکند. این معماری شامل کتابخانههای کلاس و اجزای قابل استفاده مجدد است. معماری اصلی فریمورک داتنت مطابق شکل زیر است.
اجزا و معماری فریمورک داتنت بر مولفههای کلیدی استوار است که در ادامه به توضیح آنها میپردازیم:
زمان اجرا زبان مشترک Runtime Language Common
زیرساخت زبان مشترک یا CLI یک پلتفرم در معماری Net است که برنامههای .Net بر روی آن اجرا می شوند. CLI دارای ویژگیهای کلیدی زیر است:
- Handling Exception: استثناها خطاهایی هستند که هنگام اجرای برنامه رخ میدهند. نمونه هایی از استثناها عبارتند از: اگر برنامهای سعی کند فایلی را در ماشین محلی باز کند، اما فایل موجود نباشد. اگر برنامه سعی کند برخی از رکوردها را از پایگاه داده دریافت کند، اما اتصال به پایگاه داده معتبر نیست.
- Collection Garbage: جمع آوری زباله فرآیند حذف منابع ناخواسته در زمانی است که دیگر مورد نیاز نیستند.
نمونه هایی از جمع آوری زباله:
- یک دسته فایل که دیگر مورد نیاز نیست. اگر برنامه تمام عملیات روی یک فایل را تمام کرده باشد، ممکن است دیگر به دسته فایل نیاز نباشد.
- اتصال پایگاه داده دیگر مورد نیاز نیست. اگر برنامه تمام عملیات روی یک پایگاه داده را تمام کرده باشد، ممکن است دیگر نیازی به اتصال پایگاه داده نباشد.
- کامپایلر – یک کامپایلر وجود دارد که برای هر زبان برنامه نویسی جداگانه خواهد بود. بنابراین زیربنای زبان Net.VB، یک کامپایلر جداگانه Net.VB وجود خواهد داشت. به همین ترتیب، برای سی شارپ، کامپایلر دیگری خواهید داشت.
- مترجم زبان مشترک Interpreter Language Common: این الیه نهایی در Net. است که برای اجرای یک برنامه .net توسعه یافته در هر زبان برنامه نویسی استفاده میشود. بنابراین کامپایلر بعدی برنامه را به الیه CLI میفرستد تا برنامه Net. را اجرا کند.
کتابخانه کلاس Class Libarary
چارچوب داتنت شامل مجموعهای از کتابخانههای کلاس استاندارد است. کتابخانه گلاس مجموعهای از روش ها و توابع است که میتواند برای هدف اصلی استفاده شود. به عنوان مثال، یک کتابخانه کلاس با متدهایی برای مدیریت تمام عملیات در سطح فایل وجود دارد. بنابراین روشی وجود دارد که میتوان از آن برای خواندن متن از یک فایل استفاده کرد. به طور مشابه، روشی برای نوشتن متن در یک فایل وجود دارد.
زبان Language
انواع برنامههای کاربردی که میتوانند در چارچوب Net ساخته شوند به طور کلی در دسته های زیر طبقه بندی می شوند.
- WinForms: این برای توسعه برنامههای مبتنی بر فرم ها، که بر روی ماشین کاربر نهایی اجرا می شوند، استفاده میشود. Notepad نمونه ای از یک برنامه مبتنی بر کاربر است.
- Net.ASP: برای توسعه برنامههای مبتنی بر وب، که برای اجرا در هر مرورگری مانند اینترنت اکسپلورر، کروم یا فایرفاکس ساخته شده اند، استفاده میشود.
- Net.ADO: این فناوری برای توسعه برنامههای کاربردی برای تعامل با پایگاه های داده مانند Oracle یا SQL Microsoft Server استفاده میشود. مایکروسافت همیشه تضمین میکند که چارچوبهای .Net با تمام سیستم عاملهای ویندوز پشتیبانی میشوند.
اصول طراحی Framework Net
در این بخش از آموزش برنامه نویسی سی شارپ با اصول طراحی Framework Net. آشنا میشویم. در اصول طراحی در چارچوب Net قابلیتها و چالشهای بسیار مهمی وجود دارد که ایجاد برنامههای کاربردی مبتنی بر Net. را بسیار کارا نشان میدهد.
- قابلیت همکاری Interoperability: چارچوب .Net پشتیبانی زیادی را ارائه میدهد. فرض کنید برنامهای دارید که بر روی نسخه قدیمیتری از چارچوب Net ساخته شده است، مثلاً در دانت نسخه ۲.۰ و اگر سعی کردید همان برنامه را روی دستگاهی اجرا کنید که دارای نسخه بالاتر فریمورک Net است، مثالً ۳.۵ برنامه همچنان کار میکند. این به این دلیل است که با هر نسخه، مایکروسافت تضمین میکند که نسخههای فریمورک قدیمیتر به خوبی با آخرین نسخه سازگار شوند.
- قابلیت حمل Portability: برنامههای ساخته شده بر روی چارچوب Net را می توان برای کار بر روی هر پلت فرم ویندوز ایجاد کرد. اکنون در چند وقت اخیر، مایکروسافت همچنین محصولات خود را روی پلتفرمهای دیگر مانند iOS و Linux ارائه میکند.
- امنیت Security: داتنت فریمورک مکانیزم امنیتی خوبی دارد. مکانیزم امنیتی داخلی هم در اعتبارسنجی و هم به تأیید برنامه ها کمک میکند. هر برنامه کاربردی میتواند به صراحت مکانیسم امنیتی خود را تعریف کند. هر مکانیزم امنیتی برای دسترسی کاربر به کد یا برنامه در حال اجرا استفاده میشود.
- مدیریت حافظه management Memory: زمان اجرا زبان مشترک همه کارها یا مدیریت حافظه را انجام میدهد. فریمورک داتنت تمام قابلیت دیدن منابعی را دارد که توسط یک برنامه در حال اجرا استفاده نمی شوند. سپس آن منابع را بر این اساس آزاد میکند. این کار از طریق برنامه ای به نام Collector Garbage انجام میشود که به عنوان بخشی از چارچوب Net اجرا میشود. آشغالگیر در فواصل زمانی معینی کار میکند و به بررسی اینکه کدام منابع سیستم استفاده نمیشوند، ادامه میدهد و بر این اساس آنها را آزاد میکند.
- استقرار ساده deployment Simplified: چارچوب Net همچنین دارای ابزارهایی است که می توان از آنها برای بسته بندی برنامههای ساخته شده بر روی چارچوب Net استفاده کرد. سپس این بسته ها میتوانند در ماشین های مشتری توزیع شوند. سپس بستهها به طور خودکار برنامه را نصب میکنند.
آموزش برنامههای کاربردی ویندوز فرم سی شارپ
Windows Forms یک کتابخانه کلاس رابط کاربری گرافیکی GUI است که در Net Framework همراه شده است. هدف اصلی آن ارائه یک رابط کاربری سادهتر برای توسعه برنامههای کاربردی برای دسکتاپ، تبلت، کامپیوترهای شخصی است. برنامههایی که با استفاده از فرمهای ویندوز یا WinForms توسعه مییابند به عنوان برنامههای Windows Forms شناخته میشوند که بر روی کامپیوتر اجرا میشوند. WinForms را می توان فقط برای توسعه برنامههای Windows Forms و نه برنامههای وب استفاده کرد. برنامههای WinForms میتوانند شامل انواع مختلفی از کنترلها مانند برچسبها Label، جعبههای فهرست List، جعبه متنیTextBox و غیره باشند.
ایجاد یک برنامه Windows Forms با Microsoft Visual Studio
ابتدا ویژوال استودیو را باز کنید و سپس به مسیر File> – New> – Project بروید تا یک پروژه جدید ایجاد کنید و سپس زبان را به عنوان #C از منوی سمت چپ انتخاب کنید. در وسط پنجره فعلی روی Windows Forms App (.Net Framework) کلیک کنید. پس از آن نام پروژه را وارد کنید و روی OK کلیک کنید.
در اینجا Solution مانند یک ظرف است که شامل پروژهها و فایلهایی است که ممکن است توسط برنامه مورد نیاز باشد. پس از آن پنجره زیر نمایش داده میشود که به سه قسمت به شرح زیر تقسیم میشود:
- پنجره ویرایشگر یا پنجره اصلی (Editor Window or Main Window): در این بخش با فرمها و کدها کار خواهید کرد. میتوانید به طرح بندی فرم که اکنون خالی است توجه کنید. روی فرم دوبار کلیک میکنید و کد آن باز میشود.
- پنجره کاوشگر Solution یا ( Solution Explorer Window): برای پیمایش بین تمام موارد موجود در راه حل استفاده میشود. به عنوان مثال، اگر فایلی را از این پنجره انتخاب کنید، اطالعات خاصی از آن فایل در پنجره ویژگی نمایش داده میشود.
- پنجره Properties: این پنجره برای تغییر ویژگی های مختلف آیتم انتخاب شده در Solution Explorer استفاده میشود. همچنین میتوانید ویژگیهای اجزا یا کنترلهایی را که به فرمها اضافه میکنید را تغییر دهید.
همچنین میتوانید طرح بندی پنجره را با تنظیم آن به حالت پیش فرض بازنشانی کنید. برای تنظیم طرحبندی پیشفرض، در منوی ویژوال استودیو به مسیر Window -> Layout Window Reset بروید. اکنون برای افزودن کنترلها به برنامه WinForms خود به تب Toolbox در سمت چپ سمت چپ ویژوال استودیو بروید. در اینجا میتوانید لیستی از کنترلها را مشاهده کنید. برای دسترسی به متداولترین کنترلهای مورد استفاده، به Common Controls موجود در تب جعبه ابزار بروید.
اکنون کنترلهایی را که در فرم ایجاد شده نیاز داشتید بکشید و رها کنید. به عنوان مثال، اگر میتوانید TextBox، ListBox،Button و غیره را مانند شکل زیر اضافه کنید. با کلیک بر روی کنترل انتخاب شده خاص، میتوانید ویژگی های آن را در سمت راست ویژوال استودیو مشاهده و تغییر دهید.
در تصویر بالا مشاهده میکنید که TextBox انتخاب شده است و ویژگی های آن مانند TextAlign، MaxLength و غیره در گوشه سمت راست باز می شوند. میتوانید مقادیر ویژگی های آن را بر اساس نیاز برنامه تغییر دهید. کد کنترلها به طور خودکار در پس زمینه اضافه میشود.
میتوانید فایل Form.Designer1.cs موجود در پنجره Solution Explorer را بررسی کنید. برای اجرای برنامه میتوانید از کلید 5F یا دکمه Play موجود در نوار ابزار ویژوال استودیو استفاده کنید. برای توقف برنامه میتوانید از دکمه مکث موجود در نوار ابزار استفاده کنید. همچنین میتوانید برنامه را با رفتن به منوی Debug Debugging ->Start در نوار منو اجرا کنید.
شناسهها در سی شارپ
در زبان های برنامه نویسی از متغیر ها یا شناسهها برای شناسایی استفاده میشود. یا به عبارت دیگر شناسهها نام تعریف شده توسط کاربر اجزای برنامه هستند. در سی شارپ، یک شناسه میتواند نام کالس، نام متد، نام متغیر یا برچسب باشد.
مثال:
public class PS { static public void Main() { int x; } }
در اینجا تعداد کل شناسههای موجود در مثال بالا ۳ است و نام این شناسهها عبارتند از:
- GFG: نام کلاس
- اصلی: متد Main
- x: نام متغیر
قوانین تعریف شناسه در سی شارپ
قوانین معتبر خاصی برای تعریف شناسه #C معتبر وجود دارد. این قوانین باید رعایت شود، در غیر این صورت، با خطای زمان کامپایل مواجه خواهیم شد.
- تنها کاراکترهای مجاز برای شناسهها، همه نویسههای الفبایی هستند ([Z-A[،] z-a[، ۰-۹)][،( »_« زیرخط). به عنوان مثال “program!”یک شناسه #C معتبر نیست زیرا حاوی “!” کاراکتر ویژه است.
- شناسهها نباید با اعداد (]۹-۰[) شروع شوند. به عنوان مثال “123geeks”یک شناسه در #C معتبر نیست.
- شناسهها نباید دارای فاصله های سفید باشند.
- شناسهها مجاز به استفاده به از کلمه کلیدی نیستند مگر اینکه @ را به عنوان پیشوند درج کنند. به عنوان مثال، as @ یک شناسه معتبر است، اما “as” به این دلیل نیست چون که یک کلمه کلیدی است.
- شناسههای #C به حروف بزرگ و کوچک حساس هستند.
- شناسههای سی شارپ نمیتوانند بیش از ۵۱۲ کاراکتر داشته باشند.
مدیریت رویداد #C برای کنترلها
هنگام کار با فرم ویندوز، میتوانید رویدادها را به کنترلها نسبت دهید. رویداد چیزی است که هنگام انجام یک عمل اتفاق میافتد. احتمالاً رایجترین اقدام، کلیک کردن روی یک دکمه روی یک فرم است. در ویندوز فرم #C، میتوانید کدی را اضافه کنید که با فشار دادن دکمهای روی فرم، میتوان از آنها برای انجام برخی اقدامات استفاده کرد. به طور معمول وقتی دکمهای روی یک فرم فشار داده میشود، به این معنی است که باید مقداری پردازش انجام شود. بیایید قبل از رفتن به سناریوی رویداد دکمه، به یکی از رویدادها و نحوه مدیریت آن نگاهی بیندازیم.
جعبه متن (TextBox)
یک جعبه متن برای اجازه دادن به کاربر برای وارد کردن متنی در برنامه ویندوز در سی شارپ استفاده میشود. بیایید ببینیم چگونه میتوانیم این را با مثالی که در زیر نشان داده شده است پیاده سازی کنیم. ما ۲ جعبه متن به فرم اضافه میکنیم، یکی برای نام و دیگری برای آدرسی که باید برای کاربر وارد شود.
مرحله ۱) مرحله اول این است که مطابق شکل زیر، کنترل جعبه متن را از جعبه ابزار به داخل فرم ویندوز بکشید.
مرحله ۲) پس از اضافه شدن کادرهای متن، با کلیک بر روی کنترل جعبه متن به پنجره خصوصیات بروید. در پنجره خواص، به ویژگی Name بروید و یک نام معنادار به هر جعبه متن اضافه کنید. برای مثال، کادر متنی کاربر را txtName و آدرس را txtAddress نامگذاری کنید. یک قرارداد و استاندارد نامگذاری باید برای کنترلها ایجاد شود زیرا دسترسی به این کنترلها آسانتر میشود که در ادامه خواهیم دید.
پس از اعمال تغییرات بالا، خروجی زیر را مشاهده خواهید کرد:
کادر فهرست (Box List)
یک Listbox برای نمایش لیستی از موارد در فرم ویندوز استفاده میشود. بیایید ببینیم چگونه میتوانیم این را با مثالی که در زیر نشان داده شده است پیاده سازی کنیم. برای ذخیره برخی از مکانهای شهر، یک کادر فهرست به فرم اضافه میکنیم. مثال زیر یک رویداد را برای کنترل Listbox نمایش میدهد. بنابراین هر زمان که یک مورد در کنترل لیست باکس انتخاب میشود، یک کادر پیام باید ظاهر شود که آیتم انتخاب شده را نشان میدهد. برای رسیدن به این هدف مراحل زیر را انجام میدهیم.
مرحله ۱) روی Listbox در طرح فرم دوبار کلیک کنید. با انجام این کار، ویژوال استودیو به طور خودکار فایل کد فرم را باز میکند. و به طور خودکار یک روش رویداد را به کد اضافه میکند. هر زمان که هر موردی در لیست باکس انتخاب شود، این روش رویداد فعال میشود.
زمانی که روی کنترل لیست باکس فرم دوبار کلیک کنید کد بالا که به طور خودکار توسط ویژوال استودیو اضافه میشود، حال بیایید بخش زیر کد را به این قطعه کد اضافه کنیم تا عملکرد مورد نیاز را به رویداد لیست باکس اضافه کنیم.
این روش کنترل کننده رویداد است که به طور خودکار توسط ویژوال استودیو با دابل کلیک کردن روی کنترل جعبه لیست ایجاد میشود. نیازی نیست نگران پیچیدگی نام متد یا پارامترهای ارسال شده به متد باشید. در اینجا ما SelectedItem را از طریق ویژگی SelectedItem.lstCity دریافت میکنیم.
به یاد داشته باشید که lstCity نام کنترل Listbox ما است. سپس از متد GetItemText برای بدست آوردن مقدار واقعی آیتم انتخاب شده استفاده میکنیم. سپس این مقدار را به متغیر متنی اختصاص میدهیم. در نهایت از روش MessageBox برای نمایش مقدار متغیر متنی به کاربر استفاده میکنیم. با اعمال تغییرات باال و اجرای برنامه در ویژوال استودیو خروجی زیر را مشاهده خواهید کرد.
از خروجی، میتوانید ببینید که وقتی هر موردی از کادر لیست انتخاب میشود، یک کادر پیام ظاهر میشود. با این کار آیتم انتخاب شده از لیست باکس نمایش داده میشود.
اکنون به کنترل نهایی که روش کلیک دکمه است نگاه میکنیم. باز هم این از همان فلسفه پیروی میکند. فقط روی دکمه در Forms Designer دوبار کلیک کنید و به طور خودکار روش مربوط به کنترل کننده رویداد دکمه را اضافه میکند. سپس فقط باید کد زیر را اضافه کنید.
در اینجا ما مقادیر وارد شده در کادر متنی نام و آدرس را دریافت میکنیم. مقادیر را می توان از ویژگی text جعبه متن برداشت کرد. سپس مقادیر را به ۲ متغیر، نام و آدرس متناسب با آن اختصاص میدهیم. در نهایت از روش MessageBox برای نمایش مقادیر نام و آدرس به کاربر استفاده میکنیم.
کنترلر PictureBox
این کنترل برای افزودن تصاویر به ویندوز فرم سی شارپ استفاده میشود. بیایید ببینیم چگونه می توانیم این را با مثالی که در زیر نشان داده شده است پیاده سازی کنیم.
مرحله ۱) مرحله اول این است که کنترلر Picture Box را بر روی فرم Windows سی شارپ از جعبه ابزار مانند زیر بکشید.
مرحله ۲) مرحله بعدی این است که در واقع یک تصویر را به کنترل جعبه تصویر متصل کنید. این را می توان با انجام مراحل زیر انجام داد:
ابتدا بر روی ویژگی Image برای کنترل PictureBox کلیک کنید. یک پنجره جدید ظاهر میشود. در این پنجره بر روی دکمه Import کلیک کنید. این برای پیوست کردن یک تصویر به کنترل جعبه تصویر استفاده میشود. یک کادر محاورهای ظاهر میشود که در آن میتوانید تصویر را برای پیوست کردن جعبه تصویر انتخاب کنید بر روی دکمه OK کلیک کنید با اعمال تغییرات بالا، خروجی زیر را مشاهده خواهید کرد:
سخن آخر
آموزش برنامه نویسی سی شارپ #C یکی از مهمترین مهارتهایی است که یک برنامهنویس باید به آن مسلط باشد. اولین قدم برای شروع آموزش #C، آشنایی با محیط توسعه مثل Visual Studio است. این محیط ابزارها و منابعی را برای توسعه برنامههای #C ارائه میدهد. شروع برنامه نویسی معمولاً با مبانی برنامهنویسی مانند متغیرها، عملگرها، شرطها، حلقهها و توابع اساسی است. در ادامه چون #C یک زبان برنامهنویسی شی گرا است، بنابراین آشنایی با مفاهیم اصلی شی گرایی مانند کلاسها، اشیاء، ارث بری، پلیمورفیسم و انکاپسولیشن بسیار مهم است.
پس از آشنایی با مبانی و شی گرایی، میتوانید به مفاهیم پیشرفتهتری مانند برنامهنویسی چند رشتهای، کالبک، دیالالها، و اسنک رفتنس پرداخته و برنامههای پیچیدهتری ایجاد کنید.مطالعه مستندات رسمی #C و منابع آموزشی معتبر میتواند به شما کمک زیادی در یادگیری و بهبود مهارتهای برنامهنویسی C# کند. برای تثبیت مطالب آموخته شده، بهتر است پروژههای عملی را پیادهسازی کنید و با کدنویسی و رفع اشکالات روبرو شوید. در کل، آموزش برنامهنویسی با #Cنیازمند تمرین مداوم و کاربرد عملی مطالب است. این به شما کمک میکند تا مهارتهای لازم برای توسعه برنامههای قابل استفاده و عملی را به دست آورید.
بازتاب: سی شارپ چیست؟ – معرفی زبان برنامه نویسی #C به همراه ویژگیها - مجله پیاستور
بازتاب: نحوه اتصال استیمول سافت به ویژوال استودیو — ساده و کاربردی - مجله پیاستور
بازتاب: آموزش سی شارپ (#C): تاریخچه، ویژگیها و کاربردهای این زبان ⭐