<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: apis3445</title>
    <description>The latest articles on DEV Community by apis3445 (@apis3445).</description>
    <link>https://dev.to/apis3445</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F288270%2F879ed03d-23b6-4aff-bd9a-309253327584.jpg</url>
      <title>DEV Community: apis3445</title>
      <link>https://dev.to/apis3445</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/apis3445"/>
    <language>en</language>
    <item>
      <title>Herramientas y Frameworks interesantes de programación - Parte 4 - Diseño web</title>
      <dc:creator>apis3445</dc:creator>
      <pubDate>Tue, 07 Jan 2020 04:22:09 +0000</pubDate>
      <link>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-4-diseno-web-nfh</link>
      <guid>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-4-diseno-web-nfh</guid>
      <description>&lt;p&gt;En esta cuarta parte hablaré acerca de software para crear tus prototipos o crear páginas web html/css/javascript sin programación del lado del servidor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software para diagramas
&lt;/h3&gt;

&lt;p&gt;Si deseas hacer diagramas de tus aplicaciones puedes utilizar alguno de los siguientes:&lt;/p&gt;

&lt;h4&gt;
  
  
  Draw.io
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://about.draw.io/category/draw-io/" rel="noopener noreferrer"&gt;Draw.io&lt;/a&gt; Es una herramienta en línea que te permite crear diferentes tipos de prototipos y diagramas. Se conecta con google drive, one drive, Dropbox para poder compartir tus diagramas. &lt;/p&gt;

&lt;p&gt;Es gratuita y cuenta con una gran variedad de diagramas como diagramas de flujo, gráficas, organigramas, etc.&lt;/p&gt;

&lt;h4&gt;
  
  
  Gliffy
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.gliffy.com/diagrams" rel="noopener noreferrer"&gt;Gliffy&lt;/a&gt; Es otra herramienta web que te permite crear y compartir tus diagramas. Empezó como una aplicación gratuita ahora la edición personal cuesta $7.99 dólares al mes. También cuenta con una gran variedad de formas para crear tus diagramas.&lt;/p&gt;

&lt;h4&gt;
  
  
  Structurizr
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://structurizr.com/help/tour" rel="noopener noreferrer"&gt;Structurizr&lt;/a&gt; Es una herramienta que te permite crear los diagramas de como esta diseñada tu aplicación, basada en &lt;a href="https://c4model.com" rel="noopener noreferrer"&gt;C4 Model&lt;/a&gt; el cual es una forma de hacer diagramas de como esta tu aplicación como si fuera un mapa de google en la vista de un ciudad donde explicas de forma general quien usa el sistema y los otros software con los que interactúa (diagrama de contexto), luego vas haciendo zoom y se va detallando más y ves las colonias (diagrama de contenedor) aquí explicas de forma general como esta compuesto tu sistema, por ejemplo esta compuesto de una app para celulares, una aplicación web y una base de datos, luego le das zoom al mapa y están las cuadras (diagrama de componentes) donde muestras de forma general como esta construido tu aplicación como su nombre lo dice los principales componentes, por ejemplo los controladores principales de tu aplicación y por último la vista de la calle (diagrama de código) el cual puede ser generado por el IDE en el cual estas desarrollando. Es una forma interesante de definir tu aplicación de lo general a lo particular para que sea entendido más fácilmente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software para prototipos
&lt;/h3&gt;

&lt;p&gt;Si deseas crear prototipos de tu aplicación para mostrarlo a los usuarios antes de programas estas son algunas opciones:&lt;/p&gt;

&lt;h4&gt;
  
  
  Sketch2code
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://sketch2code.azurewebsites.net/generated-html/" rel="noopener noreferrer"&gt;Sketch2code&lt;/a&gt; Es para prototipos sencillos, puedes subir una imagen con tu prototipo hecho en pluma y papel y te crea el código html necesario para tu prototipo. Solo funciona con prototipos bastante sencillos, mas por algo se empieza.&lt;/p&gt;

&lt;h4&gt;
  
  
  PowerPoint
&lt;/h4&gt;

&lt;p&gt;Si instalas Visual Studio desde su versión Community en windows y tienes Office instalado se te agrega a Powerpoint una pestaña StoryBoard Shapes donde cuenta con formas para que crees tus prototipos. &lt;/p&gt;

