2009-04-22 52 views

Respuesta

32

personalmente prefiero jQuery por las siguientes razones: -

  1. La comunidad plug-in es mucho más variada y atrae a los desarrolladores de una amplia gama de fondos (no sólo la pila MS). Para MS-AJAX, usted está prácticamente obligado al conjunto de herramientas de control AJAX del cliente para sus widgets UI en este momento.
  2. encuentro la API jQuery lejos tareas clientside comunes más aplicable que la ofrecida por MS AJAX
  3. Dada la falta de formularios Web humo y espejos que tienen lugar en MVC necesita a veces un control firme sobre el DOM para hacer ciertas cosas, la El motor de selección CSS ofrecido por jQuery realmente te ayuda a hacer esto.

En términos de lo que MS AJAX le ofrece en MVC, se puede hacer mucho por usted en términos de darle una forma rápida de formas y enlaces "AJAXify", pero en lo que a mí respecta 90kb añadiendo vale la pena javascript para hacer eso no vale la pena cuando las llamadas equivalentes en jQuery (por ejemplo, $ .get, $ .post, $ (elemento) .load) son relativamente fáciles de usar.

1

Me gustaría mencionar que Microsoft es compatible con JQuery, y lo harán compatible con las próximas versiones de Visual Studio. Para obtener más información, visite http://live.visitmix.com/. ASP.NET AJAX y jQuery no se superponen demasiado, por lo que le gustaría usar ambos.

4

JQuery es una biblioteca del lado del cliente. Asp.Net Ajax incluye funciones del lado del cliente y del lado del servidor. En mi humilde opinión, la comparación no es realmente justa. Pueden complementarse siguiendo los planes de Microsoft.

+2

No estoy de acuerdo Charlie, JQuery puede hacer devoluciones de llamadas a las funciones del lado del servidor, al igual que ASP.NET Ajax usa Javascript para hacer lo mismo. Ambos son marcos de trabajo del lado del cliente, ASP.NET AJAX tiene una mejor encapsulación del código de devolución de datos, mientras que JQuery le da mucho más control sobre él. – emalamisura

2

Hay una variante de ASP.NET AJAX para MVC: se usa con AjaxHelper y extensiones. Esto funciona bien en concierto con jQuery. Tengo casos en los que uso ambos en la misma página; utilizando MVC AJAX para actualizar un DIV basado haciendo clic en un botón y usando jQuery para obtener datos JSON para una operación diferente en la misma página. El estándar ASP.NET AJAX (UpdatePanels, etc.) debe usarse en el mundo de WebForms, no en MVC.

18

Personalmente, a pesar del soporte de HtmlHelper para ASP.NET Ajax, encuentro que jQuery ajax junto con JQuery forms plugin es la mejor forma de hacer publicaciones de formulario ajax en ASP.NET MVC.

p. Ej. con una llamada jQuery en una página de la lista de productos html con un formulario para cada producto permitiendo que el elemento que se añade a una cesta, una sola línea de código jQuery puede 'ajaxify' todos los formularios de la página

$(".productListItem form").ajaxForm({ target: '#extraInfoSection' }); 

combinado con un simple propiedad 'IsAjaxRequest' en una clase de base de control que comprueba los encabezados:

Request.Headers["X-Requested-With"] == "XMLHttpRequest" 

y algo de lógica en el controlador para devolver el tipo de respuesta correcta:

return IsAjaxRequest ? (ActionResult) View("BasketPartial", basket) : new RedirectBackToReferrerActionResult(); 

tiene un formulario que funciona incluso con javascript desactivado y sin ASP.NET Ajax involucrado.

+3

¿Funciona esto con la validación del lado del servidor? –

1

En primer lugar, podría ser útil tener en cuenta que ASP.NET MVC no soporta, o mejor, no tiene el concepto de devolución de datos ..

  1. asp.net ajax que está basada en el post-back, el mecanismo del lado del servidor, su misión es hacer más fácil de integrar características ajax en un modo de servidor
  2. jQuery, como otros marcos (por ejemplo ExtJs) implementa un Ajax del lado del cliente pura

