مطالب مفید و آموزشی پیرامون Net Framework. و تکنولوژی های وابسته
سلام
حقیقتش میخواستم مطالبی پیرامون Framework4.0 بنویسم و بهتر دیدم تاپیک کلی برای این مطالب ریز پیزه(:31:) ایجاد کنم، تا اگر بعداً هم مطلب دیگر مختصر و کوتاهی بود، بتوان در همین تاپیک به صورت مجتمع شده ارائه نمود.
پس اهدافی برای تاپیک مشخص میکنم...
=====
در این تاپیک قصد دارم مطالب کوتاه و مفید را بیان کنم.
مطالبی که به تنهایی چندان مهم نیستند.
تاپیک قرار نیست روند ممتد و با نظم و ترتیب خاصی داشته باشد.
(
هر وقت چیز بدرد بخوری به ذهنم رسید و وقت نگارش هم یافتم... (یک چیز تو مایه های بزک نمیر بهار میاد! :31::11:)
)
دوستان دیگر هم در صورت مایل، اگر مطالب کلی و عامی که مربوط به زبان خاصی نشود، و مربوط به دات نت و تکنولوژی های وابسته داشتند میتوانند اینجا قرار دهند.
از کمک این دوستان هم به شخصه خوشحال میشوم و تشکر میکنم.
ولی ترجیحا کما فی السابق پیشنهاد میکنم دوستان اینجا سوالاتشان را مطرح نکنند یا حداقل سوالاتی باشد که در مورد مسایل علمی طرح شده و در جهت شفاف سازی موضوع باشد.
به صورت خاص منظورم این است که سوالاتی با مضموم "فلان کار چطور انجام دهم؟" نباشد.
این هم فقط به جهت نظم دادن و تفکیک راحت تر مسایل است.
تا تاپیک ها مفهوم موازی با مفهوم انجمن نداشته باشند.
(((
برای سرورانی که تازه عضو میشوند هم به طور خاص میتوانند پس از جستجو و پیدا نکردن جواب، روی دکمه "موضوع جدید" در انجمن کلیک کنند و سوال جدید با عنوان مشخصی مطرح کنید
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
)))
جمیعاً موفق باشید.
:10:
بررسی تعامل فریم ورک 4 با نسخه های قبل (بخش اول)
سلام
بخش اول: یاد آوری تعامل نسخه 2 و 3 با نسخه های قبلی
فریم ورک 2 که عرضه شد بستر کاملا مستقلی از نسخه 1 داشت.
برنامه و dll های نسخه جدید که در قبلی قابل استفاده نبود که یک چیز معمول و قابل پیشبینی بود.
ولی بجز آن حتی dll های کامپایل شده تحت نسخه 1 هم در نسخه جدید قابل استفاده نبود.
و خوب این مسیله جالبی نبود.
تعداد زیادی ابزار و dll با نسخه قبل منتشر شده بود که هیچ یک دیگر قابل استفاده نبود و کل این ابزار باید مجدد کامپایل و منتشر (و بعضا خریداری) میشدند.
بدتر آنکه اگر قرار بود این روند ادامه یابد...
برای خود من بسیار عجیب و مایوس کننده بود، اینکه با هر نسخه جدید باید کل ابزار و کامپونت ها و dll ها تهیه و تجدید شوند که خود انواع مشکلات و ناهماهنگی ها را در پی داشت.
مایکروسافت این مشکل ظریف ولی مهم را درک کرده بود و با عرضه نسخه سوم فریم ورک رویکرد جدیدی در پیش گرفت.
نسخه سوم کاملا مستقل نبود و بعداز نسخه 2 یا به بیانی روی نسخه دوم نصب میشد و خودش محتاج نسخه 2 بود.
یعنی نسخه 3 دیگر پا در کفش نسخه قبلی نکرده بود و کلاسها و اسمبلی های این نسخه را به عدد 3 تغییر نداده بود.
در واقع نسخه سوم برای خودش اسمبلی های جدیدی تعریف کرده بود و قابلیتهای جدید خودش را مجزا تعریف کرده بود.
این به این معنی بود که هنوز نوع های پایه تحت نسخه 2 بودند و قبل از نصب نسخه 3 حتما اول باید نسخه 2 نصب میشد.
با این مکانیزم دیگر اسمبلی ها و ابزارآلات نسخه 2 قبلی به راحتی در برنامه های نسخه 3 هم کار میکرد. (چون خود نسخه 3 هم از dll های پایه نسخه 2 استفاده میکرد)
همچنین با نصب نسخه 3 برنامه های نسخه 2 هم کار میکردند (چون نسخه 3 در داخل خود اول نسخه 2 را نصب میکرد.)
یعنی شما نسخه Framework3.5 را نصب میکنید ولی mscorlib.dll و System.dll و System.Drawing.dll و System.Windows.Forms.dll و System.Web.dll و... و... همچنان عدد ورژنی 2 دارند.
یعنی اصلاً این dll ها با عدد ورژنی 3 وجود ندارند!
اینها به همان شکل مانده اند و در عوض چیزی مثل System.Core.dll و System.Web.Extensions.dll و... را داریم که شاید بعضی از اینها (نه همه جدیدها) میشد در قبلی ها تلفیق شود.
به بیان ساده تر اگر قرار بود باز در آینده کنترلری اضافه شود، به جای داخل dll های قبلی، این کنترلر باید در یک dll جدید مستقر میشد و این هزینه این هماهنگی با نسخه های قدیم بود.
پس با هر تغییر در نسخه های آینده، باید مدام dll اضافه میشد!!!
مشخص بود که اینهم راه کار نیست.
تا کی میشد با دادن نسخه جدید مدام تمام نسخه های قبلی را نصب و هربار فایلهای جدیدی اضافه کرد و باگ و ایرادهای نسخه قبل را با دادن سرویس پک حل کرد!
این نیاز به گذشته و دست نزدن گذشته باید جایی تمام میشد.
بررسی تعامل فریم ورک 4 با نسخه های قبل (بخش آخر)
سلام
بخش آخر: مروری بر تعامل نسخه 4 با نسخه های قبلی
نسخه 4 مثل نسخه 2 مستقل است و نسخه های قبلی را نصب نمیکند و به آنها نیاز هم ندارد.
ولی
برنامه و پروژه های نسخه 4 مثل نسخه 3 به راحتی میتوانند از ابزار و dll های کامپایل شده در نسخه های پایین تر استفاده کنند، ولی اینبار، بدون آنکه نیاز باشد حتی آن نسخه خاص قبلی نصب شود.
مثلا شما میتوانید exe تحت نسخه 4 بسازید و به راحتی از dll های کامپایل شده تحت نسخه 2 و 3 و 4 همزمان در exe تان استفاده کنید، در نهایت هم کافی است در رایانه مقصد و همراه برنامه فقط Framework4 را نصب کنید! :20:
در واقع CLR پیوند و Reference به نسخه های قدیم را به معادل آنها در نسخه جدید تغییر مسیر و redirect میکند.
=====
برای کنترل این وضعیت (redirect reference) گزینه supportedRuntime در فایل config پروژه موجود است.
مثلاً اگر برنامه کاملی را تحت Framework2.0 نوشته و کامپایل کرده اید و حالا در ماشینی به جای Framework2.0 نسخه Framework4.0 نصب است، به راحتی با اضافه کردن بخش زیر به فایل xml ای کنار exe برنامه با انشعاب config برنامه را اجرا کنید. (بدون نصب نسخه 2)
کد:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
فایلهای کامپایل شده جدید تحت نسخه 4 هم به طور خودکار این بخش را دارند، تا در استفاده از dll و کامپونت و ابزار نسخه های پایین تر در نسخه جدید مشکلی برای برنامه ایجاد نشود و برنامه بدون نصب چند نسخه همزمان و موازی framework بتواند به بهترین شکل کار کند.
کد:
اطلاعات بیشتر
http://msdn.microsoft.com/en-us/library/w4atty68.aspx
=====
باید توجه داشت که کل مطالب فوق وابسته به اولین exe شروع کننده برنامه است.
همچنین لازم به ذکر است که قابلیت مذکور، چیز جدیدی نیست و از نسخه های ابتدایی فریم ورک وجود داشته ولی کامل نبوده و مشکلاتی داشته که شاهد عدم هماهنگی نسخه 2 و 1 و نصب کامل نسخه 2 در دل نسخه 3 برای فرار از این مشکلات بودیم که در پست قبلی تشریح شدند.
==============
نقل قول:
توابع API دات نت جدید رو باید از کجا گرفت؟
مطمئن نیستم منظور شما را صحیح و کامل متوجه شده باشم.
لینک های زیر را مرور کنید:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کد:
VS2010 امکانات جدید
http://go.microsoft.com/fwlink/?LinkID=159121
Framework4 امکانات و توابع جدید
http://go.microsoft.com/fwlink/?LinkID=159122
==============
با آرزوی موفقیت برای همه دوستان. :10: