2010-01-15 9 views
5

Tengo un sitio de pasatiempo de cara al público que recibe alrededor de 3000 visitantes únicos por día, escrito en ASP clásico que necesita una reforma y un rediseño. Me he dado cuenta de que una actualización a ASP.net es la mejor manera de implementar las características que son demasiado difíciles en ASP para el aficionado (consumo de feeds RSS, autenticación y perfiles de usuario) pero que estoy ansioso por obtener atrapado en una vez que supero el rediseño/actualización.Asesoramiento sobre el uso de ASP.net WebForms o MVC

Pero me he quedado paralizado por la incertidumbre sobre qué camino tomar: Web Forms o MVC, además del hecho de que siempre parece haber una nueva versión a punto de lanzar que parece que valdría la pena esperar para mejorar la curva de aprendizaje Así que me paso horas leyendo sobre WebForms y luego leo algo que me dice que sería mejor que piense en MVC, luego leo sobre MVC y me pregunto si realmente se adapta a lo que estoy tratando de hacer.

Ninguno de los tutoriales y sitios iniciales realmente hablan sobre lo que funciona bien para los sitios que son sitios tradicionales de información estática (no catálogos o controlados por el contenido del usuario).

Mi sitio contiene alrededor del 75% de páginas de información estática que rara vez cambian. Sin embargo, el scripting ASP es esencial en la interfaz de usuario en todas esas páginas: selecciona dinámicamente o aleatoriamente elementos de diseño (como una foto de encabezado) o proporciona un cuadro de barra lateral particular en función del día del año o al azar. El tipo de scripting que tengo es algo así como un script para seleccionar y seleccionar aleatoriamente una de las 30 imágenes de cabecera de la página, una secuencia de comandos para mostrar texto y enlaces según el día del año en que se encuentre, una secuencia de comandos que permite a mí para declarar una palabra clave de búsqueda particular como relevante para el contenido de una página en particular y tener esa precarga como el texto en el cuadro de entrada de búsqueda cuando se carga la página.

Para la mayor parte del resto de las páginas, se trata de mostrar datos. Algunos de ellos son pequeños conjuntos de registros (información de tipo almanaque sobre lo que es significativo sobre este día en particular del año) y lo guardo y lo saco de una variable de matriz en la página misma. Otros extraen información de una base de datos de Access que rara vez cambia y nunca me he molestado en implementar la funcionalidad CUD en vivo en el sitio (y los roles necesarios y la autenticación para asegurarla), pero simplemente actualizo la base de datos sin conexión y la envío para enviar los cambios en vivo .

Con ASP.net, estaría bien mudarme a SQL Server y crear páginas de administración en vivo. No necesito quedarme con Access.

Pero, estoy más acostumbrado a escribir código HTML y CSS sin formato y estoy encontrando WebForms (especialmente Viewstate y eventos/devoluciones) un desafío para entenderme conceptualmente. Aunque parece ajustarse más a la página estática en un sistema de archivos con algún código del lado del servidor al que estoy acostumbrado.

Por otro lado, MVC parece ser muy adecuado para el diseño amorosamente codificado a mano, pero donde todo se extrae de una base de datos.

¿Qué recomendarías? ¿Debo incluir todas las páginas estáticas en una base de datos y publicarlas en una vista de "artículo" en MVC?

No soy un desarrollador profesional, por lo que no se trata de lo que se verá mejor en mi currículum. Solo busco lo que (a) tendrá la menor curva de aprendizaje para alguien que proviene de las expresiones VBScript en línea en ASP clásico y (b) lo que mejor se adapta a lo que hace mi sitio y (c) me permite tener cierto control sobre la marca arriba y CSS.

Respuesta

7

Definitivamente vaya a MVC, especialmente si se siente más cómodo como un tipo de HTML/CSS.Los postbacks no ofrecen ninguna ventaja para un sitio que es en gran medida estático, y le tomará meses darse una vuelta por el ciclo de vida de la página (todavía tengo que conocer a un desarrollador que fue un maestro del ciclo de vida después de 6 meses de codificación).)

