viernes, 8 de noviembre de 2013

Windows Store y precios

Aprovechando que van a unificar y rebajar el precio de las licencias de Windows Store os cuento mi experiencia.

Por un lado creo que debería de ser gratis publicar apps, algo como lo que pasa en internet. Tu publicas y la gente decide si les gusta o no.

Por otro lado también entiendo que hace falta un control de calidad antes de permitir la entrada de apps en la store y eso cuesta dinero.

Hay otros que dicen que si fuera gratis todo el mundo subiría una porquería, ahí también difiero... Hay quien sube una porquería por no tirar el dinero... Yo sin ir más lejos.

Tuve una idea para dos apps hace un año, me saqué la licencia por 60€ pero me falló el diseñador y yo estoy siempre bastante liado así que no hice nada. Finalmente un mes antes de que me caducase me dije "¡Necesitas subir por lo menos una!" y así lo hice.

Hice el MorseCentral en un par de mañanas de sábado y la subí. Ya puedo decir que tengo una App en la store y que "no desperdicié" la licencia pero en realidad mi App de 6 horas de trabajo no ha servido para mejorar la store, más bien al contrario. Como toda App de 6h hecha por un novato tiene fallos técnicos y de usabilidad por no hablar del diseño que es una catástrofe.

En conclusión. Opino que si quieren que haya muchas apps que pongan gratis la licencia de desarrollo. Democracia al poder. Y siquieren que la store no se llene de mierda pues que hagan que las apps con menos de, digamos ¿100 descargas? y ninguna actualización en el último año se borren automáticamente.

Hey, al menos no he tirado 60€ por la alcantarilla. He entretenido a 60 desconocidos durante un par de segundos de su vida y entretenerlos solo me ha costado 1€ por persona :)

jueves, 19 de septiembre de 2013

¿Qué campos hay disponibles en un SPListItem?

Cuando traes los elementos usando una consulta CAML con el parámetro ViewFields configurado no hay manera (o al menos yo no la conozco) de encontrar qué campos tienes disponibles y con datos.

La forma estandar de coger la lista de campos del tipo de contenido no vale porque el ContentType es null en esta clase de elementos…

La forma más fácil para ver qué tenemos es mirar en el XML del elemento.

static List<string> ExcludedFields = new List<string> { "z", "ows_ServerRedirected", "ows_FileRef", "ows_PermMask", "ows_FSObjType", "ows__Level", "ows__ModerationStatus" };
/// <summary>
/// Gets a dictionary with the available fields and its values.
/// </summary>
public static Dictionary<string, string> getAvailableFields(this SPListItem item)
{
    XElement row = XElement.Parse(item.Xml);
    Dictionary<string, string> Fields = new Dictionary<string, string>();

    foreach (XAttribute field in row.Attributes())
    {
        if (!ExcludedFields.Contains(field.Name.LocalName))
            Fields.Add(field.Name.LocalName.Substring(4), field.Value);
    }

    return Fields;
}

Usando esto he logrado reducir el tráfico que generaba un método de un web service en un 65%.