14
06
2009
قبلاً قول داده بودم در مورد تغییرات جدید در دات نت فریم
ورک 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