Mostrando las entradas con la etiqueta Desarrollo Web. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Desarrollo Web. Mostrar todas las entradas

martes, 6 de diciembre de 2022

Programa Anual 2023 de Desarrollo Multiplataforma y Multilenguaje

Contenido del Programa por Mes:

Parte 1: Desarrollo Web con ASP.NET

1. Desarrollo Web con ASP.NET MVC

2. Desarrollo Web con APIs de JavaScript

3. Servicios Web en .NET

4. WebSockets en .NET

Parte 2: Desarrollo Mobile Nativo

5. Desarrollo Mobile en Android

6. Desarrollo Mobile en iOS

Parte 3: Desarrollo en Python

7. Python, Pandas, NumPy y Matplotlib

8. Desarrollo Windows en Python con PyQT

9. Desarrollo de Aplicaciones Web en Python con Django

10. Servicios Web en Python con Django

Parte 4: Integración de Aplicaciones .NET, Android, iOS, Python

11. Integración de Aplicaciones en Tiempo Real con Servicios Web & Web Sockets Parte 1

12. Integración de Aplicaciones en Tiempo Real con Servicios Web & Web Sockets Parte 2


Datos del Programa

Duración: 12 meses

Modalidad: Virtual Online

Costo Mensual: 300 soles (USD 80 para extranjeros)

Horario: Martes y Jueves de 7:00 pm a 11:00 pm

Inicio: Martes 10 de Enero del 2023


Registro en el Programa

Los interesados deberán enviar un mail a Luis.duenash@gmail.com:

Asunto: Programa Anual 2023

Nombre Completo: XXXXXXXXXXXXX

Documento de Identidad: XXXXXX

Lugar de Procedencia: Ciudad/Pais

Ha llevado Cursos antes con Lduenas: Si/No

Si es nuevo como se entero: Blog/LinkedIn/Facebook/UnAlumno

domingo, 29 de mayo de 2022

Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas (Versión Posters)

 Poster en Castellano


Poster en Ingles



Los 10 Mandamientos de la Performance en Desarrollo Web por Luis Duenas

Comentario Inicial

Un problema frecuente en la programación es la falta de rendimiento o velocidad (Performance) en aplicaciones web y esto se debe a que existen principios que si no los sigues te esperan muchos problemas (aunque al programador no le afecta directamente sino mas bien a los usuarios).

Muchos creen conocer o programar bien pero desconocen estas reglas esenciales en el desarrollo web, por este motivo voy a publicar los 10 mandamientos de la performance en el desarrollo web que te ayudaran a mejorar tus aplicaciones.

Síntomas que indican que los programadores no conocen sobre Performance Web

A continuación te listo algunos síntomas que indican que los programadores no conocen sobre performance web:

1. Las paginas web demoran en cargar

2. Las consultas demoran en mostrarse, sobre todo si tienen cientos o miles de registros

3. La grabación de un registro con muchos campos demora

4. La grabación de varios registros demora

5. La subida de un archivo grande se demora mucho y sobre todo cuando tiene muchos Megabytes nunca se sube y se cae

6. Cuando hay poco ancho de banda no carga la data.

7. Si son muchas imágenes se muestran con lentitud, etc.

Los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica

Antes de iniciar con la lista, recordemos los 10 Mandamientos del Compendio del Catecismo de la Iglesia Católica:

1. Amarás a Dios sobre todas las cosas.

2. No tomarás el nombre de Dios en vano.

3. Santificarás las fiestas.

4. Honrarás a tu padre y a tu madre.

5. No matarás.

6. No cometerás actos impuros.

7. No robarás.

8. No darás falsos testimonios ni mentirás.

9. No consentirás pensamientos ni deseos impuros.

10. No codiciarás los bienes ajenos.

Los 10 Mandamientos de la Performance en Desarrollo Web

1. En desarrollo Web, elegirás la Performance sobre todas las demás características, tales como Seguridad, Reusabilidad, Mantenibilidad, Responsividad, etc.

2. No harás request en vano. Ni al Servidor Web ni a la Base de Datos, ni a cualquier recurso del Backend. Para esto debes agrupar llamadas al Servidor Web y agrupar lógica en solo un Procedimiento Almacenado en vez de varios.

