viernes, 31 de julio de 2015

El Libro del Día: Data Visualization with JavaScript

El Libro del Día: 2015-07-31

Titulo: Data Visualization with JavaScript
Autor: Stephen A. Thomas
Editorial: No Starch Press
Nro Paginas: 381

Capítulos:
Chapter 1: Graphing Data
Chapter 2: Making Charts Interactive
Chapter 3: Integrating Charts on a Page
Chapter 4: Creating Specialized Graphs
Chapter 5: Displaying Timelines
Chapter 6: Visualizing Geographic Data
Chapter 7: Custom Visualizations with D3.js
Chapter 8: Managing Data in the Browser
Chapter 9: Building Data-Driven Web Applications: Part 1
Chapter 10: Building Data-Driven Web Applications: Part 2

Descarga:
Data_Visualization_with_JavaScript

lunes, 27 de julio de 2015

El Libro del Día: Pro XAML with C#

El Libro del Día: 2015-07-27

Titulo: Pro XAML with C#
Autor: Buddy James, Lori Lalonde
Editorial: Apress
Nro Paginas: 279

Capítulos:
Part I: Getting Started
Chapter 1: What Is XAML
Chapter 2: Software Craftsmanship
Part II: Laying the Groundwork
Chapter 3: Domain-Driven Design
Chapter 4: Design Patterns
Chapter 5: Unit Testing
Chapter 6: Advanced Unit Testing and Test-Driven Development
Chapter 7: Exception Handling and Logging
Part III: Completing the User Interface Layer
Chapter 8: The WPF User Interface
Chapter 9: The Windows Phone User Interface
Chapter 10: The Windows User Interface
Chapter 11: Deploying and Maintaining Your Application

Descarga:
Pro_XAML_with_C#

viernes, 24 de julio de 2015

El Libro del Día: Practical jQuery

El Libro del Día: 2015-07-24

Titulo: Practical jQuery
Autor: Mukund Chaudhary, Ankur Kumar
Editorial: Apress
Nro Paginas: 305

Capítulos:
Chapter 1: Evolution of jQuery
Chapter 2: Getting Started with jQuery
Chapter 3: Traversing DOM with jQuery
Chapter 4: DOM Manipulation with jQuery
Chapter 5: Events in jQuery
Chapter 6: Real World Events in jQuery
Chapter 7: Animation in jQuery
Chapter 8: Ajax with jQuery
Chapter 9: Creating Plug-ins with jQuery
Chapter 10: Integrating Plug-ins with jQuery
Chapter 11: Using jQuery Frameworks
Chapter 12: Testing jQuery with QUnit

Descarga:
Practical_jQuery

miércoles, 22 de julio de 2015

El Libro del Día: Azure Web Apps for Developers

El Libro del Día: 2015-07-22

Titulo: Azure Web Apps for Developers
Autor: Rick Rainey
Editorial: Microsoft Press
Nro Paginas: 123

Capítulos:
Chapter 1 Microsoft Azure Web Apps
Chapter 2 Azure WebJobs
Chapter 3 Scaling Azure Web Apps
Chapter 4 Monitoring and diagnostics

Descarga:
Azure_Web_Apps_for_Developers

lunes, 20 de julio de 2015

El Libro del Día: Hardening Azure Applications

El Libro del Día: 2015-07-20

Titulo: Hardening Azure Applications
Autor: Suren Machiraju, Suraj Gaurav
Editorial: Apress
Nro Paginas: 195

Capítulos:
Chapter 1: Introducing the Cloud Computing Platform
Chapter 2: Cloud Applications
Chapter 3: Hardened Cloud Applications
Chapter 4: Service Fundamentals: Instrumentation, Telemetry, and Monitoring
Chapter 5: Key Application Experiences: Latency, Scalability, and Throughput
Chapter 6: Failures and Their Inevitability
Chapter 7: Failures and Recovery
Chapter 8: High Availability, Scalability, and Disaster Recovery
Chapter 9: Availability and Economics of 9s
Chapter 10: Securing Your Application
Chapter 11: The Modernization of Software Organizations