&lt;h4&gt;
  
  
  Figma
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.figma.com" rel="noopener noreferrer"&gt;Figma&lt;/a&gt; Es una aplicación web que te permite crear tus prototipos con algunas funciones como simular clicks y que te muestre otra pantalla y compartirlos de forma web, tiene una versión gratuita para un equipo de 2 personas y 3 proyectos y la versión de pago que empieza en 12 dólares por usuario. &lt;/p&gt;

&lt;h4&gt;
  
  
  Adobe XD
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.adobe.com/mx/products/xd.html" rel="noopener noreferrer"&gt;Adobe XD&lt;/a&gt; Es una aplicación de escritorio creada por Adobe la cual la puedes usar de forma gratuita en Windows/Mac con un espacio máximo de 2 GB. Al igual que figma te permite exportar tus prototipos para que sean más interactivos. Si estas acostumbrado a los productos de Adobe es una buena herramienta ya que cuenta con funciones para crear de forma fácil una galería de imágenes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software para crear tus páginas web
&lt;/h3&gt;

&lt;p&gt;Si deseas crear tus páginas web pero no tienes conocimientos de programación y no quieres buscar y descargar plantillas html, puedes utilizar alguno de estos 2 productos:&lt;/p&gt;

&lt;h4&gt;
  
  
  Mobirise
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://mobirise.com" rel="noopener noreferrer"&gt;Mobirise&lt;/a&gt; Aplicación disponible para Windows/Mac/Android, aunque me parece que es difícil diseñar en un celular.&lt;/p&gt;

&lt;p&gt;Es un programa el cual cuenta con plantillas prediseñadas que son fáciles de configurar por personas mas enfocadas a diseño. La versión gratuita contiene pocas plantillas y componentes. Por lo general tiene un descuento donde te ofrecen mas plantillas y componentes a un precio de $99 dólares por año. Si tu página no es muy grande es una buena opción, una parte interesante es que ofrece plantillas &lt;a href="https://developers.google.com/amp" rel="noopener noreferrer"&gt;AMP&lt;/a&gt; el cual es un proyecto creado por google el cual busca crear páginas muy rápidas que se vean bien en celulares. &lt;/p&gt;

&lt;p&gt;Una de sus limitantes es que sí agregas muchas páginas se pone bastante lento y aunque tiene su editor html en la versión de pago, es difícil modificar los componentes preestablecidos con funciones que no han agregado aún. También no te permite organizar tus páginas en carpetas, mas si ya tienes una página más grande igual ya sería mejor utilizar un software mas avanzado.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bootstrap Studio
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://bootstrapstudio.io" rel="noopener noreferrer"&gt;Boostrap Studio&lt;/a&gt; Cuenta con un demo web para que lo pruebes antes de comprarlo, tiene un costo de única ocasión de $60 dólares, también cuenta con plantillas y algunos componentes como galerías de imágenes ya diseñados que solo es cuestión de configurarlo.&lt;/p&gt;

&lt;p&gt;Vi el código generado por los 2 y me parece que esta bastante óptimo por lo mismo que son templates ya establecidos.&lt;/p&gt;

&lt;p&gt;Si lo que buscas son sitios de templates, me parece que &lt;a href="https://www.creative-tim.com" rel="noopener noreferrer"&gt;Creative tim&lt;/a&gt; cuenta con una gran variedad de templates html/angular/vue/react algunos gratuitos y otros de paga. &lt;/p&gt;

&lt;h3&gt;
  
  
  Diseño
&lt;/h3&gt;

&lt;p&gt;Si lo que deseas es modificar imágenes&lt;/p&gt;

&lt;h4&gt;
  
  
  Pixlr
&lt;/h4&gt;

&lt;p&gt;Editor web gratuito, que te permite agregar efectos o retoques a tus imágenes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Adobe Photoshop Express
&lt;/h4&gt;

&lt;p&gt;Adobe cuenta con una versión gratuita de su programa estrella como es el photoshop&lt;/p&gt;

&lt;h4&gt;
  
  
  Gimp
&lt;/h4&gt;

&lt;p&gt;Aplicación de escritorio bastante conocida en Linux para editar tus imágenes es gratuita.&lt;/p&gt;

&lt;h4&gt;
  
  
  Inkscape
&lt;/h4&gt;

