Entradas

Mostrando las entradas de abril, 2020

Mis indispensables de C#. Parte 2: Extensiones

Esta es una serie de 3 artículos cortos sobre características de C# que uso en todas mis aplicaciones.

Extensiones… Muchas extensiones
Me gusta usar extension methods para validaciones. Aquí hay algunas básicas.

publicstaticclassValueExtensions{publicstaticstringThrowIfEmpty(thisstringvalue){returnstring.IsNullOrWhiteSpace(value)?thrownewArgumentNullException():value.Trim();}publicstaticstringTrimOrThrow(thisstringvalue){returnvalue?.Trim()??thrownewArgumentNullException();}publicstaticGuidThrowIfEmpty(thisGuidvalue){returnvalue==Guid.Empty?thrownewArgumentNullException():value;}publicstaticDateTimeThrowIfInPast(thisDateTimevalue){returnvalue<=DateTime.Now?thrownewArgumentOutOfRangeException():value;}publicstaticDateTimeNowIfDefault(thisDateTimevalue){returnvalue==default(DateTime)?DateTime.Now:value;}}
Es muy sencillo validar parámetros usando estas extensiones.

publicasyncTask<TransferObject>DoSomething(stringuserId,GuidroleId,stringname,DateTimemeetingDate,DateTimedate){user…

Mis indispensables de C#. Parte 1

Esta es una serie de 3 artículos cortos sobre características de C# que uso en todas mis aplicaciones... aunque este en particular empieza con una nueva.

Switch expressions
Las switch expressions son mi característica favorita de C# 8. Ayudan a asignar valores rápidamente y las uso mucho para renderizar la interfaz gráfica.

Supongamos una Partial View que muestra el nombre de una empresa, consultor o institución, y un botón de color distinto para cada caso.

@modelMyViewModel@{var(title,color)=Model.RoleTypeswitch{RoleType.Company=>("Empresa","info"),RoleType.Institution=>("Institución","primary"),RoleType.Mentor=>("Consultor","warning"),_=>("?","danger")};}<h3>@Model.Name</h3><buttonclass="btnbtn-@color"> @title</button>
También funciona con métodos, si no tenemos una partial para cada item.

@modelMenuViewModel@{stringGetLinkIcon(stringlinkPage)=>linkPageswitc…

Aprovechando las Partial Views en ASP.NET Core (Parte 1)

Imagen
Si trabajan con ASP.NET Core, seguramente han separado los componentes de su interfaz gráfica usando Partial Views o Partials. Son una característica básica del framework junto a las Sections y los Layouts.

Cuando se empezaron a popularizar los frameworks de front-end como Angular, Ractive, React o Vue (y recientemente el estándar WebAssembly), las partials quedaron en un segundo plano porque al ser renderizadas desde el servidor, "no son dinámicas". Ese dinamismo lo están agregando con los Razor Components y Blazor, pero esa es otra historia.

Y aquí viene la opinión impopular: muy pocas aplicaciones son tan complejas como para justificar un framework de front-end. A eso agregaría: muy pocas aplicaciones son tan complejas como para justificar una conexión permanente con el servidor, que es como funcionan los Razor Components. Y una más: que un elemento aparezca o desaparezca de una lista, sin recargar la página, no justifica ninguna complejidad accidental.

Con un poco de jav…

¿Y qué pasó con CaliSharp?

¡Por supuesto que seguimos!
Desde noviembre tuvimos charlas como “Desarrollo de plataformas”, “Introducción a radio definida por software”, “Azure Functions: Experiencias de un principiante”, “Súper tendencias de arquitectura y desarrollo de software para 2020”, “¿Debería dar una charla?”, “Blazor: C# en el browser”, “Tecnología para Industria 4.0” y “REST, y por qué lo estás haciendo mal”. Y esperamos seguir organizando muchas más.

Recuerden que pueden inscribirse al meetup CaliSharp para conocer los próximos eventos. Y si les interesa dar una charla, sólo deben llenar este formulario, que tiene un aire vintage pero funciona muy bien.

PD: Vienen artículos técnicos sobre .NET Core.