Descarga:
Hardening_Azure_Applications

jueves, 16 de julio de 2015

El Libro del Día: Xamarin Mobile Application Development

El Libro del Día: 2015-07-16

Titulo: Xamarin Mobile Application Development
Autor: Dan Hermes
Editorial: Apress
Nro Paginas: 425

Capítulos:
Chapter 1: Mobile Development Using Xamarin
Chapter 2: Building Mobile User Interfaces
Chapter 3: UI Design Using Layouts
Chapter 4: User Interaction Using Controls
Chapter 5: Making a Scrollable List
Chapter 6: Navigation
Chapter 7: Data Access with SQLite and Data Binding
Chapter 8: Custom Renderers
Chapter 9: Cross-Platform Architecture
Epilogue: The Art of Xamarin App Development

Descarga:
Xamarin_Mobile_Application_Development

miércoles, 15 de julio de 2015

Videos - Curso ASP.NET MVC Editora Perú (Parte 2)

Videos del Curso de ASP.NET MVC en Editora Perú (Parte 2)

Segunda parte del curso de ASP.NET MVC con Demos muy buenos, por ejemplo varias formas de paginación: conectada, desconectada parcial y desconectada total, además de una aplicación que incluye un Login cifrado y una consulta y actualización de empleados, incluyendo su foto.

Demo 16 - Paginación Conectada Asincrona con XmlHttpRequest y String

En este video se muestra como paginar en forma conectada y asíncrona, es decir, se obtiene cada pagina desde la base de datos (con un procedimiento almacenado) y luego este es enviado como una cadena al cliente.

La llamada de este método se hace en JavaScript en forma asíncrona con XmlHttpRequest y se forma el HTML dinamicamente con los datos (string) devuelto por el servidor.

Esta técnica debe usarse cuando los datos a consultar deben hacerse en línea, ya que varian constantemente, por ejemplo, el stock de los productos.


Demo 17 - Paginación Desconectada Parcial Asincrona

En este video se muestra como paginar en forma desconectada parcial y asíncrona, es decir, una sola vez se hace el envio de datos desde el Servidor de Datos al Servidor Web y se guarda en un objeto TempData.

Se crea un método (acción) en el Controlador que permite Paginar, recuperando del TempData los datos y devolviendo los datos de una sola pagina en forma de cadena.

La llamada de este método se hace en JavaScript en forma asíncrona con XmlHttpRequest y se forma el HTML dinamicamente con los datos (string) devuelto por el servidor.

Esta técnica debe usarse cuando los datos a consultar no se necesitan en línea (desconectado) y son muchos registros (mas de 1000 por ejemplo).


Demo 18 - Paginación Desconectada Total Asincrona

En este video se muestra como paginar en forma desconectada total y asíncrona, es decir, una sola vez se hace el envio de datos desde el Servidor de Datos al Servidor Web y de éste al Cliente.

Se envian como cadenas los datos de los productos y en el cliente usando JavaScript se forma el HTML de la tabla y los índices de paginas y se asocia a una función de JavaScript que permite paginar.

Esta técnica debe usarse cuando los datos a consultar no se necesitan en línea (desconectado) y son pocos registros (menos de 1000 por ejemplo).

La gran ventaja de esta técinca es que si se cae el Servidor Web o el Servidor de Datos no afectaría a la pagina ya que funciona todo localmente.


Demo 19 - Login, Consulta y Actualización con Foto (Parte 1)

En esta primera parte, se muestra un video de como crear un Login usando un Filtro de Autenticación validando  mediante un objeto de Sesión.

El login corresponde al usuario asignado a un cliente y esta cifrado usando JavaScript mediante el algoritmo hash MD5 implementado en la librería creada por Google CryptoJS.


