El Generador és una aplicació Winforms (amb els seus pros i contres), però no fa servir BBDDs per guardar la seva informació. Fa servir fitxers XML. En projectes grans que hi ha diferents entorns Desenvolupament - Test - Producció el que faig és mantenir un fitxer per cada entorn. Quan la versió del software canvia d'entorn el que faig és renombrar el fitxer a l'entorn que toca i actualitzar la cadena de connexió. El propi generador de codi té el botó de "verificar esquema" que informa dels canvis necessaris per que la nova versió sigui compatible amb la BBDD, és molt útil per detectar els camps que s'han afegit o modificat a les taules en un evolutiu. D'aquesta forma es garanteix que les stored procedures funcionin bé.
Al no tenir BBDD el generador el que fa és carregar el fitxers XML a objectes, aquests objectes es posen com a DataSource de controls BindingSource. Els controls BindingSource al seu temps permeten lligar-se als controls del formulari i mostrar les dades fent servir la propietat DataBinding del control.
La classe principal que guarda tota la informació del projecte és la clsGestorTaules.
publicclass clsGestorTaules
{
/// <summary>/// Taules que es gestionen amb el generador/// </summary>publicList<clsTaula> Taules { get; set; }
/// <summary>/// Fitxer del que s'ha fet Load, es fa servir en el save/// </summary>publicstring FitxerCarregat { get; set; }
/// <summary>/// Carpeta del projecte/// </summary>publicstring ProjectFolder { get; set; }
/// <summary>/// Subcarpeta dins del projecte on es guarden/// les clases de dades (on està la clsDades)/// </summary>publicstring DataFolder { get; set; }
/// <summary>/// En el cas que el projecte tingui formularis en/// HTML, carpeta on es guarden/// </summary>publicstring HTMLFolder { get; set; }
/// <summary>/// Carpeta on es guarden els Javascripts/// </summary>publicstring JSFolder { get; set; }
/// <summary>/// Ruta del fitxer master/// </summary>publicstring MasterFile { get; set; }
/// <summary>/// Si no es generen els scripts contra BBDD, fitxer/// on es guarden els scripts./// </summary>publicstring ScriptFile { get; set; }
/// <summary>/// Carpeta on estan els fitxers XML del generador/// </summary>publicstring CarpetaFitxers { get; set; }
/// <summary>/// NameSpace de l'aplicació que es genera/// </summary>publicstring NameSpace { get; set; }
/// <summary>/// Cadena de connexió a BBDD/// </summary>publicstring ConnString { get; set; }
public clsGestorTaules()
{
Taules = newList<clsTaula>();
}
[.. Funcions de load/save..]
}
Aquestes propietats es corresponen als controls de la capçalera del Generador.
El Namespace és el que fa servir l'aplicació que s'està desenvolupant. El valor es fa servir quan es generen les classes derivades, també quan es generen pantalles.
Els radiobuttons destí indica si el SQL que genera el programa va directament a la BBDD o bé a un fitxer d'script. Això és útil quan no es té accés a l'entorn on s'ha de desplegar l'aplicació (per exemple producció) i s'han d'enviar els fitxers per que algú altra els executi.
Carpeta del projecte és la carpeta on està l'aplicació que s'està desenvolupant. Ha de tenir les carpetes de "dades", js i HTML. La carpeta dades és on està la clsDades i on es deixen els fitxers de les classes derivades. A la carpeta JS es deixen els javascripts i en la HTML les pantalles. El valor de MasterFile es fa servir per projectes web que facin servir una master page. És útil ja que permet posar tots els scripts de l'aplicació junts i comuns per tota l'aplicació, es fa servir quan es generen pantalles.
El desplegable de taules inicialment està buit, s'omple amb el botó de "Carregar taules". Amb aquest botó es carreguen les taules de la BBDD, és el pas previ a generar una taula. Generar una taula vol dir crear un objecte taula, i afegir-lo a la llista de taules del gestor. A aquest objecte taula se li afegeix tota la informació relativa a camps (tipus, longituds,...) i indexos. Un cop està generada la taula es pot començar a treballar amb els camps, però això ho veurem en un altra post.
Així mateix el botó "Generar totes les Storeds" serveix tal com indica el seu nom per actualitzar les storeds de totes les taules, es generen tots els GET, INS, UPD, ... de totes les taules.
#02/04/2014 14:30 Programació C# Autor: Alex Canalda