Ajax؛ تحولی بزرگ در عرصه وب (5)
Ajax؛ تحولی بزرگ در عرصه وب (5)
Ajax؛ تحولی بزرگ در عرصه وب (5)
بخش اول: تاثير متقابل وب و نرم افزار بر يكديگر
بخش دوم: Ajax و فناوری های مرتبط با آن
بخش سوم: بررسی نمونه برنامه های مبتنی بر Ajax
بخش چهارم: برنامه نويسی غيرهمزمان در برنامه های وب
پس از آشنائی با اصول اوليه Ajax در طی چهار مقاله ، پياده كنندگانی كه علاقه مند به استفاده از اين فناوری در برنامه های وب می باشند اين پرسش را مطرح می نمايند كه آيا برای استفاده از پتانسيل های Ajax می بايست از يك فريمورك و يا toolkit خاص استفاده كرد ؟ در ادامه ضمن پاسخ به اين سوال ، به بررسی معماری ASP.NET Ajax خواهيم پرداخت .
• سازگاری بين مرورگرها : گذشته از پياده سازی نسخه های متعدد و مختلف از شی XMLHttpRequest ، هر مرورگر يك نسخه متفاوت از DOM را پياده سازی كرده است . به روز نگه داشتن تغييرات بين مرورگرها و مديريت تشخيص مرورگرها می تواند يك فرآينده مشكل و خسته كننده را برای پياده كنندگان به دنبال داشته باشد .يكی از اهداف مهم يك toolkit و يا فريمورك ، تفكيك پيچيدگی ها و تفاوت ها است تا پياده كنندگان بتوانند با بكارگيری مجموعه ای از امكانات رابط برنامه نويسی ( API ) ، عمليات مشابه و يكسانی را انجام دهند .
• ضرورت درك عميق تر از جاوا اسكريپت : جاوا اسكريپت ذاتا" يك زبان پيچيده نيست ، گرچه ، تعداد زيادی از پياده كنندگان برنامه های وب اين عقيده را ندارند. جاوا اسكريپت ويژگی هائی نظير شی گراء و يا Type safe را كه بتواند انتظار برنامه نويسان را تامين نمايد ، ارائه نمی نمايد . مفاهيمی نظير توارث ، اينترفيس ها و رويدادها را می توان در جاوا اسكريپت شبيه سازی كرد ولی پياده سازی آنها برای پياده كنندگان كار مشكلی خواهد بود . اشكال زدائی و عدم حمايت از زبان های اسكريپت نويسی سمت سرويس گيرنده در محيط های IDE ( برگرفته شده از integrated development environments ) نيز به پيچيدگی كار می افزايد .
با توجه به موارد فوق ، توصيه می گردد در زمان پياده سازی برنامه های وب مبتنی بر Ajax از يك فريمورك و يا toolkit استفاده شود و پياده كنندگان خود را درگير برخی كارهای پيچيده و تكراری ننمايند .
ASP. NET Ajax يكی از فريمورك های ارائه شده در اين خصوص است كه در ادامه با معماری آن بيشتر آْشنا می شويم .
با بررسی معماری فريمورك فوق و آشنائی با نحوه عملكرد هر يك از عناصر موجود در اين ساختار ، با قابليت های فريمورك ASP. NET Ajax بيشتر خواهيم شد .
شكل 1 ، ساختار معماری فريمورك ASP. NET Ajax را نشان می دهد . اولين چيزی كه در شكل فوق مشهود است ، پوشش اين فريمورك در دو سمت سرويس گيرنده و سرويس دهنده است . علاوه بر مجموعه ای از كتابخانه های سمت سرويس گيرنده و عناصر ، با مجموعه ای از امكانات در سمت سرويس دهنده مواجه هستيم كه امكان بكارگيری آنها توسط كنترل های سرويس دهنده ASP. NET و سرويس ها وجود دارد .
با توجه به انعطاف پذيری معماری فوق ، می توان آن را بطور منطقی به دو بخش تقسيم كرد : فريمورك سرويس دهنده و فريمورك سرويس گيرنده تقسيم نمود .
آگاهی از نحوه عملكرد معماری فوق در سمت سرويس گيرنده ، برای پياده كنندگان سمت سرويس دهنده نيز ضروری است چراكه اين بخش آغازگر حيات يك صفحه وب می باشد .
كار خود را با بررسی لايه Type system كه زيربنای تمامی لايه های ديگر است ، آغاز می نمائيم . ( در نسخه های قبلی ASP. NET Ajax با كد نام Atlas ، به كتابخانه مركزی Client Script Library گفته می شد ) .
• Type System : هدف از لايه فوق ، معرفی مفاهيم برنامه نويسی شی گراء نظير كلاس ها ، توارث ، اينترفيس ها و event handling برای جاوا اسكريپت است . اين لايه همچنين نوع های موجود جاوا اسكريپت را توسعه می دهد . مثلا" نوع String و Array در جاوا اسكريپت توسعه يافته اند تا قابليت هائی مشابه را برای پياده كنندگان برنامه های وب ASP. NET ايجاد نمايند . type system اساس كار ساير اجزاء اين كتابخانه را فراهم می نمايد .
• Component : در لايه بعدی كتابخانه مركزی ، لايه component قرار دارد كه بر روی زيرساخت type system ايجاد شده است . لايه فوق عمليات حياتی و مهمی را برای كتابخانه مركزی انجام می دهد . اين لايه امكانات حمايتی لازم برای سريال سازی JSON ( برگرفته شده از JavaScript Object Notation ) ، ارتباطات شبكه ای ، محلی سازی ، تعامل با DOM ( برگرفته شده از Document Object Model ) و سرويس هائی نظير تائيد و پروفايل را برای برنامه های ASP.NET ارائه می نمايد . اين لايه همچنين ، امكان توليد و ايجاد ماژول هائی با قابليت استفاده مجدد را كه می توان آنها را در گروه هائی به عنوان كنترل ها و رفتارها تقسيم نمود ، فراهم می نمايد .
• Application : لايه فوق بالاترين لايه در كتابخانه مركزی است كه می توان برای آن از يك عنوان تشريحی و توصيفی بهتر استفاده كرد : Application model . همانند چرخه حيات يك صفحه در ASP.NET ، اين لايه يك مدل برنامه نويسی مبتنی بر رويداد را ارائه می نمايد كه شما می توانيد از آن به منظور كار با عناصر DOM ، عناصر نرم افزاری و چرخه حيات يك برنامه در مرورگر استفاده نمائيد .
مرورگر قادر به تشخيص تگ Script است ولی دارای يك مكانيزم برای پردازش نوع xml-script نمی باشد . در مقابل ، فايل های جاوا اسكريپت از فريمورك ASP.NET Ajax می توانند اسكريپت را تفسير و يك نمونه از عناصر و كنترل های موجود بر روی صفحه را ايجاد نمايند . كد زير ، نحوه استفاده از XML Script به منظور نمايش يك پيام پس از استقرار صفحه در حافظه مرورگر را نشان می دهد .
در مثال فوق ، يك تابع نوشته شده به زبان جاوا اسكريپت با نام Page_load به صورت تعريفی به رويداد Load در چرخه حيات صفحه نسبت داده شده است . با اجرای اين صفحه ، تابع Page_Load فراخوانده می شود تا يك پيام برای سرويس گيرنده نمايش داده شود .
شايد برای شما اين سوال مطرح شده باشد كه چرا در مقابل جاوا اسكريپت می بايست از XML Script استفاده كرد ؟ ( عكس اين سوال نيز می تواند مطرح شود ) . در پاسخ می توان به تمايل پياده كنندگان و توانمندی آنها اشاره كرد . برخی از پياده كنندگان ترجيح می دهند كه از يك زبان نشانه گذاری در مقابل اسكريپت استفاده نمايند . در مقابل تعداد ديگری از پياده كنندگان استفاده از زبان جاوا اسكريپت را در مقابل يك زبان نشانه گذاری ، ترجيح می دهند . به هر حال از دو رويكرد فوق می توان استفاده كرد و هر يك دارای مزايا و محدوديت های مختص به خود می باشند.
• كنترل های سرويس دهنده Ajax
• web services bridge
• application services bridge
در ادامه هر يك از امكانات فوق را به اختصار توضيح می دهيم .
دومين كنترل ، UpdatePanel است كه از آن به منظور تعريف ناحيه ای بر روی صفحه كه می بايست به صورت جزئی بهنگام گردد ، استفاده می شود . با تلفيق توانمندی دو كنترل اشاره شده وضعيت بخش رابط كاربر يك برنامه وب بطرز محسوسی بهبود خواهد يافت ( در واقع Postback سنتی جای خود را به Postback غيرهمزمان می دهد ) . پيامد بكارگيری كنترل های فوق ، بهنگام سازی نواحی خاص و مشخص شده ای بر روی صفحه ، در مقابل refresh تمامی صفحه است .
ساير عناصر server extension ، سرويس هائی را شامل می شوند كه به منزله يك پل ارتباطی بين سرويس گيرنده و سرويس دهنده رفتار می نمايند .
منبع: http://www.srco.ir
/س
بخش دوم: Ajax و فناوری های مرتبط با آن
بخش سوم: بررسی نمونه برنامه های مبتنی بر Ajax
بخش چهارم: برنامه نويسی غيرهمزمان در برنامه های وب
پس از آشنائی با اصول اوليه Ajax در طی چهار مقاله ، پياده كنندگانی كه علاقه مند به استفاده از اين فناوری در برنامه های وب می باشند اين پرسش را مطرح می نمايند كه آيا برای استفاده از پتانسيل های Ajax می بايست از يك فريمورك و يا toolkit خاص استفاده كرد ؟ در ادامه ضمن پاسخ به اين سوال ، به بررسی معماری ASP.NET Ajax خواهيم پرداخت .
چرا به يك فريمورك Ajax نياز داريم ؟
• سازگاری بين مرورگرها : گذشته از پياده سازی نسخه های متعدد و مختلف از شی XMLHttpRequest ، هر مرورگر يك نسخه متفاوت از DOM را پياده سازی كرده است . به روز نگه داشتن تغييرات بين مرورگرها و مديريت تشخيص مرورگرها می تواند يك فرآينده مشكل و خسته كننده را برای پياده كنندگان به دنبال داشته باشد .يكی از اهداف مهم يك toolkit و يا فريمورك ، تفكيك پيچيدگی ها و تفاوت ها است تا پياده كنندگان بتوانند با بكارگيری مجموعه ای از امكانات رابط برنامه نويسی ( API ) ، عمليات مشابه و يكسانی را انجام دهند .
• ضرورت درك عميق تر از جاوا اسكريپت : جاوا اسكريپت ذاتا" يك زبان پيچيده نيست ، گرچه ، تعداد زيادی از پياده كنندگان برنامه های وب اين عقيده را ندارند. جاوا اسكريپت ويژگی هائی نظير شی گراء و يا Type safe را كه بتواند انتظار برنامه نويسان را تامين نمايد ، ارائه نمی نمايد . مفاهيمی نظير توارث ، اينترفيس ها و رويدادها را می توان در جاوا اسكريپت شبيه سازی كرد ولی پياده سازی آنها برای پياده كنندگان كار مشكلی خواهد بود . اشكال زدائی و عدم حمايت از زبان های اسكريپت نويسی سمت سرويس گيرنده در محيط های IDE ( برگرفته شده از integrated development environments ) نيز به پيچيدگی كار می افزايد .
با توجه به موارد فوق ، توصيه می گردد در زمان پياده سازی برنامه های وب مبتنی بر Ajax از يك فريمورك و يا toolkit استفاده شود و پياده كنندگان خود را درگير برخی كارهای پيچيده و تكراری ننمايند .
ASP. NET Ajax يكی از فريمورك های ارائه شده در اين خصوص است كه در ادامه با معماری آن بيشتر آْشنا می شويم .
معماری فريمورك ASP. NET Ajax
با بررسی معماری فريمورك فوق و آشنائی با نحوه عملكرد هر يك از عناصر موجود در اين ساختار ، با قابليت های فريمورك ASP. NET Ajax بيشتر خواهيم شد .
شكل 1 ، ساختار معماری فريمورك ASP. NET Ajax را نشان می دهد . اولين چيزی كه در شكل فوق مشهود است ، پوشش اين فريمورك در دو سمت سرويس گيرنده و سرويس دهنده است . علاوه بر مجموعه ای از كتابخانه های سمت سرويس گيرنده و عناصر ، با مجموعه ای از امكانات در سمت سرويس دهنده مواجه هستيم كه امكان بكارگيری آنها توسط كنترل های سرويس دهنده ASP. NET و سرويس ها وجود دارد .
فريمورك سمت سرويس گيرنده
با توجه به انعطاف پذيری معماری فوق ، می توان آن را بطور منطقی به دو بخش تقسيم كرد : فريمورك سرويس دهنده و فريمورك سرويس گيرنده تقسيم نمود .
آگاهی از نحوه عملكرد معماری فوق در سمت سرويس گيرنده ، برای پياده كنندگان سمت سرويس دهنده نيز ضروری است چراكه اين بخش آغازگر حيات يك صفحه وب می باشد .
Microsoft Ajax Library
كار خود را با بررسی لايه Type system كه زيربنای تمامی لايه های ديگر است ، آغاز می نمائيم . ( در نسخه های قبلی ASP. NET Ajax با كد نام Atlas ، به كتابخانه مركزی Client Script Library گفته می شد ) .
• Type System : هدف از لايه فوق ، معرفی مفاهيم برنامه نويسی شی گراء نظير كلاس ها ، توارث ، اينترفيس ها و event handling برای جاوا اسكريپت است . اين لايه همچنين نوع های موجود جاوا اسكريپت را توسعه می دهد . مثلا" نوع String و Array در جاوا اسكريپت توسعه يافته اند تا قابليت هائی مشابه را برای پياده كنندگان برنامه های وب ASP. NET ايجاد نمايند . type system اساس كار ساير اجزاء اين كتابخانه را فراهم می نمايد .
• Component : در لايه بعدی كتابخانه مركزی ، لايه component قرار دارد كه بر روی زيرساخت type system ايجاد شده است . لايه فوق عمليات حياتی و مهمی را برای كتابخانه مركزی انجام می دهد . اين لايه امكانات حمايتی لازم برای سريال سازی JSON ( برگرفته شده از JavaScript Object Notation ) ، ارتباطات شبكه ای ، محلی سازی ، تعامل با DOM ( برگرفته شده از Document Object Model ) و سرويس هائی نظير تائيد و پروفايل را برای برنامه های ASP.NET ارائه می نمايد . اين لايه همچنين ، امكان توليد و ايجاد ماژول هائی با قابليت استفاده مجدد را كه می توان آنها را در گروه هائی به عنوان كنترل ها و رفتارها تقسيم نمود ، فراهم می نمايد .
• Application : لايه فوق بالاترين لايه در كتابخانه مركزی است كه می توان برای آن از يك عنوان تشريحی و توصيفی بهتر استفاده كرد : Application model . همانند چرخه حيات يك صفحه در ASP.NET ، اين لايه يك مدل برنامه نويسی مبتنی بر رويداد را ارائه می نمايد كه شما می توانيد از آن به منظور كار با عناصر DOM ، عناصر نرم افزاری و چرخه حيات يك برنامه در مرورگر استفاده نمائيد .
HTML ، جاوا اسكريپت و اسكريپت XML
<script type="text/xml-script"> |
مرورگر قادر به تشخيص تگ Script است ولی دارای يك مكانيزم برای پردازش نوع xml-script نمی باشد . در مقابل ، فايل های جاوا اسكريپت از فريمورك ASP.NET Ajax می توانند اسكريپت را تفسير و يك نمونه از عناصر و كنترل های موجود بر روی صفحه را ايجاد نمايند . كد زير ، نحوه استفاده از XML Script به منظور نمايش يك پيام پس از استقرار صفحه در حافظه مرورگر را نشان می دهد .
XML-Script: گزينه ای برای پياده سازی صفحات مبتنی بر Ajax |
<script type="text/xml-script"> |
در مثال فوق ، يك تابع نوشته شده به زبان جاوا اسكريپت با نام Page_load به صورت تعريفی به رويداد Load در چرخه حيات صفحه نسبت داده شده است . با اجرای اين صفحه ، تابع Page_Load فراخوانده می شود تا يك پيام برای سرويس گيرنده نمايش داده شود .
شايد برای شما اين سوال مطرح شده باشد كه چرا در مقابل جاوا اسكريپت می بايست از XML Script استفاده كرد ؟ ( عكس اين سوال نيز می تواند مطرح شود ) . در پاسخ می توان به تمايل پياده كنندگان و توانمندی آنها اشاره كرد . برخی از پياده كنندگان ترجيح می دهند كه از يك زبان نشانه گذاری در مقابل اسكريپت استفاده نمايند . در مقابل تعداد ديگری از پياده كنندگان استفاده از زبان جاوا اسكريپت را در مقابل يك زبان نشانه گذاری ، ترجيح می دهند . به هر حال از دو رويكرد فوق می توان استفاده كرد و هر يك دارای مزايا و محدوديت های مختص به خود می باشند.
ASP.NET AJAX service proxies
جمع بندی فريمورك سمت سرويس گيرنده
فريمورك در سمت سرويس دهنده
• كنترل های سرويس دهنده Ajax
• web services bridge
• application services bridge
در ادامه هر يك از امكانات فوق را به اختصار توضيح می دهيم .
كنترل های سرويس دهنده Ajax
دومين كنترل ، UpdatePanel است كه از آن به منظور تعريف ناحيه ای بر روی صفحه كه می بايست به صورت جزئی بهنگام گردد ، استفاده می شود . با تلفيق توانمندی دو كنترل اشاره شده وضعيت بخش رابط كاربر يك برنامه وب بطرز محسوسی بهبود خواهد يافت ( در واقع Postback سنتی جای خود را به Postback غيرهمزمان می دهد ) . پيامد بكارگيری كنترل های فوق ، بهنگام سازی نواحی خاص و مشخص شده ای بر روی صفحه ، در مقابل refresh تمامی صفحه است .
ساير عناصر server extension ، سرويس هائی را شامل می شوند كه به منزله يك پل ارتباطی بين سرويس گيرنده و سرويس دهنده رفتار می نمايند .
web services bridge
Application Service bridge
خلاصه
منبع: http://www.srco.ir
/س
مقالات مرتبط
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}