Este documento describe Enterprise Library 5.0, un conjunto de librerías open-source que facilitan el desarrollo de aplicaciones .NET implementando funcionalidad habitual mediante buenas prácticas de programación. Incluye nueve bloques de aplicación como caché, validación y seguridad, que pueden configurarse a través de ficheros de configuración. Cada bloque resuelve un problema común como el acceso a datos, logging o autorización de forma reutilizable.
Recommender engines are used by more and more e-commerce businesses to help consumers finding products they are interested in. The paper describes what recommender engines are and what role they play in e-commerce. Recommender engines use various techniques that use different knowledge sources to make recommendations. The paper explains these techniques and their strengths and weaknesses. Some of the common issues that recommender systems face are discussed and possible solutions presented. Concluding examples of recommender engines in e-commerce are described. It is shown what techniques they use and how the e-businesses utilize recommendations on
their websites.
Lens designs with extreme image quality featuresDave Shafer
A variety of lens designs is described which have some image quality feature which is extreme - like an extremely wide spectral bandwidth or extremely high resolution.
Georgia O'Keeffe was an American artist known for her paintings of flowers, landscapes, and cityscapes. She pioneered abstract painting in the early 20th century, creating non-representational works using only shapes, colors, and forms as early as 1915. Her early abstract paintings were prominently displayed by her husband Arthur Stieglitz at his 291 gallery, exposing the American public to this new style of art. O'Keeffe was influenced by Arthur Wesley Dow's principles of composition and abstraction, and she credited Arthur Dove as having the most significant impact on her development as a young artist moving her style towards abstraction.
6.iris recognition using machine learning techniqueVenkat Projects
This document describes an iris recognition project that uses a CNN model trained on the CASIA iris image dataset to recognize people. The CNN model is trained by extracting iris features from the CASIA images using Hough circle detection and achieves 100% accuracy on the training data. Graphs show the loss decreasing and accuracy increasing over epochs during training. The trained model can then be used to recognize people in new iris images by predicting the person ID. It correctly identifies test images from both outside the dataset and from within the CASIA images.
By using a diffractive surface to provide most of the focusing power, combined with aspheric lenses, a simple fast speed wide angle design is possible with excellent image quality. But a very large amount of color limits the useful spectral bandwidth to a very small amount.
Be respectful, patient and supportive
25
Test: Observe and record data
- Record audio and video if possible
- Take detailed notes on:
- Tasks completed successfully
- Errors, problems, frustrations
- Comments, feedback
- Time on task
- Paths, clicks, scrolls
- Use of accessibility features
- Satisfaction ratings
- Note body language, facial expressions
- Ask follow up questions
26
Test: Ask satisfaction questions
- Overall satisfaction with the site
- Ease of completing tasks
- Frustration level
- Likes/dislikes
- Suggestions for improvement
- Preferred features
Recommender engines are used by more and more e-commerce businesses to help consumers finding products they are interested in. The paper describes what recommender engines are and what role they play in e-commerce. Recommender engines use various techniques that use different knowledge sources to make recommendations. The paper explains these techniques and their strengths and weaknesses. Some of the common issues that recommender systems face are discussed and possible solutions presented. Concluding examples of recommender engines in e-commerce are described. It is shown what techniques they use and how the e-businesses utilize recommendations on
their websites.
Lens designs with extreme image quality featuresDave Shafer
A variety of lens designs is described which have some image quality feature which is extreme - like an extremely wide spectral bandwidth or extremely high resolution.
Georgia O'Keeffe was an American artist known for her paintings of flowers, landscapes, and cityscapes. She pioneered abstract painting in the early 20th century, creating non-representational works using only shapes, colors, and forms as early as 1915. Her early abstract paintings were prominently displayed by her husband Arthur Stieglitz at his 291 gallery, exposing the American public to this new style of art. O'Keeffe was influenced by Arthur Wesley Dow's principles of composition and abstraction, and she credited Arthur Dove as having the most significant impact on her development as a young artist moving her style towards abstraction.
6.iris recognition using machine learning techniqueVenkat Projects
This document describes an iris recognition project that uses a CNN model trained on the CASIA iris image dataset to recognize people. The CNN model is trained by extracting iris features from the CASIA images using Hough circle detection and achieves 100% accuracy on the training data. Graphs show the loss decreasing and accuracy increasing over epochs during training. The trained model can then be used to recognize people in new iris images by predicting the person ID. It correctly identifies test images from both outside the dataset and from within the CASIA images.
By using a diffractive surface to provide most of the focusing power, combined with aspheric lenses, a simple fast speed wide angle design is possible with excellent image quality. But a very large amount of color limits the useful spectral bandwidth to a very small amount.
Be respectful, patient and supportive
25
Test: Observe and record data
- Record audio and video if possible
- Take detailed notes on:
- Tasks completed successfully
- Errors, problems, frustrations
- Comments, feedback
- Time on task
- Paths, clicks, scrolls
- Use of accessibility features
- Satisfaction ratings
- Note body language, facial expressions
- Ask follow up questions
26
Test: Ask satisfaction questions
- Overall satisfaction with the site
- Ease of completing tasks
- Frustration level
- Likes/dislikes
- Suggestions for improvement
- Preferred features
Computer vision has received great attention over the last two decades.
This research field is important not only in security-related software but also in the advanced interface between people and computers, advanced control methods, and many other areas.
Este documento presenta una introducción al concepto de software y sus componentes, incluyendo aplicaciones y sistemas operativos. También describe los fundamentos del diseño de software como la modularidad, la arquitectura y la jerarquía de control. Finalmente, cubre temas como el diseño orientado a objetos, las pruebas y el mantenimiento de software.
The document discusses various design variations of Offner relays, including:
1) The basic Offner relay design with two spherical mirrors and three reflections, which is diffraction-limited at f/3.0 over a 1.1mm annular field.
2) A design using a meniscus shell between the mirrors to correct aberrations and greatly enlarge the field size to a diffraction-limited 12mm annular field at f/3.
3) A design with the meniscus lens between the mirrors rather than in contact, improving aberration correction and enlarging the field size to 10mm at f/2.0.
Este documento presenta una metodología para la elicitación de requisitos que consiste en 6 tareas: 1) obtener información sobre el dominio y sistema actual, 2) preparar y realizar sesiones de elicitación, 3) identificar objetivos del sistema, 4) identificar requisitos de información, 5) identificar requisitos funcionales, y 6) identificar requisitos no funcionales. El propósito es identificar las necesidades de los usuarios y documentarlos en un documento de requisitos del sistema.
1) The document describes a proposed design for an unobscured astronomical camera with a 22 degree field of view and f/2 speed, to be used for a new large telescope in Hawaii.
2) It explores starting with an existing 5-mirror spherical design that was used on space missions, but determines a 3-mirror freeform aspheric design may be better.
3) The document presents an example 3-mirror freeform aspheric design that meets the requirements, with all mirrors tilted and shaped as aspheres to produce an unobscured 22 degree field of view at f/2.
In Zeiten sich verändernder und instabiler werdender Beziehungen zwischen Unternehmen und den Menschen bietet die Etablierung eines Kundenbeirats Unternehmen die Chance, sich durch den direkten Dialog und ein besseres Kundenverständnis weiterzuentwickeln. In vielen Branchen betreten sie damit heute noch Neuland und können sich somit einen Vorsprung sichern. Ein funktionierender Kundenbeirat wird von der Mehrheit der Bevölkerung als sinnvoll bewertet, obwohl das Thema relativ neu und noch nicht sehr bekannt ist. Entscheidend für den Erfolg ist die durchdachte und nachhaltige Konzeption. Letztendlich aber kommt es auf die Ernsthaftigkeit, die Wertschätzung und das Vertrauen gegenüber den Beiräten sowie den sensiblen Umgang mit den Erwartungen an.
http://www.musiolmunzingersasserath.com/blog/?p=3575
Broad band catadioptric design with long working distanceDave Shafer
A broad spectral band high NA catadioptric design is developed that has a long working distance. The design is developed from first principles and the evolution of the design shows what the process of lens design is like.
Este documento presenta un resumen básico del framework Struts. Explica que Struts implementa el patrón MVC en Java y cómo funciona en aplicaciones web mediante solicitudes del navegador al controlador. También describe cómo Struts simplifica el desarrollo MVC separando la lógica del negocio, la vista y el controlador. El documento luego resume los componentes clave de Struts como el modelo, la vista y el controlador.
Este documento describe varios conceptos relacionados con el desarrollo de software como ToolBox, Solution Explorer, Error List y Properties Windows. Define propiedades para cada uno y explica brevemente sus funciones como organizar archivos de proyecto, mostrar errores y propiedades de objetos seleccionados. También cubre brevemente los espacios de nombres System.IO, System.Data.SqlClient, System.Drawing y System.Text.
Este documento describe el desarrollo web con Java usando JSP y Servlets. Explica que JSP y Servlets son parte de la plataforma Java EE y permiten crear aplicaciones web dinámicas. También describe diferentes patrones de arquitectura como MVC y cómo usar beans, sesiones, cookies y EL para estructurar aplicaciones web.
El Business Delegate se utiliza para reducir el acoplamiento entre las capas de presentación y negocio. Oculta detalles de implementación del servicio de negocio como detalles de búsqueda y acceso EJB. Actúa como una abstracción del cliente de negocio y oculta la implementación de los servicios de negocio.
Este documento resume diferentes técnicas y herramientas para realizar análisis de seguridad en aplicaciones móviles Android. Cubre análisis estático utilizando Lint, SonarQube y otras herramientas, así como análisis dinámico mediante el monitoreo de red, llamadas y logs. También discute temas como el cifrado, almacenamiento seguro de datos, detección de root, ofuscación y marcos como OWASP Mobile Top 10.
Craig McClanahan es el creador del framework Struts. En el año 2000 entregó Struts a la Apache Software Foundation. En 2005, Struts se unió con WebWork para crear Struts 2, un framework basado en MVC que utiliza XML para el desarrollo web y proporciona características como interceptores, acciones y resultados.
Este documento resume las principales características y funcionalidades de la plataforma .NET Framework, incluyendo interfaces estándar, delegados y eventos, excepciones, atributos, colecciones, globalización, interoperabilidad, hilos y servicios.
Este documento presenta ASP.NET MVC, un framework que separa las responsabilidades de una aplicación web en modelos, vistas y controladores. Explica los componentes principales de MVC como routing, controladores, vistas y modelos, y cómo funciona el framework. También cubre temas como unit testing, model binders, action filters y cómo extender el framework con contribuciones de terceros.
ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML
Presentación de la charla del día 21 de Octubre en la Facultad Regional de Buenos Aires de la Universidad Tecnológica Nacional.
La presentación fue una introducción a los conceptos importantes necesarios para desarrollar una aplicación web utilizando el framework JBoss Seam.
El documento presenta la agenda de una clase sobre ASP.NET, ADO.NET, la biblioteca de clases base de .NET, y los servicios web. La clase cubrirá temas como arquitectura de capas, presentación, negocios, acceso a datos, almacenamiento de datos, globalización, localización, encriptación, aplicaciones distribuidas, tecnologías subyacentes a los servicios web como HTTP, XML y SOAP, y seguridad.
Este documento describe la arquitectura Box, que proporciona una programación basada en información. El BoxDictionary mapea la información entre las capas de presentación, negocio y datos. El BoxBusiness implementa la lógica de negocio. El log de datos facilita la comunicación entre desarrolladores y la automatización de pruebas al proporcionar información sobre los datos de entrada, salida y cambiados.
Computer vision has received great attention over the last two decades.
This research field is important not only in security-related software but also in the advanced interface between people and computers, advanced control methods, and many other areas.
Este documento presenta una introducción al concepto de software y sus componentes, incluyendo aplicaciones y sistemas operativos. También describe los fundamentos del diseño de software como la modularidad, la arquitectura y la jerarquía de control. Finalmente, cubre temas como el diseño orientado a objetos, las pruebas y el mantenimiento de software.
The document discusses various design variations of Offner relays, including:
1) The basic Offner relay design with two spherical mirrors and three reflections, which is diffraction-limited at f/3.0 over a 1.1mm annular field.
2) A design using a meniscus shell between the mirrors to correct aberrations and greatly enlarge the field size to a diffraction-limited 12mm annular field at f/3.
3) A design with the meniscus lens between the mirrors rather than in contact, improving aberration correction and enlarging the field size to 10mm at f/2.0.
Este documento presenta una metodología para la elicitación de requisitos que consiste en 6 tareas: 1) obtener información sobre el dominio y sistema actual, 2) preparar y realizar sesiones de elicitación, 3) identificar objetivos del sistema, 4) identificar requisitos de información, 5) identificar requisitos funcionales, y 6) identificar requisitos no funcionales. El propósito es identificar las necesidades de los usuarios y documentarlos en un documento de requisitos del sistema.
1) The document describes a proposed design for an unobscured astronomical camera with a 22 degree field of view and f/2 speed, to be used for a new large telescope in Hawaii.
2) It explores starting with an existing 5-mirror spherical design that was used on space missions, but determines a 3-mirror freeform aspheric design may be better.
3) The document presents an example 3-mirror freeform aspheric design that meets the requirements, with all mirrors tilted and shaped as aspheres to produce an unobscured 22 degree field of view at f/2.
In Zeiten sich verändernder und instabiler werdender Beziehungen zwischen Unternehmen und den Menschen bietet die Etablierung eines Kundenbeirats Unternehmen die Chance, sich durch den direkten Dialog und ein besseres Kundenverständnis weiterzuentwickeln. In vielen Branchen betreten sie damit heute noch Neuland und können sich somit einen Vorsprung sichern. Ein funktionierender Kundenbeirat wird von der Mehrheit der Bevölkerung als sinnvoll bewertet, obwohl das Thema relativ neu und noch nicht sehr bekannt ist. Entscheidend für den Erfolg ist die durchdachte und nachhaltige Konzeption. Letztendlich aber kommt es auf die Ernsthaftigkeit, die Wertschätzung und das Vertrauen gegenüber den Beiräten sowie den sensiblen Umgang mit den Erwartungen an.
http://www.musiolmunzingersasserath.com/blog/?p=3575
Broad band catadioptric design with long working distanceDave Shafer
A broad spectral band high NA catadioptric design is developed that has a long working distance. The design is developed from first principles and the evolution of the design shows what the process of lens design is like.
Este documento presenta un resumen básico del framework Struts. Explica que Struts implementa el patrón MVC en Java y cómo funciona en aplicaciones web mediante solicitudes del navegador al controlador. También describe cómo Struts simplifica el desarrollo MVC separando la lógica del negocio, la vista y el controlador. El documento luego resume los componentes clave de Struts como el modelo, la vista y el controlador.
Este documento describe varios conceptos relacionados con el desarrollo de software como ToolBox, Solution Explorer, Error List y Properties Windows. Define propiedades para cada uno y explica brevemente sus funciones como organizar archivos de proyecto, mostrar errores y propiedades de objetos seleccionados. También cubre brevemente los espacios de nombres System.IO, System.Data.SqlClient, System.Drawing y System.Text.
Este documento describe el desarrollo web con Java usando JSP y Servlets. Explica que JSP y Servlets son parte de la plataforma Java EE y permiten crear aplicaciones web dinámicas. También describe diferentes patrones de arquitectura como MVC y cómo usar beans, sesiones, cookies y EL para estructurar aplicaciones web.
El Business Delegate se utiliza para reducir el acoplamiento entre las capas de presentación y negocio. Oculta detalles de implementación del servicio de negocio como detalles de búsqueda y acceso EJB. Actúa como una abstracción del cliente de negocio y oculta la implementación de los servicios de negocio.
Este documento resume diferentes técnicas y herramientas para realizar análisis de seguridad en aplicaciones móviles Android. Cubre análisis estático utilizando Lint, SonarQube y otras herramientas, así como análisis dinámico mediante el monitoreo de red, llamadas y logs. También discute temas como el cifrado, almacenamiento seguro de datos, detección de root, ofuscación y marcos como OWASP Mobile Top 10.
Craig McClanahan es el creador del framework Struts. En el año 2000 entregó Struts a la Apache Software Foundation. En 2005, Struts se unió con WebWork para crear Struts 2, un framework basado en MVC que utiliza XML para el desarrollo web y proporciona características como interceptores, acciones y resultados.
Este documento resume las principales características y funcionalidades de la plataforma .NET Framework, incluyendo interfaces estándar, delegados y eventos, excepciones, atributos, colecciones, globalización, interoperabilidad, hilos y servicios.
Este documento presenta ASP.NET MVC, un framework que separa las responsabilidades de una aplicación web en modelos, vistas y controladores. Explica los componentes principales de MVC como routing, controladores, vistas y modelos, y cómo funciona el framework. También cubre temas como unit testing, model binders, action filters y cómo extender el framework con contribuciones de terceros.
ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML
Presentación de la charla del día 21 de Octubre en la Facultad Regional de Buenos Aires de la Universidad Tecnológica Nacional.
La presentación fue una introducción a los conceptos importantes necesarios para desarrollar una aplicación web utilizando el framework JBoss Seam.
El documento presenta la agenda de una clase sobre ASP.NET, ADO.NET, la biblioteca de clases base de .NET, y los servicios web. La clase cubrirá temas como arquitectura de capas, presentación, negocios, acceso a datos, almacenamiento de datos, globalización, localización, encriptación, aplicaciones distribuidas, tecnologías subyacentes a los servicios web como HTTP, XML y SOAP, y seguridad.
Este documento describe la arquitectura Box, que proporciona una programación basada en información. El BoxDictionary mapea la información entre las capas de presentación, negocio y datos. El BoxBusiness implementa la lógica de negocio. El log de datos facilita la comunicación entre desarrolladores y la automatización de pruebas al proporcionar información sobre los datos de entrada, salida y cambiados.
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Sorey García
Este documento describe las similitudes y diferencias entre el desarrollo de aplicaciones para Windows Phone 8 y Windows 8. Ambas plataformas comparten el mismo marco de trabajo XAML y .NET, pero cada una tiene sus propias API. El documento explica cómo compartir código entre plataformas mediante bibliotecas compartidas, archivos enlazados y componentes Windows Runtime. También cubre temas como el patrón MVVM y la gestión de las diferencias entre plataformas.
Este documento explica el framework Struts mediante un ejemplo práctico de creación de una aplicación web para gestionar calzados. Se describe la estructura de Struts basada en el patrón MVC, y se explican los pasos para crear el modelo, el controlador y la vista en la aplicación de ejemplo.
El documento describe varios frameworks web populares. Explica qué es un framework web y proporciona una breve historia. Luego discute los frameworks Struts y Spring para el lado del servidor y jQuery y HTML5 para el lado del cliente.
ASP.NET es un framework para desarrollar aplicaciones web que permite separar la interfaz de usuario de la lógica del sitio y procesar datos en el servidor. Los Web Forms son la parte principal de ASP.NET y permiten crear páginas dinámicas que se compilan y ejecutan en el servidor generando HTML para el cliente. ASP.NET incluye controles que encapsulan funcionalidad común y facilitan el desarrollo de aplicaciones web ricas e interactivas.
Este documento describe los conceptos de inversión de control (IoC) e inyección de dependencias, así como el contenedor de IoC Autofac. Explica los problemas de la programación tradicional en capas y los beneficios del IoC. Define el IoC, la inyección de dependencias y Autofac, y describe cómo Autofac se puede usar para registrar componentes y resolver dependencias. También cubre el uso de Autofac para MVC, incluido el registro de controladores, model binders y la inyección de dependencias en vistas y filtros.
Este documento describe Acegi Security System for Spring, un framework de seguridad para aplicaciones Spring. Explica conceptos como autenticación y autorización, y detalla la arquitectura y configuración de Acegi para proporcionar estas funcionalidades de forma no intrusiva a través de interfaces, proxies y votaciones. Finalmente, concluye que Acegi ofrece todas las características de seguridad necesarias para aplicaciones empresariales de forma portable y extensible.
Este documento presenta una introducción a los servicios web. Explica que los servicios web permiten el intercambio de datos entre aplicaciones desarrolladas en diferentes lenguajes de programación a través de protocolos estándar. También describe algunos servidores de aplicaciones populares para servicios web como JBoss, Oracle Fusion Middleware e IBM Lotus Domino. Finalmente, menciona algunas desventajas de los servicios web como su bajo rendimiento en comparación con otros modelos de computación distribuida.
Este documento resume dos metodologías ágiles principales: Scrum y Kanban. Introduce los conceptos básicos de los métodos ágiles como el manifiesto ágil, principios de desarrollo ágil y lean, y algunas técnicas comunes como las historias de usuario. Explica Scrum como un marco para aplicar prácticas ágiles y Kanban como una metodología basada en flujos de trabajo visuales. El documento proporciona una introducción general a estas metodologías ágiles populares.
Spring Framework v3
Entender las ventajas que supone el uso de Spring en un proyecto de desarrollo SW
Aprender a configurar las distintas clases Java según el patrón IOC y AOP
Conocer los fundamentos de desarrollo Web con Spring MVC
Este documento describe varias herramientas para el desarrollo y gestión de proyectos Java. Explica Eclipse, Ant, Maven y otros como sistemas de control de versiones, gestión de incidencias y pruebas. Proporciona detalles sobre sus características y cómo usarlas en las distintas fases de un proyecto Java.
Este documento presenta una introducción a los servicios web y Java. Explica los fundamentos de XML y su estructura, así como las diferentes formas de validar documentos XML como DTD y esquemas XML. También resume los contenidos del documento, incluyendo conceptos como el modelo SOA, lenguajes y protocolos de servicios web, y cómo crear y consumir servicios web existentes desde Java.
Este documento presenta una introducción al sistema operativo Red Hat Linux 5. Explica los conceptos básicos de Linux como el sistema de archivos, el shell de UNIX, el manejo de procesos y la administración del sistema. Además, detalla los pasos para instalar Red Hat Linux 5 y realizar la configuración inicial del sistema.
Este documento presenta una introducción al lenguaje XML. Explica los objetivos de aprender XML y sus esquemas, transformaciones y consultas. Describe la estructura básica de los documentos XML, incluyendo elementos, atributos, entidades y la necesidad de que sean bien formados. También introduce conceptos como procesamiento, DTDs y validación.
Este documento presenta un temario sobre Java en sistemas de tiempo real. Incluye conceptos básicos de sistemas de tiempo real como tareas, deadlines y planificación. Explica los desafíos de usar Java para este tipo de sistemas debido a la impredecibilidad del recolector de basura. Luego introduce la especificación Java Real-Time System (RTSJ) la cual provee características para tiempo real como planificación de tareas, manejo de memoria y eventos asíncronos. Finalmente, cubre el modelo de objetos del RTSJ incl
Este documento presenta Sun Java System Web Server 6.1. Explica las herramientas incluidas como el Administration Server, Server Manager y Class Manager, las cuales permiten configurar e implementar aplicaciones y seguridad en el servidor. También cubre la instalación, configuración básica, despliegue de aplicaciones y funciones avanzadas de Sun Java System Web Server 6.1.
Este documento presenta una introducción a la administración de MySQL. Se divide en seis secciones que cubren la introducción a MySQL, conceptos básicos, administración de la base de datos, herramientas de MySQL, características avanzadas y el lenguaje MySQL. Incluye información sobre instalación, gestión de usuarios, copias de seguridad y otras tareas de administración de bases de datos.
JavaFX es una tecnología que pretende facilitar la manera en que se construyen interfaces gráficas con Java.
La versión 2.x de este framework está totalmente construida como API de Java y mejora considerablemente respecto a su versión de scripting.
Este documento proporciona una introducción a Microsoft Test Manager 2010. Incluye temas como los tipos de pruebas (manuales, automatizadas, exploratorias), la planificación de pruebas, la ejecución de pruebas automatizadas y manuales, y la generación de informes. También explica cómo crear planes de pruebas, conjuntos de pruebas y casos de prueba en Microsoft Test Manager, y cómo configurar entornos de prueba.
Este documento presenta los conceptos fundamentales de SOA y servicios web. Introduce la arquitectura SOA, sus ventajas y los lenguajes y protocolos implicados. Explica cómo crear y consumir servicios web existentes utilizando las tecnologías más extendidas. El documento está dividido en siete secciones que cubren los fundamentos teóricos de SOA, arquitectura SOA, servicios web XML, implementación de servicios web, servicios web RESTful, interoperabilidad y arquitectura ESB.
Perl (practical extraction and report language)Oliver Centeno
El documento proporciona una introducción al lenguaje de programación Perl. Explica que Perl es un lenguaje interpretado creado por Larry Wall en 1987 para procesar texto y administrar sistemas UNIX. Describe los tipos básicos de datos en Perl como escalares, arrays y hashes, y cubre conceptos como variables, operadores, control de flujo, subrutinas y funciones.
Este documento describe las tecnologías involucradas en Liferay, incluyendo portales, portlets, Hibernate, Spring y más. Explica la arquitectura de Liferay, sus mecanismos de extensión y las tres estrategias principales para extender sus funcionalidades: entorno de extensión, plugins SDK y ServiceBuilder. También resume los requisitos para instalar Liferay como Java, Tomcat, MySQL y Ant.
El documento describe la instalación y uso del sistema de gestión de contenidos Joomla. Explica cómo instalar Joomla, gestionar y organizar contenidos a través de secciones, categorías y artículos, e instalar extensiones para mejorar las funcionalidades. También cubre temas como diseño, menús de navegación y funciones adicionales.
Este documento presenta una introducción a Team Foundation Server 2010. Explica que TFS es una plataforma de colaboración para la gestión del ciclo de vida de aplicaciones que automatiza el proceso de entrega de software y proporciona herramientas para gestionar proyectos de desarrollo de forma eficaz. Se detallan conceptos clave como team project collections, team projects y la terminología jerárquica de TFS. También se describen características como la integración con Visual Studio y otras herramientas.
Este documento proporciona una introducción a Windows Azure, incluyendo una descripción de sus principales componentes como roles, servicios de almacenamiento y computación en la nube. También cubre temas como la instalación del SDK, la creación de una aplicación Azure y los primeros pasos para ejecutarla localmente antes de implementarla en la nube.
El documento habla sobre la Web 2.0 y las redes sociales y contenidos. Introduce al experto Oliver Centeno y su experiencia, y presenta un temario sobre introducción a la Web 2.0, creación de contenidos, herramientas de participación, gestores de contenido y posicionamiento. Explica las diferencias entre Web 1.0 y 2.0, con la segunda centrada en los usuarios y la participación y creación de contenidos.
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
2. Enterprise Library
Conjunto de librerías open-source que facilitan el desarrollo
de aplicaciones empresariales .Net
Implementan funcionalidad habitual
Utilizando buenas prácticas de programación
Microsoft Patterns & Practices
http://entlib.codeplex.com/
Se basa en ficheros de configuración
App.config y Web.config
Incluye mecanismos de extensión mediante Interfaces y
Clases Base
Se distribuye como ejecutable con plug-in para Visual Studio
5. Configuration Application Block
Eje central de EntLib
Permite acceder a ficheros de configuración
App.config y Web.config
Metadatos
Proveedor de datos de configuración
Configuración propia del proveedor
Transformador opcional
Objetos
ConfigurationManager
ConfigurationBuilder
IStorageProviderReader/Writer
ITransformer
6. Configuration Application Block
Ejemplo: Usuario
Usuario
Nombre
Dada una clase de entidad Usuario Edad
Crear una fachada de configuración FechaNacimiento
Pais
Abstracta de métodos estáticos
Microsoft.Practices.EnterpriseLibrary. Configuration.
Configuracion
ConfigurationManager VerUsuario()
Guardar(Usuario)
GetConfiguration y WriteConfiguration
Crear un formulario para introducir los datos
Crear otro formulario que los muestre
Configurar app.config
8. Validation Application Block
Microsoft.Practices.EnterpriseLibrary.Validation.dll
Lógica de validación
Reglas de validación comunes encapsuladas en clases
reutilizables
Tamaño de string, rango de un numero, fecha, expresión regular,…
Que heredan de la clase Validator
MessageTemplate indica el mensaje de error
Negated valida lo contrario
Tag permite etiquetar validadores para agrupar mensajes x ej.
Incluye conectores para automatizar la validación de
controles de formularios
Windows Forms, ASP.NET y WCF
9. Validation Application Block
Reglas de validación (heredadas de Validator)
Not Null
Range Validator
Date Time Range
Relative Date Time (respecto a hoy)
Domain (conjunto de valores)
String Length
Regular Expression
Contains Characters
Enum Conversion (de string a tipo enumerado)
Type Conversion (de string a un tipo dado)
Property Comparison
Object Validator (el objeto contenido en una propiedad)
Object Collection (los objetos en una propiedad colección/array)
And/Or Composite
10. Validation Application Block
Uso de los validadores
Mediante código
Instanciar el validador e invocar su método Validate()
Poco utilizado, es más fácil con C#
Mediante propiedades
Etiquetar las propiedades legibles con el validador
[NotNullValidator(MessageTemplate="Error!!")]
[StringLengthValidator(1, 50)]
public string Nombre {get; set;}
Mediante archivos App.config y Web.config
EntLibConfig.exe
Mediante autovalidación
Crear una clase con un método de validación
[HasSelfValidation] public class MiClase {...}
[SelfValidation] public void Metodo(ValidationResults r) {...}
11. Validation Application Block
Plantillas de mensajes
Se puede utilizar MessageTemplate con tokens
{0} representa el objeto que se valida
{1} representa el elemento a validar
{2} representa la propiedad Tag del validador
{3} representa el primer parámetro del validador
Ejemplo
[StringLengthValidator(5, RangeBoundaryType.
Inclusive, 20, RangeBoundaryType.Inclusive,
MessageTemplate = "[{0}]Name debe tener {3} a
{5} caracteres")]
public String Descripcion;
Mostrará “Descripcion debe tener 5 a 20 caracteres”
12. Validation Application Block
Conjuntos de Reglas (Ruleset)
Definidos en el fichero .config o como parámetro del validador
Permiten añadir distintas validaciones
Ejecutar la validación
ValidationResults results = Validation.Validate<Cliente>
(cli);
Validation.Validate<Cliente>(cli, "rulesetA", "rulesetB");
Validator<Cliente> validator =
ValidationFactory.CreateValidator<Cliente>();
ValidationResult
Contenido en el ValidationResults
Propiedades: Message, Target, Validator, NestedValidationResults,…
Validación en formularios
Win Forms: Mediante el control ValidationProvider
ASP.NET: Mediante el control PropertyProxyValidator
13. Validation Application Block
Ejemplo 4.0
public class Cliente{
[NotNullValidator()]
[StringLengthValidator(1, 50)]
public string Nombre{ get; set; }
[RegexValidator(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*",
MessageTemplate = "e-mail incorrecto")]
public string Email{ get; set; }
}
//
// En otro método de otra clase
//
Cliente cli = new Cliente{Nombre="Oliver", Email="oliver@curso.com"};
ValidationResults results = Validation.Validate<Cliente>(cli);
if(!results.IsValid){
MessageBox.Show("Error al crear el cliente");
return;
}
16. Caching Application Block
Implementación de un sistema de caching con políticas de
recolección y expiración
Se encarga de mantener sincronizada la cache en memoria y
la copia almacenada
Evita consultas repetitivas de los datos
Mejora la escalabilidad y la disponibilidad
Permite indicar políticas de expiración
Invalidar objetos tras un tiempo sin usarse
Tiempo absoluto, móvil, extendido y dependiente de archivo
Permite indicar un máximo de objetos en caché
Al llegar al máximo se elimina un número concreto
Se ordenan los objetos por prioridad y última hora de acceso
17. Caching Application Block
Ejemplo 4.0
Obtener una instancia de caché (singleton)
ICacheManager cache = CacheFactory.
GetCacheManager();
Añadir objetos a caché
Persona p = new Persona();
cache.Add("manolo", p);
Se puede indicar una prioridad y una expiración
cache.Add("manolo", p, CacheItemPriority.Normal,
null, new SlidingTime(TimeSpan.FromMinutes(5)));
Eliminar objetos de chaché
cache.Remove("manolo");
cache.Flush();
18. Caching Application Block
Callback
Se dispara al eliminar un objeto de caché
Permite recoger el evento en ICacheItemRefreshAction
Persistencia
Se puede persistir la caché en SQL Server y en almacenamiento
aislado
Configuración mediante App.config y Web.config
ExpirationPollFrequencyInSeconds
MaximumElementsInCacheBeforeScavenging
NumberToRemoveWhenScavenging
System.Web.Caching
Implementación de caché para ASP.NET
Recomendado usar este en lugar de Caching App Block
19. Caching Application Block
Ejemplo 5.0
Obtener una instancia de caché (singleton)
ICacheManager cache = EnterpriseLibraryContainer.
Current.GetInstance< ICacheManager>();
Obtener una instancia de persistencia
ICacheManager cacheP = EnterpriseLibraryContainer.
Current.GetInstance< ICacheManager>("almacen");
Extraer objetos de caché
if(cache.Count > 0 && cache.Contains("manolo")){
object o = cache.GetItem("manolo");
if(o != null)
Persona p = (Persona) o;
}
20. Caching Application Block
Ventajas de Caching Application Block
Permite persistencia del cache
Es posible mantener múltiples instancias de cache
independientes identificables por nombre
Se puede configurar a través del archivo de configuración
sin necesidad de recompilar la aplicación
Es extensible, se pueden implementar nuevas
Políticas de expiración (implementar ICacheItemExpiration)
Medios de almacenamiento
23. Security Application Block
Autorización
Determinar si un usuario tiene acceso a un recurso
Interfaz IAuthorizationProvider con método Authorize()
Proveedores de autorización que definen reglas
Authorization Manager (AzMan)
Authorization Rule Provider (Archivo de configuración)
Caching de credenciales
Evita autenticar al usuario en cada invocación
Se genera un ticket que se entrega a la aplicación cliente
Se puede almacenar
Un objeto IIdentity con la identificación de usuario
Un objeto IPrincipal con los roles a los que pertenece
Un objeto Profile con información adicional acerca del usuario
24. Security Application Block
Configurar AzMan
Herramienta para acceder a Active Directory y otros almacenes de
usuarios y roles
Permite administrar reglas de seguridad en estas ubicaciones
Aplication: Nombre de la aplicación
AuditIndentifierPrefix: Prefijo que antecede el identificador de
auditoria
Scope: El ámbito de autorización
StoreLocation: El lugar donde están almacenadas las reglas
Archivo XML
Active Directory
Base de Datos
25. Security Application Block
Configurar AuthorizationRuleProvider
Fichero de configuración (App.config/Web.config)
Crear un proveedor de reglas
Crear una regla (Acción)
Indicar la expresión que valida la regla
R:Grupo para indicar pertenencia a un rol
I:Usuario para indicar identidad de un usuario
Un editor permite validar las expresiones
Se pueden crear varias reglas de validación
26. Security Application Block
Configurar Caché de Credenciales
Fichero de configuración (App.config/Web.config)
Crear un proveedor de seguridad
Indicar el tiempo en minutos que se mantendrá una identidad en caché
AbsoluteExpiration
Indicar un tiempo móvil de expiración también en minutos
SlidingExpiration
Configurar e indicar el manejador de caché
Se pueden crear varios proveedores de caché
27. Security Application Block
Ejemplo de autorización 4.0
Obtener un proveedor de autorización
IAuthorizationProvider proveedor = AuthorizationFactory.
GetAuthorizationProvider("MiProveedor");
Determinar las credenciales (principal) a autorizar
IPrincipal ppal = new GenericPrincipal(
new GenericIdentity("usuario"), // usuario
new string[]{"Administrador"}); // roles
Determinar si el usuario está autorizado para ejecutar una acción
bool autorizado = proveedor.Authorize(ppal, "Acción");
Detalles
Si usamos AzMan la acción representa operaciones
Si usamos Rule Provider la acción representa el nombre de una regla
28. Security Application Block
Ejemplo de caché de credenciales 4.0
Obtener un proveedor de caching
ISecurityCacheProvider cache = SecurityCacheFactory.
GetSecurityCacheProvider("Proveedor");
Guardar la identidad del usuario y obtener su ticket
De manera similar se puede guardar las credenciales o el perfil
IToken ticket = cache.SaveIdentity(
new GenericIdentity("usuario"));
Recuperar la identidad del usuario
IIdentity miIdentidad = cache.GetIdentity(ticket);
Eliminar una identidad de la caché
cache.ExpireIdentity(ticket);
29. Security Application Block
Ejemplos 5.0
Obtener un proveedor de autorización
IAuthorizationProvider proveedor =
EnterpriseLibraryContainer.Current.
GetInstance<IAuthorizationProvider>("ProveedorAuth");
Obtener un proveedor de caching
ISecurityCacheProvider cache =
EnterpriseLibraryContainer.Current.
GetInstance<ISecurityCacheProvider>("ProveedorCache");
Obtener la identidad de Windows del usuario
WindowsIdentity wi = WindowsIdentity.GetCurrent();
Guardo la identidad y obtengo el ticket
IToken ticket = cache.SaveIdentity(wi);
30. Security Application Block
Ventajas de Security Appication Block
Reduce la necesidad de escribir código repetitivo
Evita tener que aprender a usar diferentes
implementaciones de autorización
La funcionalidad de autorización queda desacoplada
La forma que se realiza la autorización es consistente a
pesar que se utilicen diferentes implementaciones
Es extensible (extender AuthorizationProvider)
[ConfigurationElementType( typeof
(CustomAuthorizationProviderData))]
Se integra con Policy Injection Application Block y Unity
Application Block
32. Cryptography Application Block
Interfaz única que permite realizar encriptación y hashing de
datos con diversos algoritmos de clave simétrica
Incluye un sistema para administrar y distribuir las claves de
encriptación (archivos de transporte)
Protegiéndolas con una contraseña personalizada
A través de un Wizard de exportación/importación
4 métodos estáticos de criptografía
CreateHash()
CompareHash()
EncryptSymmetric()
DecryptSymmetric()
Trabajan con parámetros String o byte[]
Hay que serializar los objetos a byte[]
SerializationUtility.ToBytes(objeto)
33. Cryptography Application Block
Algoritmos de clave simétrica
Las 2 partes de la comunicación usan la misma clave
Cryptography Application Block la protege con
encriptación DPAPI
Encriptada con la contraseña de la cuenta de usuario
Encriptada a nivel de equipo
Cryptography Application Block permite distintas claves
Nueva escrita por el usuario
Nueva generada aleatoriamente
Existente creada previamente
Importada de un archivo de transporte
Guarda la clave en un archivo local
34. Cryptography Application Block
Ejemplo 4.0
Encriptar un valor String con un algoritmo dado
string encriptado = Cryptographer.
EncryptSymmetric("algoritmo", valor);
Desencriptar un contenido encriptado
string valor = Cryptographer.
DecryptSymmetric("algoritmo", encriptado);
Generar una clave Hash para un valor
string hash = Cryptographer.CreateHash("algoritmo",
valor);
Validar un Hash contra un valor dado
bool valido = Cryptographer.CompareHash("algoritmo",
valor, hash);
35. Cryptography Application Block
Ejemplo 5.0
Crear un manejador de criptografía
CryptographyManager cm = EnterpriseLibraryContainer.
Current.
GetInstance<CryptographyManager>();
Encriptar un valor byte[] con un algoritmo dado
byte[] serializado = SerializationUtility.ToBytes(objeto);
byte[] encriptado = cm.
EncryptSymmetric("algoritmo", serializado);
Desencriptar un byte[] encriptado
byte[] valor = cm.
DecryptSymmetric("algoritmo", encriptado);
Detalles
Liberar la memoria lo antes posible para evitar agujeros de seguridad
Se recomiendan los algoritmos SHA para hashing y AES para
encriptación
36. Cryptography Application Block
Ventajas de Cryptography Application Block
Soporta diversos algoritmos de hashing y encriptación
Abstrae el código que requiere cada algoritmo y presenta una Interfaz
sencilla con solo cuatro métodos
Evita tener que aprender código especifico para cada algoritmo
Consistencia en la manera en que se realizan las tareas de criptografía
dentro de un proyecto, o incluso dentro de toda la compañía
Se puede modificar un algoritmo editando el archivo de configuración
sin necesidad de recompilar la aplicación
Es extensible
Incluye un mecanismo para almacenar las claves y transportarlas de
manera segura
38. Exception Handling Application Block
Manejo de Excepciones
Tratar de recuperarse de la excepción, por ejemplo reintentando la
operación
Ejecutar código de limpieza
Mostrar un mensaje de error al usuario
Registrar la excepción en el log para posterior diagnostico
Notificar la excepción para que no pase inadvertida, por ejemplo vía
email o un evento WMI
Reemplazar la excepción por otra de mas alto nivel para evitar que se
filtre información por razones de privacidad o seguridad
Envolver la excepción inicial con una mas significativa para entregar
una mejor información de contexto sin perder los detalles de la
excepción origina
39. Exception Handling Application Block
Permite simplificar y estructurar el manejo de excepciones
La cláusula catch delega el manejo de la excepción al bloque
Indicando una política de excepción
Se configuran las políticas en App.config/Web.config
Manejadores (handlers) encapsulan el tratamientos
Logging de la excepción
Reemplazar la excepción (replace)
Envolver la excepción (wrap)
Métodos para la gestión de una excepción
HandleException(ex, "Política")
Process(delegado, "Política")
40. Exception Handling Application Block
Ejemplo:
Crear la política de excepción
Definir los tipos de excepción tratados
Para cada tipo definir los manejadores (handlers)
Para cada tipo definir el PostHandlingAction
Acción tras ejecutar todos los manejadores
ThrowNewException, NotifyRethrow, None
Si la excepción no encaja con ningún tipo se relanzará
Invocar al manejador dentro de la cláusula catch
Devuelve true si hay que relanzar la excepción
bool relanzar = ExceptionPolicy.
HandleException(ex, "Politica");
Detalles
Se recomienda definir las políticas como constantes
41. Exception Handling Application Block
Ejemplo 5.0:
Creo el manejador de excepciones
ExceptionManager gestor = EnterpriseLibraryContainer.
Current.GetInstance<ExceptionManager>();
Ejecuto un método de manera segura
gestor.Process(metodo, "PoliticaProteccion");
Ejecuto un método anónimo
gestor.Process(() => {
// código
},
"PoliticaProteccion");
Ejecuto un método con parámetros
gestor.Process(() => metodo(param1, param2),
valorDeRetornoPorDefecto,
"PoliticaProteccion");
42. Exception Handling Application Block
Configuración de manejadores:
Se disparan en cadena, el orden es MUY importante
Replace Handler
Evita que se filtren datos privados o código inferior
Indicar el nuevo mensaje de error en ExceptionMessage
Indicar la nueva excepción en ReplaceExceptionType
Wrap Handler
Envuelve la excepción con otra más significativa
Indicar la nueva excepción en WrapExceptionType
Logging Handler
Registra la excepción contra el Logging Application Block
43. Exception Handling Application Block
Ventajas de Exception Handling Application Block
Encapsula la lógica de manejo de excepciones en clases reutilizables
(handlers)
Permite definir políticas de manejo de excepciones aplicables a un
gran numero de métodos
Se puede modificar las políticas sin recompilar la aplicación
El programador solo escribe código estándar en la cláusula catch
indicando el nombre de una política, el arquitecto define que hace
cada política en el archivo de configuración
Se puede integrar con Policy Injection Application Block para separar
el manejo de excepciones de la lógica de la aplicación haciendo
innecesaria la cláusula catch
Es extensible
Implementando IExceptionHandler
[ConfigurationElementType(typeof(CustomHandlerData))]
45. Data Access Application Block
Facilita el uso de ADO.NET
Interfaz con métodos simples para las tareas mas comunes de
acceso a datos
Llenar y actualizar un DataSet
Leer varios DataRow
Crear un Command
Ejecutar un Command
Parametrizar un Command
Obtener datos XML
Obtener datos como secuencia de objetos
Trabajar con transacciones
Permite escribir código agnóstico compatible con múltiples
bases de datos
46. Data Access Application Block
Configurar la Base de Datos
Indicar el <connectionString> en App.config/Web.config
Indicar el proveedor de datos
Instanciar la Base de Datos
Database bd = EnterpriseLibraryContainer. Current.
GetInstance<Database>("cadena");
Obtener un Command
DbCommand sqlCmd = bd.GetSqlStringCommand(sql);
Obtener un Reader
IDataReader reader = bd.ExecuteReader(
CommandType.Text, sql);
Obtener datos como XML
XmlReader reader = bd.ExecuteXmlReader(xmlCmd);
reader.ReadOuterXml();
47. Data Access Application Block
Trabajo con DataSets
DataSet ds = bd.ExecuteDataSet(sqlCmd);
bd.LoadDataSet(CommandType.Text, sql, ds,
new String[]{"TablaDS"});
// Insertar y actualizar (parámetros nuevos)
bd.AddInParameter(sql, "paramSQL", DbType.String,
"ColumnaDS", DataRowVersion.Current);
// Eliminar (parámetros originales)
bd.AddInParameter(sql, "paramSQL", DbType.String,
"ColumnaDS", DataRowVersion.Original);
// Ejecutar la actualziación
int filas = bd.UpdateDataSet(ds, "TablaDS", sqlInsert,
sqlUpdate, sqlDelete, UpdateBehavior.Standart);
48. Data Access Application Block
Trabajo con Transacciones
DbConnection conexion = bd.CreateConnection();
conexion.Open();
DbTransaction tx = conexión.BeginTransaction();
tx.Commit();
tx.Rollback();
Trabajo con Objetos
var datos = bd.ExecuteSprocAccessor<Clase>(sql);
Mapeadores de Objetos
Cuando los campos no encajan con las columnas
IRowMapper<Clase> map = MapBuilder<Clase>
.MapAllProperties()
.Map(x => x.Propiedad).ToColumn("columna")
.Map(x => x.Propiedad).WithFunction(fila => { ... })
.Build();
var datos = bd.ExecuteSprocAccessor<Clase>(sql, map);
50. Logging Application Block
Implementa logging a diferentes destinos
Registro de eventos, archivo de texto, BD, eMail, MSMQ, WMI,…
Es posible configurar
Categorías
Propiedades AutoFlush y MinimumSeverity
Múltiples destinos
Listeners que se configuran para hacer log a un destino
Filtros
SeverityFilter para cada Listener de una categoría
LoggingFilters para filtrar por categorías o prioridad
Formatos
FormatterName para cada Listener de una categoría
Editor de plantillas para formatos
51. Logging Application Block
Ejemplo
Obtener un escritor de Log
LogWriter log = EnterpriseLibraryContainer. Current.
GetInstance<LogWriter>();
Escribir en el log
log.Write("Mensaje");
log.Write("Mensaje", new string[]{"Categoría"});
log.Write("Mensaje con categoría, prioridad, evento
y severidad", "Categoría", 6, 9001,
TraceEventType.Warning);
Por defecto Category = General, Priority = -1, Event ID =
1 y Severity = Information
Por defecto la categoría General vuelca en Windows
Application Event Log
52. Logging Application Block
Información de contexto
Se obtiene la información en un diccionario
Dictionary<string, object> dict = new
Dictionary<string, object>();
// Información de depuración
new DebugInformationProvider()
.PopulateDictionary(dict);
// Información de seguridad
new ManagedSecurityContextInformationProvider()
.PopulateDictionary(dict);
new UnmanagedSecurityContextInformationProvider()
.PopulateDictionary(dict);
// Otra información
string config = File.ReadAllText(@"....App.config");
dict.Add("Configuración", config);
53. Logging Application Block
Log Entry
Clase de soporte de logs
Permite añadir varias entradas
LogEntry entry = new LogEntry("Mensaje con
categoría, prioridad, evento y severidad",
"Categoría", 6, 9001, TraceEventType.Warning);
log.Write(entry);
Permite añadir información de contexto
entry.ExtendedProperties = dict;
log.Write(entry);
55. Unity Application Block
Características
Soporta inyección de constructores, propiedades y métodos
La inyección de constructores es automática, no requiere atributos o
configuración
La inyección de propiedades y métodos requiere atributos o
configuración
Puede utilizarse como un contenedor jerárquico
El contenedor puede crear clases concretas no incluidas en el mapeo
del contenedor
Puede usarse el estilo de interfaz fluida (fluent interface) para
configurar el contenedor
El contenedor puede ser extendido
Soporta intercepción
57. Unity Application Block
Utilización
Crear el contenedor
IUnityContainer unity = new UnityContainer();
Definir las dependencias
[Dependency] public IClase Campo{ get;set; }
Definir los métodos inyectables
[InjectionMethod] public void Metodo(){
[InjectionConstructor] public Clase(){
Resolver instancias
Clase instancia = unity.Resolve<Clase>("nombre");
new InjectionProperty("nombre");
new InjectionConstructor("nombre");
new ResolvedParameter<Clase>("nombre");
58. Policy Injection Application Block
Programación Orientada a Aspectos
Mecanismo de intercepción para extender métodos y
propiedades sin modificar el código fuente
Incorporar funcionalidad transversal
log, autorización, instrumentación, transacciones, caching
Políticas definidas en el archivo de configuración
Mediante wildcards
A qué métodos y propiedades se aplicará
Reemplazado por Unity
Notas del editor
ConfigurationManager : no es más que una fachada estática para leer y escribir configuración desde una porción determinada. En un plano más terrenal, consiste en un objeto que dispone de los métodos adecuados para leer porciones de la configuración. Estos metodos leen la "metadata" de la configuración para saber dónde obtener la porción de configuración que se solicita; para esto consume una instancia del ConfigurationBuilder , el cual le devuelve ya "masajeado" un objeto en donde reside la configuración. Estos objetos actúan a modo de transporte y son definidos según la configuración. ConfigurationBuilder : es un objeto encargado de crear el proveedor de configuración, leer la configuración y transformarla en objetos que el configurationManager entienda. Es decir, instancia un objeto que implemente las interfaces de lectura/escritura de configuración, lee dicha configuración y popula los objetos que hayamos determinado para transportarla hasta el manager. IStorageProviderReader/Writer : representa la interfaz que deberá implementar el proveedor que se ocupa de leer y escribir la configuración en un repositorio determinado, ya sea éste un XML, SQL, etc. El bloque cuenta con un proveedor específico para XML similar al que cuenta nativamente .net para sus configuraciones base. Este es XmlFileStorageProvider , el cual implementa ambas interfaces. ITransformer : es la interfaz predeterminada que deberá implementar un proveedor de transformación; esto es una clase que tenga la habilidad de convertir o desconvertir los seteos de configuración en objetos tipados que la aplicación cliente "entienda". El bloque dispone de un proveedor XmlSerializerTransformer que implementa dicha interfaz. Este proveedor transforma nodos XML (XmlNode) a objetos y viceversa. Si bien no es necesario transformar los datos recibidos del repositorio en objetos tipados ya que se puede trabajar directamente con los objetos devuelvos por el repositorio, es una buena práctica implementar esta transformación.
Obtener datos como objetos var datos = bd.ExecuteSprocAccessor< Clase >(sql); Mapeadores de Objetos