viernes, 31 de octubre de 2014

Estructuras ORM en .Net Entity Frameworks

Entity Framework. EF (como conoceremos de ahora en adelante a Entity Framework) es un 
ORM para la tecnología .NET. Una de las facilidades que nos da este ORM es la resolución del denominado desajuste de impedancia (o impedance mismatch en inglés). El desajuste de impedancia hace mención a las diferencias existentes entre losmodelos relacionales (base de datos) y los modelos conceptuales implementados en lenguajes de programación orientados a objetos.

Por ejemplo, nosotros modelaremos la Base de datos de una forma distinta a como queramos modelar nuestras clases en el código. Imaginemos que tenemos una tabla con coches y dentro de coches tenemos una variable modelo que dependerá de otra entidad modelos que será otra tabla, pues bien, en el modelo de clases nosotros podemos solo querer una clase de coches y manejar los modelos dentro de la clase coches y no como una clase independiente. Esto es lo que se llama el desajuste de impedancia.


Componentes de EF

 

 

Proveedores de EF

El proveedor facilita la construcción de aplicaciones multi-base de datos. Es quien traduce las sentencias al lenguaje nativo del servidor de BD.

EDM
EDM (Entity Data Model) es la definición del mapeo que creamos entre la base de datos y nuestro modelo conceptual o de entidades.
Para construir y trabajar con nuestro EDM tenemos disponible en VS el diseñador  de modelos (Entity Data Model Designer).
Un modelo se guarda en un fichero con extensión edmx, que a través del lenguaje XML declara 3 secciones (que aunque puede estar en ficheros distintos, la norma es que estén en un solo fichero).
  • SSDL (Storage Schema Definition Language)
    • Describe la base de datos (tablas, vistas, columnas, relaciones, procedimientos almacenados, etc.)
  • CSDL (Conceptual Schema Definition Language)
    • Describe las entidades del modelo y la navegación entre las mismas.
  • MSL (Mapping Schema Language)
    • Define como se relaciona la sección SSDL con la sección CSDL.
    • Esta sección también es conocida como C-S.

Entity Client
Entity Client es un nuevo proveedor de ADO.NET (similar a SqlClient u OracleClient) pero que en vez de trabajar con la base de datos específica (como haría cualquier otro proveedor de ADO.NET, por ejemplo SqlClient con SQL Server, OracleClient con Oracle, etc.), trabaja sobre el modelo de entidades. De este modo, este proveedor se aprovecha del agnosticismo de EF y con una sola sintaxis podemos escribir consultas que no dependen del dialecto de la base de datos subyacente porque ataca directamente al modelo.
Cabe mencionar que serán después los distintos proveedores de EF quienes traduzcan nuestra consulta en Entity Client al dialecto de la base de datos específica.
Entity Client utiliza un lenguaje específico para consultar el modelo de entidades, que se llama Entity SQL o eSQL. eSQL pretende ser un dialecto parecido al T-SQL de toda la vida, pero mejorando ciertos aspectos relacionados con el modelo, como la navegabilidad, los tipos, etc.
La verdad es que no es muy utilizado.

Object Services
Ya sea utilizando eSQL o LINQ to Entities, está claro que el proveedor de EF de turno traducirá nuestra consulta al lenguaje específico de la base de datos y devolverá los resultados en formato tabular, el formato de toda la vida, esto es filas-columnas. Para pasar este formato a nuestros objetos el proceso se conoce como materialización. Es decir, la materialización es la transformación de los resultados obtenidos a través del proveedor de EF en objetos de las distintas clases que existen en nuestro modelo. Esta materialización es automática.

LINQ to Entities o L2E
Es el proveedor de LINQ para EF.
L2E está construido sobre Object Services, por lo que funcionará perfectamente la materialización.
Con todo lo expuesto aquí te puede servir para poner en orden ciertos conceptos básicos sobre EF y sobre todo, sentir la necesidad de integrar un ORM en tus proyectos.
Si quieres un ejemplo gráfico de como empezar esta tecnología puedes ir a
http://programacion.net/articulo/entity_framework_713

o a http://www.entityframeworktutorial.net/EntityFramework5/entity-framework5-introduction.aspx

miércoles, 29 de octubre de 2014

