pages - ASP.Net o WPF(C#)?
javascript asp net (7)
Nuestro equipo está dividido en esto y quería obtener opiniones de terceros.
Estamos creando una aplicación y no podemos decidir si queremos usar .Net WPF Desktop Application con un servidor WCF o una aplicación web ASP.Net usando jQuery. Pensé que haría la pregunta aquí, con algunas especificaciones, y veré cuáles serían los pros / contras del uso de cualquiera de los lados. Tengo mi propio favorito y siento que soy parcial.
Idealmente, queremos construir la versión inicial del software lo más rápido que podamos, luego reducir la velocidad y tomar tiempo para incorporar las características / componentes adicionales que queremos más adelante. Sobre todo, queremos que el software sea rápido. Los usuarios pasan por registros todo el día y las demoras en la carga de registros o las pantallas de actualización matan su productividad.
Detalles de la aplicación:
- Estoy estimando alrededor de 100 pantallas diferentes para la versión inicial, con planes para agregar muchas pantallas adicionales después del lanzamiento inicial.
- Estamos buscando utilizar comunicación bidireccional para sistemas de recordatorio y evento
- Actualmente tiene que dar soporte a alrededor de 100 usuarios, aunque nos han dicho que permitamos un crecimiento de hasta 500 usuarios
- Tenemos múltiples ubicaciones
Elementos a considerar (quizás no inicialmente en algunos casos, pero en versiones futuras):
- Espacio para agregar componentes adicionales después del lanzamiento inicial (hay muchos de estos ... quizás funcionen aquí que la aplicación inicial)
- Navegación por el teclado
- El rendimiento es imprescindible
- Velocidad de producción a la versión inicial
- Bajo costo de mantenimiento
- Soporte futuro
- Integración Softphone / Scanner
Nuestros Desarrolladores:
- Tenemos 1 programador que ha estado aprendiendo WPF en los últimos meses y fue quien sugirió que usemos WPF para esto.
- Tenemos un segundo programador que está familiarizado con ASP.Net y que puede ayudar con el proyecto en el futuro, aunque no estará trabajando mucho hasta el lanzamiento inicial, ya que dedica su tiempo a mantener nuestro software actual.
- Estoy yo, que he trabajado con ambos y me siento cómodo en cualquiera
- Contamos con una empresa externa que se encarga de la administración del proyecto, y ellos son una compañía ASP.Net.
- Planeamos contratar a otras 1-2 personas, sin embargo, necesitamos saber en qué dirección vamos primero
Ambiente:
- Los usuarios generales están en el servidor de Windows 2003 con Servicios de Terminal Server. Se conectan usando WYSE thin-clients a través de una conexión RDP. El personal de administración tiene sus propias PC con XP o superior. Los usuarios pueden especificar su propia resolución, aunque están limitados a usar IE como navegador web.
- Otras ubicaciones se conectan a nuestra red a través de una conexión MPLS
Basado en eso, ¿qué elegirías y por qué?
Estoy especialmente interesado en saber de los desarrolladores que tienen experiencia con ASP.Net y WPf.
¿Es su aplicación una aplicación de escritorio o una aplicación web?
Si Desktop wpf es mejor. Si asp.net basado en web es mejor.
No cargues de frente tu desarrollo con tu escenario rápido de recuperación. Eso nunca funciona bien y resulta en un despliegue descuidado. Tómese su tiempo, cubra todos los pasos (Requisitos comerciales, Diseño del sistema, Diseño del programa, Código, PRUEBA y PRUEBA un poco más, Despliegue)
¿Por qué no considerar una solución híbrida? Silverlight
Con Silverlight obtienes la mayor parte de la bondad y estado de WPF (con casi exactamente el mismo XAML y código), además de que obtienes las características de implementación de ASP.NET
Muchas personas consideran que Silverlight es el siguiente paso después de ASP.NET/AJAX, y definitivamente entregará todos los beneficios de WPF relevantes para su escenario.
Algunos puntos que se deben hacer para ASP.NET:
El conjunto de desarrolladores de ASP.NET es mucho más grande que el grupo de desarrolladores de WPF. Lo que significa que probablemente pueda encontrar desarrolladores de ASP.NET calificados más fácilmente.
ASP.NET es probablemente más a prueba de futuro, las posibilidades de que WPF obtenga grandes cambios y sea difícil portarlas a versiones posteriores es probablemente más grande. También tenga en cuenta que el enfoque de MS parece estar en Silverlight, por lo que podría haber una consolidación en el camino que hace que WPF quede obsoleto.
El sistema ecológico más maduro de ASP.NET proporciona más soluciones listas para usar para resolver problemas.
Con varias ubicaciones, ¿podría saltear algunas capas e ir directamente a un sitio web?
Antes que nada, me sentaría y escribiría los requisitos y especificaciones del negocio. Realmente no importa qué tecnología uses: la planificación adecuada afectará más a tu línea de tiempo que a la elección de tecnología. Esto es especialmente cierto para una aplicación personalizada interna.
En cuanto al desarrollo, tomaría los requisitos y diseñaría la funcionalidad de back-end. De hecho, implementaría el backend en WCF, independientemente de la tecnología del cliente; de ese modo, podrías usar lo mejor de ambos mundos si fuera necesario (por ejemplo, para la integración del teléfono, podrías escribir una aplicación WPF independiente). ASP.NET con jQuery puede usar fácilmente los servicios de WCF (versión JSON o XML) junto con el cliente de escritorio.
En cuanto al desarrollo de los formularios del cliente, esto depende en gran medida de la experiencia de los desarrolladores y sus planes futuros. No voy a entrar en ventajas / desventajas de desarrollar software web aquí; hay una tonelada de artículos en los últimos 10 años sobre software basado en la nube / web (por ejemplo, fuerza de ventas). Prefiero concentrarme en los resultados: con qué se siente más cómodo su equipo hoy y en el futuro. Existe una gran diferencia entre WPF y el desarrollo web, desde el punto de vista del desarrollo, y requiere una experiencia completamente diferente.
Razones para elegir WPF:
- Un desarrollo mucho más rápido y fácil que ASP.NET y jQuery
- Es mucho más fácil implementar una carga de datos incremental rápida de datos
- Mucho más fácil de implementar el almacenamiento en memoria caché del lado del cliente de los datos de uso común (importante para las oficinas remotas)
- Transferencia de datos más eficiente desde el servidor (puede usar funciones avanzadas de WCF no disponibles para el navegador web)
- La navegación por el teclado es mejor, ya que puedes definir atajos fácilmente, etc., y no estar limitado por el navegador
- La sobrecarga de mantenimiento es mucho mejor usando el patrón MVVM
- Integración de Softphone fácil
Razones para elegir ASP.NET y jQuery:
- Ninguno que yo pueda ver
En su escenario, definitivamente elegiría WPF.
WPF es el camino a seguir, sin lugar a dudas. Estoy de acuerdo con todo lo que ha dicho @Ray Burns.
Porque:
- Obtendrás una aplicación más rica, rápida e inteligente.
- Será más fácil construir 1 .
- La integración de Softphone / Escáner (es decir, hardware) requerirá complementos de navegador, etc. y esto puede ser una pesadilla con una aplicación basada en navegador.
- La navegación por el teclado es aún mejor con aplicaciones nativas.
- El mantenimiento IME es más fácil con las aplicaciones WPF.
Definitivamente use WCF para proporcionar el backend a través de The Entity Framework, vea The Entity Framework In Layered Architectures . Puede tener una mejor integración con el servidor en una aplicación nativa, ya que se puede llamar en línea, sin necesidad de devolución de llamada ni ajax. He creado componentes para WPF que están vinculados a través de EF a la lógica de negocios para proporcionar controles conscientes para cosas simples como la validación. Es increíblemente bueno colocar un campo de nombre de cliente en un formulario y simplemente funciona.
Para agregar componentes adicionales, necesita construirlos con una arquitectura de plugins bien pensada. Esto es lo mismo en ambos ambientes. Tengo algunas ideas sobre esto que anoté en mi diario titulado Diseño de una arquitectura de complemento para una aplicación
Al construir una aplicación WPF, estará escribiendo en un idioma (por ejemplo, C #) + marcado (XAML). Cuando construyes asp.net terminas con dos idiomas + marcado, ya que siempre tienes que codificar algo de Javascript.
Por lo tanto, según sus requisitos, debe ser WPF / WCF (EF). Una aplicación basada en web será mucho más trabajo, más complejidad y no será tan agradable.
Hace aproximadamente 12 meses tuve la suerte de recibir una mano libre para elegir la tecnología para una nueva aplicación. Pasé casi un mes evaluando todas las opciones y llegué a la conclusion que tenía que ser C #, WPF, Entity Framework. Después de escribir la aplicación, puedo confirmar que fue la elección correcta ...
1 . Todavía será más fácil incluso si sus programadores tienen que aprender WPF primero. WPF está mucho mejor pensado, genial y encantador. Muy agradable. Simplemente funciona bien.
Hola
Creo que The question at issue is Windows-application or Web application
(WPF para win-app VS asp para la aplicación web), ¿cuál es mejor para usted y su proyecto? . En este caso, su plataforma es una red y su programa debe funcionar en la red. entonces, para este uso, la aplicación web es mejor, pero existen muchos puntos que pueden dificultar las decisiones. La plataforma de red tiene un gran desafío. (Según mi experiencia personal)
Trabajar con la aplicación web de asp.net es casi imposible. debe tratar de manejar muchas cosas para la aplicación web (tiempo de solicitud, gestión de sesión, incluso una interfaz de usuario deficiente en comparación con WPF, consulta de j, etc.). Recuerde que esto no es tan fácil como un simple sitio web.
Pero win-app es bueno para la red con esta condición: "red local" (mpls es casi la misma). El desarrollo absoluto de win-app es más fácil que la aplicación web ("Al menos un número de usuarios expertos en el desarrollo de programas en red"). para este caso, WPF tiene muchas cosas buenas (UI, comando, etc.) que también tiene muchos puntos desafiantes (como el multi-threading y la falta de un desarrollador experto en este campo). I''m rather with wpf than asp but decisions is yours
Y la tiza señala lo bueno de Silverlight, pero si quieres usar esto debes mirar el marco de prismas: http://compositewpf.codeplex.com/
Recientemente desarrollé un proyecto por separado con asp y silverlight (marco de prisma). El desarrollo de la versión silver-light es demasiado duro y lleva más tiempo que la versión asp.net, but at the end SL-ver have great look nothing else!
Burns señaló buenos problemas sobre wpf. también considere la publicación de Artemiy . sus condiciones ambientales son las mismas para ambos. WPF / ASP puede funcionar con escáner y softphone cuz the base of both is on C# and .net library
Finalmente, independientemente de sus decisiones, debe contratar al desarrollador avanzado, al menos, desarrollar una aplicación de negocios para la plataforma de red.