lunes, 20 de febrero de 2017
.NET
- Happy 15th Birthday .NET!
Beth Massi - The week in .NET – On .NET with Phil Haack, Readline
Bertrand Le Roy - Cómo crear aplicaciones multilingües con C# y .NET
Jorge Durán - Ultimate NLog guide for .NET logging – 19 best practices, resources, and tips
Matt Watson - .NET Renaissance
Mark Rendle - Caching for Non-Web Applications – Part 2
Paul D. Sheriff - Threading in C# (PDF)
Joe Albahari
martes, 14 de febrero de 2017
En aquél momento ya vimos que era realmente sencillo conseguirlo cuando usábamos settings no tipados, bastaba con añadir el parámetro
reloadOnChanges
a la hora de añadir el origen de configuración, como en el siguiente ejemplo:public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); }Sin embargo, también vimos que conseguir lo mismo cuando queríamos acceder a los settings de forma tipada era algo más engorroso, puesto que había que configurar manualmente el proceso de recarga y bindeado de datos con la instancia de la clase de configuración, para poder acceder luego a ella a través de un objeto
IOptions<T>
disponible en el contenedor de dependencias.
lunes, 13 de febrero de 2017
.NET
- Qué debe saber un desarrollador .NET en 2017
CampusMVP - When a disk cache performs better than an in-memory cache (befriending the .NET GC)
Dan Roberts - C#7: Better Performance with Ref Locals, and Ref and Async Returns
Jeff Yates - The week in .NET – On .NET on Docker and new Core tooling, Benchmark.NET, Magicka
Bertrand Le Roy - The 68 things the CLR does before executing a single line of your code
Matt Warren - What are non generic collections in C#?
Sanskriti - Caching for Non-Web Applications – Part 1
Paul D. Sheriff
martes, 7 de febrero de 2017
Por ejemplo, supongamos que tenemos una aplicación MVC con un controlador que expone un servicio como el siguiente:
[Route("api/contacts")] public class ContactsController : Controller { private readonly IContactRepository _repository; public ContactsController(IContactRepository repository) { _repository = repository; } [HttpGet("{id}")] public IActionResult Get(int id) { var contact = _repository.Get(id); if (contact == null) return NotFound(); return Ok(contact); } }Esta acción, que retornaría un objeto de tipo
Contact
del modelo de nuestra aplicación, podría ser fácilmente utilizada desde otras capas o sistemas, por ejemplo como sigue:// Petición: GET http://localhost:2805/api/contacts/1 HTTP/1.1 Accept: application/json // Respuesta: HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Content-Length: 51 {"id":1,"name":"John Smith","phone":"998-12-32-12"}
lunes, 6 de febrero de 2017
.NET
- The .NET Language Strategy
Mads Torgersen - C#7: Local Functions
Jeff Yates - Pattern Matching in C# 7.0 Case Blocks
Tim Patrick - Typemock o cómo mockear como un campeón.
Leo Micheloni - When Is Easter?
John Simmons - Dissecting the new() constraint in C#: a perfect example of a leaky abstraction
Sergey Teplyakov - The week in .NET – On .NET on public speaking, ndepend, CrazyCore, The Perils of Man
Bertrand Le Roy - Creating a portable and embedded Chocolatey Package
Rick Strahl - Application Insights telemetry processors
Maarten Balliauw - Build Your Own ASP.NET Cache with WeakReferences
Peter Vogel - Get Started with Unit Testing – using xUnit and Moq
Rushfive - Short-circuit Evaluation in C#
Shamseer K.
martes, 31 de enero de 2017
Para los que ya hemos comenzado a crear aplicaciones y bibliotecas ASP.NET Core, este cambio implica que en algún momento deberemos actualizarlas al nuevo formato de proyectos. Y como ya adelantamos, este proceso no va a resultar especialmente doloroso aunque obviamente tendremos que saber cómo hacerlo.
En este post vamos a tratar tres posibles escenarios de actualización:
Hey, pero antes de continuar, el tradicional disclaimer: tened en cuenta que tanto Visual Studio 2017 como el tooling de .NET Core está aún en preview, así que hay cosas que podrían variar en el futuro próximo.