3. Ahorraras al máximo el ancho de banda. Al hacer get (recibir) o post (enviar) debes reducir los datos seleccionando el mejor formato entre los cuales están: HTML, XML, JSON, CSV, Bytes. A veces es necesario comprimir y descomprimir si no demora.

4. Honrarás la simplicidad en vez de la complejidad y la generalidad en vez de la especificidad del desarrollo. Esto te permitirá reducir el código y te servirá para muchos casos de uso.

5. No matarás la Memoria usando decenas o cientos de variables de todo tipo y funciones en la pila usando excesivas capas de código. También, no matarás la CPU usando bucles excesivos ni recursividad sobre todo en el servidor.

6. No cometerás exceso en el uso de librerías y frameworks que harán mas pesado tu desarrollo. Es preferible crear solo la funcionalidad que necesites en vez de usar algo que viene con cientos de funciones que no las vas a usar y te consumirán mucha memoria.

7. No bloquearas los recursos del backend en llamadas concurrentes al servidor web, base de datos y sistema de archivos. Para esto debes hacer uso de programación asíncrona, paralela y trabajar en memoria en vez de disco.

8. No mentirás a tus usuarios diciendo que las aplicaciones web demoran porque no están locales y hay que viajar hasta el servidor web justificando la demora por falta de conocimiento de técnicas de performance.

9. No consentirás que ninguna tarea demore aunque el ancho de banda sea reducido, para lo cual debes hacer uso de trabajo por bloques sea al enviar o recibir. Puedes optimizar imágenes, crear paquetes de bytes, comprimir, etc.

10. No codiciarás ni envidiarás el código de terceros tales como Librerias y/o Frameworks aunque sea de grandes empresas. Lo mejor es que aprendas a crear tus propios recursos y el desarrollo será cada vez mas rápido. No te dejes influenciar por lo que la mayoría hace y trata de comprobar si es verdad lo que se dice.

Comentario Final

Los que no respeten dichos mandamientos serán considerados pecadores del desarrollo web y les espera el infierno de la lentitud de su aplicación, quejas de los usuarios y la consiguiente perdida para el negocio.

Al igual que en la religión donde la mayoría de personas no cumplen los mandamientos de la Iglesia Católica (siendo católicos), en el desarrollo web los programadores no cumplen ninguna de estas reglas y después se quejan de que sus sistemas están lentos.

Sino quieres que a ti o algún conocido le espere el Infierno de la web comparte esta publicación para que los programadores lo tengan en cuenta.

miércoles, 29 de noviembre de 2017

Preguntas y Respuestas de Desarrollo Web en ASP.NET & JavaScript

A partir de este momento estaré inaugurando una nueva sección de videos en mi canal de youtube que consistirá en responder las dudas sobre desarrollo web, para lo cual los interesados deberán enviarme un correo con el siguiente formato:

Para: Luis.duenash@gmail.com
Asunto: Preguntas y Respuestas de Desarrollo Web .NET
Nombre Completo: Apellidos y Nombres
Ubicación Geográfica: Ciudad y País
Tipo de Perfil: Estudiante o Profesional
Lugar de: Estudio o Trabajo
Categoria de la Pregunta: Descrita mas abajo
Pregunta:
Lo mas detalla posible.....

Las Categorías pueden ser entre otras:

Lenguajes
- C#
- Visual Basic

.NET Framework
- ADO.NET
- Serialización
- Cifrado
- Reflection
- Programación Asíncrona
- Programación Paralela

ASP.NET
- Web Forms
- MVC

Servicios
- Servicios Web XML
- Servicios WCF
- Servicios Web API

Formatos de Datos
- Binario
- XML
- JSON
- CSV

Manejo de Archivos
- De Texto: TXT, CSV
- Office Open XML: XLSX, DOCX, PPTX
- Contenedores Comprimidos: OpenXPS y PDF
- Imagenes: Mapa de Bits (BMP, PNG, JPG, GIF) y Vectoriales (SVG)

Protocolos
- HTTP
- TCP
- Web Sockets

Front End
- JavaScritpt
- HTML
- CSS

