PDA

View Full Version : Avalon



M.GhanaatPisheh
دوشنبه 26 اردیبهشت 1384, 04:41 صبح
"Avalon" Technologies :
http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/wcp_conceptual/winfx/port_tech_wcp.asp

Getting Started with "Avalon" :
http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/wcp_conceptual/winfx/port_tech_avalon_gettingstarted.asp

Application Model :
http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/wcp_conceptual/winfx/port_tech_appmodel.asp

"Avalon": Samples :
http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/wcp_samples/winfx/port_sample_wcp.asp



کلا :
http://winfx.msdn.microsoft.com/library/


:)

M.GhanaatPisheh
سه شنبه 27 اردیبهشت 1384, 04:15 صبح
هنوز دلیل این کار مایکرو سافت رو نفهمیدم.
آدم یاد CSS می افته. :strange:
این همه تلاش می کنه که یه مشت چرت و پرت بریزه توی یه فایل XAML که چه اتفاق بزرگی برای UI بیفته.

احمقانست. :sad2:
حیف وقت.

مطهر
پنج شنبه 29 اردیبهشت 1384, 00:27 صبح
مقاله زیر از آقای Inprise با تلخیص می باشد.که در مورد معماری لانگهورن استادانه سخن گفته اند.(لینک اصلی را پیدا نکردم :mrgreen: )


بخواهید یا نخواهید شما در عصر رنسانس دنیای الکترونیک و IT قرار دارید و بلا شک باید نظاره گر تغییراتی باشید که بزرگان درهء سیلیکون و لژ نشینان ردموند منشاء آن هستند .

لانگهورن دقیقا" چیست ؟ آیا باید به عنوان یک برنامه نویس در مورد لانگهورن و فلسفهء آن نگران باشم ؟ آیا لانگهورن فناوری جدید مایکروسافت است یا به عقیدهء متعصبان دنیای سورس آزاد " یک تقلید دیگر" است ؟ و دست آخر آیا لانگهورن تغییر و تحول اساسی در ادبیات توسعهء نرم افزار خواهد گذاشت ؟

سعی میکنم در این نوشتار ضمن پاسخ به این سوالات فناوریهای دیگری که به آیندهء توسعهء نرم افزار مربوط اند را معرفی کنم و امیدوارم این نوشته برایتان مفید باشد .

1.تولید یک سیستم عامل جدید کار بزرگ و هزینه بری است که هنوز برای مایکروسافت توجیه اقتصادی ندارد

از شواهد و قوائن چنین پیداست که لانگهورن ، مانند ویندوزهای اکس پی و 2003 سرور همچنان بر فراز هسته و SubSystem های اصلی NT کار خواهد کرد . همچنان HAL ( یا Hardware Abstraction Layer ) مسئول تراکنش های سطح پائین با سخت افزار است ( ویندوز روی خانوادهء پردازنده های اینتل و آلفا و DEC ، کار میکند اما تمام ویندوز برای این معماری های متفاوت بازنویسی نشده است ، بلکه یک سطح بسیار شفاف بنام HAL آنچه برای ارتباط با سخت افزار لازم است را محصور مینماید و ویندوز با HAL ارتباط برقرار میکند ) کرنل و Device Driver های سطح کرنل ( Kernel Mode ) که همگی از کدهای ویندوز NT بازسازی شده اند برفراز HAL قرار دارند و سرویسهای اصلی سیستم ، یعنی سیستم فایل ( NTFS ) ، لایه های برقراری ارتباطات شبکه ای ( مانند TCP/IP Stack ) ، ابزارهای نمایش بصری اجزاء ( مانند GDI و GDI+ ) و ... همگی همچنان سرجای خود هستند ولی بعد از این هر چه برای معماری لانگهورن در نظر گرفته شده است ، برای سیستم عامل ویندوز، جدید است و البته مفهوم این عبارت این نیست که تمام این افزونه ها جدیدا" خلق شده اند . لانگهورن بصورت درونی دارای dot NET Framework است و بسیاری از اجزاء سطح بالای لانگهورن نیز مبتنی بر کتابخانه های کلاس دات نت هستند . به عنوان مثال اگر پیش از "رابط کاربری" ویندوز مبتنی بر user32.dll یا gdi.dll بود ، بعد از این "رابط کاربری" ویندوز مبتنی بر کتابخانهء کلاس مدیریت شدهء دات نت خواهد بود و اصطلاحا" به آن Avalon میگویند ، دسترسی به سیستم فایل نیز مبتنی بر دات نت خواهد بود که اصطلاحا" به آن WinFS میگویند و تمام Win32 API ها یک محصور کنندهء شیء گرا بنام WinFX خواهند داشت .

