{"id":1,"date":"2023-08-10T10:35:39","date_gmt":"2023-08-10T08:35:39","guid":{"rendered":"https:\/\/eduardogarcia.dev\/?p=1"},"modified":"2024-01-15T07:08:59","modified_gmt":"2024-01-15T06:08:59","slug":"hola-mundo","status":"publish","type":"post","link":"https:\/\/eduardogarcia.dev\/index.php\/2023\/08\/10\/hola-mundo\/","title":{"rendered":"Eduardo Garc\u00eda Mora"},"content":{"rendered":"\n<p>Software Developer .NET<\/p>\n\n\n\n<p>ABOUT ME<br>Desarrollador de software .NET con algunos a\u00f1os de experiencia, he aprendido a lo largo de mi carrera a entender varios lenguajes de programaci\u00f3n, lo que me ha hecho darme cuenta que los diferentes lenguajes y entornos de desarrollo sirven a propositos diferentes pero la programaci\u00f3n en si misma es la igual para todos ellos y entender que si conocemos los principios b\u00e1sicos de programaci\u00f3n nos ayuda a cumplir cualquier reto al que nos enfrentemos sin importar el entorno ni el lenguaje de programci\u00f3n.<br>Por alguna raz\u00f3n siempre me gusto C# para programar desde que lo conic\u00ed, me parece f\u00e1cil de entender y organizar<\/p>\n\n\n\n<p>Tengo un gusto desmedido por los videojuegos, especialmente los juegos retro de mi \u00e9poca donde los videojuegos parecian m\u00e1s a videojuegos y no eran tan realistas y como desarrollador me ha nacido la curiosidad de crear y programar uno con mis propios medios aunque a lo que m\u00e1s he llegado es a hacer algunas modificaciones en una rom de nes de Super Mario Bros (que se ha perdido en el tiempo) y algun tutorial que he visto en internet.<\/p>\n\n\n\n<p>Por esa misma curiosidad que siento me ha hecho crear algo de contenido en algunos blogs con<\/p>\n\n\n\n<p>Desarrollador de software .NET, ya con algunos a\u00f1os de experiencia, he aprendido a lo largo de mi carrera al aprender diferentes lenguajes de programaci\u00f3n<\/p>\n\n\n\n<p>EXPERIENCE<\/p>\n\n\n\n<p>Cuando entre a trabajar por primera vez a una empresa de software despu\u00e9s de terminar la universidad se estaba desarrollando un sistema administrativo web con facturaci\u00f3n electronica, un proyecto ASP .NET al cual me integre rapidamente para crear los formularios de captura de datos y guardarlos en la Base de Datos en SQL que no me cost\u00f3 trabajo entender y crear las consultas de insercion, modificacion, consulta y borrado, con el paso del tiempo estaba dando mantenimiento a esos formularios o agregando mas datos o funciones, tambien ya estaba haciendo el deploy en el servidor (solo eramos dos personas, por lo que tenia que aprender a hacer estas actividades lo mas rapido posible, adem\u00e1s que el proyecto estaba en una etapa manejable por decirlo asi, en el futuro cercano se integrar\u00f3n mas desarrolladores), y tambi\u00e9n me fui metiendo en la parte de la Facturaci\u00f3n Electr\u00f3nica hasta hacer las modificaci\u00f3nes y conexi\u00f3nes al proveedor de timbres (PAC) necesarias cuando habia alguna actualizaci\u00f3n en el proveedor, adem\u00e1s del soporte del sistema, formatos de impresi\u00f3n RDLC, reportes, etc.<\/p>\n\n\n\n<p>Se present\u00f3 la oportunidad o necesidad de convertirnos en un proveedor del sistema administrativo creando un WebService para que software de terceros pudieran usar principalmente la parte de de Facturaci\u00f3n Electr\u00f3nica recibiendo la informaci\u00f3n en formato XML para poder guardarla al sistema y ejecutar las funci\u00f3nes de timbrado.<\/p>\n\n\n\n<p>Despues de tener implementado el WebService para la facturaci\u00f3n electr\u00f3nica vimos que ten\u00edamos la oportunidad de complementar el sistema incorporando ventas y\/o pedidos directamente en ruta aprovechando los telefonos inteligentes y su conexi\u00f3n a internet, asi que creamos las funciones necesarias para la creacion de esos documentos en otro WebService y comenzar la investigaci\u00f3n para crear una aplicaci\u00f3n Android.<br>En ese entonces estaba la version 2.3 para telefonos y 3.0 para tabletas y se creo la aplicaci\u00f3n utilizando Eclipse, Java y el SDK para Android, la aplicaci\u00f3n iniciaba sesion, descargaba la informacion necesaria, hacia las capturas de los documentos y subia la informaci\u00f3n capturada.<br>Tiempo despu\u00e9s se creo una aplicacion de escritorio WPF que consume el mismo WebService pero casi no tuve participaci\u00f3n.<\/p>\n\n\n\n<p>Paso algo de tiempo y el timbrado electr\u00f3nico lo hicieron obligatorio lo que result\u00f3 en un incremento de usuarios que necesitaban hacer facturaci\u00f3n pero nada m\u00e1s, entonces se decidi\u00f3 crear una versi\u00f3n que solo tuviera las funciones de Facturaci\u00f3n, fue muy r\u00e1pido ya que la estructura y formularios eran practicamente iguales, pero ya que ASP era muy tardado por recargar la pagina para cualquier comunicaci\u00f3n al servidor, decidimos probar algo diferente y utilizar callbacks para hacer las llamadas al servidor, si nos funcion\u00f3 pero a qu\u00e9 costo?, no lo s\u00e9, creo que no fue la mejor opci\u00f3n o quizas no estabamos preparados para implementarlos correctamente, en fin la experiencia no fue agradable aunque soprotable.<\/p>\n\n\n\n<p>Mientras pasa el tiempo las necesidades de nuestros usuarios van en aumento y nuestro compromiso de cubrir esas necesidades tambi\u00e9n, lo que nos lleva a la planificaci\u00f3n de otro software, mas manejable y escalable, m\u00e1s r\u00e1pido y con las actualizaci\u00f3nes de Facturaci\u00f3n m\u00e1s recientes,que en ese tiempo hubo un cambio de version importante y por eso mismo nos vimos en la necesidad de trabajar a marchas forzadas para tener el cambio a tiempo.<\/p>\n\n\n\n<p>En este caso utilizamos el Modelo Vista Controlador (MVC) con AJAX para pasaar la informaci\u00f3n al servidor ademas de las caracter\u00edsticas que ya veniamos manejando se agregar\u00f3n muchas funciones, modulos y complementos de facturaci\u00f3n nuevos.<br>Despues he estado en mantenimiento, corrigiendo errores, Refactorizando y Optimizando funciones, Actualizando la Facturaci\u00f3n.<\/p>\n\n\n\n<p>Creamos una API REST solo de Facturaci\u00f3n que hace de conducto para hacer el Timbrado y regresarlo a la llamada<\/p>\n\n\n\n<p>Como era el \u00fanico con acceso a los servidores y cuando se creaban o editaban formatos de impresion tenia que subirlos yo unicamente, hice una aplicaci\u00f3n de escritorio con Windows Forms para hacer la conexion por FTP a los servidores y quien creaba un formato de impresion solo tiene que seleccionar o arrastrar el archivo a la aplicaci\u00f3n y subirlo automaticamente, con esto se reduce en un 80% o mas el tiempo de actualizacion o creaci\u00f3n de un formato de impresion o un reporte.<br>Aprovechando la misma aplicaci\u00f3n le agregue las funci\u00f3nes para subir a los servidores los archivos necesarios para hacer el deploy de todo el sistema administrativo, para cada actualizaci\u00f3n, haciendo una automatizacion almenos en la subida de los archivos y reduciendo el tiempo de ese proceso que si se hiciera manualmente en un 50% y con algunas otras funciones se reducir\u00e1 aun mas<\/p>\n\n\n\n<p>PROJECTS<br>Android &#8211; HashtagFacil<br>Android &#8211; Play Random Game<br>mejorprogramacion.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software Developer .NET ABOUT MEDesarrollador de software .NET con algunos a\u00f1os de experiencia, he aprendido a lo largo de mi carrera a entender varios lenguajes de programaci\u00f3n, lo que me ha hecho darme cuenta que los diferentes lenguajes y entornos de desarrollo sirven a propositos diferentes pero la programaci\u00f3n en si misma es la igual [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/posts\/1"}],"collection":[{"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":1,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions\/10"}],"wp:attachment":[{"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eduardogarcia.dev\/index.php\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}