Demo 19 - Login, Consulta y Actualización con Foto (Parte 2)

En esta segunda parte se muestra como crear una Consulta de Empleados por código, la cual incluye los datos del Apellido, Nombre, Fecha de Nacimiento y la Foto del Empleado.


Demo 19 - Login, Consulta y Actualización con Foto (Parte 3)

En esta tercera parte del video se muestra como actualizar los datos del empleado (incluyendo la foto) en forma asíncrona usando XmlHttpRequest mediante el método "post" y un FormData.

Para grabar la foto se envía como cadena (base 64) pero sin cabecera, pero en el servidor se convierte a array de bytes y luego se pasa a la entidad de negocio y se envia a la regla de negocio que permite actualizar los datos del empleado, incluyendo la foto.


Lo destacado de todos los demos es que son asíncronos y consumen el menor ancho de banda, ya que uso mi propio serializador de cadenas y uso XHR (asíncrono nativo).

El Libro del Día: Pro HTML5 with Visual Studio 2015

El Libro del Día: 2015-07-15

Titulo: Pro HTML5 with Visual Studio 2015
Autor: Mark J. Collins
Editorial: Apress
Nro Paginas: 435

Capítulos:
Part I: What is HTML5
Chapter 1: Before You Begin
Part II: Using the New HTML5 Features
Chapter 2: ASP.NET Web Forms
Chapter 3: MVC Web Applications
Chapter 4: Cascading Style Sheets
Chapter 5: Scripting Enhancements
Chapter 6: Mobile Web Applications
Part III: Digging Deeper
Chapter 7: Supporting Older Browsers
Chapter 8: Audio and Video
Chapter 9: Scalable Vector Graphics
Chapter 10: Canvas
Part IV: Advanced Features
Chapter 11: Indexed DB
Chapter 12: Geolocation and Mapping
Chapter 13: WebSockets
Chapter 14: Drag and Drop
Part V: Appendixes
Appendix A: Sample Content for Chapter 4
Appendix B: Completed Style for Chapter 4
Appendix C: Final Code for Chapter 14

Descarga:
Pro_HTML5_with_Visual_Studio_2015

martes, 14 de julio de 2015

El Libro del Día: Beginning HTML5 Media (2nd Edition)

El Libro del Día: 2015-07-14

Titulo: Beginning HTML5 Media (2nd Edition)
Autor: Silvia Pfeiffer, Tom Green
Editorial: Apress
Nro Paginas: 295

Capítulos:
Chapter 1: Encoding Video
Chapter 2: Using and Manipulating HTML5 Video and Audio Elements
Chapter 3: The JavaScript API
Chapter 4: Accessibility, Internationalization, and Navigation
Chapter 5: HTML5 Video and Canvas
Chapter 6: Manipulating Audio Through the Web Audio API

Descarga:
Beginning_HTML5_Media

martes, 7 de julio de 2015

Entrenamiento - Inicio del .NET Developer

Inicio del .NET Developer (The Best Practices for Performance)

Quiero anunciar el inicio del programa .NET Developer el cual tendra un solo horario, los Sabados en las Tardes de 3:00 pm a 9:00 pm. y la fecha de inicio es el 01 de Agosto. Los que eligieron el horario del Domingo este se ha cancelado por no llegar al mínimo necesario para iniciar y los que desean pueden pasarse al horario de los Sabados en la Tarde, previa confirmación por mail.

Modulo 1: Windows Developer (72 horas en 3 meses)
Fundamentals
Curso 01: .NET Framework (18 horas)
Curso 02: ADO .NET (18 horas)
Windows Applications
Curso 03: WinForms  (18 horas)
Curso 04: WPF  (18 horas)