&lt;p&gt;Si eres un usuario mas acostumbrado a Corel, Inkscape puede ser una buena opción gratuita.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sistemas web
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Tadabase
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://tadabase.io" rel="noopener noreferrer"&gt;Tadabase&lt;/a&gt; Si lo que deseas es crear tus aplicaciones web sin tener tantos conocimientos de programación pero si por ejemplo de excel o programas como access donde con asistentes creas tu sistema tadabase es muy buena opción, empezó con una versión gratuita, mas ya tiene costo el cual empieza en $24 dólares al mes. Cuenta con muchas plantillas web ya creadas que puedes personalizar para por ejemplo tener tu sistema web CRM o de Administración de proyectos, etc.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Herramientas y Frameworks interesantes de programación - Parte 3 Pruebas Automáticas</title>
      <dc:creator>apis3445</dc:creator>
      <pubDate>Fri, 03 Jan 2020 23:37:47 +0000</pubDate>
      <link>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-3-p34</link>
      <guid>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-3-p34</guid>
      <description>&lt;p&gt;En esta tercera parte hablaré de algunas herramientas para programar código que pruebe nuestras aplicaciones. &lt;/p&gt;

&lt;p&gt;Si tu proyecto es mediano y esta en constante crecimiento recomiendo que programes código para revisar que tu código funciona correctamente. Este código se puede ejecutar cuando los programadores suben sus cambios o después de que liberas una nueva versión de tu sistema de forma automática.&lt;/p&gt;

&lt;p&gt;Hay diferentes tipos de pruebas las unitarias que como su nombre lo dice prueban una solo función de tu sistema sin conexiones externas como bases de datos, archivos, otros sistemas, servicios, etc. &lt;/p&gt;

&lt;p&gt;Las pruebas de integración que prueban tu código ya integrado con bases de datos, otros sistemas, archivos, etc.&lt;/p&gt;

&lt;p&gt;Las pruebas de usuario que simulan el comportamiento de los usuarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pruebas unitarias con .NET Core
&lt;/h3&gt;

&lt;p&gt;Si estas utilizando .Net Core con EF Core, puedes utilizar una base de datos en memoria con datos que creas manualmente para probar las reglas de negocio. &lt;/p&gt;

&lt;p&gt;Por ejemplo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;DbContextOptionsBuilder&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;CaducaContext&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;
                 &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ConfigureWarnings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Ignore&lt;/span&gt;
                  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;InMemoryEventId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TransactionIgnoredWarning&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UseInMemoryDatabase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;databaseName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"TestCaduca"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;Options&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;CaducaContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;.Net cuenta con 3 frameworks para testing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;MSTest: Framework desarrollado por Microsoft no necesitas agregar nada adicional al Visual Studio&lt;/li&gt;
&lt;li&gt;xUnit: Es un framework mas nuevo, gratis y open source que esta ganando popularidad con algunos conceptos como theory que te permite crear tus pruebas con parámetros y te permite priorizar los casos de forma más fácil. Necesita un paquete adicional para poder correr las pruebas.&lt;/li&gt;
&lt;li&gt;nUnit: También es gratis, open source y necesita un paquete adicional para correr las pruebas. Es un framework el cual ya cuenta con muchos años y se integra bien con Selenium que te ayuda a probar tus aplicaciones web como usuario final.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;En lo personal he utilizado los 3, solo cambia un poco la sintaxis entre uno y otro.&lt;/p&gt;

&lt;h3&gt;
  
  
  Specflow para documentar tus pruebas
&lt;/h3&gt;

&lt;p&gt;Para las pruebas de integración o de usuario final que tienen pasos mas detallados y mas largos puedes utilizar &lt;a href="https://specflow.org" rel="noopener noreferrer"&gt;Specflow&lt;/a&gt; el cual te permite escribir código como si fueran casos de prueba para los usuarios por ejemplo:&lt;/p&gt;

&lt;p&gt;Escenario: Sumar 2 números&lt;br&gt;
   Dado que el primer número es 3&lt;br&gt;
   Y el segundo número es 4&lt;br&gt;
   Cuando realizo la suma de los 2 números&lt;br&gt;
   El resultado debe ser 7&lt;/p&gt;

&lt;p&gt;Con una extensión que se agrega a Visual Studio te genera un método por cada uno de los pasos que tu escribes, y a veces te detecta los números del ejemplo como variables para los métodos, es fácil cambiarlo por parámetros en caso de que no los detecte automáticamente.&lt;/p&gt;

&lt;p&gt;Cuenta con opciones para obtener los datos mediante una tabla.&lt;/p&gt;

&lt;p&gt;Solo esta disponible para Visual Studio para windows.&lt;/p&gt;

&lt;p&gt;Se integra con Azure Dev Ops el cual es un sistema de administración de proyectos gratuito si tienes menos de 5 programadores, te permite correr tus pruebas automáticas.&lt;/p&gt;

