none
Estructura de un proyecto MVC + AngularJS no SPA RRS feed

  • Pregunta

  • Hola, soy bastante novato utilizando AngularJS y los ejemplos que he visto son la mayoría SPA, pero supongamos que quiero hacer un proyecto MVC que tenga tanto paginas de puro html en donde no necesito nada de web api o angular, y tambien mantenimientos que si serían SPA. Entonces de ahi surgen las siguientes dudas:

    1. Debería utilizar la estructura MVC de un proyecto Asp.net (Models, Views, Controllers) y aprovechar su routing o deberia utilizar la estructura de AngularJS /app/ (Controllers, Views, Services, Directives, etc)

    2. Debo utilizar un App.js aunque tenga varias vistas no SPA ? Si no es así como estructuro esto ?

    3. En caso que tenga que utilizar los controladores de MVC tendría que dejarlos solo para el routing y la lógica puro AngularJS

    4. En que casos es bueno crear SPA y en que casos no ?

    Gracias, Saludos !


    lunes, 4 de enero de 2016 20:46

Todas las respuestas

  • hola

    >>1. Debería utilizar la estructura MVC de un proyecto Asp.net (Models, Views, Controllers) y aprovechar su routing o deberia utilizar la estructura de AngularJS /app/ (Controllers, Views, Services, Directives, etc)

    puedes hacerlo mixto, si hay paginas que haran post recargando la pagina entonces usas asp.net mvc en estas

    si hay html que no realizaran post sino que usaran un controller de angular con $http en estos podrias invicar un controller de web api

    puedes crear controller de asp.net mvc para algunas view y usar webapi para otras

    >>Debo utilizar un App.js aunque tenga varias vistas no SPA ? Si no es así como estructuro esto ?

    el app.js es donde inicializas el modulo y la configuracion, eso es indistinto si vas a usar SP o no

    quizas sino usas SPA el app.js tenga menos codigo porque no va a enrutar las vistas

    >>En caso que tenga que utilizar los controladores de MVC tendría que dejarlos solo para el routing y la lógica puro AngularJS

    no entendi porque de asp.net mvc solo usarias el routing dejando la logica en los .js de angular

    deberia ser al contrario, la logica deberias ponerla del lado del servidor (si es que te refieres a la logica de negocio)

    >>En que casos es bueno crear SPA y en que casos no ?

    un caso practico podria ser si tienes que navegar varias pantallas para tomar datos que confirmas al final, una especie de wizard, ahi aplica muy bien

    tambien para navegar de la lista de entidades a la view de edicio cuando se selecciona eso podria ser view de SPA

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 4 de enero de 2016 23:49
  • Hola Leandro, muchisimas gracias por tus respuestas. Solo dos cosillas que no me quedaron muy claras:

    1. Solo debo utilizar un app.js. Entonces por ejemplo tengo Personas.html y Empresas.html, supongamos que el mantenimiento es utilizando Web Api y AngularJS, entonces serían SPA, por lo tanto les incluyo el  angularjs y después el app.js, ese app.js que tiene un ngController de personas y otro de empresas ? O sea que utilizando cualquier página siempre vas a tener que cargar la lógica de las demás aunque no la necesites ?

    >>2.En caso que tenga que utilizar los controladores de MVC tendría que dejarlos solo para el routing y la lógica puro AngularJS

    >>no entendi porque de asp.net mvc solo usarias el routing dejando la logica en los .js de angular

    >>deberia ser al contrario, la logica deberias ponerla del lado del servidor (si es que te refieres a la logica de negocio)

    Ok, Entonces una aplicación puede tener ambas cosas pero separadas, es decir los controladores MVC manejan vistas completamente libres de AngularJS y su lógica son para los Postbacks, y las páginas Web Api + AngularJS no tienen nada que ver con MVC, ni siquiera el enrutamiento. Por ejemplo si quiero pasar de una página MVC a una de Web Api + Angularjs tengo que utilizar un link normal sin razor porque no esta dentro de las vistas de MVC y viceversa.

    Gracias nuevamente!

    martes, 5 de enero de 2016 5:13