Anar al contingut

Signum Framework

De L'Enciclopèdia, la wikipedia en valencià

Signum Framework és un framework ORM Open Source creat per una empresa espanyola en C# orientat al desenroll d'aplicacions sobre la tecnologia .Net de Microsoft, en un visió centrada en les entitats, de manera que és el model de senyes el que determina l'esquema de la base de senyes. Com a base de senyes només està soportat MS SQL Server.

Signum Framework es distribuïx baix llicència LGPL.

Característiques

[editar | editar còdic]

Elements de Signum Framework

[editar | editar còdic]

Signum Framework està compost pels següents ensamblados:

  • Signum.Entities - Les classes base necessàries per a generar les entitats de senyes.
  • Signum.Engine - El motor ORM en un proveïdor LINQ complet.
  • Signum.Utilities - Conjunt d'utilitats i ferramentes.
  • Signum.Services - Interfaços base del servici WCF
  • Signum.Windows - Controles base per a manipular entitats

Entitats primer

[editar | editar còdic]

La filosofia centrada en les entitats propícia que l'esquema de senyes es genere automàticament a partir dels objectes de còdic, evitant mapear els camps entre la base de senyes i les entitats a través d'archius de configuració. D'esta manera es tracta de que es detecten les possibles incidències en temps de compilació per a totes les classes (tant de senyes com de llògica).

Per un atre costat, açò mateixa impedix que Signum Framework s'adapte be a proyectes en els que existix una base de senyes anterior que es deu preservar, ya que, a diferència d'atres frameworks, la base de senyes es genera a partir del còdic i no a l'inversa.

Donada l'importància que es concedix a les entitats com a núcleu de les aplicacions, Signum Framework proveïx un chicotet grup de classes base i primitives que permeten modelar els objectes d'una manera modular i reusable, evitant la redundància i assegurant l'integritat dels objectes, tant en llògica com una volta persistits en base de senyes. Açò mateix (en tindre que heretar les entitats des d'alguna d'estes classes base) fa que Signum Framework no soport POCO (Plain Old C# Object).

Generació de l'esquema

[editar | editar còdic]

La base de senyes relacional es genera automàticament a partir de les entitats utilisant un mapeado 1 a 1 des de les entitats a les taules, de manera que cada entitat independent té la seua pròpia taula i cada camp de l'entitat la seua pròpia columna. Les entitats que són embebidas (EmbeddedEntity) no tenen una taula pròpia, sino que els seus camps es guarden com a columnes en la taula de l'entitat a la que pertanyen. S'utilisen taules relacionals per a les coleccions, lo que permet les relaciones N a N.

Per a permetre realisar modificacions sobre les senyes sense tindre que regenerar la base de senyes cada volta, es pot realisar una sincronisació entre les entitats i la base de senyes existent, en la que el motor generarà un archiu de script SQL en les modificacions necessàries per a actualisar l'esquema.

Herència d'entitats

[editar | editar còdic]

Encara que Signum Framework utilisa un sistema de "taula per classe concreta", en el que es crea una taula una per cada u dels tipos concrets, permet implementar el concepte d'herència utilisant relacions polimòrfiques, que conten en una clau externa que admet valors nuls per cada possible implementació.

Interfaç d'usuari i WCF

[editar | editar còdic]

Signum.Windows oferix controls WPF bàsics que aprofiten l'homogeneïtat de les entitats per a implementar un comportament automàtic. Estos controls simplifiquen el desenroll de les vistes de les entitats d'una aplicació.

Per a la comunicació entre els clients i el servidor s'utilisen contractes WCF que permeten la compartición de tipos. Açò facilita reutilisar les regles de validació de les entitats en el client, eliminant la redundància.

L'utilisació d'objectes Lazy permet treballar en "chafades" d'una entitat, coneixent la seua ToString i el seu identificador, pero sense recuperar l'entitat completa fins que siga necessari, minimisant aixina la càrrega de treball i la transferència de senyes, aumentant considerablement el rendiment de les aplicacions.

Signum Framework té un proveïdor LINQ complet, de manera que totes les operacions s'eixecuten en LINQ, i internament el motor les traduïx a SQL. Algunes de les característiques del proveïdor de LINQ són les següents:

  • Soporta la sentència JOIN.
  • Soporta valors booleanos en qualsevol part de la consulta.
  • Soporta GroupJoin i DefaultIfEmpty.
  • Soporta Group By en C# i VB.NET en agregats múltiples.
  • Soporta l'us de let en les consultes.
  • Maneja la construcció d'objectes en memòria dins de consultes, aixina com cridades a métodos en memòria.
  • Soporta tipos nulables i conversió implícites.
  • Oferix emulació nativa de funcions SQL.
  • Soporta operacions de tipo SelectMany.

Per algunes de les funcionalitats que soporta (en concret les funcions CROSS APPLY / OUTER APPLY), actualment les bases de senyes soportades per Signum Framework es llimiten a SQL Server 2005 i SQL Server 2008 (tant en les versions Express com en les versions de pagament).

La principal diferència entre el proveïdor de LINQ de Signum Framework i atres proveïdors és que no depén d'un context explícit que depén de l'esquema actual de la base de senyes, lo que permet escriure llògica de negoci reutilisable.

Història

[editar | editar còdic]
  • 2004 - Primera versió d'un motor ORM basat en els principis de reutilisació i centrat en entitats.
  • 2007 - Segona versió del motor ORM, incloent el Gestor d'Operacions i Processos.
  • 2008 - Signum Framework 1.0 Beta 1, incloent les funcionalitats de ORM, WPF i LINQ.
  • 2009 - Release de Signum Framework 1.0 en Codeplex.
  • 2010 - Signum Framework 2.0 Beta 1, en soport para .Net Framework 4 i ASP.Net MVC 2.0 (versió interna).
  • 2011 - Signum Framework 2.0 Beta 2, en soport per a ASP.Net MVC 3.0 (versió interna).
  • 2011 - Release de Signum Framework 2.0, incloent soporte para .Net Framework 4 i ASP.Net MVC 3.0


Referències

[editar | editar còdic]