&lt;p&gt;Visual Studio te permite ejecutar las pruebas de una forma fácil y si tienes la  versión profesional te permite probar el código mientras lo vas tecleando. Para Visual Studio para Mac a mi parecer aún le falta ya que no muestra una información tan detallada o mas visual.&lt;/p&gt;

&lt;h3&gt;
  
  
  Postman
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.getpostman.com" rel="noopener noreferrer"&gt;Postman&lt;/a&gt; en un programa open source multiplataforma que te permite probar tus Servicios REST y SOAP. Cuenta con opciones para agregar escenarios de prueba automáticos y que se ejecuten por ejemplo todos los días a las 10 am. También te genera páginas de documentación de tus Servicios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pruebas de usuario final
&lt;/h3&gt;

&lt;p&gt;Hay diversos frameworks y herramientas para realizar las pruebas de usuario&lt;/p&gt;

&lt;h4&gt;
  
  
  Selenium
&lt;/h4&gt;

&lt;p&gt;Es uno de los que tiene mas tiempo y es de los mas conocidos, puedes agregar plugins a chrome o firefox y con una opción grabas los pasos que realizas en tu pantalla y puedes agregar opciones para comprobar los resultados de lo que vas grabando como por ejemplo que te muestre la página de inicio de tu sistema después del login.&lt;/p&gt;

&lt;p&gt;También puedes exportar los pasos de tus pruebas a código c# o java, entre otros. Con el código puedes realizar las pruebas en diferentes navegadores. También se puede integrar a azure dev ops para probar tu sistema al terminar de subir las nuevas versiones de tu sistema.&lt;/p&gt;

&lt;h4&gt;
  
  
  Cypres
&lt;/h4&gt;

&lt;p&gt;Es un framework mas moderno que funciona mas con javascript y también te permite probar con varios navegadores, y te graba un video con los pasos que se realizaron. Me parece mucho más sencillo que selenium. &lt;/p&gt;

&lt;p&gt;Puedes ver el video en inglés de la presentación en el evento de &lt;a href="https://www.youtube.com/watch?v=GH9Dvo_BYkk" rel="noopener noreferrer"&gt;ngconf de angular del 2019&lt;/a&gt; el cual esta muy interesante.&lt;/p&gt;

&lt;h4&gt;
  
  
  Jest
&lt;/h4&gt;

&lt;p&gt;Este no lo he utilizado pero esta ganando mucha popularidad, el cual según su &lt;a href="https://jestjs.io" rel="noopener noreferrer"&gt;página&lt;/a&gt; es utilizado por empresas como Facebook, twitter, spotify, por lo cual valdría la pena darle una revisada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frameworks de pago
&lt;/h3&gt;

&lt;p&gt;Existen algunos otros como los desarrollados por &lt;a href="https://www.devexpress.com/products/testcafestudio/" rel="noopener noreferrer"&gt;DevExpress (Test Café)&lt;/a&gt;, o &lt;a href="https://www.telerik.com/teststudio" rel="noopener noreferrer"&gt;Telerik Test Studio&lt;/a&gt; los cuales tienen costo, mas me parece que con Cypress y Jest son muy buenas alternativas.&lt;/p&gt;

&lt;h3&gt;
  
  
   Aplicaciones móviles
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Xamarin.UITest
&lt;/h4&gt;

&lt;p&gt;Para aplicaciones móbiles y xamarin esta &lt;a href="https://docs.microsoft.com/en-us/appcenter/test-cloud/uitest/" rel="noopener noreferrer"&gt;Xamarin.UITest&lt;/a&gt;. En el cual vas programando las acciones que haría un usuario.&lt;/p&gt;

&lt;h4&gt;
  
  
  Visual Studio App Center
&lt;/h4&gt;

&lt;p&gt;Microsoft también cuenta con &lt;a href="https://visualstudio.microsoft.com/es/app-center/" rel="noopener noreferrer"&gt;Visual Studio app center&lt;/a&gt; el cual es de pago y te permite probar tus aplicaciones en dispositivos reales, y puedes distribuir las versiones de tus app a testers o usuarios que deseen probar las versiones beta de tus productos.&lt;/p&gt;

&lt;h4&gt;
  
  
  TestFlight
&lt;/h4&gt;

&lt;p&gt;Para iOS existe la aplicación TestFlight el cual te permite agregar también usuarios beta para que prueben tus aplicaciones antes de publicarlos en la AppStore.&lt;/p&gt;

