• انواع برنامه ها پلتفرم Microsoft.NET مروری بر معماری و قابلیت‌های موجودیت چارچوب Net مزایای اجزای هدف اصلی

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

    NET Framework یک افزونه برای سیستم عامل است که می تواند هر نسخه از ویندوز، یونیکس و به طور کلی هر سیستم عاملی (به گفته توسعه دهندگان) باشد و از تعدادی مؤلفه تشکیل شده است. بنابراین، . NET Framework شامل:

    1. چهار زبان رسمی: C#، VB.NET، مدیریت C++ و JScript.NET.
    2. زمان اجرا (CLR) شی گرا که این زبان ها برای ایجاد برنامه ها به اشتراک می گذارند.
    3. مجموعه ای از کتابخانه های کلاس مرتبط با نام رایج FCL (کتابخانه کلاس چارچوب).

    جزء اصلی پلت فرم. NET Framework زمان اجرا زبان رایج (CLR) است. نام محیط - "زبان مشترک اجرا" - برای خود صحبت می کند: یک محیط زمان اجرا است که برای زبان های برنامه نویسی مختلف مناسب است. توابع CLR عبارتند از:

    1. کامپایل دو مرحله ای: تبدیل برنامه نوشته شده به یکی از زبان های برنامه نویسی به کد مدیریت شده در زبان میانی ( زبان میانی مایکروسافت، MSIL، یا به سادگی IL)، و سپس تبدیل کد IL به کد ماشین یک پردازنده خاص، که با استفاده از یک ماشین مجازی یا یک کامپایلر JIT (کامپایلر Just In Time - کامپایل دقیقا در زمان مناسب) انجام می شود.
    2. مدیریت کد: بارگیری و اجرای کد IL آماده با استفاده از کامپایلر JIT.
    3. دسترسی به ابرداده برای اهداف راستی‌آزمایی امنیت کد;
    4. مدیریت حافظه هنگام قرار دادن اشیاء با استفاده از جمع کننده زباله (Garbage Collector).
    5. رسیدگی به استثناها و موقعیت های استثنایی، از جمله استثناهای بین زبانی؛
    6. رابط بین کد مدیریت شده (کد نوشته شده برای CLR) و کد مدیریت نشده.
    7. پشتیبانی از خدمات برای توسعه برنامه های کاربردی متنوع.

    جزء بعدی Net Framework یک کتابخانه کلاس پلتفرم FCL است. این کتابخانه به چندین ماژول تقسیم شده است به گونه ای که بسته به نتایج مورد نیاز، امکان استفاده از یک یا قسمت دیگری از آن وجود دارد. بنابراین، به عنوان مثال، یکی از ماژول ها حاوی "آجر" است که می توانید از آن برنامه های ویندوز بسازید، دیگری - "آجر" لازم برای سازماندهی شبکه و غیره.

    بخشی از FCL به شرح انواع اساسی اختصاص دارد. نوع روشی برای نمایش داده است. شناسایی اساسی ترین آنها اشتراک گذاری زبان های برنامه نویسی را با آنها آسان تر می کند. چارچوب خالص. در مجموع، این سیستم نوع مشترک (CTS - Common Type System) نامیده می شود.

    علاوه بر این، کتابخانه FCL شامل مشخصات زبان مشترک (CLS - Common Language Specification) است که قوانین اساسی برای یکپارچه سازی زبان را ایجاد می کند. مشخصات CLS حداقل الزامات یک زبان پلتفرم را تعریف می کند. خالص. کامپایلرهایی که با این مشخصات مطابقت دارند، اشیایی را ایجاد می کنند که می توانند با یکدیگر تعامل داشته باشند. بنابراین، هر زبانی که با الزامات CLS مطابقت داشته باشد، می تواند از تمام ویژگی های کتابخانه FCL استفاده کند.

    همانطور که قبلاً اشاره شد، زبان های اصلی طراحی شده برای پلتفرم. NET Framework C#، VB هستند. NET، C++ مدیریت شده و JScript. خالص. برای این زبان‌ها، مایکروسافت کامپایلرهای خود را ارائه می‌کند که برنامه را به کد IL ترجمه می‌کنند، که توسط کامپایلر JIT زمان اجرا (CLR) اجرا می‌شود. علاوه بر مایکروسافت، چندین شرکت و سازمان دانشگاهی دیگر کامپایلرهای خود را ایجاد کرده اند که کدهایی را تولید می کنند که روی CLR اجرا می شود. تا به امروز کامپایلرهای Pascal، Cobol، Lisp، Perl، Prolog و غیره شناخته شده اند. این بدان معنی است که شما می توانید برنامه ای را به عنوان مثال پاسکال بنویسید و سپس از یک کامپایلر مناسب برای ایجاد کد مدیریت شده استفاده کنید که در زمان اجرا در زبان رایج اجرا شود.

    مفاهیم کاربرد، پروژه، راه حل

    NET Framework هیچ محدودیتی برای انواع برنامه‌هایی که می‌توان ایجاد کرد اعمال نمی‌کند. با این حال، بیایید به برخی از رایج ترین انواع برنامه ها نگاهی بیندازیم:

    1. برنامه‌های کنسول به شما امکان می‌دهند به «کنسول»، یعنی به پنجره پوسته خروجی دهید.
    2. برنامه های کاربردی ویندوز که از عناصر رابط ویندوز، از جمله فرم ها، دکمه ها، چک باکس ها و غیره استفاده می کنند.
    3. برنامه های کاربردی وب صفحات وب هستند که توسط هر مرورگر وب قابل مشاهده هستند.
    4. وب سرویس ها برنامه های کاربردی توزیع شده ای هستند که به شما امکان می دهند تقریباً هر داده ای را از طریق اینترنت با استفاده از یک نحو واحد مبادله کنید، صرف نظر از اینکه از کدام زبان برنامه نویسی برای ایجاد وب سرویس استفاده شده است و روی چه سیستمی میزبانی می شود.

    یک برنامه در حال توسعه پروژه نامیده می شود. چندین برنامه را می توان در یک راه حل ترکیب کرد.

    یک محیط مناسب توسعه نرم افزار Visual Studio.Net است.

    Visual Studio .Net Development Environment

    در این دوره به آموزش سی شارپ خواهیم پرداخت. بیایید آشنایی خود را با زبان با توسعه اپلیکیشن های کنسولی آغاز کنیم. ما از ویژوال استودیو به عنوان محیط توسعه خود استفاده خواهیم کرد. خالص (VS).

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

    1. VS به طور خودکار تمام مراحل مورد نیاز برای کامپایل کد منبع را انجام می دهد.
    2. ویرایشگر متن VS برای کار با زبان هایی که توسط VS پشتیبانی می شوند، مانند C# پیکربندی شده است، بنابراین می تواند به طور هوشمند خطاها را تشخیص دهد و دقیقاً کد مورد نیاز را در طول فرآیند ورودی پیشنهاد دهد.
    3. VS شامل برنامه‌هایی است که به شما اجازه می‌دهد تا با کشیدن و رها کردن عناصر رابط کاربری با ماوس، ویندوز و برنامه‌های وب ایجاد کنید.
    4. بسیاری از پروژه های قابل ایجاد در سی شارپ را می توان بر اساس کدهای "اسکلت" که از قبل در برنامه گنجانده شده است، توسعه داد. به جای اینکه هر بار از ابتدا شروع کنید، VS به شما امکان می دهد از فایل های کد منبع موجود استفاده کنید، که زمان صرف شده برای ایجاد یک پروژه را کاهش می دهد.

    اولین پروژه خود را ایجاد کنید

    برای ایجاد یک پروژه، VS را شروع کنید و سپس دستور را از منوی اصلی VS انتخاب کنید فایل - جدید - پروژه.سپس یک منوی گفتگو باز می شود. پروژه جدید(شکل 1.1 را ببینید).


    برنج. 1.1.

    در زمینه انواع پروژهباید انتخاب کند ویژوال سی شارپ، در زمینه قالب هابرنامه کنسول.

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

    در صف محلمکان روی دیسکی را که می خواهید پروژه خود را در آن ذخیره کنید تعیین کنید. و دکمه را فشار دهید خوب. نمای تقریبی صفحه نمایش در شکل 1.2 نشان داده شده است


    برنج. 1.2.

    پنجره مدیریت پروژه در قسمت بالا سمت راست قرار دارد. جستجوگر راه حل View - Solution Explorer. این پنجره تمام منابع موجود در پروژه را فهرست می کند:

    1. AssemblyInfo.cs - اطلاعاتی در مورد مونتاژ.

      کامپایلر در نتیجه اجرای خود به اصطلاح ایجاد می کند مونتاژ– فایلی با پسوند exe یا dll که حاوی کد IL و ابرداده است.

    2. System , System.Data , System.Xml - پیوندهایی به کتابخانه های استاندارد.
    3. Program.cs - متن برنامه در سی شارپ.

    اظهار نظر. در نسخه‌های دیگر VS، این شامل فایلی با پسوند ico نیز می‌شود که وظیفه ظاهر میانبر برنامه را بر عهده دارد.

    پنجره Properties در سمت راست پایین صفحه قرار دارد. خواص. اگر بسته است، با دستور می توان آن را فعال کرد View-Properties. این پنجره مهمترین ویژگی های عنصر انتخاب شده را نمایش می دهد.

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

    متن ساختار یافته است. با کلیک بر روی علامت منهای بلوک کد را مخفی می کنیم و با کلیک بر روی علامت مثبت آن را باز می کنیم.

    بیایید پوشه حاوی پروژه را باز کنیم و ساختار آن را بررسی کنیم (شکل 1.3 را ببینید). فایل های پررنگ فقط پس از کامپایل ظاهر می شوند.


    برنج. 1.3.

    در این مرحله، فایل های زیر مورد توجه ما قرار خواهند گرفت:

    1. سلام.sln- فایل اصلی مسئول کل پروژه. اگر نیاز به باز کردن پروژه برای ویرایش دارید، باید این فایل خاص را انتخاب کنید. بقیه فایل ها به صورت خودکار باز می شوند.
    2. Program.cs– فایلی که حاوی کد منبع – کد نوشته شده در سی شارپ است. با این فایل است که ما مستقیماً کار خواهیم کرد.
    3. hello.exe– فایلی که حاوی کد IL تولید شده و ابرداده پروژه است. به عبارت دیگر، این فایل یک اپلیکیشن آماده است که بر روی هر کامپیوتری که پلتفرم Net نصب شده باشد قابل اجراست.

    حال متن خود برنامه را در نظر بگیرید.

    با استفاده از سیستمدستورالعملی است که امکان استفاده از نام کلاس های استاندارد را از فضای نام فراهم می کند سیستممستقیماً بدون تعیین نام فضایی که در آن تعریف شده اند.

    کلمه کلیدی فضای نامفضای نام خود را برای پروژه ایجاد می کند که به طور پیش فرض نام پروژه نامیده می شود. در مورد ما، فضای نام Hello نامیده می شود. با این حال، برنامه نویس مختار است نام دیگری را تعیین کند. فضای نام دامنه یک نام را محدود می کند و آن را فقط در آن فضا معنا می کند. این کار به این منظور انجام می شود که بتوانید به اشیاء برنامه بدون نگرانی از تطابق نام آنها در سایر برنامه ها نام بدهید. بنابراین، فضای نام به شما امکان می دهد از نام های متناقض اشیاء برنامه جلوگیری کنید، که به ویژه در هنگام تعامل برنامه ها مهم است.

    سی شارپ یک زبان شی گرا است، بنابراین برنامه ای که در آن نوشته می شود مجموعه ای از کلاس های تعاملی خواهد بود. کلاسی به نام Program به طور خودکار ایجاد شد (نسخه های دیگر محیط ممکن است کلاسی به نام Class1 ایجاد کنند).

    این کلاس فقط یک متد دارد - متد Main(). متد Main() نقطه ورود به برنامه است، یعنی. این روش اجرای برنامه را آغاز می کند. هر برنامه سی شارپ باید متد Main() داشته باشد.

    اظهار نظر از نظر فنی امکان وجود چندین متد Main() در یک برنامه وجود دارد، در این صورت باید به کامپایلر سی شارپ بگویید که کدام متد Main() نقطه ورودی برنامه با استفاده از گزینه خط فرمان است.

    Debug-Start Debugging اگر برنامه بدون خطا اجرا شود، پیامی در پنجره کنسول نمایش داده می شود که چشمک می زند و به سرعت بسته می شود. برای مشاهده پیام در حالت عادی، Ctrl+F5 را فشار دهید یا دستور را اجرا کنید اشکال زدایی-شروع بدون اشکال زداییدر مورد ما، پنجره کنسول زیر باز می شود:

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

    ورزش. متن کد را طوری تغییر دهید که پیامی روی صفحه نمایش داده شود: امروز علم کامپیوتر!!!

    یکی از اصول اصلی دات نت را می توان به صورت زیر بیان کرد: "هر چیزی را که می خواهید با هر وسیله ای تغییر دهید." پلتفرم دات نت یک مدل کاملا جدید برای ساخت اپلیکیشن های ویندوزی است. بیایید به طور خلاصه مفاد اصلی دات نت را فهرست کنیم.

    • قابلیت همکاری کامل با کد موجود باینری های COM با باینری های دات نت عالی کار می کنند.
    • تعامل بین زبانی کامل و مطلق. برخلاف COM کلاسیک، دات نت از وراثت بین زبانی، مدیریت استثناهای بین زبانی و اشکال زدایی بین زبانی پشتیبانی می کند.
    • زمان اجرا معمول برای هر برنامه دات نت، صرف نظر از اینکه در کدام زبان ایجاد شده است. و مهمتر از همه، همه زبان ها از یک مجموعه از انواع داده های داخلی استفاده می کنند.
    • یک کتابخانه کلاس پایه که تمام پیچیدگی های استفاده از فراخوانی های API را پنهان می کند و یک مدل شی کامل برای همه زبان های برنامه نویسی که از دات نت پشتیبانی می کنند ارائه می دهد.
    • می توانید ساختارهای گیج کننده COM را فراموش کنید! رابط ها IClassFactory, ناشناسکد IDL و انواع داده در برنامه های دات نت وجود ندارد.
    • ساده سازی واقعی فرآیند استقرار برنامه. در محیط دات نت نیازی به ثبت انواع در رجیستری سیستم ندارید. علاوه بر این، دات نت به نسخه های مختلف یک ماژول DLL اجازه می دهد تا به طور مسالمت آمیز در یک دستگاه وجود داشته باشند.

    مزایای

    1. کل پلت فرم دات نت مبتنی بر یک مدل شی گرا است. چه مفهومی داره؟ واقعیت این است که تمام سرویس ها، رابط ها و اشیایی که پلتفرم در اختیار توسعه دهنده قرار می دهد در یک سلسله مراتب کلاس واحد ترکیب می شوند. به عبارت دیگر، هر چیزی که ممکن است هنگام ایجاد برنامه‌های کاربردی برای پلتفرم دات‌نت نیاز داشته باشید، همیشه در دسترس شما خواهد بود. علاوه بر این، همه اینها بسیار راحت و شهودی گروه بندی می شوند.
    2. برنامه ای که به هر زبان سازگار با دات نت نوشته شده باشد (در حالت ایده آل) چند پلتفرم است. چرا در حالت ایده آل؟ واقعیت این است که برنامه‌ای که مثلاً به زبان سی شارپ نوشته می‌شود، به پلتفرمی که روی آن اجرا می‌شود، بستگی ندارد، بلکه به حضور پلتفرم دات‌نت بستگی دارد. اما باید اعتراف کنید که پورت کردن معماری دات نت یک بار به هر سیستمی و سپس اجرای مطلق هر برنامه دات نت بدون هیچ مشکلی بسیار ساده تر است. اما در حال حاضر پلتفرم دات نت تنها به خانواده سیستم عامل های ویندوز از جمله سیستم های موبایل MS Windows منتقل شده است.
    3. پلت فرم دات نت شامل به اصطلاح. " زباله جمع کن " که منابع را آزاد می کند. بنابراین، برنامه‌ها از نشت حافظه و نیاز به تخصیص منابع محافظت می‌شوند. این امر برنامه نویسی را آسان تر و ایمن تر می کند.
    4. برنامه های دات نت از متادیتا استفاده می کنند که به آنها اجازه می دهد از رجیستری سیستم ویندوز استفاده نکنند.
    5. هر برنامه دات نت مستقل است، به این معنا که به برنامه های دیگر، به ویژه، به سیستم عامل وابسته نیست. نصب برنامه ای که به یکی از زبان های دات نت نوشته شده است را می توان به سادگی با کپی کردن فایل ها انجام داد (استثنا ایجاد میانبر در "شروع" من و جاهای دیگر است).
    6. برنامه های دات نت از انواع ایمن استفاده می کنند که قابلیت اطمینان، سازگاری و چند پلت فرم آنها را بهبود می بخشد.
    7. برنامه ای که به هر زبان دات نت نوشته شده است با یک مدل مدیریت خطا در تعامل است که این فرآیند خسته کننده را بسیار ساده می کند.
    8. برنامه های نوشته شده به زبان های مختلف به راحتی می توانند تعامل داشته باشند. به عنوان مثال، بخش سرور را می توان در سی شارپ نوشت و بخش مشتری را در ویژوال بیسیک.
    9. برنامه های دات نت می توانند ایمن تایید شوند. این یکی از ویژگی های کد میانی است که همه برنامه های دات نت به آن تبدیل می شوند.
    10. کاملاً تمام خطاها توسط مکانیزم استثناء کنترل می شوند. این امر از مشاجره ای که گاهی در هنگام برنامه نویسی تحت Win32 با آن مواجه می شود جلوگیری می کند.
    11. استفاده مجدد از کد حتی راحت تر شده است. دلیلش این است که زبان میانی MSIL مستقل از زبان برنامه نویسی است. به عنوان مثال، شما می توانید یک برنامه را در سی شارپ بنویسید، و یک پچ برای آن مثلا در J# بنویسید.

    ایرادات

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

    1. همانطور که اغلب اتفاق می افتد، شما باید هزینه راحتی را با سرعت بپردازید، و این اتفاق با دات نت افتاد. برنامه های نوشته شده برای پلتفرم دات نت کندتر هستند، این یک واقعیت است. در برخی موارد، سرعت ممکن است تا 15٪ کاهش یابد که گاهی اوقات غیرقابل قبول است (به عنوان مثال، هنگام ایجاد برنامه های سه بعدی که در آن برای هر FPS مبارزه می کنند). تأخیر در اجرا با زبان میانی MSIL مرتبط است، زیرا کامپایل آن در یک فایل اجرایی نیز به زمان نیاز دارد. البته برنامه به یکباره کامپایل نمی شود، بلکه در قسمت هایی به طور یکنواخت در هنگام اجرای برنامه کامپایل می شود.
    2. هر زبانی را نمی توان برای ایجاد برنامه های دات نت استفاده کرد. موضوع این است که در اصل دات نت تحت زبان های C/JAVA مانند "تیز" شده بود. این امر باعث ایجاد مشکلاتی در ایجاد کامپایلرهای دات نت برای زبان های دیگر (به ویژه زبان های عجیب و غریب و بسیار تخصصی) شد. در نتیجه، برخی از توابع باید به روش های غیر پیش پا افتاده حل می شدند که بر عملکرد تأثیر منفی می گذاشت. اما به تدریج این عیب از بین می رود، زیرا. توسعه دهندگان کامپایلر اهمیت پلت فرم دات نت را درک کرده اند و سعی می کنند ابزارهای مناسبی برای زبان های خود بسازند.
    3. کتابخانه FrameWork مورد نیاز است. این نقص با انتشار ویندوز ویستا برطرف شد. این کتابخانه به صورت پیش فرض در سیستم تعبیه شده است.

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

    سی شارپ
  • زمان اجرا زبان رایج) و کتابخانه کلاس ...
  • چارچوب دات نت و مشخصات CTS
    زبان سی شارپ و پشتیبانی از آن در حال حاضر با .NET Framework توسعه یافته توسط مایکروسافت مرتبط است. پلتفرم نامگذاری شده (نگاه کنید به) شامل: زمان اجرا زبان مشترک (CLR - زمان اجرا زبان رایج کتابخانه کلاس چارچوب).باید توجه داشت...
    (برنامه نویسی. C# پایه)
  • نصب دات نت فریم ورک و ویژوال استودیو
    در محیط ویندوز 7 و 8 پلتفرم دات نت از قبل نصب شده است و نیازی به نصب نیست. برای توسعه برنامه های کاربردی در پلت فرم دات نت، باید سیستم توسعه ویژوال را نصب کنید سی شارپنسخه 2012 (یا 2013) Express Edition یک نسخه رایگان از محیط توسعه ویژوال استودیو است (کوتاه شده، اما تقریباً با...
    (برنامه نویسی شی گرا)
  • انواع سی شارپ و انواع پلتفرم فریم ورک دات نت
    زبان سی شارپ و پشتیبانی از آن در حال حاضر با .NET Framework توسعه یافته توسط مایکروسافت مرتبط است. پلتفرم نامگذاری شده (نگاه کنید به) شامل: زمان اجرا زبان مشترک (CLR - زمان اجرا زبان رایج) و کتابخانه کلاس ...
    (برنامه نویسی. C# پایه)
  • چارچوب دات نت و مشخصات CTS
    زبان سی شارپ و پشتیبانی از آن در حال حاضر با .NET Framework توسعه یافته توسط مایکروسافت مرتبط است. پلتفرم نامگذاری شده (نگاه کنید به) شامل: زمان اجرا زبان مشترک (CLR - زمان اجرا زبان رایج) و یک کتابخانه کلاس (FCL - کتابخانه کلاس چارچوب).باید توجه داشت...
    (برنامه نویسی. C# پایه)
  • NET Framework به عنوان چارچوبی برای پشتیبانی، توسعه و اجرای برنامه های کاربردی توزیع شده که بر اساس اجزا (کنترل ها) هستند، عمل می کند.

    برنامه های کاربردی (برنامه ها) را می توان در زبان های برنامه نویسی مختلف توسعه داد که از این فناوری پشتیبانی می کنند.

    NET Framework فراهم می کند:

    • به اشتراک گذاری زبان های برنامه نویسی مختلف؛
    • امنیت و قابل حمل بودن برنامه ها؛
    • مدل برنامه نویسی رایج بر اساس پلتفرم ویندوز

    2. اجزای اصلی دات نت فریم ورک چیست؟

    از نقطه نظر برنامه نویسی، دات نت فریم ورک از دو جزء اصلی تشکیل شده است:

    • زمان اجرای زبان مشترک CLR (زمان اجرای زبان مشترک).
    • کتابخانه کلاس پایه

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

    کتابخانه کلاس پایه شامل تعریف اولیه های مختلف است که می تواند شامل: جریان ها، API های گرافیکی، پیاده سازی پایگاه داده، ورودی/خروجی فایل و غیره باشد.

    3. اصل عملکرد زبان رایج Runtime CLR (Common Language Runtime) چیست؟

    زمان اجرای زبان مشترک (CLR) اجرای کد دات نت را مدیریت می کند.

    پس از کامپایل کردن یک برنامه در سی شارپ (یا زبان دیگر)، فایلی ایجاد می‌شود که حاوی نوع خاصی از شبه کد یا بایت کد است (به جای یک فایل اجرایی، همانطور که قبلاً بود). این شبه کد (MSIL) یا زبان میانی رایج (CIL) نامیده می شود. این شبه کد زبان میانی مایکروسافت است.

    هدف اصلی CLR تبدیل کد میانی MSIL به کد اجرایی در حین اجرای برنامه است.

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

    برنج. 1. فرآیند تبدیل کد منبع به کد MSIL (CIL یا IL) و ایجاد یک فایل اسمبلی (*.dll یا *.exe)

    پس از آن، شبه کد به کد اجرایی تبدیل می شود. این کار توسط کامپایلر JIT انجام می شود. تلفیقی JIT (Just-in-time) تلفیقی در حال پرواز است.

    زمان اجرا زبان مشترک (CLR) وظیفه تعیین محل اسمبلی (سمبلی) را بر عهده دارد.

    نوع درخواستی که در اسمبلی میزبانی می شود (به عنوان مثال، کلاس ArrayList یا نوع دیگری) در فایل باینری (*.dll یا *.exe) با خواندن فراداده آن فایل تعیین می شود.

    سپس CLR نوع خوانده شده از اسمبلی را به حافظه اختصاص می دهد.

    سپس CLR کد CIL را به دستورالعمل های مناسبی تبدیل می کند که مخصوص پلتفرم هستند (بسته به رایانه شخصی، سیستم عامل و غیره). علاوه بر این، بررسی های امنیتی لازم در این مرحله صورت می گیرد.

    آخرین مورد اجرای کد برنامه درخواستی است.

    4. زبان میانی MSIL چیست ( زبان میانی مایکروسافت) یا CIL (زبان متوسط ​​مشترک)؟

    در ابتدا زبان میانی شبه کد نامیده شد زبان میانی مایکروسافت(MSIL). بعداً (در نسخه های اخیر دات نت)، این نام به زبان میانی رایج (CIL) تغییر یافت. اختصارات MSIL، CIL و IL (زبان متوسط) به همین معنی است.

    زبان میانی CIL (یا MSIL) پس از کامپایل کردن یک برنامه در برخی از زبان های برنامه نویسی که از .NET Framework پشتیبانی می کند، تشکیل می شود.

    MSIL شبه کد است. MSIL مجموعه ای از دستورالعمل ها را تعریف می کند که:

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

    در واقع، MSIL است زبان اسمبلی قابل حمل

    5. اسمبلی (مونتاژ) از نظر فناوری دات نت چیست؟

    اسمبلی ها فایل های *.dll یا *.exe هستند که حاوی دستورالعمل های مستقل از پلت فرم دات نت در زبان میانی (IL) و همچنین نوع متادیتا هستند.

    اسمبلی با استفاده از کامپایلر دات نت ایجاد می شود. مونتاژ یک لکه است.

    اسمبلی برای حفظ فضاهای نام (نام فضاها) طراحی شده است. فضاهای نام شامل انواع هستند. انواع می توانند کلاس ها، نمایندگان، رابط ها، شمارش ها، ساختارها باشند.

    یک اسمبلی می تواند شامل هر تعداد فضای نام باشد. هر فضای نامی می‌تواند شامل انواع مختلفی باشد (کلاس‌ها، رابط‌ها، ساختارها، enums، delegates).

    6. چه چیزی در مجامع قرار می گیرد؟

    مجموعه ها حاوی کد CIL (کد MSIL یا کد IL) و ابرداده هستند.

    کد CIL تنها در صورتی برای یک پلتفرم خاص کامپایل می شود که از زمان اجرا دات نت به آن دسترسی داشته باشید.

    فراداده ویژگی های هر نوع موجود در یک موجودیت باینری .NET را با جزئیات شرح می دهد.

    مثلا، هنگامی که یک برنامه کاربردی از نوع Windows Forms Application در سی شارپ ایجاد می کنید، یک فایل Assembly.info ایجاد می شود. این فایل در زیر پوشه Properties نسبت به پوشه اصلی برنامه قرار دارد. این فایل حاوی اطلاعات کلی در مورد مونتاژ می باشد.

    7. آشکار (مجلس) چیست؟

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

    مانیفست حاوی اطلاعات زیر است:

    • در مورد نسخه اسمبلی فعلی؛
    • اطلاعات در مورد فرهنگ (محلی سازی منابع درون خطی و گرافیکی)؛
    • فهرستی از ارجاعات به تمام مجموعه های خارجی که برای عملکرد صحیح مورد نیاز هستند.

    8. نمودار تعامل بین کد منبع، کامپایلر دات نت و موتور اجرای دات نت.

    برنامه نویس کد منبع برنامه را به زبانی ایجاد می کند که از فناوری دات نت پشتیبانی می کند (C#، C++/CLI، Visual Basic.NET، و غیره). این برنامه در برخی از محیط های برنامه نویسی مانند Microsoft Visual Studio ایجاد می شود. کامپایلر یک اسمبلی تولید می کند - فایلی که حاوی دستورالعمل های CIL، ابرداده و یک مانیفست است.

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

    اگر کد منبع از کتابخانه‌های کلاس پایه استفاده می‌کند (مثلاً از مجموعه mscorlib.dll)، آنگاه با استفاده از بارگذار کلاس بارگذاری می‌شوند.

    کامپایلر JIT مونتاژ را با در نظر گرفتن (پیوند) ویژگی های سخت افزاری و نرم افزاری رایانه ای که برنامه روی آن راه اندازی می شود، کامپایل می کند.

    پس از آن، برنامه اجرا می شود.

    شکل 2 رابطه بین کد منبع، کامپایلر و موتور زمان اجرا دات نت

    9. انواع مجموعه ها چیست؟

    دو نوع ساخت وجود دارد:

    • مجموعه های تک فایل؛
    • مجموعه های چند فایلی

    اسمبلی که از یک ماژول (*.dll یا *.exe) تشکیل شده است، اسمبلی تک فایلی نامیده می شود. در مجموعه‌های تک فایلی، تمام دستورالعمل‌های CIL، ابرداده‌ها و مانیفست‌های لازم در یک بسته کاملاً مشخص قرار می‌گیرند.

    اسمبلی که از تعداد زیادی فایل باینری دات نت تشکیل شده است، اسمبلی چند فایلی نامیده می شود. به هر کدام از این فایل ها ماژول می گویند.

    در یک مونتاژ چند فایلی، یکی از ماژول ها اصلی (اولیه) است.

    10. کدام فایل حاوی اسمبلی اصلی کتابخانه MS Visual Studio است؟

    اسمبلی اصلی در فایل "mscorlib.dll" قرار دارد.

    11. سیستم نوع معمولی CTS چیست؟

    CTS (Common Type System) یک نوع سیستم است که شامل توضیحات کاملی از تمام انواع داده های ممکن و ساختارهای برنامه نویسی است که توسط زبان رایج زمان اجرا CLR پشتیبانی می شود. همچنین توضیح می دهد که چگونه این موجودات می توانند با یکدیگر تعامل داشته باشند.

    انواع می توانند کلاس ها، رابط ها، ساختارها، enums، نمایندگان باشند.

    12. هدف از مشخصات زبان مشترک (CLS) چیست؟

    همانطور که می دانید، همه زبان های برنامه نویسی که با دات نت سازگار هستند نمی توانند از عملکرد سیستم نوع CTS پشتیبانی کنند. برای این منظور از مشخصات زبان مشترک (CLS) استفاده می شود.

    هدف CLS توصیف تنها زیرمجموعه ای از انواع رایج و ساختارهای برنامه نویسی است که کاملاً توسط همه زبان های برنامه نویسی که از دات نت پشتیبانی می کنند پذیرفته شده است.

    13. چه زبان های برنامه نویسی از فناوری دات نت پشتیبانی می کنند؟

    در سیستم توسعه برنامه MS Visual Studio، فناوری دات نت توسط زبان های برنامه نویسی زیر پشتیبانی می شود: C#، Visual Basic.NET، C++/CLI، JScript.NET، F#، J#.

    برای اینکه بتوانید از فناوری دات نت استفاده کنید، باید نرم افزاری را روی رایانه خود نصب کنید کیت توسعه نرم افزار Microsoft .NET Framework(SDK) یا Microsoft Visual Studio از هر نسخه.

    14. فضای نام (نام فضای) چیست؟

    فضای نام برای گروه بندی گروهی از انواع که از نظر معنایی مرتبط هستند در نظر گرفته شده است. انواع در مجموعه ها قرار می گیرند ( مونتاژ ). انواع به عنوان کلاس ها، نمایندگان، رابط ها، ساختارها، شمارش ها درک می شوند.

    نمونه هایی از نام فضای نام:

    سیستم سیستم.داده System.IO System.Collections System.Threading.Tasks

    به عنوان مثال، فضای نام System.Data شامل انواع پایه برای کار با پایگاه های داده و فضای نام System.Collections شامل انواع اساسی برای کار با مجموعه ها است.

    15. چگونه می توان محتویات اسمبلی ها، فضاهای نام و انواع را در MS Visual Studio نمایش داد؟

    سیستم Microsoft Visual Studio دارای ابزار Object Browser است که از منوی View فراخوانی می شود (شکل 3).

    برنج. 3. فراخوانی ابزار مرورگر Object

    با این کار پنجره Object Browser باز می شود که مجموعه هایی را که در یک فناوری خاص استفاده می شوند را نمایش می دهد.

    شکل 4 فهرستی از مجموعه هایی را نشان می دهد که در فناوری ".NET Framework 4" نمایش داده شده اند. اسمبلی با نام "mscorlib" انتخاب شده است.

    برنج. 4. پنجره Object Browser با اسمبلی mscorlib.dll برجسته شده است

    اگر محتویات اسمبلی mscorlib را گسترش دهید (" + ”)، سپس لیستی از تمام فضاهای نام این اسمبلی نمایش داده می شود (شکل 5). همانطور که از شکل می بینید، اسمبلی شامل فضای نام Microsoft.Win32، System، System.Collections، System.Collections.Concurrent و بسیاری موارد دیگر است.

    برنج. 5. اسمبلی mscorlib و لیست فضاهای نام موجود در آن

    هر یک از فضاهای نام به طور مشابه گسترش یافته است. فضای نام انواع را توصیف می کند. انواع روش ها، خواص، ثابت ها و غیره را توصیف می کنند.

    شکل 6 کلاس BinaryReader را از فضای نام System.IO نشان می دهد. ظاهراً کلاس متدهایی به نام‌های BinaryReader() ، Close() ،Dispose() ، FillBuffer() و موارد دیگر را پیاده سازی می کند.

    برنج. 6. محتویات کلاس BinaryReader

    16. چگونه فضای نام را در برنامه سی شارپ قرار دهیم؟

    کلمه کلیدی use برای گنجاندن فضای نام استفاده می شود

    حاشیه نویسی: ابتکار مایکروسافت دات نت. مسائل مربوط به سازگاری، قابلیت اطمینان و استفاده مجدد از قطعات. .چارچوب خالص. زمان اجرا زبان رایج (CLR). زبان شبه ماشین CIL (مجموعه کننده مدیریت شده). کامپایلر JIT. زبانهای برنامه نویسی. مجامع. ابرداده زباله روب. کتابخانه کلاس NET Framework

    مشکلات توسعه سیستم های اطلاعاتی مدرن

    مسائل یکپارچه سازی

    • ماژول های نوشته شده به زبان های مختلف، با استفاده از API های مختلف (یا نسخه های API) یا فرمت های مختلف ارائه داده ها.
    • برنامه های توسعه یافته برای پلتفرم های مختلف در یک بسته نرم افزاری واحد؛
    • سیستم هایی با استفاده از مدل های مختلف نرم افزاری

    به خصوص اغلب مشکلات یکپارچه سازی با کدهای قدیمی (میراث) وجود دارد. هنگام حل مشکلات یکپارچه سازی، مشکلات ناسازگاری ایجاد می شود.

    مسائل حمل و نقل

    بیشتر و بیشتر، برنامه ها برای پشتیبانی از چندین پلتفرم مورد نیاز هستند (به عنوان مثال، توانایی کار با برنامه در پلتفرم های Windows و Mac OS).

    مشکلات نسخه

    توسعه دهندگان ویندوز از مشکل سازگاری نسخه به نام DLL hell آگاه هستند. این "جهنم" زمانی رخ می دهد که اجزایی که برای یک برنامه جدید نصب شده اند، جایگزین اجزای یک برنامه قدیمی شوند. در نتیجه، برنامه قدیمی به اشتباه شروع به کار می کند یا از کار می افتد.

    مدیریت منابع

    یکی از مشکلات برنامه نویسی مدیریت و انتشار صحیح منابع، فایل ها، حافظه، فضای صفحه نمایش، اتصالات شبکه، منابع پایگاه داده و ... است که مدیریت نادرست این منابع می تواند منجر به اجرای نادرست برنامه شود.

    ایمنی را تایپ کنید

    هنگامی که ایمنی نوع ذکر می شود، منظور آنها مدیریت نادرست انواع داده است: تلاش برای دسترسی به مناطق حافظه خارج از مرز نوع، تلاش برای فراخوانی روش هایی که در نوع وجود ندارند، یا تلاش برای فراخوانی روشی که نوع A را به عنوان پارامتر در نظر می گیرد و آن را به عنوان یک شی پارامتر از نوع B ارسال کنید.

    رسیدگی به خطا

    هنگام توسعه برنامه‌های Windows با استفاده از Win32 API، برخی از توابع استثناها را برمی‌گردانند، برخی دیگر کدهای وضعیت و برخی دیگر HRESULT را برمی‌گردانند. بنابراین، هیچ مکانیسم ثابتی برای رسیدگی به خرابی‌ها وجود ندارد و می‌توان برخی استثناها را نادیده گرفت، که کد را ناامن می‌کند.

    این و سایر مشکلات توسعه سیستم های اطلاعاتی توسط پلت فرم دات نت مایکروسافت کمک می شود.

    حل مشکلات توسعه سیستم های اطلاعاتی در دات نت

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

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

    آنچه دات نت مایکروسافت را تشکیل می دهد

    NET Framework یک فریمورک توسعه اپلیکیشن است. اجزای اصلی آن عبارتند از Common Language Runtime و کتابخانه کلاس. کتابخانه کلاس NET Framework .

    زمان اجرا زبان رایج

    Common Language Runtime (CLR) یک زمان اجرا زبان رایج است که خدمات سیستم عامل را خلاصه می کند و برنامه های مدیریت شده را اجرا می کند، که هر اقدامی باید توسط CLR مجاز باشد.

    تمام کدهای پلت فرم دات نت توسط CLR به کد میانی CIL تبدیل می شوند. بنابراین، توسعه دهندگان می توانند به راحتی کدهای نوشته شده برای دات نت را در زبان های برنامه نویسی مختلف ادغام کنند. هر کاری را که بتوان با یک زبان سازگار با دات نت (به استثنای موارد نادر) انجام داد، در هر زبان دیگری نیز قابل انجام است. کد در این زبان ها به کد در یک زبان - CIL کامپایل می شود.

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

    کد CLR دستورات زبان شبه ماشینی (CIL) است. این دستورالعمل ها در زمان اجرا بر روی کد ماشین از نوع پردازنده مناسب در صورت تقاضا (در زمان مقرر) کامپایل می شوند. به طور معمول، یک متد یک بار در اولین فراخوانی خود کامپایل می شود. سپس نتیجه در حافظه پنهان ذخیره می شود تا از تاخیر در تماس های مکرر جلوگیری شود. کامپایلر JIT بهینه سازی کد را به طور خاص برای پردازنده ای که کد روی آن اجرا می شود انجام می دهد.

    با تبدیل دستورالعمل های CIL به دستورالعمل های پردازنده، کامپایلر JIT تأیید کد را برای ایمنی نوع انجام می دهد.

    تقریبا غیرممکن است که دستوری را اجرا کنیم که به ناحیه ای از حافظه دسترسی داشته باشد که فرمان اجازه دسترسی به آن را ندارد. در یک برنامه مدیریت شده، مشکل اشاره گرهای اولیه به اشتباه حذف می شود، تبدیل یک نوع به چیزی که نیست ممنوع است، زیرا این نقض ایمنی نوع است. CLR اجازه نمی دهد که متدها با یک قاب پشته شکسته فراخوانی شوند.

    منابع تخصیص یافته توسط کد مدیریت شده توسط جمع کننده زباله آزاد می شود. به عبارت دیگر، برنامه نویس فقط حافظه را اختصاص می دهد، اما آن را اختصاص نمی دهد - این کار توسط CLR انجام می شود. زباله جمع کن تمام ارجاعات به اشیاء ایجاد شده توسط یک برنامه را ردیابی می کند و زمانی که حافظه ای که در جای دیگری اشغال می کنند نیاز باشد آن اشیاء را از بین می برد. با این کار مشکل نشت حافظه در برنامه های کد مدیریت شده حل می شود.

    تأیید کد همچنین پایه و اساس توانایی CLR برای اجرای چندین برنامه در یک فرآیند واحد است. این فرآیند به بخش های مجازی تقسیم می شود - دامنه های برنامه (دامنه برنامه). این کارایی استفاده از حافظه اختصاص داده شده به فرآیندها را بهبود می بخشد. دامنه های برنامه به همان اندازه پروسه ها ایمن هستند زیرا نمی توان مرزهای آنها را توسط برنامه های مدیریت شده نقض کرد.

    کتابخانه کلاس فریم ورک دات نت (FCL)

    دات نت شامل مجموعه های کتابخانه کلاس است. کتابخانه NET Framework Class (FCL) حاوی تعاریف برای چندین هزار نوع است که هر کدام عملکردهایی را ارائه می دهند. مجموعه‌ای از انواع «مرتبط» در فضاهای نام جداگانه جمع‌آوری می‌شوند. بنابراین، فضای نام System شامل کلاس پایه Object است که در نهایت همه انواع دیگر از آن مشتق می شوند.

    بنابراین، هر موجودی در NET یک شی با فیلدها و متدهای خاص خود است.

    علاوه بر این، سیستم شامل انواعی برای اعداد صحیح، کاراکترها، رشته‌ها، مدیریت استثنا، ورودی/خروجی کنسول، گروهی از انواع برای تبدیل ایمن از یک نوع به نوع دیگر، قالب‌بندی داده، تولید اعداد تصادفیو انجام عملیات ریاضی. انواع موجود در فضای نام سیستم توسط همه برنامه ها استفاده می شود.

    برای تغییر نوع FCL موجود، می توانید نوع مشتق شده خود را ایجاد کنید. شما می توانید فضاهای نام خود را ایجاد کنید. همه اینها به وضوح با اصول پیشنهادی پلت فرم مطابقت دارد. خالص

    در اینجا برخی از رایج‌ترین فضاهای نام و شرح مختصری از انواع آنها آورده شده است.

    فضاهای نام اصلی FCL
    فضای نام محتوا
    سیستم انواع داده های بنیادی و کلاس های کمکی
    System.Collections جداول هش، آرایه های متغیر و سایر کانتینرها
    سیستم.داده کلاس های ADO .NET برای دسترسی به داده ها
    سیستم.طراحی کلاس های خروجی گرافیک (GDI+)
    System.IO کلاس های ورودی/خروجی را فایل و استریم کنید
    System.Net کلاس هایی برای کار با پروتکل های شبکه مانند HTTP
    سیستم.انعکاس کلاس های خواندن و نوشتن متادیتا
    System.Runtime.Remoting کلاس های برنامه های کاربردی توزیع شده
    System.ServiceProcess کلاس های ایجاد سرویس های ویندوز
    System. Threading کلاس هایی برای ایجاد و مدیریت موضوعات
    سیستم.وب کلاس هایی برای پشتیبانی HTTP
    System.Web.Services کلاس های توسعه خدمات وب
    System.Web.Services. کلاس هایی برای توسعه پروتکل های سرویس گیرندگان وب
    System.Web.UI کلاس های اصلی مورد استفاده توسط ASP.NET
    System.Web.UI. کنترل های وب کنترل های سرور ASP .NET
    System.Wndows.Forms کلاس های برنامه های رابط کاربری گرافیکی
    System.Xml کلاس هایی برای خواندن و وارد کردن داده های XML

    همه برنامه های مدیریت شده استفاده می کنند