una tabla net mvc mostrar modelo formulario ejemplos datos crear conexion con asp aplicacion database delphi model-view-controller tdataset

database - tabla - mvc conexion base datos



AplicaciĆ³n de base de datos usando el paradigma MVC (2)

En la aplicación de base de datos clásica Delphi, tenemos un formulario, un conjunto de controles visuales con información conectada a TDataSets a través de TDataSources. Si uno quiere diseñar una aplicación de base de datos usando el modelo MVC, ¿dónde colocar los componentes de TDataSet? ¿Deberían mantenerse en forma y, por lo tanto, formar parte de View? ¿O deberían estar encapsulados dentro de algún objeto Modelo? Si este último, ¿cómo podrían estar ligados a los componentes visuales?


Podrías ver el proyecto Delphi a través de MVC ojos como este:

TDataModule -> Model TYourForm.pas -> Controller TYourForm.dfm -> View

Si lo acepta, entonces debe poner DataSets en Datamodule.

En el proyecto en el que estoy trabajando, también puse TClientDataSets en formularios y clono datos sobre la creación. De esa manera, tengo datos aislados en TForm, con lógica en datamodule.

Lástima que no hay ActiveRecord como marco para Delphi.


He creado un marco similar a MVC para mi cliente actual, para usted sería algo como esto:

  • TDatamodule = Modelo (para datos, por lo que TDataset cosas)
  • TForm = Ver (contiene fuentes de datos, conectado a TDatasets del modelo)
  • Controller.pas = Controlador (lógica de ejecución / negocio)

Intente mantener su formulario lo más limpio posible: solo puede contener elementos para la GUI. Implementar una lógica especial (reglas de negocio, actualizaciones de datos, etc.) en el controlador. Tenga en cuenta que su vista debe ser reemplazada fácilmente por otra vista (como página web).

En mi marco MVC-like, la vista llama a métodos (como búsqueda, actualización, etc.) con parámetros del controlador, el controlador sabe qué y cómo buscar, etc. y rellena / actualiza el modelo. La vista está conectada con el modelo (propiedad del controlador).
No es exactamente MVC, pero de esta manera la GUI está separada de todo tipo de lógica y aún es fácil de depurar y mantener (se puede usar inyección de dependencia / acoplamiento flexible con el controlador, etc. pero esto lo hace más difícil, solo se usa cuando necesario)