Design a site like this with WordPress.com
Get started

StyleCop, TFS y Nuget

StyleCop es una herramienta que analiza nuestro código para ver si se cumplen un conjunto de reglas y estilos de codificación.

Por resumir un poco, el equipo que lleva el proyecto de StyleCop ha identificado un estilo y conjunto de reglas para la programación en C#. En esas reglas se define, por ejemplo, que todo método debe tener una sección de documentación, toda variable de clase debe estar documentada, etc … Si queréis ver cuales son esas reglas por defecto no dejéis de pasaros por la sección de la documentación dedicada a ello. No voy a entrar en la discusión de si esas secciones son necesarias o no para documentar el código ;). El objetivo que se busca con este proyecto es que todo el código esté escrito de manera homogénea, evitando de un plumazo las discusiones entre los miembros del equipo del tipo: “Has vuelto a poner el { en la misma línea del if …”

StyleCop en NuGet

Para integrarlo en nuestros proyectos, simplemente con NuGet, buscamos StyleCop:

StyleCop En Nuget

Una vez que lo instalemos los paquetes StyleCop y StyleCop.MSBuild en nuestro proyecto, si queremos que los errores que nos marca StyleCop sean errores de compilación en lugar de warnings tan solo tenemos que editar el .csproj y añadir la línea:

<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>

En la sección que queramos que esto ocurra, por ejemplo, si queremos que esto sólo salte cuando compilemos en debug, buscaremos la sección de configuración para ello, y la añadiremos al property group:

&lt;PropertyGroup&gt;
    &lt;Configuration Condition=&quot; '$(Configuration)' == '' &quot;&gt;Debug&lt;/Configuration&gt;
    &lt;Platform Condition=&quot; '$(Platform)' == '' &quot;&gt;AnyCPU&lt;/Platform&gt;
    &lt;ProjectGuid&gt;{471ADD54-6DE1-42F2-8ECD-A41C5C05029E}&lt;/ProjectGuid&gt;
    &lt;OutputType&gt;Library&lt;/OutputType&gt;
    &lt;AppDesignerFolder&gt;Properties&lt;/AppDesignerFolder&gt;
    &lt;RootNamespace&gt;ClassLibrary1&lt;/RootNamespace&gt;
    &lt;AssemblyName&gt;ClassLibrary1&lt;/AssemblyName&gt;
    &lt;TargetFrameworkVersion&gt;v4.5&lt;/TargetFrameworkVersion&gt;
    &lt;FileAlignment&gt;512&lt;/FileAlignment&gt;
    &lt;SccProjectName&gt;SAK&lt;/SccProjectName&gt;
    &lt;SccLocalPath&gt;SAK&lt;/SccLocalPath&gt;
    &lt;SccAuxPath&gt;SAK&lt;/SccAuxPath&gt;
    &lt;SccProvider&gt;SAK&lt;/SccProvider&gt;
    &lt;StyleCopTreatErrorsAsWarnings&gt;false&lt;/StyleCopTreatErrorsAsWarnings&gt;
    &lt;SolutionDir Condition=&quot;$(SolutionDir) == '' Or $(SolutionDir) == '<em>Undefined</em>'&quot;&gt;..&lt;/SolutionDir&gt;
    &lt;RestorePackages&gt;true&lt;/RestorePackages&gt;
  &lt;/PropertyGroup&gt;

Personalizar las reglas

Una vez que hayamos instalado StyleCop, podemos configurarlo haciendo clic derecho en el proyecto y veremos las reglas y opciones que podemos configurar:

StyleCop SettingsEsto va a generar un archivo en la raíz del proyecto llamado “Settings.Stylecop” que tenedremos que añadir al proyecto y al TFS

No es mala idea usar siempre el mismo archivo de configuración para todos nuestros proyectos, así que una vez que tengamos un archivo de este tipo podemos ponerlo en un directorio dentro del TFS y enlazarlo al archivo de nuestro proyecto en la sección de configuración de StyleCop, en la pestaña “Settings Files” de esta manera:

StyleCop Custom Rules

Esto generará un “Settings.stylecop” tan sólo con la ruta que le hemos indicado. Este archivo también tenemos que añadirlo al TFS para que se ejecute StyleCop en la nube.

Juan María Laó Ramos

ImageResizer una pequeña joya