Diferencia entre los tipos char de SQL Server

Cuando creamos una columna en una tabla y queremos que sea de tipo carater, SQL server nos ofrece varios tipos entre los que elegir, char, nchar, varchar y nvarchar. Veamos sus diferencias:
 

Char y NChar

Cuando se configura un campo de tipo Char o NChar indicamos campos de tamaño fijo. Es Decir, si configuramos una tabla de la siguiente forma

Campo1 Char(10),
Campo2 NChar(10)
 
 
La diferencia entre Char y NChar es el soporte a carácteres Unicode o caracteres especiales (los carácteres Unicode ocupan más de 1 byte). Si vamos a usar caracteres propios de nuestro idioma hay que usar NChar (acentos, la ñ, etc..). La diferencia fundamentar será la cantidad de espacio ocupda, mientras que el Campo1 siempre ocupará 10 bytes el Campo2  será de 20 Bytes.

Varchar y Nvarchar

Los campos de tipo Varchar o NVarchar permiten almacenamiento variable. Es una cadena de caracteres de texto que puede ser tan grande como el tamaño de página para la tabla de la base de datos. Para ello usamos VarChar(MAX) (Ojo  pues el tamaño de una página de tabla es 8.196 bytes, y no hay una fila de una tabla puede ser tener de 8.060 caracteres. Esto a su vez limita el tamaño máximo de un VARCHAR a 8000 caracateres)



 


La "N" en NVARCHAR significa uNicode y funciona como en el apartado anterior.


CampoVariable1 Varchar(10),
CampoVariable2 NVarchar(10)

 La diferencia fundamental entre char y varchar es que el tipo de datos char es que si en una columna char NOT NULL se inserta un valor más corto que la longitud de la columna, el valor se rellena a la derecha con espacios en blanco hasta completar el tamaño de la columna, mientras que en varchar no se rellenan con blancos mejorando el almacenamiento en la BD.
 
Por ejemplo, si una columna se define como char(10) y el dato que se va a almacenar es "música", SQL Server almacena este dato como "música____" donde "_" indica un espacio en blanco.
 
Esto es lo general pero depende de ANSI_PADDING.
  • Si ANSI_PADDING es ON al crear una columna char NULL, se comporta como una columna char NOT NULL: los valores se rellenan a la derecha hasta completar el tamaño de la columna.
  • Si ANSI_PADDING es OFF cuando se crea la columna char NULL, se comporta igual que una columna varchar con ANSI_PADDING establecido en OFF: los espacios en blanco a la derecha se truncan



 


 

lunes, 27 de octubre de 2014

Enlazar Visual Studio 2012 con unproyecto existente en subversion

Visual Studio 2012 ya viene preparado para administrar el código en un repositorio de control de versiones como es subversion. Para ello lo único que tiene que tiene que hacer es usar la opción siguiente:


Después solo tienes que poner la dirección en la que resida el repositorio de subversión y la carpeta en la que esté alojado el proyecto y lo sigiente es pulsar continuar, continuar





domingo, 26 de octubre de 2014

Funcion Excel para sacar una subcadena de una cadena mayor de caracteres

La función substring en Excel se llama función EXTRAER. Si por ejemplo queremos sacar los primeros cinco caracteres de una cadena mayor, por ejemplo en la cadena "PERRERA" lo haríamos así:

Imaginemos que la cadena esta en la celda primera de la fila primera

=EXTRAER("A1", 5)   daría PERRE

Si no existe esta función las funciones substring en Excel son:

IZQUIERDA(A,B) sacar B posiciones de la cadena A empezando desde la izquierda de la cadena
DERECHA(A,B) sacar B posiciones de la cadena A empezando desde la derecha de la cadena
MID(A,B,C) sacar de la cadena A, la cadena comprendida entre las posiciones B a C

viernes, 24 de octubre de 2014

Como hacer una factura electrónica (IV)

En este post vamos a ver como podemos hacer una factura electrónica. Existe una página web que publicada por el ministerio que nos permite hacer online una factura web en formato facturae. Os dejo el enlace:

http://www.hazteunafacturae.com

Hay una apliacación de escritorio más avanzada ofrecida por el ministerio de indusatria que puede considerarse una pequeña plataforma de facturación electrónica y que puede servir a una pyme para tal efecto. os la podéis descargar del siguiente link:

