sábado, 22 de octubre de 2016

Entrenamiento - Seminarios de JavaScript

Seminarios de JavaScript

Como muchos saben ya no pienso dictar Cursos ni Talleres Semanales de ASP.NET MVC & JavaScript, pero en el último Taller que acaba mañana Domingo 23 de Octubre hay temas que no pudimos ver que me gustaría tratarlos detalladamente por lo cual los voy a tocar a manera de Seminarios.

Temas de los Seminarios

1. WebRTC
2. WebGL
3. Maps (Google, Yahoo, Bind, etc)
4. Asynchronous & Parallel Programming (Promises, WebWorkers y ServiceWorkers)
5. Web Components (Polymer)
6. Functional Programming: map, filter, reduce (Elm, ReactiveX)
7. Reactive Programming (React, Flux y Redux)
8. Chrome Apps & Progressive Web Apps (Google)
9. Mobile Native Apps (iOS, Andorid, Xamarin)
10. Hybrid Mobile Apps (Titanium, NativeScript, PhoneGap)
11. Security (Obfuscation, XSS, CSRF, etc)
12. Image File Formats (BMP, JPG, PNG, WebP)
13. Native Data Export (XLSX, DOCX, PPTX, PDF)
14. High Performance Web Site (The Definitive Rules)

Observación

Todos los temas son de nivel avanzado, sobre todo los 4 últimos.

Información

Frecuencia: 1 vez al mes
Día: Último Domingo de cada mes
Horario: 9:00 am a 2:00 pm.
Inicio: 27 de Noviembre del 2016
Duración: 5 horas
Inversión: 100 Soles cada Seminario
Inscripciones: Luis.duenash@gmail.com 
Mínimo de Participantes: 15
Máximo de Participantes: 30
Lugar: Por confirmar (se enviará una semana antes a los registrados)

Comentario Final

Los interesados en participar en el Taller tienen que registrarse enviándome un correo con el Asunto: "Seminarios de JavaScript" e indicar su Nombre Completo y si es ex-alumno o no.

Además quiero resaltar que es obligatorio participar en todos los seminarios, no se puede faltar a ninguno, el que falta quedará retirado para los siguientes seminarios y se le dará la oportunidad a otros interesados.

Los que nunca han llevado algún curso conmigo, es su oportunidad para que vean la diferencia de nivel y profundidad de los temas tratados.

Cada seminario tendrá su PPT y sus respectivos demos o ejemplos muy interesantes y reales.

Para los que estaban pidiendo participar en algún curso o taller solo queda estos Seminarios una vez al mes con lo cual estaría cubriendo casi todo el "Desarrollo Web Desconectado con JavaScript orientado a Performance" que iniciamos hace unos años y donde cubrimos casi todas las APIs hasta la actualidad.

martes, 11 de octubre de 2016

Entrenamiento - Capacitación a Empresas en Desarrollo Web ASP.NET MVC & JavaScript

Capacitación a Empresas en Desarrollo Web ASP.NET MVC & JavaScript

A las Empresas interesadas en seguir una buena capacitación en ASP.NET MVC & JavaScript, les comunico que están disponibles nuevos horarios y con adiciones al contenido, los cuales incluyen además de las verdaderas buenas prácticas de Performance, los temas de Actualización en Tiempo Real (más a fondo) y Manejo de Gran Cantidad de Datos.

Horarios

1. Miércoles y Viernes de 6:00 pm a 9:00 pm (puede ser una hora antes o después)
2. Sábados de 2:00 pm a 8:00 pm.
3. Domingos de 8:00 am a 2:00 pm.

Fechas Propuestas de Inicio

1. Miércoles 26 de Octubre
2. Sábado 29 de Octubre
3. Domingo 30 de Octubre

Contenido del Curso