La conversión de un sitio ASP clásico a MVC básicamente implicará mover las etiquetas HTML y ASP a Vistas y replicar las URL existentes utilizando los mecanismos de enrutamiento. Necesitarás actualizar tus scripts para usar algunas funcionalidades más modernas, pero eso debería ser bastante sencillo, me imagino.

No estoy de acuerdo con la idea de que en MVC todo se extrae de la base de datos, eso es un poco irrelevante para la arquitectura. He codificado sitios 100% estáticos en frameworks MVC y me encantó :)

Mi regla de oro tiende a esto: "MVC para sitios web, WebForms para aplicaciones web empresariales, tal vez".

4

MVC es muy adecuado para lo que estás haciendo.

Está perfectamente bien tener vistas que son estáticas, si es necesario. Simplemente eche un vistazo a lo que genera la plantilla de MVC File-> New Project, por ejemplo.

Teniendo en cuenta que ya está acostumbrado a escribir HTML/CSS y ambos marcos presentarán una curva de aprendizaje, definitivamente recomendaría MVC. Creo que encontrará MVC se ajusta a los requisitos A y C mucho mejor que WebForms también (y ambos satisfacen B).

0

Utilice lo que es más productivo, si está familiarizado con los formularios web y, como el modelo basado en eventos, siempre puede consultar MVP (Model-View-Presenter).

ASP.NET MVC es realmente genial y para mí, aumenta la productividad.

2

Teniendo en cuenta su experiencia, le sugiero que utilice ASP.NET MVC. Dado que está familiarizado con HTML & CSS, tendrá que acostumbrarse al patrón MVC, que es menos de una semana de trabajo. También MVC es mejor y más rápido para solo mostrar datos y admite el almacenamiento en caché de resultados para que pueda almacenar en caché las páginas estáticas y lograr una velocidad asombrosa. Además, no es un problema utilizar una confusión entre los dos: aún puede tener páginas de WebForms y usar los controles donde los necesite.

0

Antes que nada, realmente debe asegurarse de que una reescritura vale la pena el esfuerzo. En mi experiencia, las reescrituras requieren mucho más trabajo de lo esperado y tienen un tiempo de amortización largo. Eso no significa que no se deben hacer, significa que tiene que haber realmente buenas razones para comenzar uno. Las características que menciona pueden implementarse fácilmente en ASP clásico en solo una fracción del tiempo. Una aplicación heredada está llena de batallas por ajustes, correcciones de errores y funciones ocultas. Una reescritura generalmente significa perder esos años de experiencia. Todo depende de la relación entre las características actuales y las nuevas características.

En segundo lugar, si va a volver a escribir, es posible que también desee consultar tecnologías además de asp.net. El sitio que describes parece estar muy orientado al contenido, que podría ajustarse mejor a django que a asp.net mvc. Buena suerte con tu sitio.

0

También le recomendaría usar ASP.NET MVC ya que está muy familiarizado con HTML/CSS. Además, con las características como enrutamiento, puede organizar la estructura del sitio web de una manera mucho mejor. Además, su sitio web se vuelve mucho más predictivo para los visitantes debido a las URL.

Ejemplo:

www.domain.com/hobbies/photography 
2

Desde mi experiencia de pasar de ASP a ASP.NET y ASP.NET MVC, es más fácil pasar de ASP a ASP.NET MVC. Sin embargo, la curva de aprendizaje no es tan fácil Lea y siga http://nerddinnerbook.s3.amazonaws.com/Intro.htm y, después de haber leído, ver qué hay de nuevo en la versión 2, por ejemplo:

weblogs.asp.net/scottgu/archive/2010 /01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx

Se convertirá en un RAD para desarrolladores experimentados.

Cuestiones relacionadas