http://www.facturae.gob.es/formato/Paginas/descarga-aplicacion-escritorio.aspx




En la primera dirección para hacer una factura electrónico tan solo tendrás que rellenar los datos requeridos:


Después de haber rellenado los campos pulsamos a generar factura y firmar. Hay que recordar que para firmar la factura deberemos poseer un certificado electrónico, ya bien sea sw (como por ejemplo uno expedido por la FNMT) o hw (alguna tarjeta, llave..). Estos últimos se llaman de dispositivo seguro:



Realizado esto ya podrás descargarte tu factura, crearte un pdf con ella..


miércoles, 22 de octubre de 2014

Convertir tipos de datos en sql. La funcion cast


Cuando queramos convertir un tipo de dato en otro al realizar una consulta en sql lo que debemos usar es la función cast. Esta función tiene la siguiente sintaxis:

CAST ( expression AS data_type [ ( length ) ] )
Algunos ejemplos los tenéis a continuación:

SELECT CAST(10.6496 AS int) FROM TABLE;  el resultado de la conversión sería 10

SELECT 'El precio es  ' + CAST(precio AS varchar(12)) AS Precio FROM Productos; el resultado sería el precio en formato caracter (varchar de 12)  por ejemplo  "el precio es 200'
SELECT CAST('<Name><FName>Carol</FName><LName>Rodriguez</LName></Name>'  AS XML) FROM.. transformaria la cadena a tipo XML
SELECT  CAST('2006-04-25T15:50:59.997' AS datetime) FROM.. convierte una cadena a fecha

martes, 21 de octubre de 2014

La nueva plataforma @clave de identificación de identidades de la Administración

El Consejo de Ministros ha aprobado un Acuerdo para la creación de Cl@ve, nueva plataforma común del sector público administrativo estatal para la identificación, autenticación y firma electrónica. Con ello se sustituye el actual sistema de acceso electrónico en la red basada en la obtención de un certificado de firma electrónica por un sistema de claves concertadas más ágil y eficiente de fácil obtención y utilización.
Esta medida se enmarca dentro de las propuestas del informe de la Comisión para la Reforma de las Administraciones Públicas (CORA) en el ámbito de los medios informáticos, destinadas a la racionalización de las actuales estructuras organizativas en el ámbito de las Tecnologías de la Información y de las Comunicaciones (TIC) del Sector Público Administrativo Estatal.
 
 
Este nuevo sistema vendrá a resolver las limitación de los sistemas actuales (@firma entre ellos), integrando todos los sistemas de claves concertadas  (incluido el famoso PINN24 de la AEAT) que ya existen en la administración pudiendo abrir estos sistemas al resto de administraciones públicas para una extensión a la mayoría de los ciudadanos. A nivel internacional también será el buque insignia en el proyecto Stork.
 
 
 
El órgano responsable del sistema Cl@ve será la Dirección de Tecnologías de la Información y de las Comunicaciones de la Administración General del Estado. Además, participarán también en la construcción e implantación del sistema, siendo garantes de su funcionamiento, la Secretaría de Estado de Administraciones Públicas, la Agencia Estatal de Administración Tributaria, la Gerencia de Informática de la Seguridad Social y demás entidades Gestoras y Servicios Comunes de la Seguridad Social, la Dirección General de la Policía y la Fábrica Nacional de Moneda y Timbre - Real Casa de la Moneda (FNMT‐RCM).
 
Tipos de identificación
 
Habrá dos tipos de identificación en esta plataforma común del sector público administrativo estatal:
a)Cl@ve ocasional: sistema de contraseña de validez muy limitada en el tiempo, orientado a usuarios que acceden esporádicamente a los servicios.
b)Cl@ve permanente: sistema de contraseña de validez duradera en el tiempo pero no ilimitada, orientado a usuarios habituales.
El Sector Público Administrativo Estatal deberá habilitar el sistema Cl@ve en todos los servicios y trámites electrónicos dirigidos a los ciudadanos antes del 1 de octubre de 2015.
 

lunes, 20 de octubre de 2014

Como hacer una factura electrónica (III)










