lunes, 5 de junio de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – Open XML SDK, Adventure Time
Bertrand Le Roy - .NET Core - Cross-Platform Code Generation with Roslyn and .NET Core
Alessandro Del Sole - C# 7 Series, Part 2: Async Main
Mark Zhou - The Fraternal Twins of Equals and GetHashCode
Tim Patrick - .NET Standard, una librería para dominarlos a todos
Diego Bersano - Array Pool
Christian Nagel - The Coming .NET Renaissance
Aaron Stannard - Integration testing with .NET Core
Dmitriy Litichevskiy
Publicado por José M. Aguilar a las 8:55 a. m.
Nadie ha comentado la entrada, ¿quieres ser el primero?
Etiquetas: enlaces
miércoles, 31 de mayo de 2017
Hace poco me encontraba con el post "Breakpoint Generator extension is open source" y me llamó la atención, básicamente porque no sabía de qué estaban hablando. Cosas de la ignorancia :D
Tirando un poco del hilo, he encontrado con que se trata de una extensión interesante y que podría ser útil en algunos escenarios, por lo que voy a comentar por aquí lo que he ido viendo.
Tirando un poco del hilo, he encontrado con que se trata de una extensión interesante y que podría ser útil en algunos escenarios, por lo que voy a comentar por aquí lo que he ido viendo.
martes, 30 de mayo de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – .NET poster, Happy Birthday .NET with Jan Kotas, Skyworld
Bertrand Le Roy - Using .NET and Docker Together
Rich Lander - Working with Exceptions Before the Error Handler Does
Peter Vogel - Aspects of Strings in .NET
Timur Guev - .NET Framework May 2017 Cumulative Quality Update for Windows 10
Rick Lander - Experimenting with C# 7’s new features
Afzaal Ahmad Zeeshan - How to Send Email using .NET Core
Ben Cull - How do I Update a Nuget Package using dotnet CLI
Steve Smith - AsyncLock: an async/await-friendly locking library for C# and .NET
Neosmart Technologies - IEnumerable vs IReadOnlyList
Vladimir Khorikov - El patrón Singleton en C#
Albert Capdevila
martes, 23 de mayo de 2017
El amigo José Antonio M. A., alumno de mi curso de ASP.NET MVC 5 en CampusMVP, me envió hace unos días una pregunta que he creído interesante comentar por aquí porque probablemente pueda ayudar a alguien más.
La cuestión que planteaba era relativa al mal funcionamiento de WebGrid cuando mostramos un campo de tipo enum y queremos ordenar por el mismo. Poco más o menos, me lo comentaba de la siguiente forma:
Mis primeras respuestas iban orientadas a buscar un pequeño fallo en la forma de usar WebGrid o similar, porque me parecía algo bastante extraño, y, sobre todo, me parecía raro que no me hubiera pasado antes. José Antonio comentó, además, que había encontrado referencias por la red de que WebGrid tenía este problema, y que podía solucionarse si se forzaba una conversión de la enumeración a
Y tras hacer varias pruebas, efectivamente, parece que algo hay. No sé si categorizarlo como bug del componente, o simplemente un comportamiento algo oscuro y poco previsible del mismo, pero en cualquier caso es interesante conocer este problema para poder atajarlo con éxito.
La cuestión que planteaba era relativa al mal funcionamiento de WebGrid cuando mostramos un campo de tipo enum y queremos ordenar por el mismo. Poco más o menos, me lo comentaba de la siguiente forma:
He incluido un campo enum en la clase del modelo y lo he incluido como columna en WebGrid.Obviamente, el hecho de que al cambiar a mano el parámetro
[…]
Todo funciona bien menos el WebGrid, que no me ordena por esa columna. Al hacer click en ella ordena de forma correcta ascendentemente pero al hacer click otra vez no te ordena de forma descendente, mirando la url se ve que sortOrder no varía sigue siendo ASC. si lo cambio a mano a desc me lo ordena bien. ¿Es que el webgrid no ordena enumeraciones? ¿Cuál sería la solución, si quiero ordenar?
sortOrder
todo funcionara bien, dejaba de manifiesto que el problema no estaba en el controlador ni en el modelo, dejando la vista como única sospechosa de provocar ese problema.Mis primeras respuestas iban orientadas a buscar un pequeño fallo en la forma de usar WebGrid o similar, porque me parecía algo bastante extraño, y, sobre todo, me parecía raro que no me hubiera pasado antes. José Antonio comentó, además, que había encontrado referencias por la red de que WebGrid tenía este problema, y que podía solucionarse si se forzaba una conversión de la enumeración a
string
a la hora de pasar los datos a la vista (!).Y tras hacer varias pruebas, efectivamente, parece que algo hay. No sé si categorizarlo como bug del componente, o simplemente un comportamiento algo oscuro y poco previsible del mismo, pero en cualquier caso es interesante conocer este problema para poder atajarlo con éxito.
lunes, 22 de mayo de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET/.NET Core
- The week in .NET – Microsoft Build 2017, .NET Core 2.0 preview 1, For the King
Bertrand Le Roy - .NET Framework May 2017 Preview of Quality Rollup
Rich Lander - Qué es la plataforma .NET y cuáles son sus principales partes
CampusMVP - Adding a new Bytecode Instruction to the CLR
Matt Warren - BUILD 2017 Conference Rollup for .NET Developers
Scott Hanselman - Group Your Constants and Enums
Steve Smith - To box or not to Box? That is the question!
Sergey Teplyakov - Upgrading to .NET Core 2.0 Preview
Rick Strahl - Access to modified closure in Resharper/C#
Alex Lazarev - .NET Standard 2.0 is out and it’s impressive!!!!
Talking Dotnet - Hunting vulnerable NuGets in .NET Core
John Korsnes - .NET Core is Probably Fine
Aaron Stannard - How to keep up to date as a C# developer
Jakub Chodounsky - Covariance, Contravariance and Invariance in C#
Rashedul Hossain Khan - The meaning of 'null'
Christian Neumanns - Image recognition with C# and Emgu libraries
Emiliano Musso
martes, 16 de mayo de 2017
A la hora de iniciar un nuevo proyecto ASP.NET Core, una de las primeras decisiones que debemos tomar es si el target de éste será .NET Core o .NET Framework.
Muchas veces esto dependerá de los requisitos y el entorno del proyecto; por ejemplo, si nos interesa la capacidad para ejecutarlo o desarrollarlo sobre entornos Linux o Mac, nos tendremos que decantar por .NET Core, pues el framework completo sólo está disponible para Windows. También podemos encontrarnos con que necesitamos (re)utilizar componentes o bibliotecas que aún no han sido portadas a .NET Core, por lo que en este caso el target será .NET Framework (bueno, esto cambiará bastante con la llegada de Net Standard 2.0, pero de momento es lo que hay).
En cualquier caso, la decisión la tomamos justo en el momento de crear el proyecto en Visual Studio, al seleccionar la plantilla que usaremos como base:
Sin embargo, conforme el proyecto avanza, puede que esta decisión que tomamos tan al principio no sea del todo válida: quizás en su momento elegimos .NET Core, pero ahora debemos cambiar a .NET Framework. O al contrario, porque ahora necesitamos que nuestra aplicación sea multiplataforma. O tal vez necesitemos las dos cosas al mismo tiempo por si acaso…
Nota: aunque aún pululan por ahí aplicaciones creadas con versiones preliminares del SDK, basadas en el difunto project.json, aquí utilizaremos la versión 1.0 del SDK, que ya utiliza el nuevo .csproj. Si todavía no has migrado, ya estás tardando ;)
Muchas veces esto dependerá de los requisitos y el entorno del proyecto; por ejemplo, si nos interesa la capacidad para ejecutarlo o desarrollarlo sobre entornos Linux o Mac, nos tendremos que decantar por .NET Core, pues el framework completo sólo está disponible para Windows. También podemos encontrarnos con que necesitamos (re)utilizar componentes o bibliotecas que aún no han sido portadas a .NET Core, por lo que en este caso el target será .NET Framework (bueno, esto cambiará bastante con la llegada de Net Standard 2.0, pero de momento es lo que hay).
En cualquier caso, la decisión la tomamos justo en el momento de crear el proyecto en Visual Studio, al seleccionar la plantilla que usaremos como base:
Sin embargo, conforme el proyecto avanza, puede que esta decisión que tomamos tan al principio no sea del todo válida: quizás en su momento elegimos .NET Core, pero ahora debemos cambiar a .NET Framework. O al contrario, porque ahora necesitamos que nuestra aplicación sea multiplataforma. O tal vez necesitemos las dos cosas al mismo tiempo por si acaso…
Nota: aunque aún pululan por ahí aplicaciones creadas con versiones preliminares del SDK, basadas en el difunto project.json, aquí utilizaremos la versión 1.0 del SDK, que ya utiliza el nuevo .csproj. Si todavía no has migrado, ya estás tardando ;)