&lt;p&gt;Puedes ver mi curso sobre .net core y Servicios REST mas a fondo sobre pruebas unitarias:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://abi.gitbook.io/net-core/8.-pruebas-unitarias" rel="noopener noreferrer"&gt;Servicios REST con ASP.NET Core y Entity Framework Core - Pruebas unitarias &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si deseas que escriba un artículo mas detallado sobre pruebas automáticas y alguna de las herramientas mencionadas puedes solicitarla agregando en un comentario el tema que desees que explique de forma individual&lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>Herramientas y Frameworks interesantes de programación - Parte 2 Software Ecommerce</title>
      <dc:creator>apis3445</dc:creator>
      <pubDate>Tue, 31 Dec 2019 03:40:49 +0000</pubDate>
      <link>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-2-5doa</link>
      <guid>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-2-5doa</guid>
      <description>&lt;p&gt;En esta segunda parte mencionaré algunos sistemas web de tiendas en línea:&lt;/p&gt;

&lt;h2&gt;
  
  
  Nopcommerce &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Es Open Source y es gratuito, el código esta disponible en &lt;a href="https://github.com/nopSolutions/nopCommerce" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. Fue creado en .Net en 2008, en 2017 se cambio a .Net Core, es de los mas populares para .Net. &lt;/p&gt;

&lt;p&gt;Esta disponible en varios idiomas y aunque no tiene un diseño demasiado vistoso cuenta con todo lo necesario y es responsivo por lo cual se adapta ya sea un celular, tablet o laptop. &lt;/p&gt;

&lt;p&gt;Como ya tiene varios años incluye varios funciones como pagos en línea, envíos de productos. Cuenta con extensiones para agregar más funciones algunas son gratuitas y otras tienen costo. &lt;/p&gt;

&lt;p&gt;Puedes visitar el &lt;a&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Me parece muy completo y lo mejor es gratis.&lt;/p&gt;

&lt;h2&gt;
  
  
  SimplCommerce &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Fue presentado en el evento dotnetconf del 2018, creado con .NET Core, se enseña como puedes separar tus aplicaciones de .NET Core en varios proyectos y luego tener un proyecto principal donde vas incluyendo los módulos que desees. El código fuente también esta en  &lt;a&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Puedes ver aquí la presentación en inglés &lt;a&gt; Modular Web Applications with ASP.NET Core&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Puedes ver el &lt;a&gt; DEMO &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aunque es bastante sencillo esta interesante la forma en que divide el código en varios proyectos y la forma en que se unen.&lt;/p&gt;

&lt;h2&gt;
  
  
  WooCommerce
&lt;/h2&gt;

&lt;p&gt;Me parece que es la tienda en línea más popular para Wordpress. Aunque bastante sencillo en funciones y diseño al menos con las versiones gratuitas cumple con las funciones básicas.&lt;/p&gt;

&lt;p&gt;Puedes ver mas info &lt;a href="https://woocommerce.com" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Me parece que la versión gratuita esta limitada en diseño y deberás ya sea comprar un buen diseño o crearlo tú mismo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avored
&lt;/h2&gt;

&lt;p&gt;Me parece que para PHP utilizaría alguno de los laravel, en lugar de los tradicionales de PHP como Magento, OsCommerce. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avored.com" rel="noopener noreferrer"&gt;Avored&lt;/a&gt; se me hace interesante aunque aún no es tan conocido. Puedes consultar su &lt;a href="https://github.com/avored/laravel-ecommerce" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Puedes ver el demo &lt;a href="https://demo.avored.com" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://demo.avored.com" rel="noopener noreferrer"&gt;https://demo.avored.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Shopify
&lt;/h2&gt;

&lt;p&gt;Si lo que deseas es tener una tienda en línea sin el código puedes probar con Shopify el cual es bastante popular&lt;/p&gt;

&lt;p&gt;Al ser un producto genérico no es tan fácil adaptarlo a tu gusto,  el soporte es bueno.&lt;/p&gt;

&lt;p&gt;Puedes obtener mas informes &lt;a href="https://www.shopify.com.mx" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El precio inicia en $29 dólares al mes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kichink
&lt;/h2&gt;

&lt;p&gt;Otra opción similar a Shopify pero si cuenta con una opción gratuita mas cobra una comisión del 9.5% &lt;/p&gt;