1. Entendiendo el Desarrollo Web en ASP .NET
1.1. Arquitectura de una Aplicación Web ASP.NET
1.2. Aplicaciones Web Forms y Aplicaciones MVC
1.3. El problema de la Performance en Sitios Web
1.4. Arquitectura de Alto Rendimiento de una Aplicación Web
2. Creando Aplicaciones Web Distribuidas
2.1. Creando Librerías de Entidades del Negocio
2.2. Creando Librerías de Acceso a Datos
2.3. Creando Librerías de Reglas del Negocio
2.4. Creando una Aplicación Web MVC
3. Listando Registros
3.1. Usando el control WebGrid con Listas de Objetos
3.2. Usando JQuery y JSON
3.3. Usando XHR y Strings
4. Trabajando Desconectado con JavaScript
4.1. Filtrando registros
4.2. Paginando registros
4.3. Ordenando registros
4.4. Exportando a Texto y Excel
5. Mantenimiento, Popups, Cabecera Detalle e Impresión
5.1. Mantenimiento de registros
5.2. Creando Popups usando Divs
5.3. Trabajando con Cabecera Detalle
5.4. Imprimiendo datos de la página
6. Presentación Personalizada y Reportes con JavaScript
6.1. Vista Tablas
6.2. Vista Jerárquica Horizontal
6.3. Vista Jerárquica Vertical
6.4. Vista Tabla Cruzada
7. Gráficos con HTML5 y JavaScript
7.1. Creando Gráficos de Datos con Canvas
7.2. Creando Gráficos de Datos con SVG
7.3. Creando Gráficos Interactivos
8. Trabajando con Servicios (WCF y Web API)
8.1. Creando y Consumiendo un Servicio WCF alojado en IIS
8.2. Creando y Consumiendo un Servicio WCF alojado en su propio Servidor
8.3. Creando un Servicio Web API y Consumiendo desde .NET
8.4. Creando un Servicio Web API y Consumiendo desde JavaScript
9. Programación En Tiempo Real en ASP.NET
9.1. Creando un Servidor WebSocket usando Fleck
9.2. Actualizando en Tiempo Real una App Web usando WebSockets
9.3. Creando un Servidor WebSocket propio alojado en IIS
9.4. Actualizando en Tiempo Real cualquier Aplicación usando Sockets
10. Manejando Gran Cantidad de Datos desde la App Web
10.1. Subir Archivos Gigantes desde la App Web al Sistema de Archivos
10.2. Bajar Archivos Gigantes desde el Sistema de Archivos al Cliente
10.3. Grabar Miles de Registros desde la App Web al Servidor de Datos
10.4. Mostrar Miles de Registros desde el Servidor de Datos al Cliente

Observaciones sobre el Contenido

- No Uso Frameworks ni Librerías de Terceros Ni en el Servidor Ni en el Cliente
- 10 % del código está en el servidor en C#
- 90% del código está en el cliente en JavaScript (APIs nativas multi navegador)
- Todo los ejemplos son reales del día a día del programador.

Duración del Curso

Total: 48 horas
Tiempo: 2 meses
Frecuencia: 6 horas semanales

Inversión

- Hasta 5 personas el costo es de 100 soles x hora, es decir, un total de 4800 soles.

- Más de 5 personas el costo es de 20 soles x hora x participante.
Ejemplo: Si son 10 personas el costo será de 200 soles x hora y el total será de 9600 soles.

Nota: Estos costos son solo para Empresas ubicadas en Lima - Perú. Si hay Empresas interesadas en Provincias o fuera del país podemos coordinar sobre la inversión.

Forma de Pago

- La mitad se paga al inicio de la capacitación.

- La otra parte se paga a la mitad de la capacitación.

Contacto

Los interesados enviar un mail a Luis.duenash@gmail.com con los siguientes datos:

Asunto: Capacitación ASP.NET MVC & JavaScript

Contenido:
- Empresa: xxx
- Rubro: xxx
- Número de Participantes: xx
- Horario de Interés: Miércoles y Viernes / Sábados / Domingos
- Contacto: xxx
- Teléfono: xxx
- Dirección: xxx

Para los interesados que envíen un mail se coordinará una visita para hacer una demostración de los temas y ejemplos del curso y para resolver cualquier duda de su personal técnico.

Comentario Final

Los que todavía no se han capacitado conmigo en este último año, no pierdan la oportunidad porque mis técnicas han evolucionado exponencialmente y trato de ver ejemplos que siempre han querido hacer y nunca han podido, es decir, los problemas más frecuentes cuando la red esta lenta, hay gran cantidad de datos que trabajar, pocos recursos en el servidor, etc.

