lunes, 6 de julio de 2015
Estimados amigos:
Tengo la inmensa satisfacción de informaros de que, de nuevo este año, he sido distinguido como MVP (Most Valuable Professional) de Microsoft por las contribuciones realizadas a la comunidad técnica durante el pasado año en temas relacionados con ASP.NET/IIS.
Cinco años consecutivos recibiendo este galardón, y sintiéndome cada vez más afortunado y feliz por seguir perteneciendo a este grupo en el que, además de unas personas maravillosas, podemos encontrar auténticos gurús de las tecnologías de Microsoft que se esfuerzan día a día en compartir sus conocimientos con la comunidad.
Muchas gracias a todos los que seguís haciendo este sueño posible, comenzando por vosotros, queridos amigos de Variable not found. Muchas gracias también a Cristina González y el equipo del programa MVP en Microsoft, y a todos los compañeros con los que he tenido la fortuna de coincidir en esta aventura y con los disfruto aprendiendo cada vez que tenemos oportunidad de vernos, muchas veces en la otra parte del mundo ;)
Ah, y por supuesto aprovecho para enviar un abrazo y muchas felicidades a los recién nombrados MVP de julio, tanto nuevos como reincidentes, entre los que puedo presumir de tener muy buenos amigos :)
Nos seguimos viendo por aquí ;)
martes, 30 de junio de 2015
Desde la versión 3 de ASP.NET MVC, los filtros globales nos han solucionado con facilidad la anteriormente ardua labor de definir filtros en todos los controladores y acciones de nuestra aplicación sin tener que introducirlos uno a uno o crear controladores base.
Por convención, los registrábamos en una clase llamada FilterConfig, habitualmente ubicada en la carpeta /App_Start del proyecto, y cuya pinta era más o menos la siguiente:
Este código era llamado durante la inicialización de la aplicación desde el evento
Por convención, los registrábamos en una clase llamada FilterConfig, habitualmente ubicada en la carpeta /App_Start del proyecto, y cuya pinta era más o menos la siguiente:
Este código era llamado durante la inicialización de la aplicación desde el evento
Application_Start()
del archivo Global.asax:
lunes, 29 de junio de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- .NET versioning and multi-targeting on C# application and component
Southmountain - Exception filters in C# 6: their biggest advantage is not what you think
Thomas Levesque - TwinsOrNot.net Source Code Download
Scott Ge - ¿Qué son y en qué se diferencian .NET Full Framework y .NET Core Framework?
Vídeo de Unai Zorrilla - Debugging a Start of a Windows Service
Sebastian Solnica - What is ASP.NET console application?
Gunnar Peipman - Message Queuing with RabbitMQ Succinctly (free e-book)
Stephen Haunts - Using AutoMapper in your application for translating source object to destination object
Adarsh Chaurasia - Which Uri Encoding method should i use in C#/.net?
Leon Bambrick - [.NET] Qué son los Generics y su implementación en C# (I)
Sergio Parra
martes, 23 de junio de 2015
Los filtros de MVC, o action filters, han sido potenciados en la versión 6 del framework añadiéndoles características que en versiones anteriores no estaban disponibles de serie en la plataforma pero que han sido muy solicitadas por los desarrolladores. Hace algún tiempo vimos una de ellas, los filtros asíncronos, y hoy veremos que la inyección de dependencias en filtros también es ya una realidad.
El problema con la inyección de dependencias en los filtros es la instanciación de éstos, pues al definirse en forma de atributos de .NET no puede realizarse de forma controlada, o al menos lo suficientemente controlada como para poder inyectarles parámetros en el constructor o cargar sus propiedades desde un contenedor de inversión de control. Y aunque los filter providers aportaron alguna solución vía los contenedores IoC más populares, aún no eran una solución todo lo limpia que debería ser.
Pero como decía David Wheeler, “Cualquier problema en ciencias de la computación puede ser solucionado con otro nivel de indirección”… y eso mismo han debido pensar la gente del equipo de ASP.NET en Microsoft, cuando la solución que han dado consiste, básicamente, en crear un filtro capaz de instanciar otros filtros usando el contenedor de servicios integrado :)
El problema con la inyección de dependencias en los filtros es la instanciación de éstos, pues al definirse en forma de atributos de .NET no puede realizarse de forma controlada, o al menos lo suficientemente controlada como para poder inyectarles parámetros en el constructor o cargar sus propiedades desde un contenedor de inversión de control. Y aunque los filter providers aportaron alguna solución vía los contenedores IoC más populares, aún no eran una solución todo lo limpia que debería ser.
Pero como decía David Wheeler, “Cualquier problema en ciencias de la computación puede ser solucionado con otro nivel de indirección”… y eso mismo han debido pensar la gente del equipo de ASP.NET en Microsoft, cuando la solución que han dado consiste, básicamente, en crear un filtro capaz de instanciar otros filtros usando el contenedor de servicios integrado :)
lunes, 22 de junio de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- A couple of notes about .NET Framework 4.6 setup behaviors
Aaron Stebner - [C#] ¿Cómo ha evolucionado nuestro lenguaje favorito?
Sergio Parra - .NET JavaScript Engine Performance Results
Rush Frisby - Run Executable from Resources in C#
Ahmed E Osama - xUnit.net 2 Cheat Sheet
Jason Roberts - C# 6: Expression Bodied Members Simplify Your Code
Bill Wagner
martes, 16 de junio de 2015
Me complace informaros de que, por fin, tenemos disponible en nuestro idioma mi libro sobre SignalR 2.0 que ya lleva algún tiempo en el mercado publicado en inglés por Microsoft Press, como libro “oficial” de esta tecnología.
Tras las traducciones al japonés y al chino, finalmente lo tenemos en español gracias al interés que desde un principio habéis mostrado todos, y al equipo de CampusMVP/Krasis Press, que han sido los encargados de sacarlo adelante. Un gran periplo desde su creación hasta devolverlo a su idioma original, que explica fantásticamente José Manuel Alarcón en su entrada "SignalR: la vuelta al mundo de un libro", y que os recomiendo que no os perdáis para conocer cómo empezó esta aventura y las cosas increíbles que han ocurrido desde entonces :)
lunes, 15 de junio de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- The difference between & and && operators
Colin Angus Mackay - Concurrency, part 6: Easier asynchrony in C# with await
Schabse Laks - How to Concatenate strings inside a List using Lambda Expression in C# ?
Senthil Kumar - Writing a simple Decompiler for .NET - Part 1
Karl - Visual Basic 14 Inline Comments & IsNot Works with TypeOf
Peter Vogel - Fluent Assertions
Rahul Sahay - LEADTOOLS Recognition Imaging SDK- Create Imaging Apps Easily
Dirk Strauss - Expresiones regulares en .NET
Sergio León
martes, 9 de junio de 2015
La verdad es que el nuevo sistema de configuración de ASP.NET Core tiene bastante buena pinta. Es potente, muy flexible y es bastante fácil de extender si tuviéramos necesidad de hacerlo.
Independientemente del proveedor que elijamos para almacenar los settings (un archivo JSON, un .INI, o el que sea), el acceso a la información siempre se realiza utilizando una cadena de caracteres hasta llegar al valor deseado de la configuración, como podemos observar en el siguiente ejemplo:
Sin embargo, esto puede ser una fuente de problemas, pues obviamente estas cadenas no son sometidas a ningún tipo de control en compilación y cualquier cambio de estructura o nombre de setting en el archivo de configuración podría provocar comportamientos incorrectos en nuestra aplicación.
Independientemente del proveedor que elijamos para almacenar los settings (un archivo JSON, un .INI, o el que sea), el acceso a la información siempre se realiza utilizando una cadena de caracteres hasta llegar al valor deseado de la configuración, como podemos observar en el siguiente ejemplo:
Sin embargo, esto puede ser una fuente de problemas, pues obviamente estas cadenas no son sometidas a ningún tipo de control en compilación y cualquier cambio de estructura o nombre de setting en el archivo de configuración podría provocar comportamientos incorrectos en nuestra aplicación.
lunes, 8 de junio de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
Eventos
- [Evento] Windows 10 Developer Readiness Powered by MVPs
Javier Suárez
.Net
- C#/.NET Little Wonders: Null Conditional Operator in C# 6
James Michael Hare - Understand how bitwise operators work (C# and VB.NET examples)
ProgramFOX - C# Futures: Immutable Classes
Jonathan Allen - C#- How to Record What Gets Written to or Read From a Stream
Mike Hadlow - Backwards compatibility is (still) hard
John Skeet - Creating a Knockout-Style Variable in C#
Chris Eagle - Using Reflection to Get Enum Description and Value
Bruno Leonardo Michels
lunes, 1 de junio de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
martes, 26 de mayo de 2015
Decía Larry Wall, creador de Perl, que una de las cualidades más destacables de un desarrollador es su orgullo desmedido. En su justa medida es una virtud interesante, pues permite asumir retos, enfrentarse a problemas complejos y crear software increíble, pero llevada al extremo puede ser peligrosa si se deja campar a sus anchas en un equipo de trabajo o proyecto.
Y ya se dieron cuenta de esto los padres de la informática, aquellos pioneros que hace cincuenta años andaban sentando las bases sobre las que se sustentan las tecnologías, herramientas y lenguajes que utilizamos hoy.
La programación sin ego, o egoless programming, es una forma de programar basada en el aprendizaje continuo y colaboración entre personas, dejando de lado los aspectos puramente personales y comportamientos ególatras que podemos tener algunas veces. La idea fue acuñada por Jerry Weinberg en su libro The Psychology of Computer Programming, publicado publicado en 1971.
En este libro aparecieron por primera vez los Diez Mandamientos del Egoless Programming, que creo que deberían ser unas normas de lectura y aplicación obligatoria en nuestra profesión.
La cuestión es encontrarlos pronto, antes de que lleguen a producción. Afortunadamente, salvo para los pocos que desarrollan software de guiado de misiles, los fallos tienen raramente consecuencias fatales en nuestra industria, así que podemos, y deberíamos, aprender, reírnos, y seguir adelante.
2. Tú no eres tu código.
Recuerda que el objetivo de una revisión es encontrar problemas, y se encontrarán problemas. No te lo tomes personalmente cuando un error tuyo se descubra.
3. No importa cuánto “karate” sepas, siempre alguien sabrá más.
Esa persona puede enseñarte algunos movimientos nuevos si se lo pides. Busca y acepta información de otros, especialmente cuando piensas que no es necesario.
4. No reescribas código sin consultarlo antes.
Hay una fina línea de separación entre “corregir código” y “reescribir código”. Conoce la diferencia y realiza los cambios en el marco de una revisión de código, y no actuando como un justiciero solitario.
5. Trata a los que saben menos que tú con respeto, educación y paciencia.
La gente no técnica que trata con desarrolladores de forma frecuente casi siempre tienen la opinión de que en el mejor de los casos somos divas, y en el peor, llorones. No refuerces este estereotipo con ira e impaciencia.
6. La única constante en el mundo es el cambio.
Permanece abierto a ello y acéptalo con una sonrisa. Mira cada cambio a tus requisitos, plataforma o herramientas como un reto, no como un inconveniente contra el que hay que luchar.
7. La única autoridad real deriva del conocimiento, no de la posición.
El conocimiento genera autoridad, y la autoridad engendra respeto. Así que si quieres ser respetado en un entorno egoless, cultiva el conocimiento.
8. Lucha por lo que crees, pero acepta la derrota con deportividad.
Entiende que a veces tus ideas serán ignoradas. Incluso si resulta que estabas en lo cierto, no seas vengativo o digas “te lo dije” más de un par de veces, ni hagas de tu difunta idea una mártir o un grito de guerra.
9. No seas “ese tío de la habitación”.
No seas ese tío programando en una oficina oscura que emerge sólo para comprar coca-cola. Ese tío está fuera de la vista, del tacto, fuera de control y no tiene cabida en un entorno abierto y colaborativo.
10. Critica el código y no a la gente.
Sé amable con el desarrollador pero no con el código. Haz comentarios relacionados con los estándares locales, especificaciones de la aplicación, incrementos de rendimiento, etc.
Publicado en Variable not found.
Y ya se dieron cuenta de esto los padres de la informática, aquellos pioneros que hace cincuenta años andaban sentando las bases sobre las que se sustentan las tecnologías, herramientas y lenguajes que utilizamos hoy.
La programación sin ego, o egoless programming, es una forma de programar basada en el aprendizaje continuo y colaboración entre personas, dejando de lado los aspectos puramente personales y comportamientos ególatras que podemos tener algunas veces. La idea fue acuñada por Jerry Weinberg en su libro The Psychology of Computer Programming, publicado publicado en 1971.
En este libro aparecieron por primera vez los Diez Mandamientos del Egoless Programming, que creo que deberían ser unas normas de lectura y aplicación obligatoria en nuestra profesión.
Los Diez Mandamientos del egoless programming
1. Entiende y acepta que cometerás errores.La cuestión es encontrarlos pronto, antes de que lleguen a producción. Afortunadamente, salvo para los pocos que desarrollan software de guiado de misiles, los fallos tienen raramente consecuencias fatales en nuestra industria, así que podemos, y deberíamos, aprender, reírnos, y seguir adelante.
2. Tú no eres tu código.
Recuerda que el objetivo de una revisión es encontrar problemas, y se encontrarán problemas. No te lo tomes personalmente cuando un error tuyo se descubra.
3. No importa cuánto “karate” sepas, siempre alguien sabrá más.
Esa persona puede enseñarte algunos movimientos nuevos si se lo pides. Busca y acepta información de otros, especialmente cuando piensas que no es necesario.
4. No reescribas código sin consultarlo antes.
Hay una fina línea de separación entre “corregir código” y “reescribir código”. Conoce la diferencia y realiza los cambios en el marco de una revisión de código, y no actuando como un justiciero solitario.
5. Trata a los que saben menos que tú con respeto, educación y paciencia.
La gente no técnica que trata con desarrolladores de forma frecuente casi siempre tienen la opinión de que en el mejor de los casos somos divas, y en el peor, llorones. No refuerces este estereotipo con ira e impaciencia.
6. La única constante en el mundo es el cambio.
Permanece abierto a ello y acéptalo con una sonrisa. Mira cada cambio a tus requisitos, plataforma o herramientas como un reto, no como un inconveniente contra el que hay que luchar.
7. La única autoridad real deriva del conocimiento, no de la posición.
El conocimiento genera autoridad, y la autoridad engendra respeto. Así que si quieres ser respetado en un entorno egoless, cultiva el conocimiento.
8. Lucha por lo que crees, pero acepta la derrota con deportividad.
Entiende que a veces tus ideas serán ignoradas. Incluso si resulta que estabas en lo cierto, no seas vengativo o digas “te lo dije” más de un par de veces, ni hagas de tu difunta idea una mártir o un grito de guerra.
9. No seas “ese tío de la habitación”.
No seas ese tío programando en una oficina oscura que emerge sólo para comprar coca-cola. Ese tío está fuera de la vista, del tacto, fuera de control y no tiene cabida en un entorno abierto y colaborativo.
10. Critica el código y no a la gente.
Sé amable con el desarrollador pero no con el código. Haz comentarios relacionados con los estándares locales, especificaciones de la aplicación, incrementos de rendimiento, etc.
Publicado en Variable not found.
lunes, 25 de mayo de 2015
Seguimos de fiesta, esto es un no parar :) Si la semana pasada celebrábamos el noveno aniversario del blog, hoy celebramos el post número 200 de estas recopilaciones de enlaces, que muchos de vosotros seguís y me habéis comentado que de verdad os resultan interesantes.
De nuevo, muchas gracias a todos por estar ahí :)
Y dicho esto, vamos al turrón…
De nuevo, muchas gracias a todos por estar ahí :)
Y dicho esto, vamos al turrón…
.Net
- A Look at the Open Source JustDecompile Engine
Michael Cramp - WCF Client is Open Source
Ron Cain - When everything you know is wrong, part one
Eric Lippert
martes, 19 de mayo de 2015
Pues sí, parece mentira, pero han pasado ya nueve años desde Variable not found comenzó tímidamente su andadura intentando hacerse un pequeño hueco en este océano de información en que se había convertido internet.
Sinceramente, y ya lo he comentado en alguna otra retrospectiva anual, nunca pensé que esta aventura duraría tanto tiempo y me traería tantas satisfacciones. Y aunque he de reconocer que no es una tarea sencilla, el hecho de estar todavía aquí con ganas de seguir aprendiendo y compartiendo todo lo que puedo es para mí una compensación más que suficiente a la dedicación que esto requiere :)
Como manda la tradición, voy a comentar algunos detalles objetivos sobre la salud blog y sus visitantes, porque alguna vez me habéis comentado que os resultan interesantes estos datos.
Sinceramente, y ya lo he comentado en alguna otra retrospectiva anual, nunca pensé que esta aventura duraría tanto tiempo y me traería tantas satisfacciones. Y aunque he de reconocer que no es una tarea sencilla, el hecho de estar todavía aquí con ganas de seguir aprendiendo y compartiendo todo lo que puedo es para mí una compensación más que suficiente a la dedicación que esto requiere :)
Como manda la tradición, voy a comentar algunos detalles objetivos sobre la salud blog y sus visitantes, porque alguna vez me habéis comentado que os resultan interesantes estos datos.
lunes, 18 de mayo de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- Back to Basic – string Vs. String in C#
Abhijit Jana - C# Futures: Nullability Tracking
Jonathan Allen - What's New in Visual Basic 14? String Interpolation and Multiline Literals
Peter Vogel - 3 misuses of ?. operator in C# 6
Vladimir Khorikov - Don't Forget Implicit Conversion Operators in C#
Khalid Abuhakmeh - Back to Basic – Calling base class constructor from derived class in C#
Abhijit Jana - Using Roslyn to build a simple C# interactive script engine
Christian Jacobsen - C# Futures: Managed Pointers
Jonathan Allen - C#/.NET Little Wonders: Expression-Bodied Members in C# 6
James Michael Hare
martes, 12 de mayo de 2015
Seguimos hablando de novedades que acompañarán a ASP.NET Core MVC, y esta vez le toca el turno a otra de los grandes ausencias que podemos notar cuando creamos desde cero una aplicación utilizando estos frameworks: las variables de sesión.
Bueno, en realidad no se trata tanto de una ausencia como de un desplazamiento de esta característica. Resumidamente, las variables de sesión seguirán existiendo, pero no son parte del core de ASP.NET, como ocurría desde la primera versión de ASP.NET, sino un componente totalmente opcional implementado en forma de middleware que deberá ser instalado y configurado de forma independiente.
Pero antes de continuar, recordad que tanto MVC como ASP.NET Core siguen estando en proceso de desarrollo, por lo que algunas de las cosas que contaremos podrían cambiar en las versiones definitivas, aunque espero que no demasiado.
Y dicho esto, vamos al lío: ¿cómo utilizamos variables de sesión en aplicaciones basadas en ASP.NET Core?
Bueno, en realidad no se trata tanto de una ausencia como de un desplazamiento de esta característica. Resumidamente, las variables de sesión seguirán existiendo, pero no son parte del core de ASP.NET, como ocurría desde la primera versión de ASP.NET, sino un componente totalmente opcional implementado en forma de middleware que deberá ser instalado y configurado de forma independiente.
Pero antes de continuar, recordad que tanto MVC como ASP.NET Core siguen estando en proceso de desarrollo, por lo que algunas de las cosas que contaremos podrían cambiar en las versiones definitivas, aunque espero que no demasiado.
Y dicho esto, vamos al lío: ¿cómo utilizamos variables de sesión en aplicaciones basadas en ASP.NET Core?
lunes, 11 de mayo de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- C#/.NET Little Wonders: Indexer Initializer Syntax
James Michael Hare - Writing and distributing Roslyn analyzers with MyGet
Maarten Balliauw - CQRS with MediatR and AutoMapper
Jimmy Bogard - Back to Basic – Events in C#
Shashank Bisen - Roslyn ships v1.0-rc2 with "Go-Live" license
Anthony D. Green
martes, 5 de mayo de 2015
Ya jugando con Visual Studio 2015 y C# 6, estoy comprobando que la interpolación de cadenas es una de las características más interesantes y prácticas de las novedades que presentará la nueva versión del lenguaje, porque no son pocas las ocasiones en las que creamos expresiones concatenando literales de cadena y variables, o que hacemos uso de
Hace unos meses ya adelantamos por aquí sus principales características, aunque aún era algo pronto para poder probar en profundidad esta nueva y esperada feature. Ahora, más avanzado ya su desarrollo, ha llegado el momento de echarle otro vistazo más en profundidad y ver cómo queda finalmente (o casi finalmente, todavía podría cambiar algo!).
En este post vamos a ver rápidamente los puntos principales a tener en cuenta para dominar esta nueva característica que sin duda facilitará nuestro trabajo y nos hará más productivos.
String.Format()
para construir strings más complejos. Hace unos meses ya adelantamos por aquí sus principales características, aunque aún era algo pronto para poder probar en profundidad esta nueva y esperada feature. Ahora, más avanzado ya su desarrollo, ha llegado el momento de echarle otro vistazo más en profundidad y ver cómo queda finalmente (o casi finalmente, todavía podría cambiar algo!).
En este post vamos a ver rápidamente los puntos principales a tener en cuenta para dominar esta nueva característica que sin duda facilitará nuestro trabajo y nos hará más productivos.
domingo, 3 de mayo de 2015
Ahí van los enlaces recopilados durante la semana pasada, con la Build 2015 y las jugosas novedades anunciadas como principales protagonista. Espero que os resulten interesantes :-)
.Net
- Learn Roslyn Now: Part 10 Introduction to Analyzers
Josh Varty - Automapper Performance Testing
Jamie Munro - What's Fixie and Why Should C# Programmers Care?
Jason Roberts - C# Futures: Tuples and Anonymous Structs
Jonathan Allen - Squirrel – replace ClickOnce the easy way
Gregor Suttie
martes, 28 de abril de 2015
Sin duda son buenas noticias para los desarrolladores VB.NET, que habían visto cómo su lenguaje favorito era ignorado durante el desarrollo de la nueva oleada de tecnologías ASP.NET Core, también conocida como “ASP.NET vNext” (aunque queda poco tiempo para que se le pueda seguir llamando así ;D)
Y la verdad es que había un poco de inquietud al respecto porque todos los desarrollos y ejemplos publicados hasta la fecha de la nueva pila de de tecnologías para la web de Microsoft utilizaban exclusivamente C#, no había ni rastro VB. Esta sensación, además, se veía reforzada por la publicación de comentarios y artículos donde el futuro de Visual Basic en este entorno no parecía estar demasiado claro.
Y la verdad es que había un poco de inquietud al respecto porque todos los desarrollos y ejemplos publicados hasta la fecha de la nueva pila de de tecnologías para la web de Microsoft utilizaban exclusivamente C#, no había ni rastro VB. Esta sensación, además, se veía reforzada por la publicación de comentarios y artículos donde el futuro de Visual Basic en este entorno no parecía estar demasiado claro.
lunes, 27 de abril de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- C# 7 Work List of Features (¡y todavía no tenemos aquí C#6!)
Mads Torgersen - Logging with Microsoft.NET
Rabhi Sofiene - ConfigurationTransformations Nuget
Vasil Trifonov - Converting PDF to Text in C#
Dan Letecky
martes, 21 de abril de 2015
Seguro que ya todos conocéis la fórmula mágica mediante la cual podemos activar la compilación de vistas en versiones de ASP.NET MVC anteriores a la 6. Los que no sepáis de qué os hablo, podéis echar un vistazo a este vídeo que publiqué en el blog de CampusMVP hace algún tiempo: VIDEO: Activar la compilación de vistas en ASP.NET MVC.
Muy resumidamente, el asunto consistía en editar manualmente el archivo de proyecto de Visual Studio, con extensión .csproj, y establecer el contenido del tag
Muy resumidamente, el asunto consistía en editar manualmente el archivo de proyecto de Visual Studio, con extensión .csproj, y establecer el contenido del tag
<MvcBuildViews>
a true.
lunes, 20 de abril de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- Types Of Code Coverage- Examples In C#
Anton Angelov - Coding Neural Network Back-Propagation Using C#
James McCaffrey - C#/.NET Little Wonders: Static Using Statements in C# 6
James Michael Hare - Improving on .NET Memory Management for Large Objects
Michael Balloni - What is the unchecked keyword good for? Part one and Part two
Eric Lippert - Proper, Translatable Pluralization in .NET with MessageFormat
Jeffijoe - 5 ways to concatenate strings with C# .NET
Andras Nemes - NameOf (C# 6)
Robert MacLean - Automatic Sorting for Your Collections
Peter Vogel
martes, 14 de abril de 2015
Sin duda, posts pertenecientes a la serie recopilatoria de citas célebres relacionadas con el mundo de la informática (primero, segundo, tercero y cuarto) siguen siendo, año tras año, los contenidos más populares de este blog, probablemente por la mezcla de conocimiento, humor, ingenio y realidad sobre nuestro día a día que incluyen estos mensajes.
Tras su última entrega, allá por septiembre de 2012, he continuado recopilando todas las citas que han caído en mis manos y me han resultado curiosas, hasta llegar por fin a las 101 que os traigo hoy. Espero que os iluminen de nuevo o, al menos, que os hagan pasar un rato tan bueno como los que paso yo mientras las voy seleccionando :)
Tras su última entrega, allá por septiembre de 2012, he continuado recopilando todas las citas que han caído en mis manos y me han resultado curiosas, hasta llegar por fin a las 101 que os traigo hoy. Espero que os iluminen de nuevo o, al menos, que os hagan pasar un rato tan bueno como los que paso yo mientras las voy seleccionando :)
Publicado por José M. Aguilar a las 9:05 a. m.
Etiquetas: curiosidades, frases célebres, frikadas, humor
lunes, 13 de abril de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- C#/.NET Little Wonders: Exception Filtering in C# 6
James Michael Hare - What’s new in Microsoft .NET Framework 4.6?
DevToolsGuy
martes, 7 de abril de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- String and StringBuilder revisited
Phillip Trelford's - C# 6.0 – Defining a Parameterless Constructor for a struct
Sean Sexton - Compiling C# Code Into Memory and Executing It with Roslyn
Tugberk Ugurlu - Prettifying a JSON String in .NET
Rick Strahl - Snippet para IDisposable
Sergio León
martes, 24 de marzo de 2015
Cuando hace unas semanas hablábamos de la desaparición del Web.config en ASP.NET Core, seguro que a muchos os surgió una duda en cuanto a las consecuencias que esto podría tener en aplicaciones MVC: ¿y qué ocurre con el Web.config que encontrábamos en la carpeta /Views o /Area/<AreaName/Views?
Pues a ver si este post nos lo aclara un poco ;) Pero eso sí, siempre tened en cuenta que las nuevas versiones están aún en beta y algunas cosas pueden cambiar.
Pues a ver si este post nos lo aclara un poco ;) Pero eso sí, siempre tened en cuenta que las nuevas versiones están aún en beta y algunas cosas pueden cambiar.
lunes, 23 de marzo de 2015
Ahí van los enlaces recopilados durante los últimos quince días. Espero que os resulten interesantes y no os atragantéis, que son bastantes ;)
.Net
- xUnit 2.0 release notes
xUnit team - Lambda Expressions, Captured Variables, and For Loops: A Dangerous Combination
Jeremy Bytes - Pdf en ASP.NET MVC - MvcRazorToPdf
Sergio León - Roslyn, el nuevo compilador de C# y Visual Basic
Juan Manuel Servera - Announcing Microsoft.IO.RecycableMemoryStream
Ben Watson - Null propagation for pre-C#6
Hallo Welt - Interfaces marcadoras, atributos y convenciones
Juan María Hernández - C# 6.0- Language features and its internals (serie)
Abhishek Sur
martes, 10 de marzo de 2015
Hemos comentado en algunas ocasiones que, aparte de la entrada de ASP.NET Core y los cambios en la infraestructura que ello implica, el nuevo MVC incluye también algunas novedades bastante interesantes. Ya estuvimos viendo hace algún tiempo los filtros asíncronos, y hoy vamos a centrarnos en una nueva directiva que podremos utilizar en nuestras vistas Razor a partir de la llegada de la próxima versión del framework.
La novedad en cuestión consiste en la capacidad de añadir a las vistas propiedades cuyo contenido será cargado en tiempo de ejecución usando el motor de inyección de dependencias de ASP.NET 5. o dicho de otra forma, se trata de una implementación de inyección de dependencias en las vistas, componentes en los que hasta ahora eso no era posible, al menos de forma directa y sencilla.
Vamos a verlo en detalle, pero antes, recordad: a día de hoy ASP.NET Core MVC sigue todavía en el horno, y puede que algunas de las cosas que cuente por aquí no sean del todo ciertas para la versión final.
La novedad en cuestión consiste en la capacidad de añadir a las vistas propiedades cuyo contenido será cargado en tiempo de ejecución usando el motor de inyección de dependencias de ASP.NET 5. o dicho de otra forma, se trata de una implementación de inyección de dependencias en las vistas, componentes en los que hasta ahora eso no era posible, al menos de forma directa y sencilla.
Vamos a verlo en detalle, pero antes, recordad: a día de hoy ASP.NET Core MVC sigue todavía en el horno, y puede que algunas de las cosas que cuente por aquí no sean del todo ciertas para la versión final.
lunes, 9 de marzo de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
Eventos
- ALMdeando
Sevilla, Miércoles, 11 de Marzo de 19:00h a 21:00h
.Net
- C# o VB.NET ¿qué lenguaje debo aprender-
José Manuel Alarcón - A Tour of Task, Part 9: Delegate Tasks
Stephen Cleary - Implementing Enumeration Inheritance using Roslyn based VS Extension
Nick Polyak - ?. in C#: When properties might be null
Bill Wagner - What is Cool about C# 6.0?
Pradeep Shet - .NET Core Open Source Update - February 26, 2015
Rick Lander - Backward compatibility pain
John Skeet - Performance o rendimiento, e implicaciones del uso de const o reandonly
Jorge Serrano
martes, 3 de marzo de 2015
Hay muchas ocasiones en las que es conveniente, o incluso necesario, utilizar Visual Studio con privilegios de administrador del equipo. Aunque es bastante sencillo de conseguir (botón derecho > ejecutar como administrador) es cierto que a veces es un poco molesto porque no siempre nos acordamos de hacerlo, y tenemos que cerrar Visual Studio y abrirlo de nuevo, o simplemente porque abrimos un proyecto haciendo doble clic sobre la solución.
Seguro que la mayoría de vosotros tenéis ya alguna forma para simplificar o automatizar este procedimiento, pero como de vez en cuando me encuentro con alguno que sigue realizando esos pasos de forma manual, ahí va este post por si os es de utilidad.
Lo que veremos a continuación es un truco rápido para conseguir que Visual Studio se abra siempre como administrador en Windows 8; son sólo cinco pasos que completaréis en menos de un minuto:
Seguro que la mayoría de vosotros tenéis ya alguna forma para simplificar o automatizar este procedimiento, pero como de vez en cuando me encuentro con alguno que sigue realizando esos pasos de forma manual, ahí va este post por si os es de utilidad.
Lo que veremos a continuación es un truco rápido para conseguir que Visual Studio se abra siempre como administrador en Windows 8; son sólo cinco pasos que completaréis en menos de un minuto:
lunes, 2 de marzo de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- The LINQ Join Method: Deciphering the Parameters
Jeremy Bytes - Handle Conflicting Namespaces with Aliases
Peter Vogel - Understanding .NET 2015
Beth Massi - The LINQ OfType<TResult> Method: Cast or Filter?
Jeremy Bytes - Enumeration Types do not Enumerate! Working around .NET and Language Limitations
Sergey Alexandrovich Kryukov - LINQ Methods With or Without Predicates: What's the Difference?
Jeremy Bytes - Optical Character Recognition in PDF Using Tesseract Open-Source Engine
Usha Clementine - Customizing string interpolation in C# 6
Thomas Levesque's - Inherit a struct in C#? Why (can)not?
Canny Brisk
martes, 24 de febrero de 2015
Nota [05/10/2015] - Hay una versión actualizada de este post.
La inyección de dependencias ha sido un tema recurrente en Variable not found desde hace bastante tiempo, y dadas las grandes novedades incluidas en ASP.NET 5 al respecto estaba deseando hincarle el diente y publicar algo sobre el tema.Para los perezosos, podríamos resumir el resto del post con una frase: ASP.NET 5 viene construido con inyección de dependencias desde su base, e incluye todas las herramientas necesarias para que los desarrolladores podamos usarla en nuestras aplicaciones de forma directa, en muchos casos sin necesidad de componentes de terceros (principalmente motores de IoC que usábamos hasta ahora). Simplemente, lo que veremos a continuación es cómo utilizar esta característica ;)
Pero permitidme una nota antes de empezar: si no sabes aún lo que es inyección de dependencias, el resto del post te sonará a arameo antiguo. Quizás podrías echar previamente un vistazo a este otro, Desacoplando controladores ASP.NET MVC, paso a paso, que aunque tiene ya algún tiempo, creo que todavía es válido para que podáis ver las ventajas que nos ofrece esta forma de diseñar componentes.
Ah, y recordad: todo lo que vamos a ver podría cambiar conforme vaya avanzando el desarrollo del producto, pero más o menos son cosas que parecen relativamente estables desde hace algún tiempo.
lunes, 23 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)
.Net
- Roslyn Code Gems - Counting Bits
K. Scott Allen - Beyond Unit Tests with ConventionTests
Jason Roberts - Proper benchmarking to diagnose and solve a .NET serialization bottleneck
Scott Hanselman
martes, 17 de febrero de 2015
Hace sólo unos días comentábamos la próxima desaparición del Global.asax a partir de ASP.NET Core y su sustitución por la clase Startup
, pero no es esto lo único que va a dejar de acompañarnos durante nuestras andanzas digitales. Como vimos también hace algún tiempo, el nuevo enfoque de ASP.NET hace que se prescindan de muchos elementos que ya no tienen sentido.Y en esta ocasión hablaremos sobre la desaparición del Web.config, el célebre archivo de configuración que lleva con nosotros desde los inicios de ASP.NET. Nacido en momentos en que se pensaba que XML era la panacea y muy ligado al denostado System.Web, ha sido útil durante años para configurar aspectos relativos a la compilación y ejecución de las aplicaciones web en el servidor, así como el “sitio oficial” para introducir de settings como cadenas de conexión y otros valores configurables de nuestros sistemas.
Pero, antes de continuar, un disclaimer: ASP.NET Core está aún en desarrollo, y parte de lo que se diga aquí puede no ser del todo cierto mañana mismo, aunque posiblemente los conceptos fundamentales sí lo serán. O eso espero ;)
lunes, 16 de febrero de 2015
Ahí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes ;-)
.Net
- La azarosa historia de un nuevo curso- Desarrollo con C# y la plataforma .NET
José Manuel Alarcón - Back to Basics- UTC and TimeZones in .NET Web Apps
Rick Strahl - Some considerations on asynchronous execution
Paulo Zemek - Genetic algorithm to solve 2D Mazes in Visual Basic
Emiliano Musso - The Right Way to do Equality in C#
Aaron Stannard - Conditional Access Operator in C# 6.0
K. Scott Allen - Async Transaction Scope on .NET 4.5.1
Bnaya Eshet - Check out Tuples in C# – A handy, easy to use data structure
Andy Schwam