&lt;p&gt;Puedes ver mas información &lt;a&gt;aquí&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mi recomendación es que aunque no seas programador puedes probar algunas de las versiones gratuitas ya que no son complicadas de instalar o utilizar y cuentan con soporte para dudas en GitHub, o al menos nopcommerce cuenta con opciones de pago si no deseas batallar.&lt;/p&gt;

&lt;p&gt;Me parece que una parte importante de una tienda en línea es una adecuada promoción, el que comprar sea muy fácil permitiendo o no el registro de los usuarios, un buen diseño y fotos de tus productos. Pero sobre todo el tener buenos productos y precios.&lt;/p&gt;

&lt;p&gt;Si deseas que haga un artículo más detallado de alguno de estos sistemas deja en un comentario con el nombre de cual deseas a excepción de avored y kichink que un cliente si lo utilizo, si utilice los demás.&lt;/p&gt;

&lt;p&gt;También si deseas que incluya mi review de otros sistemas/herramientas puedes comentarlo&lt;/p&gt;

</description>
      <category>ecommerce</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Actualizando de .Net Core 2.2 a 3.1</title>
      <dc:creator>apis3445</dc:creator>
      <pubDate>Mon, 23 Dec 2019 04:33:17 +0000</pubDate>
      <link>https://dev.to/apis3445/actualizando-de-net-core-2-2-a-3-1-438g</link>
      <guid>https://dev.to/apis3445/actualizando-de-net-core-2-2-a-3-1-438g</guid>
      <description>&lt;p&gt;He trabajado varias veces con .Net desde el framework 3.5, y aunque .Net Core cambio drásticamente en web se ha cambiado de WebForms a MVC y a .Net Core Razor, Blazor, en escritorio de Winforms, WPF, UWP, creo había actualizado sin problemas entre versiones.&lt;/p&gt;

&lt;p&gt;De .Net Core 1.1 al 2 no cambio tanto, mas del 2.2 al 3.0 me parece hay varios cambios y algunas librerías como Swagger, OData, la de MySQL tanto la de Oracle como la de Pomelo, para poder actualizar mi proyecto tuve que instalar Packages que están en versión beta aún, se me hace raro de OData ya que el paquete es de Microsoft y hasta hace apenas unos días logre hacer funcionar el proyecto con una nueva versión beta.&lt;/p&gt;

&lt;p&gt;Aquí agrego los cambios que tuve que realizar:&lt;/p&gt;

&lt;p&gt;Instale los siguientes paquetes en modo beta/release&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install-Package Microsoft.AspNetCore.OData -Version 7.3.0-beta
Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Actualmente ya salieron las versiones finales de los paquetes que son compatibles&lt;/p&gt;

&lt;p&gt;Tuve que cambiar el archivo csproject para remover el siguiente código&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;PackageReference Include="Microsoft.AspNetCore.App"&amp;gt;
       &amp;lt;PrivateAssets Condition="'%(PackageReference.Version)' == ''"&amp;gt;all&amp;lt;/PrivateAssets&amp;gt;
       &amp;lt;Publish Condition="'%(PackageReference.Version)' == ''"&amp;gt;true&amp;lt;/Publish&amp;gt;