Modulo 2: Web Developer (72 horas en 3 meses)
Back End
Curso 05: ASP.NET MVC (18 horas)
Curso 06: Servicios (WCF y Web API) (18 horas)
Front End
Curso 07: JavaScript (DOM, jQuery, AJAX) (18 horas)
Curso 08: HTML5 (APIs) (18 horas)

Modulo 3: Mobile Developer (72 horas en 3 meses)
Web Mobile
Curso 09: Responsive Web Designe (CSS3+HTML5+MVC) (18 horas)
Curso 10: jQuery Mobile (18 horas)
Native Apps
Curso 11: Xamarin Forms iOS (18 horas)
Curso 12: Xamarin Forms Android (18 horas)

Estándares y Malas Prácticas de Desarrollo Web

La mayoria de desarrolladores confunde el Estándar con las Buenas Prácticas, a continuación una lista de temas que considero Estándares y Malas Prácticas de Desarrollo:
- Entity Framework
- LINQ
- DataSets y DataTables
- Abuso de Librerías de JavaScript (jQuery, jQueryUI, Kendo, etc)
- Abuso de Frameworks de Responsive Web Design (Bootstrap, jQuery Mobile, etc)
- Abuso de Controles de Terceros (Infragistics, Telerik, DevExpress, etc)
- Reporteadores de Datos (Crystal Reports, ReportViewer)
- Formatos de Datos: XML, JSON
- Todo Orientado a Servicios: Servicios Web XML, WCF, Web API, etc.
- Trabajar en forma Síncrona, No Concurrente y con un Solo Procesador.

Muchos se preguntaran que tienen de malo, el usar esas características, la respuesta es que afectan considerablemente la performance. Yo en clases demuestro la diferencia en Tiempo de Procesamiento y Memoria (Performance) para que no quede ninguna duda, pero lamentablemente solo mis alumnos pueden ver dichas comparaciones.

Buenas Prácticas de Desarrollo Web (Performance)

Es lo que proponemos para desarrollar en .NET o en cualquier plataforma, usar lo nativo, lo que ya viene de base, por ejemplo en .NET, el reemplazo del estándar sería:
- ADO .NET
- Predicados
- Listas de Objetos
- JavaScript y APIs de HTML5 (ejemplo asíncrono con XmlHttpRequest en vez de jQuery)
- Crear tu propio archivo CSS Responsivo.
- Crear tus propios Controles que devuelvan la menor cantidad de HTML
- Crear tu propio Reporte con JavaScript, HTML, Drawing, Canvas, etc
- Formato de Datos Personalizado (Strings)
- Exponer como Servicios solo lo necesario (para otras plataformas), mejor es usar Librerías (No hay serialización si esta local o si es remota interna lo aconsejable es Binario con TCP), etc.
- Trabajar en forma Asíncrona, Concurrente y Paralela (todos los Procesadores).

Todos nos preguntamos porque las paginas web que desarrollamos son tan lentas y buscamos la solución en Hardware (mas memoria, mas procesador, mas Disco, mas Servidores, etc) cuando el Problema de la Performance es básicamente Software, es decir, nuestro código.

Comentario Final

Si tu experiencia como desarrollador es usar los estándares descritos anteriormente, entonces, te conviene capacitarse en el Programa .NET Developer que inicio en Agosto, ya que es el único en nuestro país que tiene un enfoque fuera del tradicional, yo enseño a que aprendas a Crear tu mismo todo y  no a usar cosas que estan mal creadas.

Los que ya llevaron alguna vez conmigo, sobre todo hace mas de un año; los contenidos, el enfoque y los demos son totalmente distintos.

Finalmente, recalcar que por ahora habrá un solo grupo que será los Sabados en la Tarde y la Inversión menual es de 360 soles, lo que es muy económico respecto a lo que van a aprender. Actualmente, muchos pagan mucho mas para que les enseñen cosas que no sirven para nada, es por eso que la mayoría de sitios web dan pena (sino me creen pasenle el Test de YSlow y PageSpeed).

