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

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

· میان افزار کد ایمن که تضادها را هنگام اجرای نرم افزار و کنترل نسخه به حداقل می رساند.

· امنیت کد میانی، که امنیت کد را تضمین می کند، از جمله کد ایجاد شده یا نامرئی یا غیر قابل اعتماد توسط شخص ثالث ایجاد شده است.

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

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

· توسعه قابلیت همکاری بر اساس استانداردهای صنعتی برای اطمینان از ادغام کد پلت فرم دات نت فریم ورک با هر کد دیگری.

دو جزء اصلی دات نت فریم ورک CLR و کتابخانه کلاس دات نت فریم ورک هستند. اساس دات نت فریم ورک میان افزار CLR است. محیط شبکه توسط عاملی قابل دسترسی است که کدی را در زیر پنجره حمل می کند و خدمات اساسی مانند مدیریت حافظه، کنترل رشته و ارتباط از راه دور را ارائه می دهد. این شامل تایپ سنگین و انواع دیگر بررسی‌های صحت کد برای اطمینان از امنیت و قابلیت اطمینان است. در واقع وظیفه اصلی قسمت میانی نرم افزار مدیریت کد است. کدی که در وسط ویکن قرار می گیرد، کد کراته نامیده می شود، و کدی که در وسط ویکن قرار نمی گیرد، کد غیر کراته نامیده می شود. یکی دیگر از اجزای اصلی چارچوب دات نت، کتابخانه کلاس، مجموعه شی گرا دیگری از انواع را نشان می دهد که برای توسعه افزونه ها، از جمله موارد پایه که از خط فرمان یا از رابط گرافیکی کاربر راه اندازی می شوند، استفاده می شود. و در نهایت با اضافه‌هایی که بقیه فناوری‌ها از قابلیت‌های ASP.NET مانند Web Forms و XML Web Services پشتیبانی می‌کنند.

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


به عنوان مثال، ASP.NET زمان اجرا را میزبانی می کند تا محیطی مقیاس پذیر و سمت سرور برای کدهای مدیریت شده فراهم کند. ASP.NET مستقیماً با زمان اجرا کار می کند تا برنامه های ASP.NET و سرویس های وب XML را فعال کند، که هر دوی آنها بعداً در این مبحث مورد بحث قرار خواهند گرفت.

اینترنت اکسپلوررنمونه ای از یک برنامه مدیریت نشده است که زمان اجرا (به شکل پسوند نوع MIME) را میزبانی می کند. استفاده از اینترنت اکسپلورر برای میزبانی زمان اجرا به شما امکان می دهد تا اجزای مدیریت شده یا کنترل های Windows Forms را در اسناد HTML جاسازی کنید. میزبانی زمان اجرا به این روش کد موبایل مدیریت شده (شبیه به کنترل‌های Microsoft® ActiveX®) را ممکن می‌سازد، اما با پیشرفت‌های قابل توجهی که فقط کد مدیریت شده می‌تواند ارائه دهد، مانند اجرای نیمه مطمئن و ذخیره‌سازی فایل جدا شده.

تصویر زیر رابطه زمان اجرا زبان رایج و کتابخانه کلاس را با برنامه های کاربردی شما و سیستم کلی نشان می دهد. این تصویر همچنین نشان می دهد که چگونه کد مدیریت شده در یک معماری بزرگتر عمل می کند.

NET Framework در زمینه

بخش های زیر اجزای اصلی و ویژگی های چارچوب دات نت را با جزئیات بیشتری شرح می دهند.


به عنوان مثال، ASP.NET یک محیط ویکی را میزبانی می کند و یک محیط مقیاس شده برای کدهای هسته سمت سرور فراهم می کند. ASP.NET از نزدیک با میان افزار برنامه نویسی کار می کند تا اطمینان حاصل کند که برنامه های افزودنی ASP.NET و سرویس های وب XML که در زیر مورد بحث قرار گرفته اند، پیکربندی شده اند.

نمای اینترنت اکسپلورر می‌تواند به‌عنوان لبه‌ای از یک افزونه غیرکراته‌ای عمل کند که وسط پنجره (به شکل پسوندی از انواع MIME) قرار می‌گیرد. قرار دادن قسمت میانی پنجره در مرورگر اینترنت اکسپلورر به شما امکان نمایش اجزا یا عناصر سرامیکی را می دهد مدیریت ویندوزفرم ها در یک سند HTML. به این ترتیب، از قرار دادن وسط می‌توان برای حذف کد مخفی تلفن همراه (مشابه کنترل‌های Microsoft® ActiveX®)، و همچنین مزایای واقعی کد سخت‌شده، مانند حذف ذهن‌های غیرقابل اعتماد و صرفه‌جویی مجزا استفاده کرد. از پرونده ها ج.

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

NET Framework در زمینه

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

وارد

PLATFORM حداقل برنامه های Vikonavka و ... است که به معنای ویژگی های توسعه و vikonannya کد برنامه - پارادایم های برنامه نویسی، برنامه نویسی زبان، عدم وجود کلاس های پایه است.

Microsoft.NET (.NET Framework) یک پلتفرم نرم افزاری است. در اینجا اجزای اصلی وجود دارد: زمان اجرای زبان مشترک (CLR) و کتابخانه کلاس دات نت فریم ورک (NET FCL).