Antes de pasar a ver como podemos hacer una factura electrónica tenemos que hacernos la siguiente pregunta, ¿Qué es la factura electrónica?

Pues una factura electrónica es simplemente un fichero XML que sigue una XMLSchema concreto y que martca su formato. Uno de los formatos más conocidos y el que se usa en las administraciones es Facturae que deriva de las especificaciones de UBL. Abajo tenéis un ejemplo de factura electrónica (un fragmento del XML) con su visualización en pdf











Las facturas electrónicas deben estar firmadas con un certificado reconocido, como ya hemos expuesto en posts anteriores, para que sea válida para las administraciones.

 
En el próximo capitulo explicaremos como hacer una facturae



sábado, 18 de octubre de 2014

Pestaña programador en Excel. Programar Macros

La pestaña "programador" en Excel no sale por defecto cuando realizas tu primer instalación de office 2010. Si quieres hacer macros sobre excel o bien programar alguna rutina en vbasic debes sacar esta pestaña para poder hacerlo.

Aquí abajo te muestro la pestaña de la que estoy hablando y las opciones que tiene



Para sacarla tienes que ir a la opción archivo y allí en la opción "opciones" en "personalizar cinta de opciones" tienes todas las pestañas y opciones que saldran en la Ribbon de excel



y allí seleccionas la opción programador y todas las opciones que consideres





jueves, 16 de octubre de 2014

Programación en Android (III)

Como vimos en el anterior post las siguientes herramientas del IDE son importantes para Android

SDK Manager provee un interfaz para descargar todas y cada una de las versiones de la SDK de Android que se han ido liberando, de forma que permite a los desarrolladores poder crear aplicaciones para cualquier versión de Android, con compatibilidad futura
Lo primero que tendremos que hacer es bajarnos algunas versiones oficiales de android para programar con ellas. Es aconsejable bajarse todas desde la 1.5 hasta la actual
nota: "el tamaño de las descargas de todas las APIS de Android supone más de 1GB por lo que el tiempo de descarga es elevado. Las descargas interrumpidas se pueden reanudar.





Abajo mostramos una captura del sdk manager
AVD Manager permitirá la creación de distintos emuladores Android, o dispositivos virtuales (Android Virtual Device) que podrán contener instalada cualquiera de las versiones del sistema operativo Android.
puedes acceder al AVD Manager desde el SDK Manager (menú “Tools Manage AVDs” ) para configurar diversos dispositivos virtuales:


Ahora crearemos nuestro primer dispositivo virtual que nos servirá para emular lo que vayamos programando, en el ejemplo crearemos un dispositivo virtual con Android 1.6 (Donut), con resolución de pantalla por defecto (WVGA800, que equivale a una pantalla de 480x800 píxeles):







Al pulsar Startaparecerán las opciones de arranque del AVD. finalmente, al pulsar Launch, el AVD arrancará. El arranque requiere, inicialmente, la instalación del sistema operativo Android sobre el AVD recién creado, por lo que puede llegar a tardar varios minutos.



martes, 14 de octubre de 2014

Como hacer una factura electrónica (II)

Antes de pasar a ver como hacemos y que es una factura electrónica tenemos que seguir viendo puntos de la ley y como afecta esta a las pymes y empresas que quieran contratar con la administración. En el post anterior vimos algunos puntos, como por ejemplo la obligación de facturar de forma electrónica para aquellos proveedores que quieran contratar con la administración, sigamos profundizando un poco más:


  • En el post anterior estuvimos hablando sobre el punto general de facturas del estado como un concentrador en el que presentar las facturas electrónicas, pues bien, una vez presentada la factura, el proveedor podrá consultar en ese Punto General de Facturas el estado de tramitación de sus facturas. En principio, solo se podrá consultar el estado de tramitación de las facturas electrónicas no el de las de soporte papel.
  • Se notificarán al proveedor los cambios en el estado de tramitación de sus facturas que, como podrá ser: registrada (la factura se ha registrado), propuesta de pago (se ha dado conformidad a la entrega del bien o a la prestación del servicio según lo contratado), pagada, propuesta de anulación (los proveedores pueden pedir la anulación de una factura), anulada (se acepta la propuesta de anulación del proveedor) o rechazada, en este último caso, también se deberán notificar las causas del rechazo.
  • Cuando el proveedor envíe una factura al Punto general de entrada de facturas, éste comprobará que la factura tiene el formato exigido y que está firmada con un certificado reconocido válido y vigente. Hechas estas comprobaciones (automáticas) se enviará al proveedor un acuse de reciba acreditativo de la fecha y la hora de la presentación de la factura.
  • Posteriormente, la Administración pública a la que se ha enviado la factura, comprobará si se ha efectuado el servicio o entregado el bien y si todo corresponde con lo contratado. Si todo es correcto, el proveedor recibirá una confirmación de la factura. 
  • La conservación de los comprobantes es esencial para preservar los derechos como proveedor de la Administración. El proveedor debe asegurarse de su conservación como mínimo, hasta que se produzca el pago. 