Solo quedan 5 vacantes para iniciar, los interesados pueden confirmar su inscripción por mail a Luis.duenash@gmail.com. En cuanto al pago se hará el mismo día y en cuanto al local les enviaré por mail (solo a los registrados).

Los que este año hubieran llevado conmigo, pueden dar sus comentarios para animar a los que todavía dudan que tan bueno es el curso y quieran compararlo con otros cursos de .NET.

Videos - Curso ASP.NET MVC Editora Perú (Parte 1)

Videos del Curso de ASP.NET MVC en Editora Perú (Parte 1)

Comparto la primera parte del Curso de ASP.NET MVC realizado en Editora Perú (Diario El Peruano y Agencia de Noticias Andina), en donde casi todos los demos son en forma asíncrona con la mejor performance (XmlHttpRequest y Strings).

Demo 10 - Consulta Conectada Sincrona con Todo el HTML

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma conectada, es decir, consultando en cada momento a la base de datos usando librerías.

Para mostrar los datos del filtro se vuelve a mostrar la Vista completa, es decir todo el HTML, por lo cual se ve el parpadeo.


Demo 11 - Consulta Conectada Asincrona con Ajax Form y Vista Parcial

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma conectada, es decir, consultando en cada momento a la base de datos usando librerías.

A diferencia del demo anterior, la consulta es asíncrona usando un Formulario Ajax y una Vista Parcial que solo muestra la tabla de productos, por lo que no ocurre el parpadeo.


Demo 12 - Consulta Conectada Asincrona con jQuery Ajax y JSON

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma conectada, es decir, consultando en cada momento a la base de datos usando librerías.

A diferencia del demo anterior, la consulta es asíncrona usando jQuery Ajax y JSON que disminuye los datos enviados al cliente en casi la mitad con respecto a la vista parcial.


Demo 13 - Consulta Conectada Asincrona con jQuery Ajax y String

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma conectada, es decir, consultando en cada momento a la base de datos usando librerías.

A diferencia del demo anterior, la consulta es asíncrona usando jQuery Ajax y Strings para lo cual se crea un Serializador que permite convertir la Lista de Objetos en Cadenas separadas por un delimitador de campos y otro de registros.

Esta técnica permite reducir los datos enviados al cliente en casi la tercera parte con respecto a JSON, es decir, el HTML es el 100%, Vista Parcial 50%, JSON 25% y Strings 8%. Esta última tecnica que propongo es la máxima en Performance.


Demo 14 - Consulta Desconectada Parcial Asincrona con jQuery Ajax y String

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma desconectada parcial, es decir, desconectada de la base de datos, pero conectada al servidor web.

La consulta es asíncrona usando jQuery Ajax y Strings para lo cual se crea un Serializador que permite convertir la Lista de Objetos en Cadenas separadas por un delimitador de campos y otro de registros.

En el Servidor Web los datos se guardan en un TempData al inicio y luego se recuperan cada vez que se filtra, viajando solo una cadena conteniendo los productos por categoría.


Demo 15 - Consulta Desconectada Total Asincrona con jQuery Ajax y String

En este video se muestra una aplicación que permite filtrar los productos por categoría en forma desconectada total, es decir, desconectada de la base de datosy del servidor web.

La consulta es asíncrona usando jQuery Ajax y Strings para lo cual se crea un Serializador que permite convertir la Lista de Objetos en Cadenas separadas por un delimitador de campos y otro de registros.

Todos los datos de categorias y productos se envian al cliente, pero solo se guardan los productos para poder filtrarse por JavaScript.


Los alumnos que alguna vez llevaron conmigo ASP.NET MVC, se daran cuenta que la forma como estamos programando es un poco diferente, ya que uso mas JavaScript y menos C#.

El Libro del Día: Patterns, Principles and Practices of Domain Driven Design

El Libro del Día: 2015-07-07