2.مدل برنامه نویسی در لانگهورن با آنچه تا کنون دیده ام متفاوت خواهد بود

مایکروسافت به پنهان سازی سطوح پائین پیاده سازی و ارتباط با سیستم عامل و قرار دادن رابط هائی سهل و ساده برای توسعهء نرم افزار علاقه مند شده است که بروز و ظهور آن را در لانگهورن خواهیم دید . Win32 API و subsystem هائی مثل سرویسهای شبکه ای همچنان در دسترس هستند . دات نت هم هست و همگی آن را میشناسیم اما قرار نیست روند استاندارد توصیه شده توسط مایکروسافت با آنچه تا کنون متداول بوده است سازگار باشد بلکه مایکروسافت به شما پیشنهاد میکند از WinFX برای ارتباط و سرویس گیری از سیستم عامل استفاده کنید ، آنجا که مستقیما" به قابلیتهای مخصوص ویندوز نیاز دارید ، و از Avalon و Areo برای توسعهء رابطهای کاربری استفاده کنید ، از WinFS برای ارتباط با سیستم فایل و از Indigo برای ارتباطات شبکه ای و میان پردازه ای ( همان IPC سابق ) . برخی از این کتابخانه های کلاس مبتنی بر دات نت هستند و برخی ( مانند بخشی از WinFS ) مبتنی بر دات نت نیستند ! یعنی کسانیکه بصورت جدی به لانگهورن مهاجرت میکنند یا برنامه نویسانی که کار خود را با لانگهورن آغار میکنند احتمالا" حتی نیازی به دات نت نخواهند داشت ! آنها بدون اینکه بدانند در اغلب موارد از دات نت استفاده میکنند . مثلا" وقتی که در حال ساخت یک رابط کاربری ساده برای تقویم یا دفتر تلفن خود هستند . آنها از Visual Studio 2006 و کتابخانهء Avalon استفاده میکنند که این دو ، خود ، بر فراز دات نت ساخته شده اند یا وقتی قرار است اطلاعاتی را در یک فایل ذخیره کنند از WinFS استفاده میکنند ، که بخش قابل توجهی از آن مبتنی بر دات نت است و هر گاه بخواهند برنامه ای برای ارتباطات شبکه ای بنویسند از کتابخانهء Indigo استفاده میکنند که مبتنی بر دات نت است و ... یعنی اگر بخواهیم از همان ادبیات قدیمی برای توصیف لانگهورن استفاده کنیم ، Lognhorn SDK تشکیل شده است از : WinFX ، WinFS ، Avalon ، Indigo و چند کتابخانهء کوچک دیگر . بخشی از Lognhorn SDK مبتنی بر دات نت است و بخشی نیست . بعد از توزیع ویندوز لانگهورن ، استفاده از Longhorn SDK مورد حمایت مایکروسافت است و توسط او توصیه میشود ، ضمن اینکه برنامه های Win32 یا مبتنی بر دات نت ( که همین حالا مینویسید ) روی آن کار خواهند کرد .




3.ویژگی های لانگهورن نشان میدهد در طراحی آن خلاقیت و نوآوری قابل ذکری وجود ندارد .