CLS (مشخصات زبان مشترک) یک مشخصات برنامه نویسی زبان خارجی است. این مجموعه ای از ساختارها و مبادلات است، مانند کرنل ها برای سازندگان کتابخانه ها و کامپایلرها در دات نت فریم ورک. کتابخانه های پشتیبانی شده توسط CLS را می توان با هر برنامه نویسی که از CLS پشتیبانی می کند استفاده کرد. فیلم‌ها، CLS منتشر شده (قبل از این تاریخ‌ها، فیلم‌های Visual C # گنجانده شده‌اند، ویژوال بیسیک, Visual C++)، را می توان یکی یکی ادغام کرد. CLS اساس اتصال درون پلتفرم Microsoft.NET است.

CLR (زمان اجرای زبان مشترک) - Seredovishche Chasu Vikonannya یا ماشین مجازی. مجموعه vikonannya را تضمین می کند. جزء اصلی دات نت فریم ورک. تحت ماشین مجازی، ما انتزاع یک سیستم عامل سطح بالا محصور شده (سخت شده) را درک می کنیم که ادامه کد برنامه را تضمین می کند و مهمترین وظایف را منتقل می کند:

§ مدیریت کد (مدیریت و جادوگری)،

مدیریت حافظه هنگام قرار دادن اشیا،

§ انزوا حافظه افزونه ها,

§ بررسی کد امنیتی،

§ تبدیل زبان میانی به کد ماشین،

§ دسترسی به ابرداده (اطلاعات در مورد انواع گسترش یافته است)،

§ پردازش خطاها، از جمله اتصالات،

§ تعامل بین کدهای هسته ای و خاموش نشده (از جمله اشیاء COM)،

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

به طور خلاصه، CLR مجموعه ای از خدمات مورد نیاز برای ساخت ویندوز است. در این مورد، کد برنامه برای مجموعه می‌تواند به صورت کریته (کد، زمانی که یک CLR نصب می‌شود، سیستم مدیریت حافظه را فعال می‌کند)، یا بدون کرت (کد برنامه "قدیمی") باشد.

خود CLR از دو جزء اصلی تشکیل شده است: هسته (mscoree.dll) و کتابخانه کلاس پایه (mscorlib.dll). وجود این فایل ها بر روی دیسک نشانه مطمئنی است که کامپیوتر حداقل سعی کرده است پلتفرم دات نت را نصب کند.

هسته هسته Viconnian در کتابخانه mscoree.dll پیاده سازی شده است. هنگام نوشتن یک اسمبلی، شامل اطلاعات ویژه، هنگام راه اندازی یک برنامه (EXE) یا با یک کتابخانه وارد شده (از یک ماژول خاموش نشده به DLL برگردانده شده - از تابع LoadLibrary برای دانلود مجموعه رمزگذاری شده استفاده کنید)، CLR را قبل از دانلود و مقداردهی اولیه آن اجرا کنید. پس از معرفی CLR در فضای آدرس فرآیند، هسته میان افزار اقدامات زیر را اجرا می کند:

§ مکان مجموعه را بدانید،

§ ذخیره سازی در حافظه را تضمین می کند،

§ انجام تجزیه و تحلیل به جای مجموعه (شناسایی کلاس ها، ساختارها، رابط ها)،

§ تجزیه و تحلیل ابرداده،

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

§ چک های مربوط به مقررات امنیتی را حذف می کند،

§ Vikorist و جریان اصلی ضمیمه، کنترل را به قطعه کد اسمبلی تبدیل به دستورات پردازنده منتقل می کند.

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

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

کتابخانه کلاس NET یکی دیگر از اجزای CLR است.

NET FCL می تواند از همه افزونه های دات نت صرف نظر از نامگذاری، معماری یا طراحی استفاده شده در طول توسعه برنامه استفاده کند. ذوکرمه، انتقام:

§ ایجاد انواع (ابتدایی) که در قالب کلاس ها نمایش داده می شود (در پلت فرم دات نت همه چیز بر اساس ساختارها و کلاس ها است)،

§ کلاس برای توسعه گرافیک به رابط کاربری اختصاص داده شده است(فرم ویندوز)

§ کلاس هایی برای توسعه افزونه های وب و سرویس های وب مبتنی بر فناوری ASP.NET (Web Forms)،

§ کلاس هایی برای پردازش پروتکل های XML و اینترنت (FTP، HTTP، SMTP، SOAP)،

§ کلاس هایی برای توسعه افزونه هایی که با پایگاه های داده کار می کنند (ADO.NET)،

§ و خیلی چیزهای دیگر.

افزونه NET - افزونه ای که برای ویکی در پلتفرم Microsoft.NET توسعه یافته است. بر روی برنامه های زبان مشتق شده از CLS پیاده سازی شده است.

MSIL (زبان میانی مایکروسافت که با نام IL - Intermedia Language نیز شناخته می شود) زبان میانی پلت فرم Microsoft.NET است. متن های خروجی برنامه ها برای افزونه های دات نت به زبان های برنامه نویسی بر اساس مشخصات CLS نوشته شده اند. برای برنامه نویسی ما، ممکن است نیاز باشد که مشخصات CLS خاص به MSIL تبدیل شود. بنابراین، برنامه های نوشته شده به این زبان ها را می توان به کد میانی در MSIL ترجمه کرد. با توجه به ماهیت CLS، در نتیجه ترجمه کد برنامه نوشته شده به زبان های مختلف، مقدار زیادی کد IL تولید می شود.

در واقع MSIL یک اسمبلر برای یک پردازنده مجازی است.

METADATA - هنگام تبدیل کد برنامه به MSIL، یک بلوک METADATA نیز تشکیل می شود تا حاوی اطلاعاتی در مورد داده های ذخیره شده در برنامه باشد. در واقع، شما جدولی را تنظیم می کنید که حاوی اطلاعاتی در مورد انواع داده هایی است که در ماژول تعریف شده است، در مورد انواع داده هایی که این ماژول استفاده می کند. پیش از این، چنین اطلاعاتی محرمانه نگه داشته می شد. برای مثال، این افزونه می‌تواند شامل اطلاعاتی درباره رابط‌ها باشد که در زبان تعریف رابط (IDL) توضیح داده شده است. اکنون ابرداده بخشی از ماژول سرامیکی است.

Zokrema، فراداده vikorystvayutsya برای:

§ ذخیره اطلاعات در مورد انواع. هنگام کامپایل، هدرها و فایل های کتابخانه دیگر مورد نیاز نیستند. کامپایلر تمام اطلاعات لازم را مستقیماً از ماژول های اصلی می خواند،

§ تأیید کد در طول فرآیند نصب ماژول،

§ مدیریت پویا حافظه (حافظه حجم) در حین نصب ماژول،

§ هنگام توسعه برنامه ها با استفاده از روش های ابزاری استاندارد (Microsoft Visual Studio.NET)

§ بر اساس ابرداده، پیشنهادات پویا (IntelliSense) ارائه خواهد شد.

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

و خیلی حرف های دیگر.

ماژول الحاق، صرف نظر از کامپایلر (و فیلم ورودی)، نتیجه ترجمه افزونه دات نت - ماژول رمزگذاری (ماژول رمزگذاری) است. این یک فایل استاندارد ویندوز (PE - قابل حمل اجرایی) است.

عناصر ماژول سرامیکی در جدول ارائه شده است.

ماژول کریت دارای کد کریته است.

کد اصلی کدی است که در وسط CLR یکپارچه شده است. کد بر اساس ساختارها و کلاس های اعلام شده در ماژول خروجی خواهد بود تا از سردرگمی روش جلوگیری شود. کد سرامیک مسئول تولید حجم زیادی از اطلاعات (متادیتا) برای میانه Vikonanny است. کد C#، Visual Basic و JScript است و هسته به لایه است. کد ویژوال C++ هسته نمی شود، اما کامپایلر می تواند کد هسته ای را ایجاد کند که به آرگومان در خط فرمان (/CLR) نیاز دارد. یکی از ویژگی های کد گواهی وجود مکانیسم هایی است که امکان پردازش داده های کریته را فراهم می کند.

داده های Kerovannye - اشیایی که در حین نوشتن کد ماژول، در حافظه Kerovana (در محفظه Kerovana) قرار دارند و در سطل ذخیره سازی CLR ذخیره می شوند. داده های C#، Visual Basic و JScript.NET به تفصیل پوشش داده شده است. داده‌های C# را می‌توان به‌عنوان unkerated نیز تعیین کرد.

اسمبلی یک بلوک اساسی در دات نت فریم ورک است. ماژول های سرامیکی در مجموعه ها مونتاژ می شوند. این مجموعه یک گروه بندی منطقی از یک یا چند ماژول اصلی یا فایل منبع است. ماژول های پوشش داده شده در انبار مجموعه در قرون وسطی Viconnia (CLR) تکمیل شده اند. مجموعه می تواند یک افزونه فشرده (که در آن در فایلی با پسوند EXE قرار می گیرد) یا یک ماژول کتابخانه (در فایلی با پسوند DLL.) باشد. با این حال، هیچ ارتباطی با برنامه های کامپایل شده پایه (مدرسه قدیمی!) و ماژول های کتابخانه ای وجود ندارد.

اعلامیه جمع آوری (مانیفست) - قسمت انبارمجموعه ها مجموعه دیگری از جدول فراداده که عبارتند از:

§ مجموعه را با نام متن، نسخه، فرهنگ و امضای دیجیتال شناسایی می کند (از آنجایی که مجموعه در میان افزونه ها به اشتراک گذاشته می شود)،

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

§ انواع و منابع یافت شده در مجموعه را نشان می دهد، از جمله توصیف مواردی که از مجموعه صادر می شود،

§ سپرده های بیش از حد بیمه از سایر برداشت ها،

§ مجموعه حقوق لازم برای عملکرد صحیح را نشان می دهد.

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

پردازنده نمی تواند کد IL را احیا کند. ترجمه کد IL توسط یک کامپایلر JIT (در زمان مقرر) انجام می شود که در صورت لزوم توسط CLR فعال می شود و توسط پردازنده کامپایل می شود. در این حالت، نتایج فعالیت کامپایلر JIT در RAM ذخیره می شود. Mizh با یک قطعه برای مخفی کردن کد IL کد ایل پامیاتی، برخیز، در مجوزهای ارسالی مدیریت تیم های پردازشگر، ما بلاتز Pam'yati، Minai از تکرار حیوان به محفظه JIT.

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

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

برای CLR، همه اسمبلی ها یکسان هستند، صرف نظر از اینکه چه زبان برنامه نویسی نوشته شده است. لکه - به طوری که بوی تعفن یادآور CLS بود. در واقع، CLR حلقه های برنامه نویسی (همکاری متقابل زبان) را خراب می کند. بنابراین، افزونه‌های CLS و CTS .NET در واقع به عنوان افزونه‌ها در MSIL (IL) ظاهر می‌شوند.

CLR بسیاری از مشکلاتی را که به طور سنتی منطقه مورد توجه ویژه توسعه دهندگان نرم افزار بوده است، بر عهده می گیرد. تعداد توابع موجود در CLR شامل موارد زیر است:

§ بازنگری و کامپایل پویا (JIT) کد MSIL در دستورالعمل های پردازنده،

مدیریت حافظه، فرآیندها و موضوعات،

§ سازماندهی فرآیندهای متقابل،

§ افزایش مشکلات امنیتی (در چارچوب سیاست امنیتی جاری در سیستم).

AppDomain (دامنه ضمیمه) یک محفظه کامل از مجموعه ها است که برای جداسازی ضمیمه ها در فضای آدرس فرآیند استفاده می شود. تمام اشیاء ایجاد شده توسط افزونه در دامنه آهنگ افزونه ایجاد می شوند. چندین دامنه افزودنی را می توان در یک فرآیند سیستم عامل راه اندازی کرد. CLR افزونه ها را ایزوله می کند و حافظه را در دامنه افزودنی ذخیره می کند.

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

فرآیند اولیه توسط سیستم در یک فضای آدرس فرآیند مشخص شده راه اندازی می شود. CLR حذف کامل مواد افزودنی سرامیکی را در ONE PROCESS امکان پذیر می کند. پوست مکمل با دامنه خارجی مکمل (به اختصار AppDomain) مرتبط است. علاوه بر دامنه اصلی می توان تعدادی دامنه اضافی ایجاد کرد.

ساختار هسته Viconnian CLR در تصویر نشان داده شده است.

اختیارات دامنه:

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

§ CLR برای تجسم دامنه ها به همراه تمام مجموعه های مرتبط با این دامنه ها طراحی شده است.

§ پیکربندی اضافی و حفاظت دامنه،

§ برای تبادل داده بین دامنه های پیاده سازی، مکانیزم ویژه ای برای دسترسی ایمن (مارشالینگ).

§ .NET Framework یک مدل مؤلفه قدرتمند را تجزیه کرده است که عناصر آن مجموعه های .NET هستند و برای اتصال مستقیم و معکوس با مدل COM / COM +، CLR دارای مکانیسم های داخلی (COM Interop) است تا اطمینان حاصل شود. دسترسی به اشیاء COM طبق قوانین .NET و به .NET-مجموعه ها طبق قوانین COM. در این حالت، افزونه های دات نت نیازی به ثبت اجزا در رجیستری سیستم ویندوز ندارند.

برای پیاده سازی افزونه دات نت، باید این افزونه را در یک کاتالوگ قرار دهید. اگر مجموعه را بتوان در چندین افزونه ذخیره کرد، با استفاده از یک ابزار ویژه در GAC (Global Assembly Cache of Global Assembly Cache) قرار گرفته و ثبت می شود.

CTS - سیستم نوع مشترک توسط تمامی پلتفرم های زبان پشتیبانی می شود. با توجه به اینکه دات نت فرزند OOP است، زبان در اینجا در مورد انواع ابتدایی، کلاس ها، ساختارها، رابط ها، نمایندگان و اختراع مجدد است.

Common Type System بخش مهمی از هسته Wiconanny است، به معنای ساختار ساختارهای نحوی، روش‌های صداگذاری، شرارت و شکل‌گیری انواع FUNCTIONAL از هسته Wiconanny. CTS حاوی اطلاعات اساسی در مورد سیستم انواع هوش منظم، در مورد نوسانات و کنترل های آنها (قوانین تبدیل ارزش) است. CTS نقش مهمی در ادغام صاف مواد افزودنی مختلف سرامیکی ایفا می کند.

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

فضای نام ها به رسمیت شناختن
سیستم
سیستم.داده برای تحقیق در پایگاه های داده
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Collections کلاس هایی برای روبات ها با اشیاء ظرف
سیستم.تشخیص کلاس های trasuvannya و بهبود کد
سیستم.طراحی کلاس های پشتیبانی گرافیکی
System.Drawing.Drawing2D
سیستم.طراحی.چاپ
System.IO پشتیبانی معرفی
System.Net پشتیبانی از انتقال داده در سراسر مرزها
سیستم.انعکاس کار با انواع نرم افزارهای مشابه
System.Reflection.Emit
System.Runtime.InteropServices پشتیبانی از تعامل با "کد اصلی" - DLL ها، سرورهای COM، دسترسی از راه دور
System.Runtime.Remoting
سیستم.امنیت رمز نگاری لطفا
System. Threading کار با نخ ها
سیستم.وب با افزونه های وب کار کنید
System.Windows.Form ربات با عناصر رابط ویندوز
System.XML پشتیبانی از داده ها در قالب XML

ماژول های vikonovany بدون پوشش Vikonanny (اولیه افزونه های ویندوز) با سیستم ویندوز محافظت می شود. ماژول های بدون پوشش تعبیه شده اند میان افزار ویندوزنحوه پردازش "به سادگی". تنها راه برای اطمینان از این که چنین ماژول هایی به درستی در محیط ویندوز کار می کنند. این مسئولیت شماست که «به درستی» کار کنید (سیستم را خراب نکنید، به رشته های حافظه اجازه ندهید، سایر فرآیندها را مسدود نکنید، و به درستی خود سیستم عامل را برای کار تحت عنوان فرآیندها تصحیح کنید). بنابراین، در اینجا رایج ترین قوانین برای کار تحت ویندوز است.

در این مورد، مشکلات بیشتری در نصب صحیح یک ماژول غیر کراته (مشکلات تعامل، ذخیره سازی و ذخیره سازی حافظه) و مشکلات با توزیع کننده های افزودنی وجود دارد. به عنوان مثال، فناوری COM راهی برای سازماندهی تعامل اجزای مختلف در یک برنامه است.

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

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

پشته - یک ناحیه حافظه به طور ویژه برای ذخیره زمان به ساعت مقادیر شی (متغیرها و ثابت ها)، برای انتقال پارامترها هنگام فراخوانی روش ها، برای ذخیره چرخش آدرس سازماندهی شده است. مدیریت پشته به همین روش آسان است. این مبتنی بر تغییر مقدار ثبات خصوصی در بالای پشته است. هنگامی که فرآیند کوتاه است، پشته اشیاء به سادگی از بین می رود.

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

برنامه به درستی تولید می شود (که کامپایلر C # را راه اندازی نمی کند) دنباله ای از گزاره ها که بر اساس آن اسمبلی تشکیل می شود.

در مورد نهایی، برنامه نویس فایلی را ایجاد می کند که شامل کلاس هایی است که ورودی کامپایلر است. نتیجه گردآوری توسط مترجم در قالب یک اسمبلی ارائه می شود و با عملکرد برنامه مشخص می شود. در اصل، مجموعه می تواند دو نوع باشد:

§ فایل اجرایی قابل حمل (فایل PE با پسوند exe)، پیوست شده به CLR،

§ فایل کتابخانه پیوند پویا (فایل DLL با پسوند .dll)، که برای استفاده مکرر به عنوان یک جزء در ذخیره سازی هر برنامه استفاده می شود.

در هر صورت، بر اساس کد ورودی، مترجم یک ماژول IL، یک مانیفست ایجاد می کند و یک اسمبلی تشکیل می دهد. بعد، کامپایل یا ممکن است بعد از کامپایل JIT vikonana باشد یا در انبار برنامه های دیگر vikoristan باشد.

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

مشکلات توسعه سیستم های اطلاعاتی فعلی

مشکلات یکپارچه سازی

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

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

مشکلات حمل و نقل

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

مشکلات نسخه

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

مدیریت منابع

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

انواع ایمنی

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

عیب یابی

هنگام توسعه افزونه های ویندوز از Win32 API، برخی از توابع خاموش می شوند، برخی دیگر کدها را روشن می کنند و برخی دیگر HRESULT را روشن می کنند. بنابراین، مکانیسم مدیریت خرابی بهتر و توانایی نادیده گرفتن اشکالاتی وجود دارد که کد را ناامن می کند.

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

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

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

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

مایکروسافت دات نت را چه نصب کنیم

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

Zagalnomovne vikonuyucha seredovishche (زمان اجرای زبان مشترک)

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

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

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

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

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

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

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

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

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

مجموعه کتابخانه کلاس B.NET را فعال کرد. کتابخانه کلاس NET Framework (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

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

یکی از خواستارترین، بسیار کاربردی ترین و در حال توسعه برنامه های ما در حال حاضر. با این کمک اضافی، شما می توانید بدون توجه به هر چیزی عملاً پرداخت کنید نرم افزار امنیتی، با فرم های برد ساده شروع کنید افزونه‌ها، به افزونه‌های وب سرور-کلینت عالی، و همچنین افزونه‌های موبایل و بازی‌های رایانه‌ای.و بر اساس پلتفرم دات نت فریم ورک کار می کند. بیایید بفهمیم که این موضوع چیست.

ویدیوی من را با موضوع .NET Framework و هسته CLR برای C# تماشا کنید

زبان برنامه نویسی سی شارپقطعاً تازه است، اما در حال حاضر ارزش اعتماد را دارد. انتشار اولین نسخه در سال 2002 انجام شد. آخرین نسخه این فیلم در زمان نگارش، C# 7.2 است که در 16 آگوست 2017 منتشر شد.

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

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

پلت فرم دات نت

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

  • کراس پلت فرم- .چارچوب خالص از اکثر سیستم عامل های فعلی پشتیبانی می کندویندوز، و همچنین توانایی ایجاد پیشرفت های پشتیبانی سیستم های لینوکس، و افزونه های موبایل را اضافه کنید.
  • غنا- پس یاک کد خروجینوشته‌های روی یک برنامه زبان اصلاح‌شده به کد زبان متوسط ​​مشترک (CIL) ترجمه می‌شوند، که این امکان را فراهم می‌کند تا بتوانیم برنامه‌نویسی را بر روی هر برنامه‌ای که تحت تأثیر برنامه‌نویسی من قرار دارد انجام دهیم و برنامه‌های برنامه‌نویسی مختلف را در یک راه‌حل بنویسیم. محبوب ترین زبان های پشتیبانی شده C#، VB.NET، C++، F# هستند.
  • کتابخانه بزرگ کلاس ها و فن آوری ها- تعداد زیادی کتابخانه آماده برای انواع کارهای ضروری وجود دارد. اغلب نیازی به پیاده‌سازی منطق سطح پایین در برنامه‌های روباتیک نیست، بلکه راه‌حل‌های آماده سریع به صورت دستی از طریق مدیر بسته nuget تحویل داده می‌شوند. علاوه بر این، پلت فرم دات نت نصب آسان تقریباً هر نوع نرم افزار ضروری را فراهم می کند.

کد روکش دار و بدون روکش. گردآوری JIT

کد مدیریت شده- این کد Kerovany zagalnomovna وسط CLR است. این به این معنی است که هسته این توانایی را دارد که اجرای برنامه ها را کند کند و اطلاعات خاصی از وضعیت برنامه را در هر زمانی از اجرای آن حذف کند. کد خروجی برنامه نویسی شما به کد CIL (که اسمبلر سطح بالا نیز نامیده می شود) ترجمه می شود.

پس از ایجاد یک کتابخانه کلاس یا افزونه ها، کد خروجی همچنان به زبان CIL ذخیره می شود. و در ساعتی که برنامه ها راه اندازی یا در کتابخانه بارگیری می شوند، Just-In-Time کامل می شود ( JIT) کامپایل برنامه ها در کد ماشین، مخصوص مشخصاتی که برنامه ها روی آن نوشته شده اند. با این حال، مهم است که جمع آوری تنها آن بخش از برنامه یا کتابخانه تا نهایی شدن کامل شود (خوب، البته پیوندها). این به شما امکان می دهد بهره وری سیستم ربات را افزایش دهید و در منابع ذخیره کنید.

کد مدیریت نشده- این کد مستقیماً به کد ماشین ترجمه می شود و مستقیماً به سیستم عامل ترجمه می شود.

علاوه بر این، خواندن مقاله را توصیه می کنم. و همچنین در گروه VKontakte، تلگرام و کانال یوتیوب مشترک شوید. حتی پوست و شیر بیشتری برای برنامه نویسان وجود دارد.

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