Veamos ahora como funciona este portal de recepción de facturas electrónicas de la administración y como se subiría una factura electrónica:

La dirección web es la siguiente: https://face.gob.es/es/

En la página se presentan varias opciones:

  • Enviar una factura
  • Consultar una factura 
  • Descargar Aplicación para generar facturas
  • Consultar unidades y oficinas contables



Recordad que para remitir una factura esta debe estar firmada con un certficado electrónico reconocido! (por ejemplo los que tenemos en el dni electrónico o el que nos hayamos sacado de la fabrica de moneda y timbre)

En el siguiente post os explicaré que es realmente una factura electrónica

Hasta el siguiente post!!


lunes, 13 de octubre de 2014

Mejorar el rendimiento de arranque del pc y del rendimiento en general

Cuando llevamos un tiempo usando nuestro pc y vamos instalando aplicaciones, poco a poco vamos viendo que el rendimiento del pc va siendo cada vez mas lento.  Para mejorar el rendimiento de arranque, apagado y el rendimiento en general no hay nada mejor que usar msconfig de Windows

En inicio de Windows, en el cuadro de búsqueda teclea "ejecutar". Te saldrá la siguiente pantalla, allí pones msconfig

 
 
En la pantalla de msconfig ve a la pestaña de arranque y en opciones avanzadas cambia el número de procesadores con el que se inicia tu ordenador al máximo
 
 
 
Ahora en la pestaña de Inicio de Windows desahabilita todos los servicios que no sean imprescindibles para el uso del pc, por ejemplo, los actualizadores de Adobe, de java, barras de herramientas.. etc.
 
 




sábado, 11 de octubre de 2014

Agregar 0's a la izquerda en excel

El otro día veíamos como agregar ceros a la izquierda en una consulta SQL. Cuando se exporta a Excel o bares en Excel algún fichero de texto o csv los ceros a la izquierda suelen desaparecer pues Excel da formato a las celdas y detecta que es de tipo numérico quitando estos ceros. Ahí van 2 métodos para poner 0's a la izquierda en Excel

Agregar ceros mediante "Formato de celdas"

Seleccionamos el rango que contiene los valores y hacemos clic derecho con el ratón para seleccionar la opción Formato de celdas.  Se mostrará el siguiente cuadro de diálogo:

Cómo agregar ceros a la izquierda en Excel


Seleccionamos "Personalizada" y dentro de Tipo ponemos tantos ceros como posiciones de dígitos necesitamos en los datos. En el ejemplo he colocado 6 ceros para que todos los valores numéricos tengan seis posiciones y las faltantes sean rellenadas con ceros. Al hacer clic en el botón Aceptar obtenemos:

Rellenar con ceros a la izquierda de un número en Excel

Observa que la celda A1 despliega “000115” pero la barra de fórmulas nos indica que el valor de dicha celda sigue siendo 115. Este método afecta solamente la presentación de los datos y no su valor.

Rellenar con ceros usando la función TEXTO

La alternativa que tenemos para modificar directamente el valor de la celda usar la función TEXTO la cual nos convierte un valor numérico en texto aplicando un formato específico. Observa el resultado de utilizar esta función sobre los datos de ejemplo:

Cómo controlar los ceros a la izquierda en Excel

La función aplica el formato indicado a cada valor numérico y lo convierte en texto. Los valores de la columna B son texto porque Excel los ha alineado a la izquierda de la celda. Es así como podemos rellenar con ceros a la izquierda en Excel utilizando la función TEXTO.