> For the complete documentation index, see [llms.txt](https://elguerre.gitbook.io/de0an/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elguerre.gitbook.io/de0an/capitulo-7-la-construccion.-accediendo-a-los-datos/refinando.md).

# Refinando

A medida que avanza el desarrollo, surgen oportunidades de mejora que conviene abordar para mantener la calidad y coherencia del proyecto. A continuación, repasamos las más relevantes de este capítulo.

1. Utilizando SAS para el acceso a Azure Storage, y evitar el acceso público.
2. Cache local para la descarga de imágenes
3.

## Builds con TFS Service

Una vez actualizada la configuración de la build CI, según vimos en el capítulo 6, nuevamente necesita ser actualizada para poder trabajar con SQLite. Sin embargo, la interacción con SQLite además de las referencias incluidas con NuGet (), depende del SDK de “SQLite for Windows Phone 8.1”, lo que supone un inconveniente al ejecutarse en TFS Service, produciendo el error que podemos ver en la siguiente figura:

![](https://240651724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfrvHBNivOTy0fVKROgzo%2Fuploads%2Fgit-blob-11d967bd0ddc8a37ae5ecaf2d892b50e33e3f7a2%2Fimage27.png?alt=media)

**Figura 24.- Error en la ejecución de la build CI y SQLite**

Para solventar este tema, tendremos que recurrir al controlador de builds “Windows8” que ya creamos en el capítulo “6”.

![](https://240651724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfrvHBNivOTy0fVKROgzo%2Fuploads%2Fgit-blob-6291329071b44d8041bca21c55570a00a49f0bd7%2Fimage28.PNG?alt=media)

**Figura 25.- Selección del controlador de builds en la configuración de TFS Service**

Y modificar igualmente el agente.

![](https://240651724-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfrvHBNivOTy0fVKROgzo%2Fuploads%2Fgit-blob-0834cb1da7943a6e3d8f46c2c27b31dcb14fe635%2Fimage29.PNG?alt=media)

**Figura 26.- Configuración del agente de builds en TFS Service**

Actualizados estas dos propiedades, ahora nuestra build de integración continua “CI”, estará lista nuevamente.

## Diccionarios de estilos

Comencemos *“refactorizando”* los ficheros (diccionarios) de estilos, creando uno común “CommonAppStyles”, que comparta estilos tanto para WindowsPhone como para Windows, también bajo la carpeta “Styles” y lo incluiremos en el proyecto “Shared”. Finalmente modificaremos el fichero “App.xaml” para incluir este nuevo diccionario como recurso.

```xml
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles/CommonAppStyles.xaml" />
            <ResourceDictionary Source="Styles/AppStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
```

Durante este capítulo y concretamente para la sección “Acerca de”, hemos utilizado varios controles “ScrollViewer” definiendo cada una de sus propiedades de manera repetitiva. Para evitar esto, *refactorizamos* creando una plantilla dentro de nuestro fichero general de estilos “CommonAppStyles.xaml” en la carpeta “Styles”.

```xml
<Style x:Key="ScrollViewerBasicStyle" TargetType="ScrollViewer">
    <Setter Property="HorizontalScrollMode" Value="Disabled" />
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    <Setter Property="VerticalScrollMode" Value="Auto" />
    <Setter Property="VerticalScrollBarVisibility" Value="Hidden" />
</Style>
```

Una vez creada, cambiaremos la composición de cada control “ScrollViewer” para que use la plantilla de la siguiente forma.

```xml
<ScrollViewer Style="{StaticResource ScrollViewerBasicStyle}" >
    […]
</ScrollViewer>
```
