miércoles, 20 de junio de 2012

Entity Framework Code First + Silverlight 5 + RIA Services

Despues de mucho tiempo escribo un nuevo post que espero sea de mucha utilidad para los que desean trabajar con plataformas microsoft.

Desde hace un tiempo considerable he estado investigando y desarrollando software con el enfoque “code-first” del Entity Framework que nos permite codificar nuestro modelo para posteriormente a partir de él, crear la base de datos. 
Y la integracion con RIA Services y Silverlight 5 ahora es muy sencilla, en este ejemplo se muestra como crear el enlace entre estas dos tecnologías.

Primordialmente operaciones CRUD, existen algunos pequeños detalles que por el corto tiempo al construir este pequeño tutorial se me fueron, espero ustedes lo corrijan :)

Requerimientos:
  1. Visual Studio Service Pack 1
  2. Silverlight 5 Tools para Visual Studio 2010
  3. Expression Blend 5
  4. SQL Server 2008
  5. Descargar los proyectos:
  6. Descargar codigo Antes del Video
  7. Descargar codigo despues del Video
Mira los videos en el siguiente orden:


Lo unico que deben hacer para correr el ejemplo es configurar la conexion a la base de datos (el archivi Web.config), no necesitas tener la base de datos creada ya que Entity Framework se encargará de crearla una vez que se ejecute la aplicacion.

Ejm. en el archivo web.config del proyecto Didsoft.SalesLive.UI.Web entontramos la seccion connectionString, donde MyDBContext es la clase Didsoft.SalesLive.AccesoDatos.MyDBContext.cs que contiene la definicion para mapeo de objetos hacia la BD, por defecto EF considera el nombre de esta clase como nombre de la cadena de conexion.



donde EFGENERADO es el nombre de la base de datos que no existia antes de ejecutar el proyecto, una vez que se ha ejecutado el proyecto esta base de datos debería ser creada de acuerdo a la configuracion de Didsoft.SalesLive.AccesoDatos.MyDBContext.cs

Hasta un proximo post...

jueves, 25 de agosto de 2011

Intento de Expresiones Regulares en SQL Server

Aqui les dejo una simple funcion que valida una expression de acuerdo a un patron.

Create Function dbo.VerificarExpresion(@cadena as varchar(1000), @patron as varchar(100))
returns bit as
Begin
Declare @Len as int;
Declare @PatronBusqueda as varchar(8000);
Declare @Result as Int;

Select @Len = Len(@cadena);

While @Len>0
Begin
Select @PatronBusqueda = Isnull(@PatronBusqueda,'') + @patron;
Select @Len = @Len -1;
End
Select @Result = Case When @cadena Like @PatronBusqueda Then 1 Else 0 End;
Return @Result;
End
Go


y podemos testear :
-- verifica si en cadena estan letras comprendidas entre A y Z
select dbo.VerificarExpresion('cadena','[A-Z]')

-- verifica si 12345 está comprendido entre 0 y 9
select dbo.VerificarExpresion('12345','[0-9]')

-- verifica si la en a5ed estan ocurrencias del
select dbo.VerificarExpresion('a5ed','[a5ed]') patron a5ed


Hasta pronto

miércoles, 24 de agosto de 2011

Indices en SQL Server 2008 R2

Generalmente en nuestras tablitas creamos indices para un mejor rendimiento de nuestras querys, sin embargo algo curioso que sucede en tablas que tienen mas de 1 millon de registros es que los indices podrían ser perjudiciales en el caso explicito de eliminar. Vamos al grano, esta query construye la sentencia para deshabilitar los indices de una tabla.

declare @DisableQuery varchar(max) = ''
select @DisableQuery = COALESCE(@DisableQuery +'','')
+ 'alter index ' +i.name+ ' on ' +o.name+ ' disable '+ CHAR(13)+Char(10)+'; '
From sys.indexes i
Inner Join sys.objects o On o.object_id = i.object_id
Where o.is_ms_shipped = 0
and i.index_id >= 1 and i.is_primary_key = 0
and o.name = 'NombreDeMiTabla'
select @DisableQuery
exec(@DisableQuery)



posterior a esto podemos realizar la elminacion de miles de filas de nuestra tabla de mas de 1 millon de registros, luego la dejamos intacta como anteriormente estaba, habilitamos los indices.

declare @EnableQuery varchar(max) = ''
select @EnableQuery = COALESCE(@EnableQuery +'','')
+ 'alter index ' +i.name+ ' on ' +o.name+ ' rebuild '+ CHAR(13)+Char(10)+'; '
From sys.indexes i
Inner Join sys.objects o On o.object_id = i.object_id
Where o.is_ms_shipped = 0
and i.index_id >= 1 and i.is_primary_key = 0
and o.name = 'NombreDeMiTabla'
select @EnableQuery
exec(@EnableQuery)


lunes, 13 de diciembre de 2010

