Windows Phone 7. Certificación de aplicaciones en el Marketplace

Llevamos unas semanas con cierta polémica generada por la calidad de las aplicaciones publicadas en el Marketplace y un concurso que valora el número de aplicaciones publicadas y no la calidad de las mismas. Sin querer valorar si el concurso es bueno o no, si que está consiguiendo que se publiquen aplicaciones, de mejor o peor calidad, y que los usuarios tengan opciones para descargarse.

Hablemos de Calidad

Uno de los grandes valores que ha aportado iPhone al mundo de los móviles, es la tienda de aplicaciones y el proceso de certificación por el que tienen que pasar, y como gran idea, Microsoft la ha adoptado. Las aplicaciones que se quieren publicar en el Marketplace de Windows Phone tienen que pasar por un proceso de certificación que verifica que se cumplen unos mínimos para que garantizar la satisfacción del usuario.

La calidad de esta certificación es relativa y voy a intentar explicar por qué lo veo así. Hemos desarrollado dos aplicaciones, boPlace y Map my camera, nos hemos currado la idea y el diseño, siguiendo las especificaciones Metro y nuestro gusto, y hemos tenido estos problemas en la certificación:

– La aplicación usa localización por GPS y no pusimos una política de privacidad, ni la opción para que el usuario pueda deshabilitar la localización. Totalmente cierto, un grave error por nuestra parte.

– La aplicación se desarrolló en dos idiomas, español e inglés, y uno de los textos, de una de las ventanas internas, no estaba localizado correctamente y sólo salía en español. Concretamente cuando visualizaban un lugar en el mapa y consultaban la dirección para llegar a él, se nos pasó que el servicio web de Bing de direcciones se tenía que solicitar en el idioma del usuario.

– Cuando se cambiaba el tema de oscuro a claro, había un texto que no se veía correctamente porque se no había pasado ponerle los estilos correctos y quitar los del sistema.

Analizando estos puntos, y otros muchos que se supone que hemos cumplido sin problemas (como puede ser que la aplicación arranque en menos de 5 segundos y que fue complicado porque cuando pones un control de mapa en la página principal nos encontramos con una penalización de 3 a 4 segundos de arranque, ya lo veremos en otro artículo), las personas que prueban y certifican las aplicaciones tienen una labor muy dura probando que cada una de las funcionalidades de las aplicaciones funcionen y se vean correctamente, pero ¿qué más pueden valorar? ¿cómo podemos garantizar que se rechazan aplicaciones de mala calidad? ¿qué queremos decir con una aplicación de mala calidad? ¿qué no cumpla con las especificaciones Metro?

Personalmente, me gusta como nos han quedado las aplicaciones y estamos muy satisfechos con ellas, creo que son útiles y de buena calidad, pero tan solo es mi apreciación. Cada uno tendrá su propia valoración sobre ellas y seguro que son distintas que las mías, y por su puesto, todo es mejorable y tenemos planificadas nuevas versiones.

Resumiendo

Para mi entender, el proceso de certificación del Marketplace cumple y, en la medida de lo posible, garantizan que la experiencia del usuario no se vea perjudicada por una mala aplicación o un mal desarrollo. El problema es quien define una aplicación mala o un desarrollo mal echo, o que no cumpla con la filosofía de interfaz de usuario de Windows Phone.

Espero vuestros comentarios.

 

Saludos a todos…

CompartiMOSS, Feliz Navidad y otro número más (el 10) hablando de SharePoint

Un número más, gracias al esfuerzo de Gustavo, Fabián y Juan Carlos y, por supuesto, de todos los que colaboramos aportando nuestro pequeño granito de arena en forma de artículo, tenemos el honor de escribir de SharePoint en la única revista de habla hispana dedicada al producto.

http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx

Disfruten de los siguientes artículos y de una feliz navidad.

  • Editorial
  • Cómo crear una página de error personalizada en SharePoint 2010 (Luis Máñez)
  • Aplicando buenas prácticas a una solución SandBoxed que despliega noticias gráficas (Juan Manuel Herrera)
  • SharePoint Governance – I (Randy Williams – Roberto Delgado)
  • Como remplazar controles delegados en sitios de SharePoint 2010 (Juan Carlos González Martín)
  • Datos externos desde Office365 (Mario Cortés Flores)
  • Gestión de documentos para ISO 9001 con SharePoint 2010 (Juan Emilio Martinez)
  • Entrevista con Daniel Seara
  • Timer Jobs en SharePoint 2010 (Carlos Ariel Dantiags)
  • NPS ENGINE, herramienta de Diseño de Procesos para SharePoint
  • El caso de los Centros Tecnológicos de Microsoft (MTC) (Roberto Delgado)
  • CUDISS – SharePoint BI para hospitales (Luis Máñez)
  • SSD: El Síndrome de la SharePoint Dependencia (Juan Pablo Pussacq Laborde)
  • Sitios web públicos en Office 365 (Alberto Diaz Martin)
  • Aprovisionamiento de Páginas Wiki en SharePoint 2010 (David Martos)

xmas-sharepoint

 

Feliz Navidad para todos!!!!!

SharePoint 2010. Consultar lista que excedan los límites

Para garantizar el rendimiento de SharePoint, las listas tienen definidos unos límites que no permiten hacer consultas de elementos por encima de estos. Por ejemplo, si tenemos puesto el límite a 5.000 elementos de lista, no vamos a poder ejecutar una consulta que devuelva un número superior de elementos, salvo que seamos administradores, que tienen otro límite definido y puede ser superior.

Esto no quiere decir que las listas de SharePoint no puedan almacenar más de estos límites, todo lo contrario, si las listas están bien definidas y tenemos una buena infraestructura, las listas soportan un gran número de elementos. El problema de rendimiento nos lo podemos encontrar realizando una consulta que devuelva muchos elementos y que, por ejemplo, se muestre en un sitio sin paginado. Con esta situación nos encontramos con dos problemas, el primero es el ViewState de la página ASP.NET con más de 5.000 filas en una lista, y el segundo en el servidor con esa cantidad de información en memoria.

En SharePoint 2010, tenemos una nueva clase, Microsoft.Office.Server.Utilities.ContentIterator, que nos permite realizar iteraciones sobre los elementos de las listas, sin que nos encontremos con la excepción de límite de consulta superado. Veamos un ejemplo.

protected void QueryWithContentIterator()

{

    //Creamos un CAML Query

    string query = @"<View>

        <Query>

            <Where>

                <And>

                    <BeginsWith>

                        <FieldRef Name='TITLE' />

                        <Value Type='Text'>TF</Value>

                    </BeginsWith>

                </And>

            </Where>

        </Query>

    </View>";

    

    //Instanciamos el iterator y procesamos los elementos del SPQuery

    var iterator = new ContentIterator();

    var listQuery = new SPQuery();

    listQuery.Query = query;

    SPList list = SPContext.Current.Web.Lists["Clientes"];

    //Cuando procesamos los elementos, tenemos que suscribirnos a los eventos de Error y de Procesado de Elemento

    iterator.ProcessListItems(list,

        listQuery,

        ProcessItem,

        ProcessError

    );

}

 

public    bool ProcessError(SPListItem item, Exception e) 

{ 

    //Capturamos el error

    return true; 

}

public void ProcessItem(SPListItem item)

{

    //Código para realizar acciones sobre el elemento actual.

}

Esta nueva clase nos da la posibilidad de hacer consultas procesando elemento a elemento de la misma, aún así, tengamos en cuenta que la interfaz de usuario debería de ser capaz de manejar esta cantidad de datos, por ejemplo, con paginación.

 

Saludos a todos…