Todavía es posible utilizar los controles del servidor asp.net en asp.net mvc, asp.net ajax es uno de ellos, pero asp.net mvc que está hecho, se pensaba, para separar preocupaciones (visitas) y para ser RESTO estilo tan cerca como sea posible, por lo que tomar esto en mente la idea final sería:

  1. Uso ASP.NET web Forms ASP.NET AJAX es la choiche derecho
  2. mediante ASP.NET MVC que es mejor tratar de ir cliente, por lo jQuery (u otros) es el mejor

lo siento por mi Inglés

1

Utilice ASP.NET AJAX con formularios web y jQuery con ASP.NET MVC

+0

¿Cuál es la motivación detrás de esto? Además, al iniciar un nuevo proyecto, ¿cuál de los dos elegirías, ASP.NET AJAX con formularios web o jQuery con MVC? ¿Y por qué no jQuery con formularios web y métodos de página/servicios web? Estoy ocupado decidiendo si vale la pena cambiar a MVC, aunque no es tan conocido, aunque procedo de un entorno Java Struts/JSF, por lo que el paradigma MVC está en mi mente de todos modos. – jamiebarrow

9

En lugar de hacer una recomendación, le sugiero que lea el blog de Dave Ward Encosia que tiene una serie de publicaciones en MS Ajax/Panel de actualización vs. mecanismo de publicación jQuery. Dave sostiene que el rendimiento de jQuery es muy superior ya que corta aproximadamente 100K from the transmission to and from the server.

+6

Esas publicaciones están más relacionadas con WebForms que con MVC. El ahorro de 100k mencionado en esa publicación suele ser la basura que va junto con un UpdatePanel (ViewState, Delta, etc.). En MVC lo que va y viene a lo largo del cable debe ser aproximadamente equivalente (es solo la abstracción sobre XmlHttpRequest la que difiere). –

+2

Tengo la sensación de que migraré al MVC, ya que los WebForms me resultan frustrantes porque parece que hay muchos obstáculos para implementar técnicas avanzadas de Ajax. –

+4

Como originalmente hice esta pregunta, me gustaría agregar a los comentarios sobre esta conversación, en base a lo que he aprendido. A pesar de que MVC no usa WebForms, aún construye la jerarquía de Control para su ViewEngine, ya que todavía depende de ASP.NET ViewEngine. Por lo tanto, diría que los gastos generales mencionados por Dave Ward todavía son aplicables. De acuerdo, los números pueden ser menores debido a que no hay ViewState, etc. Pero algunos de los gastos generales todavía existen, a menos que, por supuesto, reemplace ASP.NET ViewEngine con algo como Spark, entonces no hay absolutamente nada ... – emalamisura

1

Otra alternativa que probablemente pueda ver es Ajax.NET, http://www.ajaxpro.info/. Creo que es mejor que ASP.NET AJAX para WebForms. También se puede ejecutar bajo MVC.

1

En primer lugar, podría usar cualquiera, siempre y cuando esté hablando de Microsoft Ajax, solo se está refiriendo a la biblioteca del cliente. Puede utilizar la biblioteca cliente de MS Ajax y la mayoría de los extensores de herramientas sin ningún control del lado del servidor. He construido una aplicación bastante grandes usando formularios web y Microsoft Ajax luego se convierte a MVC/jQuery. Descubrí que estaba usando cada vez menos funciones en la biblioteca MS Ajax. Hay tanto disponible con complementos que hace que incluso el kit de herramientas Ajax sea obsoleto.

Si está hablando de MS Ajax usando paneles de actualización, etc., entonces diría que no, no puede usarlos en MVC. De hecho, ¡no los use en absoluto! los paneles de actualización se simulan ajax, la página sigue pasando por su ciclo de vida casi anulando el propósito de utilizar ajax.