¿Necesitas un programador?

Mi nombre es Albert Capdevila y
soy programador .Net freelance.


Programador freelance Barcelona .net
"La simplicidad es pre-requisito para la fiabilidad"

Edsger W. Dijkstra

Subscríbete a la newsletter

Formulario de subscripción

¿Cómo puedo ayudarte?


  • Programo aplicaciones orientadas a la gestión, pero también realizo migraciones de datos, integraciones con aplicaciones externas, conectores, servicios, bases de datos, etc.
  • Participo y conozco el ciclo de vida completo del software.
  • Durante la fase de creación tomo requerimientos, propongo soluciones y presento estimaciones al cliente, explicando pros y contras y permitiendo escoger la mejor opción.
  • Durante las primeras fases de desarrollo diseño la arquitectura, la infraestructura, el funcional y la base de datos.
  • Soy capaz de entregar soluciones económicas que se adaptan a las necesidades del cliente.
  • Me encanta resolver problemas buscando la solución más simple. Conozco y aplico principios de programación y patrones de diseño y los adapto según las necesidades.
  • Puedo definir los mecanismos de entrega del software y configurar y adaptar los sistemas para su funcionamiento.
  • Me gusta trabajar en equipo y transmitir todo el conocimiento adquirido. Así mismo estoy ávido de nuevos conocimientos y me siento en un continuo proceso de aprendizaje.
  • Trabajo en remoto desde El Masnou (BCN), pero puedo desplazarme puntualmente si el proyecto lo requiere.

Certificaciones

Lenguajes, tecnologías, frameworks y bases de datos en los que tengo experiencia

