(Translated by https://www.hiragana.jp/)
Signum Framework - Viquipèdia, l'enciclopèdia lliure Vés al contingut

Signum Framework

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 20:04, 21 oct 2015 amb l'última edició de Vrac (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.
Signum Framework

Tipusentorn de treball / ORM
Estat actualEn desenvolupament / amb suport
Disponible en
Equip
Creador/sSignum Software
Desenvolupador(s)Signum Software
Més informació
Lloc websignumsoftware.com… Modifica el valor a Wikidata

Signum Framework és un entorn de treball ORM de codi obert escrit en C# orientat al desenvolupament d'aplicacions sobre la tecnologia .Net de Microsoft, amb una visió centrada en les entitats, de manera que és el model de dades el qual determina l'etructura de la base de dades. Com base de dades només suporta MS SQL Server. Signum Framework es distribuïx sota llicència LGPL.

Elements de Signum Framework

Signum Framework està compost pels següents ensamblats:

  • Signum.Entities - Les classes base necessàries per a generar les entitats de dades.
  • Signum.Engine - El motor ORM amb un proveïdor LINQ complet.
  • Signum.Utilities - Conjunt d'utilitats i eines.
  • Signum.Services - Interfícies base del servei WCF.
  • Signum.Windows - Controls base per a manipular entitats.

Entitats primer

La filosofia centrada en les entitats propícia que l'estructura de dades es generi automàticament a partir dels objectes de codi, evitant mapear els camps entre la base de dades i les entitats a través d'arxius de configuració. D'aquesta manera es tracta que es detectin les possibles incidències en temps de compilació per a totes les classes (tant de dades com de lògica).

D'altra banda, això mateix impedeix que Signum Framework s'adapti bé a projectes en els quals existeix una base de dades anterior que s'ha de preservar, ja que, a diferència d'altres frameworks, la base de dades es genera a partir del codi i no al revés.

Donada la importància que es concedeix a les entitats com nucli de les aplicacions, Signum Framework proveeix un petit grup de classes base i primitives que permeten modelar els objectes d'una manera modular i reusable, evitant la redundància i assegurant la integritat dels objectes, tant en lògica com una vegada persistits en base de dades. Això mateix (a l'haver d'heretar les entitats des d'alguna d'aquestes classes base) fa que Signum Framework no suporti POCO (Plain Old C# Object).

Generació de l'esquema

La base de dades relacional es genera automàticament a partir de les entitats utilitzant un mapeig 1 a 1 des de les entitats a les taules, de manera que cada entitat independent té la seva pròpia taula i cada camp de l'entitat la seva pròpia columna. Les entitats que són embegudes (EmbeddedEntity) no tenen una taula pròpia, sinó que els seus camps es guarden com columnes en la taula de l'entitat a la qual pertanyen. S'utilitzen taules relacionales per a les col·leccions, el que permet les relacions N a N.

Per a permetre realitzar modificacions sobre les dades sense haver de regenerar la base de dades cada vegada, es pot realitzar una sincronització entre les entitats i la base de dades existent, en la qual el motor generarà un arxiu de script SQL amb les modificacions necessàries per a actualitzar l'esquema.

Herència d'entitats

Encara que Signum Framework utilitza un sistema de "taula per classe concreta", en el qual es crea una taula una per cadascun dels tipus concrets, permet implementar el concepte d'herència utilitzant relacions polimòrfiques, amb una clau externa que admet valors nuls per cada possible implementació.

Interfície d'usuari i WCF

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

Per a la comunicació entre els clients i el servidor s'utilitzen contractes WCF que permeten la compartició de tipus. Això facilita reutilitzar les regles de validació de les entitats en el client, eliminant la redundància.

La utilització d'objectes lazy permet treballar amb "petjades" d'una entitat, coneixent el seu ToString i el seu identificador, però sense recuperar l'entitat completa fins que sigui necessari, minimitzant així la càrrega de treball i la transferència de dades, augmentant considerablement el rendiment de les aplicacions.

LINQ

Signum Framework té un proveïdor LINQ complet, de manera que totes les operacions s'executen 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:

  • Suporta joins.
  • Suporta valors booleans arreu de la consulta.
  • Suporta GroupJoin i DefaultIfEmpty.
  • Suporta Group By en C# i VB.NET amb agregats múltiples.
  • Suporta l'ús de let en les consultes.
  • Maneja la construcció d'objectes en memòria dintre de consultes, així com cridades a mètodes en memòria.
  • Suporta tipus nulables i conversions implícites.
  • Oferix emulació nadiva de funcions SQL.
  • Suporta operacions de tipus SelectMany.

A causa d'algunes de les funcionalitats que suporta (en concret les funcions CROSS APPLY / OUTER APPLY), actualment les bases de dades suportades per Signum Framework es limiten 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 altres proveïdors és que no depèn d'un context explícit que depèn de l'esquema actual de la base de dades, el que permet escriure lògica de negoci reutilizable.

Història

  • 2004 - Primera versió d'un motor ORM basat en els principis de reutilización 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, amb suport per a. Net Framework 4 i ASP.Net MVC 2.0 (versió interna).
  • 2011 - Signum Framework 2.0 Beta 2, amb suport per a ASP.Net MVC 3.0 (versió interna).

Enllaços externs