Titulo: Patterns, Principles and Practices of Domain Driven Design
Autor: Scott Millett, Nick Tune
Editorial: Wrox
Nro Paginas: 795

Capítulos:
PART I THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN
CHAPTER 1 What Is Domain Driven Design
CHAPTER 2 Distilling the Problem Domain
CHAPTER 3 Focusing on the Core Domain
CHAPTER 4 Model Driven Design
CHAPTER 5 Domain Model Implementation Patterns
CHAPTER 6 Maintaining the Integrity of Domain Models with Bounded Contexts
CHAPTER 7 Context Mapping
CHAPTER 8 Application Architecture
CHAPTER 9 Common Problems for Teams Starting Out with Domain Driven Design
CHAPTER 10 Applying the Principles, Practices, and Patterns of DDD
PART II STRATEGIC PATTERNS: COMMUNICATING BETWEEN BOUNDED CONTEXTS
CHAPTER 11 Introduction to Bounded Context Integration
CHAPTER 12 Integrating via Messaging
CHAPTER 13 Integrating via HTTP with RPC and REST
PART III TACTICAL PATTERNS: CREATING EFFECTIVE DOMAIN MODELS
CHAPTER 14 Introducing the Domain Modeling Building Blocks
CHAPTER 15 Value Objects
CHAPTER 16 Entities
CHAPTER 17 Domain Services
CHAPTER 18 Domain Events
CHAPTER 19 Aggregates
CHAPTER 20 Factories
CHAPTER 21 Repositories
CHAPTER 22 Event Sourcing
PART IV DESIGN PATTERNS FOR EFFECTIVE APPLICATIONS
CHAPTER 23 Architecting Application User Interfaces
CHAPTER 24 CQRS: An Architecture of a Bounded Context
CHAPTER 25 Commands: Application Service Patterns for Processing Business Use Cases
CHAPTER 26 Queries: Domain Reporting

Descarga:
Patterns_Principles_and_Practices_of_Domain_Driven_Design

lunes, 6 de julio de 2015

Videos - Conferencia Code Genius 2015

Videos de la Conferencia Code Genius 2015

Comparto con ustedes una Conferencia de especialistas en JavaScript, patrocinada por la Empresa Genius de Tom Lehman, entre los expositores esta John Resig creador de jQuery y Jeremy Ashkenas creador de CofeeScript, Backboje.js y Underscore.js.

1. Fuzzy Annotation Anchoring by Tom Lehman


2. Nothing is Something [Preview] by Sandi Metz


3. OMG Ruby and Rails Performance by Aaron Patterson


4. Live-Coding a Server that Adds Genius Annotations to Any Website by Mat Brown


5. Magickly, Mustachio, & Stateless APIs by Aidan Feldman


6. Using JavaScript to Teach JavaScript by John Resig


7. Working with Minified JavaScript by John Crepezzi


8. Drawing Lines with Bresenham's Line Algorithm by Jenn Schiffer


9. Image Magic by James Somers


10. Rise of the Transpilers by Jeremy Ashkenas


11. 5 Minute Physics by David DeSandro


El Libro del Día: Advanced Game Design with HTML5 and JavaScript

El Libro del Día: 2015-07-06

Titulo: Advanced Game Design with HTML5 and JavaScript
Autor: Rex van der Spuy
Editorial: Apress
Nro Paginas: 540

Capítulos:
Chapter 1: Level Up
Chapter 2: The Canvas Drawing API
Chapter 3: Working with Game Assets
Chapter 4: Making Sprites and a Scene Graph
Chapter 5: Making Things Move
Chapter 6: Interactivity
Chapter 7: Collision Detection
Chapter 8: Juice It Up
Chapter 9: Sound with the Web Audio API
Chapter 10: Tweening
Chapter 11: Make Your Own Game Engine
Appendix A: Vectors for Movement and Collision Detection

Descarga:
Advanced_Game_Design_with_HTML5_and_JavaScript