Design a site like this with WordPress.com
Get started

XAML, UWP y Sqlite

La primera vez que creas un proyecto UWP con Sqlite y recibes el error:

Unable to load DLL ‘sqlite3.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

El problema es que aún falta un componente por agregar a tu proyecto.

Los componentes necesarios son:

  • SQLitePCL
  • SQLite for Universal Windows Platform
  • Visual C++ 2015 Runtime for Universal Windows Platform Apps

El segundo y tercer componente son extensiones que deben estar instalados y se añaden al Proyecto desde Add Reference/Universal Windows/Extensions:


Espero que os sirva para no volveros locos como me ha pasado a mi.

Juan María Laó Ramos

Git para usuarios de TFS

Los ALMRanges publicaron un pequeño libro para contarnos el uso de Git a usuarios acostumbrados a usar sistemas de control de versiones centralizados como TFS y subversion.

Me volví a armar de valor para traducirlo al castellano y aquí lo tenéis.

Espero que os guste.

Noticia en el blog de los ALM Rangers

Control de Versiones con TFS Parte 4 – Git para usuarios de TFVC

Un detalle de la parametrización de CodedUITests con CSV

Hay un detalle que no nos cuentan en MSDN  Creating a Data-Driven Coded UI Test

Resulta que me he puesto a crear el primer test parametrizado y en mi csv tenía este contenido:

User,Passwd
1111,pass0000
7777776,4444

Cuando se ejecutaba el test, en la row del test paremetrizado que debería obtenerme el “pass0000”, me estaba obteniendo un string vacío:

Parametrized CodedUITest

Para que no ocurra esto, simplemente hay que modificar el archivo csv y añadirle comillas a los valores que queremos que nos devuelva:

User,Passwd
“1111”,”pass0000″
“7777776”,”4444″

Me ha traido loco durante dos horas, espero que a alguien más le sirva.

Juan María Laó Ramos

 

Nuevas funcionalidades sobre testing en la interfaz Web de TFS

Vamos a ver una nueva funcionalidad que aún no he usado y me ha dejado enamorado.

Se trata de crear casos de test’s a partir de un archivo Excel en TFS con la interfaz web.

Primero, tendremos que crear un plan de tests, en la pestaña “Test” y creamos un nuevo “Test plan” haciendo clic en el “+”:

1. Los Test Plans y Suites son work items
Continue reading “Nuevas funcionalidades sobre testing en la interfaz Web de TFS”

[ebook] Guías de Visual Studio Version Control [ALMRangers]

ALMRangers

Los Visual Studio ALM Rangers ofrecen una guía profesional, experiencia práctica y proporcionan soluciones a la comunidad ALM. Son un grupo especial compuesto por miembros del grupo de producto de Visual Studio, de Microsoft Services, Microsoft Most Valuable Professionals (MVP) y Visual Studio Community Leads. La información sobre sus miembros está disponible aquí online.

Hace un tiempo me lancé a traducir una guía que escribieron que me pareció muy interesante: Testing Unitario con Microsoft Fakes. (Hace poco lanzaron la segunda revisión y también actualicé la versión que traduje.

En estas últimas semanas he estado trabajando en otras traducciones de otras guías sobre Visual Studio Version Control y todas sus funcionalidades:

EstrategiasDeBranching JoyasTFVCGestionDependenciasNuGet

Espero que os resulten interesantes.

[Updated]

Aquí tenéis los enlaces directos a los pdfs a las traducciones:

Post en el blog de Willy-Peter Schaub

Juan María Laó Ramos

TFS, Xamarin y MSTests

Hace un tiempo vimos un pequeño truco para poder ejecutar tests en las builds de TFS para proyectos Windows Phone.

Me ha sido necesario hacer lo mismo con proyectos con Xamarin Android y Xamarin iOS y aquí os pongo mi experiencia y cómo lo he resuelto. Continue reading “TFS, Xamarin y MSTests”

Windows Azure: Release de Windows Azure SDK 2.2 (y sus chuladas)

Ya está publicada la nueva release de Windows Azure SDK 2.2. En esta release se han incluido un gran número de características:

  • Soporte para Visual Studio 2013.
  • Se ha integrado el Sign-In de Azure en Visual Studio.
  • Debugging remoto de servicios cloud con Visual Studio.
  • Soporte de administración de Firewalls en Visual Studio para bases de datos SQL.
  • Imágenes de máquinas virtuales con Visual Studio 2013 RTM para suscriptores MSDN
  • Windows Azure Managemente Libraries for .NET
  • Se han actualizado los Windows Azure PowerShell Cmdlets y ScriptCenter Continue reading “Windows Azure: Release de Windows Azure SDK 2.2 (y sus chuladas)”

TFS, Windows Phone y MSTests

¿Quieres que en las builds que tengas configuradas en TFS se ejecuten los test de tu aplicación Windows Phone?

Seguramente habéis probado a incluir un proyecto del tipo “Windows Phone Unit Test App” y os habéis puesto a crear nuestros tan amados tests. Pero a la hora de incluirlo en el repositorio de código, os habréis dado cuenta de que pasa algo raro: Los test no se ejecutan. (Si no te has dado cuenta, deja de leer esto y ve a comprobarlo)

La cosa es que ese proyecto de test lanza un emulador de WP y ejecuta los test y eso TFS no lo soporta todavía. Así que tienes dos opciones:

1) Dejar de hacer tests de tu aplicación WP.