با نگاهی اجمالی بر معماری و ویژگی های لانگهورن ( چه به عنوان یک سیستم عامل چه به عنوان یک فرهنگ جدید برای توسعهء نرم افزار ) به وضوح مشخص میشود که مایکروسافت باز هم با تقلید و گرته برداری از سایر تکنولوژی های نسبتا" موفق و باز چینی مهره های فراهم آمده از تلاش (!) برای ایجاد یک بستر توسعه نرم افزار ، سعی میکند به حیات نرم افزاری خود پویائی ببخشد . برای اینکه عمق تلاشهای مایکروسافت در توسعهء لانگهورن مشخص شود بهتر است با هم نگاهی به جبههء مقابل ، یعنی مبارزان دنیای سورس آزاد بیندازیم و ببینیم آن سوی خط چه خبر است ؟

4.موزیلا ، بادبان کشتی توسعهء نرم افزارهای Open Source

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

5.موزیلا ، برای توسعهء نرم افزار

موزیلا تقریبا" از 3000 کامپوننت مختلف تشکیل شده است که از رابط کاربری گرفته تا سرویسهای وب و از بانک اطلاعاتی گرفته تا ارتباطات شبکه ای را حمایت میکنند . در موزیلا کتابخانهء Gecko مسئول نمایش و جلوه های بصری است ( که Avalon همین وظیفه را در لانگهورن انجام میدهد ) و برای توسعهء رابط کاربری از یک زبان شبه XML بنام XUL استفاده میکند ( که این وظیفه را در معماری لانگهورن ، زبان XAML انجام خواهد داد ) . برای ارتباطات شبکه ای کتابخانهء Necko توسعه داده شده است ( که در معماری لانگ هورن Indigo همین وظیفه را دارد ) . کتابخانه های XPCOM برای توزیع شدگی و شیء گرائی در سطح کاربرد طراحی شده اند ( همانطور که در معماری لانگهورن این وظیفه هنوز بر عهدهء کتابخانه های اصلی دات نت ، مانند ریموتینگ است ) و ...

موزیلا بر این اصل تاکید دارد که بستر توسعهء نرم افزار ، منطق نرم افزار ، رابط کاربری نرم افزار ، ارتباط نرم افزار با سایر عناصر ( کامپوننتهای دیگر ) و ارتباطات شبکه ای ، باید بصورت کاملا" از هم جدا و مستقل توسعه داده شوند و کلید ارتباطی این موجودیت های مستقل چیزی نخواهد بود بجز : XML . به دیگر بیان برنامه نویسی با موزیلا ، ترکیب و تلفیق کتابخانه های مناسب و ایجاد ارتباط بین آنها با XML است . در این معماری ، نرم افزارهای کوچک توسط هر کسی که قدری با ادبیات نرم افزار آشنا باشد قابل تهیه هستند و نرم افزارهای بزرگ فرصت می یابند در سطح تیم توزیع شوند و اعضای تیم توسعه بدون اطلاع از جزئیات سایر بخشها ، اجزاء لازم را با هم تلفیق میکنند و نهایتا" توسط XML نرم افزار اصلی متولد میگردد و هر زمان لازم بود اجزاء نرم افزار تغییر مکان یا موضع دهند ، براحتی و بدون درگیر شدن با خروارها کد ، میتوان با تغییر چند خط XML مرتبط کنندهء دو عنصر ، روند کاربرد نرم افزار را تغییر داد .
از دیدی دیگر موزیلا میخواهد برنامه نویسی برای وب ، با برنامه نویسی Desktop تفاوتی نداشته باشد . وقتی قرار است آیندهء سیستم های رایانه ای مبتنی بر وب باشد و ماهیت از هم جدای نرم افزارها و رایانه ها تبدیل به یک اتصال همیشه در دسترس و جهانی شود ، باید برنامه نویسان براحتی همراه با توسعهء Desktop برای وب هم نرم افزارهایشان را توسعه دهند .
این خط مشی و الگو ، قطعه به قطعه توسط مایکروسافت در لانگهورن توسعه داده میشود . مایکروسافت هم در توصیف علت ایجاد یک مدل جدید برنامه نویسی ( یعنی لانگهورن) میگوید :




