¿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 · julio 2020


lecturas recomendadas c# y .net


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

1. How do I find which directory my .NET Core console application was started in or is running from? · Scott Hanselman

¿Desde qué directorio se ejecuta una aplicación .Net Core? ¿Dónde se encuentra físicamente? ¿Desde qué directorio he realizado la llamada para que se ejecute? Todas estas son preguntas básicas que deberíamos saber, lee este post si quieres conocer las respuestas.

2. Is Equality Comparison a Code Pollution? · Vladimir Khorikov

Code pollution es un antipatrón que se produce cuando se agrega código de producción que solo es necesario para las pruebas unitarias. Este post discute si el código agregado para comparar dos objetos entraría dentro de este antipatrón. Spoiler: no.

3. Asynchronous Method Without async in C# · Drake Lambert

¿Qué pasaría si en una acción asíncrona de un controlador quitáramos la palabra clave async? Drake Lambert discute en este post los casos en que se podría realizar esta acción con éxito para mejorar el rendimiento de la aplicación, aunque al final concluye que es mejor no hacerlo.

4 .NET Garbage Collection, Here We Go! · Anand Gupta

El comportamiento del Garbage collector al recolectar elementos no utilizados puede ser diferente si se trata de código optimizado (release) o de código no optimizado (debug). La diferencia puede deberse a la recolección agresiva de objetos por el JIT en caso de código optimizado (release). Todo esto puede sonar a chino, por eso te recomiendo este post corto y comprensible que me sorprendió.

5. Task asynchronous programming as an IO surrogate · Mark SeeMann

En este post se discute si IO<T> (Input/Output) podría ser equivalente a Task<T>. El post forma parte de una serie sobre una posible implementación de un contenedor IO<T> que sería capaz de marcar los métodos impuros en c#. Solo por los ejemplos de código utilizados ya merece la pena leerlo.

6. Handling concurrency in an ASP.NET Core Web API with Dapper · Carl RIPPON

Aquí tienes un ejemplo de cómo utilizar la característica rowversion de SQL para generar un Web API que controle la concurrencia. Puede utilizarse tanto en Web Api como en cualquier otro tipo de aplicación.

7. Modular Monolith: Integration Styles · Kamil Grzybek

Los sistemas de integración entre dos aplicaciones son: tranferencia de archivos, base de datos compartida, llamada directa y cola de mensajes. Analiza sus pros y contras utilizando tres tipos de criterio: acoplamiento, complejidad y tiempo de sincronización. Si vas a integrar dos sistemas independientes seguro te interesa.

8. A Few Different Ways to Concatenate Strings in C# ·  Vladimir Pecanac

Aquí tienes seis maneras diferentes de concatenar strings en c#, nunca está de más recordarlas.

9. An Interesting Params Gotcha In C# · Wade Gausden

Si utilizas Entity Framework quizá te hayas topado con este tipo de error al utilizar el método HasData:

The seed entity for entity type ‘XXX’ cannot be added because there was no value provided for the required property ‘YYY’

Este post arroja un poco de luz sobre lo que realmente está pasando. 

10. C#9 Records: Mis impresiones · Eduard TomÀs

Extenso análisis sobre una nueva característica de c# 9: los records. Todo lo que quieres saber y mucho más.

Extra: 2020 Developer survey · Stack Overflow

La encuesta sobre desarrollo de software más esperada del año.

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

Archivo