‫فراخوانی Web Service از Client Side

همان طور که می‌دانیم فراخوانی و استفاده از Web Serviceها تنها از طریق کدهای Server Side امکان پذیر است، اما اگر بخواهیم یک برنامه آژاکسی Client Side بنویسیم و از Web Serviceها هم در کدهای جاوا اسکریپتی سمت کلاینت استفاده کنیم چه باید کرد؟ راه حل این مشکل در ASP.NET AJAX نهفته است. ASP.NET AJAX امکاناتی را ارائه می‌دهد که با کمک آنها می‌توان یک Web Service را درست مثل توابع داخلی جاوا اسکریپت فراخوانی کرد. اقدامات مورد نیاز برای انجام این کار:

۱- تعریف کلاس وب سرویس (asmx) به طور خاص
۲- معرفی وب سرویس مورد نظر با استفاده از Script Manager
۳- فراخوانی غیر همزمان متودهای دلخواه وب سرویس از کد جاوا اسکریپت

ASP.NET AJAX خودش خروجی وب سرویس را به JSON سریالایز کرده، در سمت کلاینت deserialize کرده و نهایتاً در قالب objectهای جاوا اسکریپتی (با ساختار مشابه objectهای سمت سرور) به کلاینت تحویل می‌دهد بدون آن که استفاده کننده یا برنامه‌نویس بویی از جزییات ببرد.
دقت کنید که تا اینجای کار فرض بر این بوده است که وب سرویس مورد نظر در همان سروری قرار دارد که صفحات aspx ما هم قرار دارند. در صورت نیاز به وب‌سرویس‌ها (و دیگر سرویس‌ها) در وب سایت‌های دیگر باید از راه حل‌های دیگری مثل Bridge استفاده کرد.

 

منبع: فصل ۵ کتاب ASP.NET Ajax in Action (در این فصل غیر از Web Serviceها، روش‌ها و ابزارهای دیگری نیز برای ارتباط Asynchronous با سرور گفته شده است)

مطالعه بیشتر:
۱- آشنایی با کتابخانه Microsoft Ajax Library
۲- ‫‫جاوا اسکریپتی قوی‌تر با Microsoft Ajax Library
۳- نمونه کدهای فصل پنج

‫‫جاوا اسکریپتی قوی‌تر با Microsoft Ajax Library

اگر می‌خواهید امکانات C#‎ را در کدهای کلاینتی JavaScript داشته باشید آن هم به همان شکلی که در C#‎ وجود دارد، یک راه ساده وجود دارد: استفاده از Microsoft Ajax Library. این کتابخانه بخش client موتور آژاکس مایکروسافت یعنی ASP.NET AJAX را تشکیل می‌دهد و با استفاده از ScriptManager به طور خودکار به صفحات ASP.NET اضافه می‌شود. Mirosoft Ajax Library به جاوا اسکریپت امکاناتی را اضافه می‌کند تا برنامه‌نویسان C# عمده امکانات Object Oriented ‫را به همان سبک و سیاق C#‎ در دسترس داشته باشند. این امکانات عبارتند از:

۱- تعریف Object و Class (هم Property و هم Method)
‫۲- interface
‫۳- enum
‫۴- inheritance
‫۵- event
‫۶- namespace
‫۷- reflection

دقت کنید که این امکانات به Client Side و جاوا اسکریپت اضافه می‌شود، آن هم به جاوا اسکریپتی که بیش از یک function و object بدون متود چیزی ندارد! به عبارت دیگر این یعنی این که شما با کمک این امکانات می‌توانید بخش زیادی از منطق و ساختار برنامه را با کمک هزاران خط کد جاوا اسکریپت به صورت منظم، ساختارمند و کاملا مشابه کدهای شی گرای C#‎ در سمت Client پیاده سازی کنید.

منبع:
فصل سوم کتاب ASP.NET Ajax in Action
مطالعه بیشتر:
الف- ‫آشنایی با کتابخانه Microsoft Ajax Library
ب- راهنمای خیلی فشرده جاوا اسکریپت