Arquitecturas
- Orientada a Servicios (SOA)
- Distribuida con Capas (LDA)
- Ligera Sin Capas, etc.

Performance
- Lectura y Escritura de Archivos
- Concatenación de gran cantidad de datos
- Presentación en Pantalla de miles de registros o cientos de páginas
- Exportación e Importación de miles de registros
- Velocidad de Carga de una Página Web, etc.

Las preguntas No pueden ser sobre:
- Frameworks, como por ejemplo Entity Framework, LINQ, MyBatis, Hibernate, etc.
- Librerías, como por ejemplo jQuery, Angular, Bootstrap, Ember, React, DevExpress, etc.
En caso de preguntar sobre estos les explicaré porque no se debe usar (desventajas).

lunes, 2 de enero de 2017

Entrenamiento - Cierre de Inscripciones para la Charla Gratuita

Cierre de Inscripciones para la Charla Gratuita

Estimados alumnos y visitantes del Blob, quería comunicarles que solo hasta hoy Lunes tienen la oportunidad de registrarse para la charla gratuita (presencial) de este Domingo 8 de Enero sobre "Desarrollo de Software Ligero y Desconectado" con implementación de ejemplos en ASP.NET MVC & JavaScript.

Es la oportunidad para que los profesionales vean cuales son los problemas frecuentes con los sistemas, que los originan y cómo se resuelven y que contrariamente todo lo que están aprendiendo o que van a aprender va a contribuir a que se den dichos problemas sobre todo el de la Performance, es decir actualmente las páginas desarrolladas son demasiado lentas.

Con los ejemplos que verán se darán cuenta que una aplicación web puede ser igual de rápida que una Windows o una App Nativa si es que se conoce como funciona la web, sin importar la cantidad de datos que tengamos que procesar ni la cantidad de usuarios que se conecten.

Los que desean participar solo pueden enviar hasta hoy un mail a Luis.duenash@gmail.com con los siguientes datos:
- Asunto: Charla Gratuita de Desarrollo de Software Ligero y Desconectado
- Nombre Completo
- Tipo Perfil: Profesional / Estudiante / Otro
- Lugar de Trabajo o Estudio: Nombre de la Universidad / Instituto
- Ex-alumno (PECI, Web Developer, Carrera, etc): Si / No

Mañana estaré enviando a los registrados la dirección exacta donde se realizará la charla de 10:00 am a 1:00 pm.

lunes, 26 de diciembre de 2016

Entrenamiento - Charla Gratuita sobre Desarrollo de Software Ligero y Desconectado

Charla Gratuita sobre Desarrollo de Software Ligero y Desconectado

A los interesados en conocer de cerca mi arquitectura y metodología de desarrollo de software ligero y desconectado basado en Performance, les comunico que estaré dando una Charla Gratuita de 3 horas el día Domingo 8 de Enero del 2017 de 10:00 am a 1:00 pm y el lugar se estará enviando solo a los registrados.

Esta charla es solo para nuevos participantes, es decir, los alumnos que ya están llevando el Taller no sería recomendable que se inscriban para darle oportunidad a nuevas personas, ya sea profesionales o estudiantes de poder conocer las ventajas de mi forma de trabajo,

El procedimiento para registrarse es enviar un mail a Luis.duenash@gmail.com con la siguiente información:
- Nombre Completo
- Tipo Perfil: Profesional / Estudiante / Otro
- Lugar de Trabajo o Estudio (Nombre de la Universidad o Instituto)
- Ha sido ex-alumno (PECI, Web Developer, Carrera, etc)

Recuerden que las vacantes son limitadas por la capacidad del lugar y esta es la única forma de participar en mis Talleres, es decir, solo invito a los que constantemente muestran interés y no a cualquiera que tenga plata para pagar.

miércoles, 21 de diciembre de 2016

Presentación - Desarrollo de Software Ligero y Desconectado

Desarrollo de Software Ligero y Desconectado

Introducción

Comparto con ustedes una de mis presentaciones de este año sobre la Necesidad de una Nueva Arquitectura de Software de Alto Rendimiento (ASAR): Ligera, Desconectada, Segura y Disponible (LDSD) que busca cambiar el paradigma del desarrollo que actualmente esta orientado a la Reusabilidad (N-Capas, Servicios, Frameworks, Librerías, Plantillas, etc) y No a la Performance (que es algo que se necesita Urgente).