2) Continuar leyendo.

Bien, si estás aquí, te cuento la solución en unos cuantos pasos:

1) Añade un proyecto de test típico de Visual Studio: Visual Studio Unit Test Project.

2) A este proyecto de test, añade una referencia del proyecto Windows Phone 8 que estés desarrollando.

3) Añade una copia local de los assemblies de Windows Phone que necesites, por ejemplo:

– System.Windows

– Microsoft.Phone

Los encontrarás en el directorio C:Program Files (x86)Microsoft SDKsWindows Phonev8.0ToolsMDILXAPCompileFramework

4) Copialos a un directorio local, que también tendrás que subir al TFS, llámalo por ejemplo /lib/ y ahora edita el XML del proyecto de test (el .csproj) y reemplaza:

<Reference Include="System.Windows" />
<Reference Include="Microsoft.Phone" />

por:

  <Reference Include="System.Windows, Version=2.0.6.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, processorArchitecture=MSIL">
  <HintPath>libSystem.Windows.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Phone, Version=8.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e, processorArchitecture=MSIL">
  <HintPath>libMicrosoft.Phone.dll</HintPath>
</Reference>

Además, para evitar los warnings cada vez que compiles añade este elemento al primer grupo de <PropertyGroup> del .csproj:

<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>

A partir de este momento, cuando incluyáis vuestro proyecto en vuestro TFS vuestros tests se ejecutarán como si lo hiciesen en el emulador, pero sin tener que lanzarlos.

Espero que pronto den solución a este “problema” y lo incluyan en la próxima versión.

Este post ha sido gracias a una respuesta en stackoverflow http://stackoverflow.com/a/13035195 que me ha salvado el día.

¿Se os ocurre otra forma de conseguir el mismo resultado?

Espero que sirva.

Juan María Laó Ramos.

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

Windows Azure Mobile Services

Windows Azure Mobile Services hace realmente fácil conectarse a un backend escalable en la nube desde nuestras aplicaciones clientes y móviles. Nos permite guardar datos estructurados en la nube que podemos usar en dispositivos, integrarlos con la autenticación, y enviar actualizaciones a clientes a través de notificaciones push.

Estas características las podemos tener disponibles en sólo unos minutos para nuestras aplicaciones de Windows 8, ofreciendo una forma superproductiva de implementar vuestras ideas de apps. También soportamos escenarios para Windows Phone, iOS y Android que veremos en otro post próximamente.

Leed este tutorial para ver cómo (en menos de 5 minutos) podemos crear una aplicación típica de “Todo List” usando Windows Azure Mobile Services. O ved este video en el que enseño paso a paso cómo hacerlo.

Empezando

Si aún no tenéis una cuenta de Windows Azure, podéis obtener una Free trial. Una vez que os logáis, clicad en la sección “preview features” debajo  del tab “account” de la web www.windowsazure.com y activad que vuestra cuenta soporte “Mobile Services”. Aquí podéis ver seguir las instrucciones para hacerlo.

Una vez que tengáis habilitado la sección de mobile services, logaos en el portal de Windows Azure, y clicad el botón “New” y elegid el icono “Mobile Services” para crear vuestro primer backend mobile. Una vez que lo tengáis creado, veréis una página de inicio rápido con instrucciones sobre cómo conectar vuestro servicio móvil a una aplicación Windows 8 en la que ya hayáis trabajado, o podréis incluso crear una aplicación nueva con la que empezarWindows Azure Mobile Services Portal

Leed este tutorial de iniciación para ver cómo podemos crear (en menos de 5 minutos) una aplicación de “To-do List” para Windows 8 que guarda los datos en Windows Azure.

Guardando datos en la nube

Guardar datos en la nube con Windows Azure Mobile Services es realmente sencillo. Cuando creamos un servicio móvil de Windows Azure, lo asociamos automáticamente a una base de datos SQL dentro de Windows Azure. El backend nos prepara todo lo necesario para poder guardar y obtener datos desde nuestras aplicaciones de manera segura (usando end-points REST que intercambian información en JSON) – sin tener que escribir ni desplegar ningún código en el servidor. También nos ofrece una interfaz de administración desde el que podemos crear tablas, ver los datos, establecer índices y controlar los permisos de acceso.