Para darse cuenta de la evolución y las técnicas originales que utilizo pueden ver mi Canal de YouTube donde subo solo algunos videos de las Empresas que autorizan subir el Curso y de algunos ejemplos de mi último Taller:

Canal de YouTube de Luis Dueñas

La mayoría de cursos son iguales, todos te enseñan la mismas cosas que nunca han dado resultado, el problema principal es que las paginas son demasiado lentas y la solución esta en la forma cómo se programa, todos se "facilitan la vida en el desarrollo" usando Frameworks y Librerías pero se "Ponen la soga al cuello" ya que impactan sobre el rendimiento de la aplicación, sino pregúntenle a sus usuarios.

jueves, 6 de octubre de 2016

El Libro del Día: Effective C# (2nd Edition)

El Libro del Día: 2016-10-06

Titulo: Effective C# (2nd Edition)
Autor: Bill Wagner
Editorial: Addison-Wesley
Nro Paginas: 343

Capítulos:
Chapter 1 C# Language Idioms
- Item 1: Use Properties Instead of Accessible Data Members
- Item 2: Prefer readonly to const
- Item 3: Prefer the is or as Operators to Casts
- Item 4: Use Conditional Attributes Instead of #if
- Item 5: Always Provide ToString()
- Item 6: Understand the Relationships Among the Many Different Concepts of Equality
- Item 7: Understand the Pitfalls of GetHashCode()
- Item 8: Prefer Query Syntax to Loops
- Item 9: Avoid Conversion Operators in Your APIs
- Item 10: Use Optional Parameters to Minimize Method Overloads
- Item 11: Understand the Attraction of Small Functions
Chapter 2 .NET Resource Management
- Item 12: Prefer Member Initializers to Assignment Statements
- Item 13: Use Proper Initialization for Static Class Members
- Item 14: Minimize Duplicate Initialization Logic
- Item 15: Utilize using and try/finally for Resource Cleanup
- Item 16: Avoid Creating Unnecessary Objects
- Item 17: Implement the Standard Dispose Pattern
- Item 18: Distinguish Between Value Types and Reference Types
- Item 19: Ensure That 0 Is a Valid State for Value Types
- Item 20: Prefer Immutable Atomic Value Types
Chapter 3 Expressing Designs in C#
- Item 21: Limit Visibility of Your Types
- Item 22: Prefer Defining and Implementing Interfaces to Inheritance
- Item 23: Understand How Interface Methods Differ from Virtual Methods
- Item 24: Express Callbacks with Delegates
- Item 25: Implement the Event Pattern for Notifications
- Item 26: Avoid Returning References to Internal Class Objects
- Item 27: Prefer Making Your Types Serializable
- Item 28: Create Large-Grain Internet Service APIs
- Item 29: Support Generic Covariance and Contravariance
Chapter 4 Working with the Framework
- Item 30: Prefer Overrides to Event Handlers
- Item 31: Implement Ordering Relations with IComparable<T> and IComparer<T>
- Item 32: Avoid ICloneable
- Item 33: Use the new Modifier Only to React to Base Class Updates
- Item 34: Avoid Overloading Methods Defined in Base Classes
- Item 35: Learn How PLINQ Implements Parallel Algorithms
- Item 36: Understand How to Use PLINQ for I/O Bound Operations
- Item 37: Construct Parallel Algorithms with Exceptions in Mind
Chapter 5 Dynamic Programming in C#
- Item 38: Understand the Pros and Cons of Dynamic
- Item 39: Use Dynamic to Leverage the Runtime Type of Generic Type Parameters
- Item 40: Use Dynamic for Parameters That Receive Anonymous Types
- Item 41: Use DynamicObject or IDynamicMetaObjectProvider for Data Driven Dynamic Types
- Item 42: Understand How to Make Use of the Expression API
- Item 43: Use Expressions to Transform Late Binding into Early Binding
- Item 44: Minimize Dynamic Objects in Public APIs
Chapter 6 Miscellaneous
- Item 45: Minimize Boxing and Unboxing
- Item 46: Create Complete Application-Specific Exception Classes
- Item 47: Prefer the Strong Exception Guarantee
- Item 48: Prefer Safe Code
- Item 49: Prefer CLS-Compliant Assemblies
- Item 50: Prefer Smaller, Cohesive Assemblies

Descarga:
Effective_C#_2nd_Edition