La actual arquitectura y los temas que se aprenden en todas partes del mundo solo llevan a que las Aplicaciones sean demasiado lentas ya que se conectan constantemente y ocupan todo el ancho de banda con los formatos existentes (XML, JSON), por lo cual es necesario desconectarse y usar un formato mas ligero (CSV).

En estos últimos años vengo trabajando mucho en este tema y mi intención es compartir con la mayor cantidad de personas mi visión sobre lo que debería corregirse en los Sistemas sino los problemas continuaran, es por eso comparto esta Presentación donde comento los Problemas de los Sistemas, las Causas y la Solución.

Presentación

Diapositiva 1

Diapositiva 2

Diapositiva 3

Diapositiva 4

Diapositiva 5

Diapositiva 6

Diapositiva 7

Diapositiva 8

Diapositiva 9

Diapositiva 10

Diapositiva 11

Diapositiva 12

Diapositiva 13

Diapositiva 14

Diapositiva 15

Diapositiva 16

Diapositiva 17

Diapositiva 18

Diapositiva 19

Comentario Final

Si su objetivo principal es que las aplicaciones sean rápidas, nada de lo que se enseña te va a ayudar en dicho objetivo, es decir, si aprendes el uso de Frameworks, Librerías, Plantillas, Patrones, etc, más el enfoque conectado, solo conseguirán que sus páginas sean mas lentas.

Mi aporte para resolver estos problemas los puedo resumir en lo siguiente:
1. Enviar la menor cantidad de archivos: La página, un solo JS, un solo CSS y un solo paquete con las imágenes.
2. Trabajar en forma desconectada para reducir el número de conexiones.
3. Usar CSV como formato de datos para el transporte y así reducir el ancho de banda.
4. Eliminar el uso de capas y bucles en el Back-End
5. Serializar los datos en el Servidor de Datos (SQL Server, Oracle, etc).
6. Trabajar con JavaScript la presentación, búsquedas, filtros, ordenaciones, paginaciones, exportaciones, importaciones, previews de archivos, etc.
7. Actualizar en tiempo real usando Sockets y no Servicios ni llamar constantemente al servidor, etc.

Este breve resumen es la implementación de mi Arquitectura Ligera y Desconectada que considero la alternativa mas eficiente para resolver el problema de la performance que es el "Gran Problema" y el más urgente de resolver.

La mayoría de desarrolladores solo piensan en "Crear" y aprenden muchas cosas que No servirán de nada y solo contribuirán a los problemas descritos en la presentación, los cuales pueden evitarse si uno entiende como funciona una aplicación.

Solo me queda aconsejar a los más jóvenes, sobre todo que recién empiezan, que no se dejen guiar por la moda y las "nuevas formas de desarrollar" que al final cuando trabajen se darán cuenta de que todo lo que estudiaron y las plantillas de arquitectura que les dieron para seguir No fueron las mejores.

En el colmo de la ignorancia, mucha gente que sigue el "Modelo Equivocado" y todavía se pregunta "Pero si ya aumentamos las características del Servidor (CPU, RAM, Disco, etc), porque las Aplicaciones siguen Lentas". La respuesta es simple: "NO es problema de Hardware, pero si de Software, en este caso de Aplicación" y la capacitación que seguiste, la arquitectura que elegiste y todo lo que aprendiste "No resolverá dicho problema".

Los que han visto mi trabajo en este último año y basta como prueba lo que hicimos este Domingo en el Seminario de JavaScript saben que en todos los extremos desde el Back-End hasta el Front-End mejoramos el tiempo de respuesta convirtiendo a la aplicación en "Super Rápida".

Para finalizar, quiero agradecer a todos mis alumnos que durante este año me permitieron mostrar mi trabajo y compartir muchos momentos de reflexión los cuales dieron sus frutos creando una arquitectura sólida en cuanto a performance, la cual vamos a mejorar al próximo año aumentando la seguridad, que son los principales problemas al cual debemos enfocarnos y en el cual trato de aportar algo.