none
operaciones CRUD con Self Tracking Entities RRS feed

  • Pregunta

  • Buenas tardes foristas.

    mi escenario es VS2010, C#, EF4, STE

    este es otro tema importante para mi, como notaran soy nuevo en .NET pero estoy armando mi primera app, y la quiero hacer con una buena base arquitectónica, ya configure el STE, y al parecer todo anda bien, pero no he podido cojerle la dinámica del todo, en teoría entiendo mas o menos de que se trata el tema, pero en la práctica aun ando enrredado.

    por ejemplo este es mi código para insertar un registro

    using (context = new SeminariosEntities())

    {

       try

       {

        context.MaestroTipoCalificacion.AddObject(tipoCalificacion);

        context.SaveChanges();

       }

       catch (Exception ex)

      {

        throw (ex);

      }

    }

     

    pero por lo que veo es el mismo codigo que se usa para trabajar sin el STE.

    la pregunta concreta es, que validaciones deberia hacer sobre las entidades, antes de mandar el SaveChanges() ???  veo los StartTraking y StopTracking, pero aun no digieron como, cuando y para que los usan

    muchas gracias por su valioso tiempo

     


    miércoles, 11 de mayo de 2011 22:51

Respuestas

Todas las respuestas

  • Hola Milson,

    Vas a trabajar con proyectos de tamaño medio/alto?

    En tal caso te recomendaría el uso de una arquitectura DDD a N-Capas. Un excelente ejemplo lo puedes encontrar en:

    http://microsoftnlayerapp.codeplex.com/

    En el enlace podrás encontrar amplia documentación al respecto. Incluso hay un libro disponible que es bastante clarificador.

    Otros ejemplos más sencillos puedes encontrarlos aquí:

    http://blog.keithpatton.com/2009/05/30/Entity+Framework+POCO+Repository+Using+Visual+Studio+2010+Net+40+Beta+1.aspx

    (Actualizado en: http://blog.keithpatton.com/2009/06/25/db4o+POCO+Repository+Using+Visual+Studio+2010+Net+40+Beta+1+And+ASPNet+MVC+10.aspx)

     

     

    http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx

     

    http://www.kitchaiyong.net/2009/10/repository-specification-unit-of-work.html

     

    http://www.codeinsanity.com

    Espero que te sirvan de ayuda y puedan clarificarte un poco mejor las dudas que se te plantean.

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solucion de esta pregunta te ha sido útil.
    • Marcado como respuesta milson cardona sábado, 28 de mayo de 2011 0:20
    jueves, 12 de mayo de 2011 8:45
  • Mi aplicación es de tamaño pequeño - medio.

     

    Muchas Gracias JA Reyes por las respuestas que me has dado, ya mismo comienzo a ver los enlaces y te cuento si avanzo en algo con las dudas que tengo...

    un gran abrazo

    jueves, 12 de mayo de 2011 13:18
  • ya baje el libro de http://msdn.microsoft.com/es-es/architecture/ muy interesante, tambien la aplicacion de ejemplo y la estoy analizando, aunque se me dificulta un tanto porque no uso MVC3, ahora me pusiste en un aprieto, porque no me desido si meterme de lleno a MVC3 o seguir con mis ASP conectandome con objectdatasource, porque lo primero suena interesante, pero el factor tiempo me preocupa... seguire leyendo y explorando...
    • Marcado como respuesta milson cardona sábado, 28 de mayo de 2011 0:20
    jueves, 12 de mayo de 2011 15:35
  • Hola de nuevo Milson,

    La versión actual funciona perfectamente con MVC2 y es ahora cuando se esta preparando la migración a MVC3.

    De cualquier modo, siempre te puedes bajar una versión anterior y aunque hay un ejemplo con la Capa de Presentación en MVC, también hay otros en Silverlight o WPF.

    La idea es entender bien la arquitectura. Una vez hecho esto, ya se dispone de una buenay sólida base para inciar proyectos. Después la forma en que presentes los datos es independiente del cliente que quieras utilizar, incluido ASP.NET.

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solucion de esta pregunta te ha sido útil.
    jueves, 12 de mayo de 2011 16:28
  • Hola de nuevo JA Reyes, estuve leyendo un monton sobre el MVC3, ya baje e instales las MVC tools y estoy creando una aplicacioncita de prueba, pero me asalta una duda enorme.

    como dije antes, yo trabajo con objectdatasource para conectar mis vistas a la lógica de negocio, pero a través de un patrón FACADE, que finalmente es el que provee toda la interacción con mi BUSINESS y este con la base de datos.

    segun lo que leo de MVC este me provee V (vistas) C (control) y M (modelo), en el modelo es donde yo he visto que ponen todo la logica del negocio, incluyendo las operaciones CRUD, pero a mi me parece que tira al suelo todo mi paradigma de arquitectura N-CAPAS, o bien estoy muy enrredado con tantos y tantos modelos de programación.

    la pregunta  es la siguiente, hay alguna forma en MVC para que las operaciones de base de datos se hagan a través de mi FACADE ?? es decir que en vez de poner la lógica de negocio en los VIEWMODEL, mejor haga un llamado desde estos a mis clases FACADE ???

     

    no sé si se entiende mi pregunta, y si es una autentica burrada, pero la verdad con tantos conceptos diferentes, ya no sé cuales se acoplan y cuales van por caminos diferentes.  

     

    gracias por tu pronta respuesta y sobre todo por tu paciencia  jejeje

     

    jueves, 12 de mayo de 2011 22:18
  • Hola de nuevo Milson,

    MVC es un patrón para trabajar en capa de presentación. Dependiendo de la arquitectura que utlices (cliente servidor, 3-capas, n-capas, DDD,...) tendrás que realizar las cosas de una forma o de otra.

    En el caso de utilizar N-Capas con DDD, que es el ejemplo de NLayerApp, los modelos no estarían en capa de presentacióm, sino en la capa de Dominio, y más concretamente en el assembly correspondiente a las Entidades de negocio, que es otra sub-capa dentro de la capa de Dominio. En este caso, los controladores de la capa de presentación llamarían bien a los servicios de la Capa de Aplicación o bien a un servicio WCF.

    Todo esto depende del tipo de arquitectura que se utilice, y se ubicarán y se utilizarán las clases de manera diferente en cada caso.

    No se si te queda muy claro con mi explicación, pero si lees con detenimento la guia que acompaña al proyecto NLayerApp, seguro que te quedará mucho más claro.

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solucion de esta pregunta te ha sido útil.
    viernes, 13 de mayo de 2011 8:48
  • Hola de nuevo Milson,

    Como te fueron las sugerencias?

    Pudiste enfocar mejor tu problematica?

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solucion de esta pregunta te ha sido útil.
    miércoles, 25 de mayo de 2011 8:13
  • JA Reyes, la verdad aborte la idea de trabajar con MVC por el momento, porque apenas estoy aprendiendo NET y de una vez me meti con EF4 (creo que fue una buena desición), pero esto por si solo ya me trae bastante complicado.  asi que desidi ir un paso por vez, primero EF y cuando lo tenga mas o menos dominado me meto con MVC como arquitectura para las vistas.

     

    muchas gracias por tu interes, igual marco como respuesta correcta la sugerencia del libro porque es EXCELENTE para los que estan comenzando

    sábado, 28 de mayo de 2011 0:19
  • Hola Milson,

    La versión actual funciona bajo MVC 2.0, aunque se esta preparando para incorporar algunas de las mejoras de MVC 3.0.

    En el proyecto también existe otros ejemplos en Silverloght o en WPF, y se tiene previsto ir incorporando algunos más.

    Saludos,

    JA Reyes. 


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solucion de esta pregunta te ha sido útil.
    sábado, 28 de mayo de 2011 11:12