Microsoft .NET
Microsoft . NET واژه ای که به مثابه یک چتر ، شماری از فن آوریهای که اخیراً توسط شرکت مایکروسافت عرضه شده اند در بر می گیرد . با کنار هم قرار گرفتن این فن آوریها ، یک تحول اساسی در بستر توسعه مایکروسافت ، از زمان انتقال از سیستم 16 بیتی به سیستم 32 بیتی ایجاد شده است .
Microsoft . NET شامل فن آوریهای زیر می شود :
. NET Framework
. NET Enterprise Servers
. NET Languages and Language Tools
. NET Framework
. NET Framework فن آوری است که درتوسعه ASP. NET ضروری می نماید و ارائه کننده سرویس های مقدماتی سیستم هایی است که ASP.NET را مورد پشتیبانی قرار می دهند ، نظیر ایجاد فرم های ویندوز و فن آوری جدیدrich client development که در .NET ارائه شده است . درست همانند بسته اختیاری (Option Pack) ویندوز NT4 ، که به همراه ویندوز NT4 نصب می شد Internet Information Server 4.0 (IIS) وactive Server Pages Technologies را به ویندوز NT4 می افزود ،NET Framework ، نیز یک بسته add-on ( افزودنی ) می باشد که روی ویندوز2000 ، ویندوزNT4.0 و ویندوز 98/ME نصب می شود و سرویس های مقدماتی پشتیبانی سیستم را به فن آوریهای .NET می افزاید .
Framework درنسخه های جدیدتر سیستم عامل های سرویس دهنده و ویندوز ، نظیر .NET Server نیز بکار خواهد رفت .
Common Language Runtime
Common Language runtime یا ( به اختصار Runtime ) محیط runtime ای را ایجاد می کند که در آن محیط کدهای نوشته شده به زبانهای .NET اجرا می گردند . runtime مدیریت اجرای کدهای .NET را برعهده دارد ، که شامل مدیریت بلند مدت حافظه و آبجکت ها می شود . علاوه بر این سرویس های مدیریتی ، runtime به توسعه دهندگان امکان اشکال زدایی ، رسیدگی به استثنائات و وراثت در میان چندین زبان را می دهد . لازمه اجرای این وظایف این است که کامپایلر های زبان از خصوصیات زبان مشترک با Common Languge Specification (CLS) ، که نمایانگر زیر مجموعه ای از انواع داده پشتیبانی شده توسط runtime می باشد و در تمام زبانهای مورد استفاده .NET مشترک است ، پیروی نمایند .
کامپایلر هر زبانی کدهای نوشته شده توسط برنامه نویسان را به یک زبان میانجی به نام Microsofot Intermediate Language (IL ,MSIL) کامپایل می کنند .
سپس این IL در زمان نصب به وسیله runtime ، به کد محلی کامپایل می شود و یا حین اولین اجرا به صورت (GIT) Gust-In-Time کامپایل می شود . ازکدی که به IL کامپایل می شود و به وسیله runtime مدیریت می گردد ،به عنوان managed Code نام برده می شود . دلیل این نام گذاری بر عهده گرفتن مسئولیت مدیریت اجرای کد توسط runtime است ، که شامل معرفی آبجکت ها ، اختصاص حافظه و جمع آوری پس مانده آبجکت ها و حافظه می باشد .
از کامپوننت های نوشته شده در Managad Code و اجرا شده توسط runtime به عنوان .NET Managed Assemblies نام برده می شود و یا به اختصار فقط assemblies خوانده می شوند . Assemble ها واحدهای اصلی گسترش در دنیای .NET هستند و شباهت زیادی به کامپوننت های Com دارند . با این تفاوت که ، در حالی که کامپوننت های Com حاوی یک نوع کتابخانه متناظر برای تعریف چگونگی به کارگیری آنها توسط سرویس گیرنده هستند ، یک Assembly حاوی یک manifest است که مجموعه ای از Metadata ها (فرداده ها ) می باشند که محتویات assembly را تعریف می کنند . از فوائد دیگر آن ، ماهیت خود تعریفی کامپوننت های .NET است . به این معنی که برای اینکه بتوانند کار کنند ، نیازی به ثبت شدن ( رجیستر شدن) روی کامپیوتر ندارند .
این Metadata همچنین وظیفه تعریف وابستگی ها و اطلاعات تفسیری متناظر با یک assembly را بر عهده دارد . این نه تنها باعث کسب اطمینان از برآورده شدن وابستگی های ضروری assembly ها می شود ، بلکه به این معنی است که چندین نسخه از یک assembly می توانند درکنار هم روی یک کامپیوتر بدون ایجاد اختلال اجرا شوند . این موضوع گامی بزرگ در تقابل با “DLL Hell ” ( مکافات DLL ) است ، که برای تعداد کثیری از برنامه نویسان آزار دهنده است .
با روی کار آمدن .NET این مسائل به فراموشی سپرده خواهند شد . از آنجائی که برنامه کاربردی [ مورد نظر ] می داند برای کدام نسخه از یک assembly طراحی شده است . می تواند با گرفتن پرس و جو (query) از متادیتای اسمبلی ، نسخه صحیح را از میان نسخه های مختلف همان اسمبلی بابد .