Why another Programming Model?

Longhorn programming model is designed to fill the gap between Windows client applications and Web applications. In today's programming model, if you write a new application, first you have to decide whether the target is Windows or Web. If you target both users, then you have to develop two separate applications.





منبع : http://www.c-sharpcorner.com/Longhorn/Longhorn/LonghornFAQ.asp

بزودی همانطور که Win32 به پشت صحنه رفت تا دات نت خودنمائی کند ، دات نت هم از جلوی صحنه حذف خواهد شد تا لانگهورن فرصت خودنمائی پیدا نماید . توسعه گران معتقد به راهکارهای مایکروسافت ، دیروز به Win32 افتخار میکردند ، امروز خواب و خیالهای تعبیر نشدهء خود را با دات نت تعبیر میکنند و فردا لانگهورن "بهترین" فناوری توسعهء نرم افزار است که آزمایشگاههای چند میلیاردی مایکروسافت با کوشش و تلاش و تحقیق مداوم و اهتمام به در نظر گرفتن نیازهای کاربران و توسعه گران آن را تولید نموده است !!

6.پس مایکروسافت دقیقا" چه کرده است ؟

به غیر از استفاده از ایدهء دیگران ، اتفاقات مهم دیگری هم در جبههء مایکروسافت افتاده است . مثلا" شاید دوست داشته باشید بدانید که Gecko ( که مسئول ترسیم عناصر بصری در معماری موزیلا است ) یک تکنیک Raster- Based است . هر چند عناصر گرافیکی دلخواه خود را میتوانید براحتی تولید کنید اما توسعه گران تابع مایکروسافت از داشتن یک Avalon متمدن تر که Vector-Based است خوشحال تر خواهند بود و براحتی میتوان قابلیتهائی که همینک در SVG ادوبی یا Flash SWF مکرومدیا موجود است را توسط برنامه های معمولی لانگهورن ایجاد نمود . در سایر بخشها هم چنین ویژگیهائی مشاهده میشود . در واقع مایکروسافت تا توزیع نهائی لانگهورن ، به تقویت موزیلا ، ببخشید ، به تقویت لانگهورن برای حمایت از " هر آنچه ممکن است یک توسعه گر نرم افزار نیاز داشته باشد" خواهد پرداخت تا برنامه نویسان ، تا حد ممکن از هیچ تکنیک ، قطعهء نرم افزاری یا ابزاری که محصول مایکروسافت نباشد استفاده نکنند . اما برای شما ، به عنوان یک توسعه گر نرم افزار آنچه بیشترین نمود را خواهد داشت XAML است . زبانی که بخش قابل توجهی از توسعه گران برای ساخت برنامه های جدید خود از آن استفاده خواهند نمود . در آینده توسعهء نرم افزار های ویندوزی ، بسیار شبیه طراحی نرم افزارهای مبتنی بر وب ، خواهد بود .

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

----

منابع :

www.devx.com
www.msdn.microsoft.com
www.gotdotnet.com
www.mozdev.com
برای مطالعهء بیشتر در مورد موزیلا: http://www.mozilla.org/why/framework.html
عکس از سایت : http://www.directionsonmicrosoft.com

M.GhanaatPisheh
پنج شنبه 29 اردیبهشت 1384, 02:00 صبح
دست نوشته های Inprise همیشه خوندنیه

ولی ایراد من به مکانیزم Avalon البته تا الان هست.
یه سری به msdn و winfx.msdn.microsoft.com بزنید
ببینید Rankی که کاربران به Avalon دادن چقدره.
کلا تا حالاش که مسخرست.



بعد از این "رابط کاربری" ویندوز مبتنی بر کتابخانهء کلاس مدیریت شدهء دات نت خواهد بود و اصطلاحا" به آن Avalon میگویند