آیا jQuery و ASP.NET AJAX رقیب و معادل (alternative) هم هستند؟
تا اندازهای میتوان گفت بله آنها در خیلی از قسمتها رقیب هم محسوب میشوند. اما این دلیل نمیشود که یکی را به طور کامل کنار بگذاریم و سراغ دیگری برویم. بلکه (به اعتقاد من) باید سعی کنیم یکی را به عنوان راه حل اصلی انتخاب کنیم و از دیگری به عنوان روش کمکی استفاده کنیم. مثلاً ASP.NET AJAX میتواند در سمت سرور به دیتابیس متصل شود و اطلاعات زیادی را به صورت JSON برای jQuery که صرفاً در کلاینت کار میکند بفرستد. {۸} {۹}
آیا میشود از این دو فناوری درکنار هم استفاده کرد؟
بله. به جز بعضی ناسازگاریهایی خیلی کوچک مشکل دیگری وجود ندارد. حتی توصیه شده برای رسیدن به قدرت و سرعت بالاتر از ترکیب هر دو فناوری با هم استفاده شود. {۷}
کدام فناوری را میتوانم در سکوهای دیگر نیز مورد استفاده قرار دهم؟
فقط jQuery را. از jQuery میشود در ASP.NET، ASP.NET MVC، PHP، Perl و… نیز استفاده کرد. در حالی که از ASP.NET AJAX حتی در ASP.NET MVC هم به جز بخش کوچکی از هسته آن را نمیتوان استفاده کرد چون ASP.NET MVC از WebForm استفاده نمیکند. در ASP.NET MVC خود برنامهنویس مجبور است State صفحه را نگه دارد در نتیجه خبری از Post Back هم نیست!
مایکروسافت چه رابطهای با jQuery دارد؟
مایکروسافت به jQuery ایمان دارد! jQuery در حال حاضر بخشی از ASP.NET MVC است و به زودی در دیگر محصولات مایکروسافت هم ظاهر خواهد شد. علیالظاهر مایکروسافت قصد داشته برای محصولاتش کتابخانهای مانند jQuery ایجاد کند ولی وقتی دیده چنین چیزی از قبل وجود دارد برخلاف همیشه تصمیم گرفته به جای ایجاد نسخه مخصوص به خودش از همان jQuery استفاده کند. {۵}
مزایا و معایب هر کدام چیست؟
ASP.NET AJAX:
۱- مزیت: یادگیری خیلی زیادی نمیخواهد. لازم نیست XHR را بشناسید و کلی هم HTML، CSS و جاوا اسکریپت بلد باشید.
۲- مزیت: با کنترلهای معمول ASP.NET یکی میشود و نیازی به دستکاری ندارد. مثلاً خیلی از کنترلهای معمول ASP.NET مثل TextBox و Label را میتوان با قرار دادن در یک UpdatePanel آژاکسی کرد.
۳- مزیت: یکپارچگی آن با ASP.NET باعث میشود بتواند به راحتی از سرویسهای موجود در ASP.NET مثل Profile در عملیات آژاکسی استفاده کند.
۴- ایراد: خیلی کند است و در خیلی آزمایشها تا ۸۰ درصد پهنای باند را به علت وجود ViewStateهای حجیم تلف میکند.
۵- ایراد: مهارتهای به دست آمده از طریق آن (به جز بخشی از هسته آن) را نمیتوان در هیچ جای دیگر استفاده کرد.
jQuery:
۱- مزیت: چون از روش برنامهنویسی مستقیم استفاده میکند خیلی سریعتر است.
۲- مزیت: جامعه بسیار فعال، متنوع و رو به رشدی دارد. جامعه فعال یعنی محصولات جانبی و support بیشتر.
۳- مزیت: کدباز و مجانی است.
۴- مزیت: مهارت به دست آمده از jQuery را در سکوهای دیگری غیر از داتنت هم میتوان استفاده کرد.
۵- مزیت: مهارت به دست آمده از jQuery را میتوان در مباحث دیگری غیر از آژاکس هم مورد استفاده قرار داد.
۶- ایراد: نیاز به مقدار زیادی یادگیری HTML، CSS، JavaScript و… دارد.
۷- ایراد: به احتمال خیلی زیاد نشود از بعضی کنترلهای ASP.NET به صورت معمول استفاده کرد. مثلاً نمیدانم اگر قرار باشد GridView را با کمک jQuery آژاکسی کرد چه اتفاقی برایش میافتد. مثلاً میشود از Binding به روش معمول استفاده کرد یا نه این که شاید اصلاً مجبور باشیم از یک کنترل GridView کلاینتی مثل FlexGrid استفاده کنیم.
»»»قسمت قبلی مطلب را در بخش اول بخوانید
»»»ادامه مطلب را در بخش سوم بخوانید

دیدگاهها
افشار عزيز
مقاله بسيار مفيد و زيبائي بود.
نظر خود من، به استفاده از xhr به صورت مستقيمه و من هم با نظر تمامي دوستاني که استفاده مستقيم از xmlHTTP رو توصيه ميکنند موافقم.
در حقيقت براي کسي که ميخواد يک برنامه نويس حرفه اي وب باشه، حتي توصيه اي فراتر از XMLHttp دارم. و اون اينه که بايد شي گرائي در Javascript رو ياد بگيره و بعد با توسعه Jquery و استفاده از XMLHttp، کلاسها و کامپوننتهاي Ajax خودش رو بنويسه.