El número de paquetes disponibles en el sitio NuGet se está empezando a llenar. Os recomiendo que le echéis un vistazo de vez en cuando para ver qué cosas nuevas van apareciendo, seguro que encontráis algo que os pueda ser útil.

Hoy vamos a ver un pequeño pero útil paquete del que Bertrand Le Roy se ha hecho eco hace poco para poder reescalar imágenes de forma sencilla en ASP.NET. El paquete es ImageResizer. Continue reading “ImageResizer una pequeña joya”

Actualización de ASP.NET MVC 3 Tools

Hace poco que hicimos el MIX 2011  en Las Vegas. MIX es uno de mis eventos favoritos del año, y las conferencias tienen un montón de contenidos y anuncios. Podéis ver todos los keynotes y sesiones online y de manera gratutia aquí. Haré algunos post en las próximas semanas sobre algunas cosas interesantes que vimos allí.

Actualización de ASP.NET MVC 3

Uno de los anuncios que hice el primer día era la release de la acualización de ASP.NET MVC 3 Tools. Esta actualización es una pequeña, pero sabrosa, actualización que incluye unas mejoras realmente interesantes para ASP.NET MVC 3. Podéis instalarla desde http://asp.net/mvc (tan solo haced clic en el instalador).

La actualización de ASP.NET MVC Tools se puede instalar sobre la release de ASP.NET MVC 3 (no hace falta desinstalarla si ya la tenemos instalada) o sobre una máquina limpia (no es necesario tener los bits de ASP.NET MVC 3).

ASP.NET MVC 3 Tools Update tan solo incluye mejoras en las herramientas de Visual Studio y cambios en la plantilla del proyecto por defecto – no incluye ningún cambio en binarios del runtime de ASP.NET MVC 3. Como usa los mismos binarios de la release de Enero, no hace falta actualizar proyectos de MVC 3 en los que estéis trabajando ni hacer ningún cambio de código.

¿Qué hay de nuevo en la actualización de ASP.NET MVC 3 Tools?

Esta actualización incluye un montón de mejoras de herramientas para ASP.NET MVC 3 incluyendo:

  • La release final de EF 4.1 (que incluye EF Code First) está incluida por defecto en todos los proyectos nuevos. Ántes teníais que descargar esta librería de forma separada usando NuGet. Ahora está referenciada por defecto cuando creamos proyectos nuevos (permitiendo una limpia y poderosa API para datos por defecto).
  • Soporte integrado de data scaffolding en el diálogo Add->Controller de Visual Studio. Esto nos permite construir una clase Controlador (incluyendo todo el codigo de acceso a datos necesario) y todas las plantillas de vista requeridas para una solución CRUD sobre clases de modelo EF (usando tanto code-first, database-first o model-first). Hace super fácil la creación de sitios guiados por datos usando ASP.NET MVC.
  • Soporte de plantillas de proyectos HTML 5 para hacer más fácil el uso de etiquetas de semántica HTML 5 cuando creemos nuevos sitios (elementos como <header>, <footer>, <section>, <aside>, etc). También incluimos la librería Modernizr 1.7 de JavaScript  en proyectos nuevos. Modernizr es una librería OSS que hace muy fácil comporbar las características de las capacidades para HTML 5 de los navegadores, y también nos permite el uso de CSS estándars para elementos HTML 5 y seguirá funcionando igual en navegadores antiguos (como IE6).
  • Se ha introducido la nueva plantilla de proyecto de Intranet en esta release que hace más fácil crear proyectos nuevos que usen autenticación de Windows para identificar a usuarios (como oposición a autenticación por formulario incluido en la plantilla de intranet actual). Hablando sobre la plantilla de proyecto de Intranet, la clase AccountController también ha sido limpiada en esta release.
  • Nuevas versiones del nucleo de jQuery, jQuery UI y jQuery Validation han sido incluidos en esta release. Las versiones por defecto que se añadían a los nuevos proyectos también son añadidas como librerías NuGet (es decir, están listadas en el archivo packages.config del proyecto)- con esto podemos usar NuGet para actualizarlas a versiones más nuevas en el futuro.

Voy a hacer unos cuantos post en los próximos días y semanas sobre las nuevas características y cómo aprovecharlas. También podéis aprender más de esta release (y verlo en acción) en los siguientes post/videos:

Espero que sirva.

Scott.

Traducido por: Juan María Laó Ramos.

Artículo original