Lenguajes:
C#, VB.net, Tranasct-SQL, javascript, CSS, HTML
Frameworks:
.net Framework, .net Core, MVC, RazorPages, WebForms, WinForms, WPF, Xamarin, Entity Framework, WCF, jQuery, Bootstrap
Bases de datos:
SQL Server, Access
IDE:
Visual Studio, Visual Studio Code
Nube:
Azure (AppServices, SQLAzure, Bus), Máquinas virtuales, Hosting compartido
Código:
patrones de diseño, principios de programación, código limpio (SOLID), programación orientada al dominio DDD
Certificaciones:
MCPS: Microsoft Certified Professional, MCSA: Web Applications, MCSD: App Builder, MS: Programming in HTML5 with JavaScript and CSS3, MCSD: Web Applications, Microsoft .NET Fundamentals (C#)

Últimas entradas del BLOG


Controla la calidad de tu código con NDepend

NDepend

Como freelance, la calidad del código que entrego es algo primordial para mí. El aprendizaje continuo y la intuición son los métodos que utilizaba hasta ahora para lograrla, pero gracias a NDepend cuento con una herramienta que aporta datos objetivos sobre la calidad de mi código.

Y lo que se puede medir, se puede mejorar.


leer más

Código limpio: el switch es código sospechoso

sospecha cuando utilices un switch


Cuando un cliente me explica una funcionalidad suele utilizar frases del tipo 'si tenemos esta situación entonces haz X, pero si es esta otra haz Y'. Uno de los reflejos inmediatos es intentar plasmar esta misma lógica en el código utilizando cláusulas switch.

En este post voy a explicar por qué debes sospechar de los switch de tu código y que puedes hacer para minimizarlos.


leer más

Tutorial para instalar Let's Encrypt en Azure

Guardi de seguridad


Tener un certificado ssl en tu web es a día de hoy imprescindible. Hasta ahora los certificados que había instalado a mis clientes y/o en mis proyectos los había comprado, pero desde que apareció Let's Encrypt es posible conseguir certificados ssl gratuitos.

Aquí te dejo un tutorial de los 6 pasos que he seguido para instalar el certificado Let's Encrypt en este blog, que está hospedado en Azure.


leer más


Lecturas recomendadas sobre c# y .net · septiembre 2020


lecturas recomendadas c# y .net


Aquí tienes algunas lecturas interesantes sobre c# y .net que he recopilado durante el mes de septiembre. 

1. Domain model purity and the current time · Vladimir Khorikov

Quizá no lo parezca pero la propiedad estática DateTime.Now es un método impuro. Es una llamada a un elemento externo de nuestra aplicación, y por eso se debería tratar como una dependencia externa. Aquí tienes un excelente artículo que te aconseja cómo inyectar dicha dependencia en tu aplicación.

2. Things you need to know as a C# developer - Collections · Sam Fields

En c# existen numerosas clases que representan colecciones. Si quieres dominar el lenguaje es importante conocer sus características para saber cuál utilizar en cada caso. La elección no siempre es obvia. 

3. C# 9.0: Records – Work With Immutable Data Classes · Thomas Claudius Huber

La característica que más me ha llamado la atención de la próxima versión de c# son los "records". Se trata de un tipo inmutable que funciona igual que el concepto ValueObject de Domain Driven Design. Si quieres saber más aquí tienes un buen artículo que describe su funcionamiento.

4.A. ASP.NET Core Localization Jump Start · Khalid Abuhakmeh

4.B. Remember ASP.NET Request Culture Using Middleware · Khalid Abuhakmeh

Tutorial sobre cómo crear aplicaciones multi-idioma en Asp.Net Core. El primer artículo describe el flujo para mostrar una cultura u otra y el segundo muestra cómo recordar la cultura del usuario y mostrarle esa misma cultura la próxima vez que visite la aplicación.

5. Why use MediatR? 3 reasons why and 1 reason not · Derek Comartin 

Si quisieras implementar el patrón Command and Query Responsibility Segregation (CQRS) en .Net utilizar la librería MediatR sería la opción más natural. Aquí tienes un artículo que defiende este patrón y que quizá te ayude a decidirte.

6. CQRS and MediatR in ASP.NET Core · Code Maze

Si te ha convencido el artículo anterior y quieres saber más sobre cómo implementar el patrón CQRS, aquí tienes un buen tutorial que te ayudará enormemente.

7. Solving Real Life Scenarios With .Net Core Entity Framework · Bora Kaşmer

Encriptar campos de la base de datos al guardar y desencriptarlos al recuperar, crear consultas a entidades sin tener que poner un where IsDeleted == false, crear DbSets en el contexto que no corresponden a tablas de la base de datos, ver las consultas SQL generadas en tiempo de ejecución en la consola. Si te interesa aquí tienes un artículo que explica cómo implementarlo con Entity Framework Core.

8. Use Attributes & Middleware in ASP.NET Core for Logging, Telemetry, and Anything Else · Michael Shpilt

Hay acciones que te interesa registrar en cada petición de una aplicación ASP.Net Core. Un log, telemetría o cualquier cosa que te interese. La mejor opción para ello es usar los middlewares. Aquí tienes un excelente artículo que te ayudará con ello.

9. Cómo actualizar correctamente un sitio web y evitar DLLs bloqueadas al actualizar una aplicación ASP.NET en IIS (o Azure) · José M.Alarcón 

Si cuando publicas una aplicación ASP.Net copias los archivos directamente en la carpeta de producción es posible que alguna de las DLL's esté en funcionamiento y no se pueda sobreescribir. Eso provoca que la aplicación deje de funcionar. Hay una manera muy sencilla de evitar esta clase de problemas. Este artículo explica cómo.

10. Deploying a .NET desktop application using MSIX · Gérald Barré

Para crear instaladores de aplicaciones de escritorio siempre he utilizado un template de proyecto de Visual Studio que se llama Visual Studio Installer Projects. Sin embargo, la recomendación de Microsoft es utilizar Windows Application Packaging Project (MSIX). Aquí tienes un artículo que explica cómo utilizar este instalador en una aplicación WPF. Sirve también para aplicaciones WinForms.

Extra: Blazor WebAssembly on Azure Static Web Apps · Scott Hanselman

Extra2:  ¡Nuevo curso de desarrollo web con Blazor en CampusMVP! · José M.Aguilar

Quizá algun día empiece a enviar una newsletter, si te gustaría recibirla subscríbete aquí

Archivo