Mostrando las entradas con la etiqueta Estándares. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Estándares. Mostrar todas las entradas

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.

viernes, 30 de mayo de 2014

Estándares Web de la W3C

Revisando el Libro: "La Guía Definitiva del Video en HTML5" de la Dra Alemana: "Silvia Pfeiffer" que colabora en los estándares de Audio y Video para la W3C, aprendí varias APIs de Audio que solo funcionan en Mozilla Firefox.

Esto me animo a buscar detalladamente que es oficial para la W3C y cuales APIs son solo implementadas por ciertos fabricantes de Navegadores (Browsers), comparto con ustedes el resumen de los Estándares W3C:

1. Arquitectura Web

1.1. Principales Arquitecturas
  • Arquitectura Web
  • Arquitectura de Servicios Web
1.2. Protocolos
  • HTTP
  • SOAP
1.3. Identificadores
  • URI
  • Web Services Addressing
1.4. Metaformatos
  • XML
  • RDF
  • JSON
  • XHTML
1.5. Consideraciones
  • Accessible Rich Internet Applications (WAI-ARIA)
  • Internalización de XML
  • Framework de Aseguramiento de Calidad (QA)
Más información en la URL:
http://www.w3.org/standards/webdesign/

2. Diseño Web y Aplicaciones

2.1. APIs Web de Javascript
  • Scripting
  • Document Object Model (DOM) -> DHTML
  • Eventos DOM: Progreso, XML, DOM Nivel 2
APIs de Javascript Estándares
  • Metadata API for Media Resources
  • Eventos de Progreso
  • JSON-LD Processing Algorithms ans API
  • Performance Timeline
  • User Timing
  • Widget Interface
  • Page Visibility
  • Geolocation
  • Touch Events
  • Web Storage
  • Selectors API Nivel 1
  • Navigation Timing
  • High Resolution Time
  • Element Traversal Specification
APIs de Javascript En Progreso
  • Web Audio Processing
  • RDF APIs
  • Device APIs
  • Offline Web App
APIs de Javascript Recomendadas para Candidatas
  • Resource Timing
  • Media Source Extensions
  • Pointer Lock
  • Timing control for script based animations
  • Ambient Light Events
  • Proximity Events
  • Indexed Database
  • Media Capture
  • Pointer Events 
  • Server Sent Events (SSE)
  • Web Sockets 
  • Battery Status
  • Web Workers 
  • Web Messaging
  • Web IDL
APIs de Javascript en Borrador
  • Navigation Timing 2
  • Clipboard
  • Gamepad
  • Network Service Discovery
  • Screen Orientation
  • Encrypted Media Extensions
  • Navigation Error Logging
  • XMLHttpRequest Nivel 1 (AJAX)
  • Web Near Field Communications (NFC)
  • Input Method Editor
  • Quota Management
  • Streams
  • Web Audio
  • WebRTC 1.0 (Real Time Communication between Browsers)
  • Media Capture and Streams
  • Push
  • Mediastream: Image Capture, Recording & Capture Scenarios
  • Web Telephony API (WTAPI)
  • Messaging
  • Raw Socket
  • WebDriver
  • Contacts Manager
  • Web Alarms
  • Network Information
  • Fullscreen
  • URL
  • File: Directories, System & Writer
  • Audio Processing
  • Permission for Device Access
  • Web Forms 2.0
  • Window Object 1.0
Más información en la URL:
http://www.w3.org/standards/techs/js#w3c_all

2.2. HTML y CSS
  • Hypertext Markup Language (HTML)
  • XML Hypertext Markup Language (XHTML)
  • Cascading Style Sheets (CSS)
  • WebFonts
2.3. Gráficos
  • Portable Network Graphics (PNG)
  • Scalable Vector Graphics (SVG)
  • Cascading Style Sheets (CSS)
  • Canvas API
  • Web Computer Graphics Metafile (WebCGM)
2.4. Audio y Video
  • Synchronized Multimedia Integration Language (SMIL)
  • Timed Text
  • Media Fragments
  • Media Annotations
  • Media Access
  • Web Audio Processing
2.5. Accesibilidad
  • Accessibility (All)
  • Web Content Accessibility Guidelines (WCAG)
  • Accessible Rich Internet Applications (WAI-ARIA)
  • User Agent Accessibility Guidelines (UAAG)
  • Authoring Tool Accessibility Guidelines (ATAG)
  • Evaluation and Report Language (EARL)
  • IndieUI
2.6. Internacionalización
  • Internationalization (All)
  • Internationalization of Web Design and Applications
  • Internationalization of Web Architecture
  • Internationalization of XML
  • Internationalization of Web Services
2.7. Web Móvil
  • CSS Mobile
  • SVG Tiny
  • XHTML For Mobile
2.8. Privacidad
  • Platform for Privacy Preferences Project (P3P)
  • Protocol for Web Description Resources (POWDER)
2.9. Matemática en la Web
  • MathML
Más información en la URL:
http://www.w3.org/standards/webarch/

Conclusión y Comentarios
Sin lugar a dudas el trabajo por estandarizar la enorme cantidad de tecnologías Web por la W3C es incansable y para lo cual se apoya en grupos de trabajo conformados por expertos de los principales fabricantes de software, entre ellos: Microsoft, IBM, Oracle, Google, Apple, etc. junto con sus propios investigadores.

Actualmente ya están casi por salir nuevas APIs de Javascript como WebSockets para comunicación entre el Cliente y el Servidor Web en forma eficiente, también WebWorkers para trabajar en forma asíncrona código de Javascript, Audio Processing para el reconocimiento y la emisión (síntesis) de voz, etc.
Creo que el Navegador (Browser) está tomando cada vez mas funcionalidad que antes solo se lograba del lado del servidor mediante los Frameworks como Java, PHP, .NET, etc. Actualmente con HTML5, CSS3 y las APIs de Javascript se podrá controlar casi todo desde el cliente.

Espero que este artículo de 4 partes les ayude a entender que hay que reforzar la programación de lado del cliente: HTML y Javascript, que ya dejaron de ser pasajeros de segunda categoría en el desarrollo de aplicaciones Web, ahora son de primer nivel, eso lo demuestra el auge de jQuery y AJAX (que son Javascript).

A las aplicaciones donde se crean simples paginas con HTML, CSS y código incrustado del servidor se le denominan: Single Page Applications (SPA) y es lo que está de moda sobre todo por las aplicaciones web móviles que requieren el mínimo código y diseño.

Es por esto que haremos más seminarios enfocados en HTML y Javascript, ya vimos HTML5 Canvas para graficar en 2D, pronto veremos HTML5: SVG, WebGL, WebSockets, WebWorkers, Audio y Video, etc.