Diagrama Windows Azure Mobile Services

Esto hace que conectar nuestras aplicaciones con la nube sea realmente sencillo, y permite que los desarrolladores que no tengan un servidor con todo esto sean muy productivos desde el principio. Se pueden centrar en crear la experiencia de la aplicación, y dejar que Windows Azure Mobile Services ofrezca los servicios en la nube que necesiten.

Aquí tenéis un ejemplo de una aplicación cliente de Windows C#/XAML que obtiene datos de un Windows Azure Mobile Service. Los desarrolladores de aplicaciones C# pueden escribir consultas usando LINQ y objetos POCO, que se traducen a peticiones HTTP REST contra un Windows Azure Mobile Service. Los desarrolladores no tienen que escribir ni desplegar ningún código de servidor para poder ejecutar el código ni  obtener de manera asíncrona la información

Código de acceso a Windows Azure Mobile Services

Como Mobile Services es parte de Windows Azure, podemos ampliar más tarde la solución y añadir funcionalidad en el servidor para conseguir una lógica tan compleja como queramos. Esto no permite una flexibilidad máxima, y nos permite adaptar nuestras soluciones a cualquier necesidad que tengamos.

Autenticación de usuarios y notificaciones push.

Windows Azure Mobile Services hace que integrar la autenticación/autorización de usuarios y notificaciones push sea realmente sencillo. Podemos usar estas capacidades para permitir autenticar y tener un control muy fino del acceso a los datos que hemos guardado en la nube, así como lanzar notificaciones push a usuarios/dispositivos cuando cambian los datos. Windows Azure Mobile Services soporta el concepto de “scripts de servidor” (pequeños trozos de código script en el servidor que se ejecutan en respuesta a ciertas acciones) que hacen que estos escenarios sean super sencillos de habilitar.

Aquí tenéis unos tutoriales sobre autenticación/autorización/push que podemos hacer con Windows Azure Mobile Services en aplicaciones de Windows 8:

Administrando y monitorizando  nuestro Mobile Service

Como cualquier otro servicio en Windows Azure, podemos monitorizar el uso y las métricas del bakend de  nuestro servicio móvil usando el “Panel”  (Dashboard) desde el portal de Windows Azure:

Portal de Administración de Windows Azure Mobile Services

Este panel nos ofrece una vista de monitorización de las llamadas a la API, ancho de banda, y ciclos de CPU de nuestro servicio mobil. También podemos ver el tab de “Logs” para revisar los errores que se hayan podido producir. Esto hace muy sencillo monitorizar qué está haciendo nuestra aplicación.

Escala a medida que tu negocio crece

Windows Azure Mobile Services nos permite crear has 10 Mobile Services de manera gratuita, un entorno compartido  (en el que nuestro backend será una de las aplicaciones que se ejecutarán en una serie de servidores compartidos). Esto ofrece una forma fácil de comenzar proyectos sin coste alguno más allá que el de acceso a la base de datos (nota: cada cuenta trial de Windows Azure incluye 1GB de base de datos SQL que podemos usar con cualquier número de aplicaciones o servicio móvil)

Si tu aplicación se vuelve popular, podemos hacer clic en el tab “Scale” de nuestro servicio móvil y pasar de un modo “compartido” a uno “dedicado”. Con esto podemos aislar las aplicaciones, de manera que seremos el único cliente en una máquina virtual. Esto nos permite escalar la cantidad de recursos que nuestra App usa – permitiéndonos aumentar o disminuir nuestra capacidad a medida que el trafico crece:

Sección de Scale de Windows Azure

Con Windows Azure pagamos por capacidad de computación por hora – esto nos permite aumentar o disminuir los recursos disponibles para que se ajusten a lo que necesitamos. Permitiendo así un modelo super flexible e ideal para escenarios de aplicaciones móviles nuevas, así como para startups que están comenzando.

Resumen

Sólo hemos visto por encima todo lo que ofrece Windows Azure Mobile Services – hay un montón de características más.

Con Windows Azure Mobile Services podremos crear experiencias para aplicaciones móviles más rápido que nunca, y ofrecer una experiencia de usuario mucho mejores – conectando nuestras apps a la nube.

Visitad el centro de desarrollo de Windows Azure Mobile Services para aprender más, y crea tu primera aplicación de Windows 8 conectada a Azure hoy. Leed este tutorial sobre cómo podemos crear (en menos de cinco minutos) una aplicación “Todo list” conectada a la nube con Windows Azure Mobile Services.

Espero que sirva.

Scott

Artículo original.

Traducido por: Juan María Laó Ramos.