یکی از نکات جالب در ارتباط با فریمورک سمت سرویس گیرنده ، عدم وابستگی کتابخانه مرکزی به عناصر سرویس دهنده است . از کتابخانه فوق می توان جهت پیاده سازی برنامه های نوشته شده توسط PHP و یا ColdFusion و سایر زبان های برنامه نویسی و یا پلت فرم ها نیز استفاده کرد .
با توجه به انعطاف پذیری معماری فوق ،‌ می توان آن را بطور منطقی به دو بخش تقسیم کرد : فریمورک سرویس دهنده و فریمورک سرویس گیرنده تقسیم نمود .
آگاهی از نحوه عملکرد معماری فوق در سمت سرویس گیرنده ، برای پیاده کنندگان سمت سرویس دهنده نیز ضروری است چراکه این بخش آغازگر حیات یک صفحه وب می باشد .

Microsoft Ajax Library
در هسته فریمورک سمت سرویس دهنده 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
صفحات وب مبتنی بر Ajax در ASP. NET با استفاده از HTML ، جاوا اسکریپت و یک گرامر تعریفی مبتنی بر XML که به آن XML script گفته می شود ، نوشته می گردند . بدین ترتیب پیاده کنندگان دارای گزینه های متعددی برای نوشتن کد صفحات وب در سمت سرویس گیرنده می باشند . می توان کد را به صورت اخباری و با استفاده از XML Script و یا به صورت دستوری با جاوا اسکریپت پیاده سازی کرد . عناصر تعریف شده در XML Script شامل یک تگ اسکریپت جدید به صورت زیر می باشند .


<script type=”text/xml-script”>


مرورگر قادر به تشخیص تگ Script است ولی دارای یک مکانیزم برای پردازش نوع xml-script نمی باشد . در مقابل ، فایل های جاوا اسکریپت از فریمورک ASP.NET Ajax می توانند اسکریپت را تفسیر و یک نمونه از عناصر و کنترل های موجود بر روی صفحه را ایجاد نمایند . کد زیر ، نحوه استفاده از XML Script به منظور نمایش یک پیام پس از استقرار صفحه در حافظه مرورگر را نشان می دهد .

XML-Script : گزینه ای برای پیاده سازی صفحات مبتنی بر Ajax
<script type=”text/xml-script”>
<page xmlns=”http://schemas.microsoft.com/xml-script/2005″>
<components>
<application load=”page_load” />
</components>
</page>
</script>
<script type=”text/javascript”>
function page_load(sender, e) {
alert(”Hello from XML-Script!”);
}
</script>


در مثال فوق ، یک تابع نوشته شده به زبان جاوا اسکریپت با نام Page_load به صورت تعریفی به رویداد Load در چرخه حیات صفحه نسبت داده شده است . با اجرای این صفحه ، تابع Page_Load فراخوانده می شود تا یک پیام برای سرویس گیرنده نمایش داده شود .
شاید برای شما این سوال مطرح شده باشد که چرا در مقابل جاوا اسکریپت می بایست از XML Script استفاده کرد ؟ ( عکس این سوال نیز می تواند مطرح شود ) . در پاسخ می توان به تمایل پیاده کنندگان و توانمندی آنها اشاره کرد . برخی از پیاده کنندگان ترجیح می دهند که از یک زبان نشانه گذاری در مقابل اسکریپت استفاده نمایند . در مقابل تعداد دیگری از پیاده کنندگان استفاده از زبان جاوا اسکریپت را در مقابل یک زبان نشانه گذاری ، ترجیح می دهند . به هر حال از دو رویکرد فوق می توان استفاده کرد و هر یک دارای مزایا و محدودیت های مختص به خود می باشند.

ASP.NET AJAX service proxies
فریمورک در سمت سرویس گیرنده قابلیت فراخوانی سرویس های وب را از طریق جاوا اسکریپت و به کمک مجموعه ای از پروکسی های سمت سرویس گیرنده که از طریق سرویس دهنده ایجاد شده اند ، فراهم می نماید .پروکسی ها را می توان به منزله یک مرجع وب در کد مدیریت یافته دات نت در نظر گرفت . یک پروکسی کلاسی است که به عنوان یک اینترفیس برای آیتم دیگر عمل می نماید . در این حالت ، یک سرویس وب .

جمع بندی فریمورک سمت سرویس گیرنده
تا این جا یک دید کلی و اولیه نسبت به فریمورک سمت سرویس گیرنده پیدا کردیم . اجازه دهید سفری داشته باشیم به سمت سرویس دهنده و ببینیم که این فریمورک در سمت سرویس دهنده چه حرفی برای گفتن دارد و از چه نوع معماری تبعیت می کند .