Oracle Application Development Framework

Hola amigos, en un post hace mucho tiempo declaré un cariño muy especial a JAVA.
Este pot tiene que ver con dicho lenguaje, no ingresaremos a los antecedentes del lenguaje y sus tecnologías, sin embargo en la actualidad oracle ha estado apostando por las aplicaciones basados en ADF bueno a modo de introduccion ADF significa
Application Development Framework, generalmente llamado Oracle ADF, es un framework de Java para la creación de aplicaciones empresariales. Es una herramienta del tipo RAD que se basa en patrones de diseño listos para usar. Provee un enfoque visual y declarativo para el desarrollo de aplicaciones J2EE. Adf está basado en la arquitectura MVC (muy confiable). Sus orígenes se remontan probablemente hacia el año 1997. Lo cual firma una fuerte trayectoria, y eso me animó a hablarles de esto.
ADF ha incursionado en el mundo de las aplicaciones ricas en internet, y la gran ventaja es que no necesita plugins adicionales como Silverlight, Flex, etc. para desplegar sus aplicaciones, es mas las nuevas liberaciones ya están listas para trabajar bajo HTML5, y desde mi opinion personal, es lo mejor que pudo hacer Oracle, no ir contra la corriente.
Actualmente contamos con el JDeveloper 11g, un IDE muy completo, el cual nos permitirá desarrollar una aplicacion End-to-End.
Como bien mencionamos a MVC (que define 3 capas basicas Modelo - Vista - controlador), ADF define otras 4 capas en base a las 3 de MVC, las cuales son:
Business Services: Esta capa se encarga de lograr la persistencia con la base de datos y alojar la lógica de negocio que requiera la aplicación. Una de las grandes ventajas de usar está capa, es que es lo suficientemente versátil en aceptar diferentes tecnologías para su implementación. Es decir
uno puede emplear EJB, BC4J, JPA,Hibernate u otra tecnología estándar para obtener la persistencia con la Base de Datos.
Model: En la explicación de la anterior capa se resalto la capacidad que tenia la arquitectura de aceptar múltiples tecnologías para lograr la persistencia. Sin embargo esto podráa perjudicar al resto de capas, pues ellas tendrían que adaptarse a la interacción entre uno u otra tecnología. Para solucionar esta situación, ADF, brinda una capa que uniformiza las distintas tecnologías en una sola interfaz para el resto de capas, de esta manera la capa de control y de vista interaccionan siempre vía una única
interfaz despreocupándose del tipo de tecnología empleada en la parte de Business Service.
Es importante destacar que la capa de modelo en la arquitectura MVC, es implementada por las capas de Business Service y Model en la arquitectura ADF.
Controller: La capa de control en ADF, es la encargada de determinar el flujo de la aplicación y gestionar las peticiones que realiza las interfaces de usuario con la aplicacion. Para implementar está capa, ADF emplea el popular framework Struts. Si bien Struts puede participar en todas las capas de la aplicación, ADF solo la emplea para la capa de control. Adicionalmente, ADF nutre a Struts con nuevas funcionalidades que incrementan su integración con el resto de capas, haciendo más productivo
los desarrollos. En la práctica se notará que Struts, no es la única manera en que ADF gestiona la capa de control, en el caso de las aplicaciones que utilizan, páginas UIX, se emplea mucho los UIX servlets, que son controladores que surgieron en la versión 9i, y que aún para algunas tareas especificas como los uploads de archivos o lectura de contenido de tablas, son requeridos.
View: Esta capa es la encargada de generar las interfaces de usuario que utiliza la aplicación. ADF puede emplear muchas tecnologías, como JSP, UIX y ADF JClient. En los últimos tiempos Java Server Faces, se está consolidando como el estándar para el desarrollo de interfaces web, por ello ADF ha lanzado ADF faces que promete ser el nuevo estándar para el desarrollo de páginas en esta arquitectura.


Recomiendo la descarga del libro: ADF Developer Guide, realmente muy bueno, lo básico para iniciarse en ADF.
http://rapidshare.com/files/386645199/0071622543.rar
http://mediafire.com/?00zttzkzizk
http://ifile.it/dqgoa3z/0071622543.rar
http://filefactory.com/file/b1aa804/n/0071622543.rar
http://www.megaupload.com/?d=VLD81JJN
http://sendspace.com/file/zcx7ec

viernes, 26 de noviembre de 2010

Entity Framework + RIA Services + DataForm & Silverlight 4

A modo de distraerme, les dejo un post aunque sencillo muy util en esos momentos de apuro, esta vez trabajando con Entity Framework usando nuestros procedimientos almacenados, RIA services y un poco de DataForm todo esto con Silverlight 4.

Parte 1 :



Parte 2:



Parte 3 :




En un post posterior haremos uso de patrones mas comunes como ser MVVM (model view view model), sobre este mismo ejemplo.

Saludos