بررسی دات نت 4.0 – تغییرات CLR


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

قسمت اول : تغییرات CLR

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

محاسبات موازی (Parallel Computing)

دات نت فریم ورک 4.0 بتا مدل جدیدی از برنامه نویسی برای نوشتن برنامه های چند خطی (Multi threaded) و غیرهمزمان (asynchronous) ارائه می کند که به صورت موثری کار توسعه دهندگان برنامه های کاربردی و کتابخانه های کد را ساده می کند. کلاس های جدید Parallel و Task در فضای نام System.Threading از این مدل برنامه نویسی پشتیبانی می کنند. PLINQ یا Parallel LINQ هم پیاده سازی موازی از LINQ to Objects در این نسخه از دات نت فریم ورک است.

کارایی بالاتر

به اضافه قابلیت بالا، برنامه ها در دات نت فریم ورک 4.0 بتا، با سرعت بالاتری اجرا می شوند و کارایی بالاتری در برنامه های چند خطی مشاهده خواهید کرد.

Lazy Initialiation

با استفاده از این قابلیت، حافظه برای یک شیء تا هنگامی که شیء به حافظه ای احتیاج ندارد، اختصاص نمی یابد. Lazy Initialiation می تواند کارایی برنامه شما را با کنترل روی حافظه های اختصاص داده شده به اشیاء بالا ببرد. شما می توانید این قابلیت را برای هر نوع داده ای با استفاده از System.Lazy(T) فعال کنید.

Dynamic Language Runtime

محیط زمان اجرای جدیدی است که سرویس هایی برای زبان های برنامه نویسی پویا به CLR اضافه می کند. DLR توسعه زبان های پویا برای اجرا روی دات نت فریم ورک و اضافه نمودن قابلیت های پویا به انواع زبان های استاتیک را آسان تر می کند. برای این منظور فضای نام System.Dynamic به دات نت فریم ورک 4.0 اضافه شده است. به علاوه کلاس هایی هم برای پشتیبانی از زیر بنای دات نت فریم ورک در فضای نام System.Runtime.CompilerServices ایجاد شده است.

In-Process-Side-By-Side Execution

این قابلیت جدید در دات نت فریم ورک به شما اجازه می دهد که چند نسخه مختلفه CLR را در حافظه بار کنید تا کامپوننت های قدیمی که از نسخه های قبلی CLR استفاده می کنند در کنار کامپوننت های جدید به کار خود ادامه بدهند. به زبان ساده می توانید برنامه ای بنویسید که هم از دات نت فریم ورک نسخه 2 استفاده کند و هم از نسخه 4 آن.

امنیت

دو تغییر بزرگ در زیر سیستم امنیتی دات نت فریم ورک 4.0 بوجود آمده، سیاست امنیتی Machine-wide از بین رفته است، هر چند سیستم اجازه نامه ها هنوز در جای خود قرار دارد، و شفافیت امنیتی گسترش یافته و به عنوان مکانیزم پیش فرض مورد استفاده قرار می گیرد. از بین رفتن سیاست Machine-wide به این معنی است که دات نت فریم ورک مسئولیت تامین امنیت یک کامپیوتر را بر عهده ندارد و فقط از کدهای امن نوشته شده حفاظت می کند. شفافایت امنیتی یا Security Transparency که برای اولین بار در دات نت فریم ورک 2.0 معرفی شد، مکانیزمی است که کدهای نوشته شده برای یک اپلیکیشن تحت دات نت فریم ورک را از کدهای زیربنایی آن تفکیک می کند.

قراردادهای کد

قراردادهای کد به شما اجازه می دهند اطلاعاتی را مشخص کنید که امضای متد ها و نوع ها به تنهایی آن ها را نمایش نمی دهند. فضای نام System.Diagnostics.Constracts کلاس هایی را برای برآورده کردن این هدف فراهم می کند. این قراردادها باعث بهبود کیفیت آزمایش نرم افزار و تولید مستندات می شوند.

Garbage Collection

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

عیب یابی

حالا در دات نت 4.0 می توانید از رویدادهای EWT یا Event Tracing for Windows در جهت عیب یابی برنامه هایتان استفاده کنید تا کارایی را افزایش دهید. EWT مسئولیت جمع آوری گزارش در طول زندگی یک پروسه در ویندوز را بر عهده دارد. با استفاده از EWT می توانید گزارشاتی در مورد رویدادهای CLR مطالعه کنید و نرم افزارهایتان را عیب یابی کنید.

farasun.wordpress.com

برای دنبال کردن مطالب بعدی این وبلاگ، مشترک فید فراسان شوید

Advertisements