&amp;lt;/PackageReference&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora se separa para que si solo usas Servicios REST utilices solo la parte de Controller y no todo el mvc y para regresar los Json con la primer letra en mayúscula, tuve que cambiar &lt;strong&gt;CamelCasePropertyNamesContractResolver()&lt;/strong&gt; por JsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//services.AddMvc()
// .AddJsonOptions(JsonOptions =&amp;gt; JsonOptions.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver())
services.AddControllers()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                 .AddJsonOptions(JsonOptions =&amp;gt;
                     JsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;También se cambio la autenticación y esta separado en 2&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Otro de los cambios es que ya crearon su propia librería para trabajar con json &lt;strong&gt;System.Text.Json&lt;/strong&gt; por lo tanto ya no usan mas Newtonsoft&lt;/p&gt;

&lt;p&gt;Como mis servicios están documentados en Swagger aparte de instalar la versión rc4 y luego la rc5, en lugar de usar &lt;strong&gt;Info&lt;/strong&gt; se utiliza ahora &lt;strong&gt;OpenApiInfo&lt;/strong&gt; y agregar el import &lt;strong&gt;Microsoft.OpenApi.Models&lt;/strong&gt;, como utilizo OData tuve que cambiar el código para habilitar OData como &lt;strong&gt;Operation&lt;/strong&gt; y ** NonBodyParameter** por &lt;strong&gt;OpenApiParameter&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using Microsoft.OpenApi.Models;
// new Info()  Anterior
new OpenApiInfo()
//public void Apply(Operation operation, OperationFilterContext context)
public void Apply(OpenApiOperation operation, OperationFilterContext context)
//foreach (var parameter in operation.Parameters.OfType&amp;lt;NonBodyParameter&amp;gt;())
foreach (var parameter in operation.Parameters.OfType&amp;lt;OpenApiParameter&amp;gt;())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como el proyecto incluye pruebas automáticas según el Environment utilizo un base de datos en memoria o la de SQL, cambiando ** IHostingEnvironment** por &lt;strong&gt;IWebHostEnvironment&lt;/strong&gt; agregando el siguiente namespace &lt;strong&gt;Microsoft.Extensions.Hosting&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//IHostingEnvironment _hostingEnvironment;
IWebHostEnvironment _hostingEnvironment;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para GraphQL lo único que tuve que realizar fue agregar una configuración para permitir funciones asincronas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;services.Configure&amp;lt;KestrelServerOptions&amp;gt;(options =&amp;gt;
             {
                 options.AllowSynchronousIO = true;
             });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lo más tardado fue esperar por las versiones beta, sobre todo la de OData que por lo general tarda mucho en estar lista, junto con la de MySQL que la versión de Oracle tarda demasiado y la de Pomelo tarda menos y suele tener menos bugs que la de Oracle. &lt;/p&gt;

&lt;p&gt;Pensé que el que podría fallar más seria GraphQL ya que no es muy común para .net, es más común con NodeJS, mas con GraphQL no tuve en realidad problemas.&lt;/p&gt;

&lt;p&gt;Puedes ver la lista completa de breaking changes &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/core/compatibility/2.2-3.1" rel="noopener noreferrer"&gt;https://docs.microsoft.com/en-us/dotnet/core/compatibility/2.2-3.1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>netcore</category>
      <category>develop</category>
      <category>csharp</category>
      <category>rest</category>
    </item>
    <item>
      <title>Herramientas y Frameworks interesantes de programación - Parte 1 ORM</title>
      <dc:creator>apis3445</dc:creator>
      <pubDate>Mon, 23 Dec 2019 00:04:23 +0000</pubDate>
      <link>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-1-1mo8</link>
      <guid>https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-1-1mo8</guid>
      <description>&lt;p&gt;Este es mi primer post en esta página y voy a compartir algunos frameworks y herramientas que he utilizado o visto para programar. Puedes preguntarme acerca de .Net, pruebas automáticas, bases de datos. Puedo escribir una entrada acerca de algún tema de tu interés. Lo dividiré por categorías:&lt;/p&gt;

&lt;h2&gt;
  
  
  Contenido
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Frameworks ORM para .NET 

&lt;ul&gt;
&lt;li&gt;Softluent&lt;/li&gt;
&lt;li&gt;
XPO &lt;/li&gt;
&lt;li&gt;Entity Developer&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-2-5doa"&gt; ECommerce &lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Nopcommerce&lt;/li&gt;
&lt;li&gt;SimplCommerce&lt;/li&gt;
&lt;li&gt;WooCommerce&lt;/li&gt;
&lt;li&gt;Avored&lt;/li&gt;
&lt;li&gt;Shopify&lt;/li&gt;
&lt;li&gt;Kichink&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://dev.to/apis3445/herramientas-y-frameworks-interesantes-de-programacion-parte-3-p34"&gt;Pruebas automáticas&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Pruebas unitarias&lt;/li&gt;
&lt;li&gt;Specflow&lt;/li&gt;
&lt;li&gt;Postman&lt;/li&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;Cypress&lt;/li&gt;
&lt;li&gt;Jest&lt;/li&gt;
&lt;li&gt;Aplicaciones móviles

&lt;ul&gt;
&lt;li&gt;Xamarin.UITest&lt;/li&gt;
&lt;li&gt;Visual Studio App Center&lt;/li&gt;
&lt;li&gt;TestFlight&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frameworks ORM para .NET
&lt;/h2&gt;

&lt;p&gt;Antes de utilizar EF Core, revise algunos ORM (Object-Relational Mapper), los cuales te ayudan a conectarte o crear tus bases de datos a partir de un objeto o viceversa. &lt;/p&gt;

&lt;h3&gt;
  
  
  Softluent &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Uno que me pareció interesante fue &lt;a href="https://www.softfluent.com/product/codemodeler/" rel="noopener noreferrer"&gt;Softfluent Code Modeler&lt;/a&gt; el cual se instala en Visual Studio y al parecer es desarrollado en 2005 por veteranos de Microsoft, es muy parecido a lo que es Entity Framework. &lt;/p&gt;

&lt;p&gt;Creas tus tablas de forma Visual y te genera los scripts para crear/modificar tu base de datos en SQL Server, MySQL y PostgreSQL, para poder hacer los selects, inserts o updates te crea stored procedures. También te crea el código en C# o Visual Basic para acceder a tus tablas. &lt;/p&gt;

&lt;p&gt;Además te permite escribir tus propios métodos con código CFQL (CodeFluent Query Language) el cual es parecido a SQL. Internamente se transforma a SQL Server, MySQL o PostgreSQL.  Por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LOAD(Title, Position)
WHERE Title = @Title AND Position = @Position
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esta consulta te permite seleccionar el título y posición recibidos como parámetros en la tabla en la cual agregas la función.&lt;/p&gt;

&lt;p&gt;Cuando yo lo utilice daban códigos gratis por un año en la revista MSDN y luego tuvieron una versión gratuita que solo te generaba código para SQL, actualmente ya cambio de nombre a Code Modeler y la licencia cuesta $699 dólares por programador al año.&lt;/p&gt;

&lt;h3&gt;
  
  
  XPO &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Es la opción de &lt;a href="https://www.devexpress.com/products/net/orm/" rel="noopener noreferrer"&gt;Devexpress&lt;/a&gt; la cual es una compañía que ofrece componentes para .NET, tiene poco tiempo que cambiaron la suscripción y ahora es gratuita. Lo único que venden es el soporte el cual tiene un costo de $399.99 dólares al año.&lt;/p&gt;

&lt;p&gt;Cuenta también con la opción de crear tus tablas de forma visual, y en sus blog indican que según sus &lt;a href="https://github.com/DevExpress/XPO/tree/master/Benchmarks" rel="noopener noreferrer"&gt;benchmarks&lt;/a&gt; tiene mejor rendimiento que EF y EF Core. Debido a que no tiene tanto tiempo la versión gratuita no he tenido tiempo de descargarlo y realizar algunas pruebas. &lt;/p&gt;

&lt;p&gt;Mi experiencia con los componentes de .Net tanto para Winforms, WPF, Devextreme es que tienen buena calidad, buena documentación, solo el soporte me parece que a veces no es tan bueno, ya que a mi parecer a veces le faltan ejemplos complejos y es difícil que te den ejemplos de código, el tiempo de respuesta de bugs es regular. También creo que a veces algunos componentes como el generador de Reportes están un poco lentos si no cuentas con una computadora con un buen procesador y memoria. Creo vale la pena darle una revisada. &lt;/p&gt;

&lt;p&gt;Si deseas que haga una revisión mas a fondo puedes pedirla como comentario&lt;/p&gt;

&lt;h3&gt;
  
  
  Entity Developer &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Creado por &lt;a href="https://www.devart.com/entitydeveloper/" rel="noopener noreferrer"&gt;Devart&lt;/a&gt;, ofrece un editor visual para EF Core, el cual no ha sido incluid por parte de Microsoft, en EF Core tu tienes que crear tus clases, el DBContext y en base a eso te genera la base de datos, mas no te genera el diagrama visual de tu base de datos.&lt;/p&gt;

&lt;p&gt;Incluye una versión gratuita Express y ediciones con costo de $99.95 hasta $299.95 dólares.&lt;/p&gt;

&lt;p&gt;Este producto tampoco lo he probado, solo he probado el DB Forge for MySQL la versión gratuita, el cual me parece bastante bueno aunque algo limitado para backups.&lt;/p&gt;

&lt;p&gt;Como verás hay varios ORM además del Entity Framework incluido en .Net. EF Core me ha parecido bien y funciona bien en Visual Studio for Mac, por lo cual no he tenido mucha oportunidad de probar los demás. &lt;/p&gt;

&lt;p&gt;Cree un curso donde explico mas a fondo EF Core y Servicios REST, pruebas automáticas, instalación, Azure Dev Ops en &lt;a href="https://abi.gitbook.io/net-core/" rel="noopener noreferrer"&gt;EF Core y Servicios REST&lt;/a&gt;&lt;/p&gt;

</description>
      <category>net</category>
      <category>orm</category>
    </item>
  </channel>
</rss>
