jueves, 30 de junio de 2016

[RETURN TO BASICS] Modificando en un solo lugar el codigo a través de la asignación de variables

La refactorización (del inglés refactoring) es una técnica de la ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo.  (Extraído de wikipedia)

Esta técnica establece la forma de realizar cambios que mejoran a lo interno el código sin afectar su comportamiento externo, con el objetivo que el código sea mas fácil de cambiar y entender.

Este código está escrito en C# y es una solución de granja de SharePoint.

A continuación un segmento de código que evaluaremos en este caso:

 public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);
            valorRetornado = _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;

            return valorRetornado.Valor;

        }

A primera vista podríamos valorar que no requiere ninguna mejora y que lo que hace básicamente es obtener un valor y validar si es nulo crear este valor para luego retornarlo.  Pero cuadno el código se repite hay una oportunidad de mejora siempre dentro del código.

Si observamos detenidamente hay una referencia que se repite 3 veces y es la siguiente:

_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados

Y si por algún motivo necesitamos cambiar esta referencia tendriamos que modificar 3 líneas de código.  Pero el número de veces hacerlo no esta tan grande, pero el error si puede suceder si no cambiamos las 3.  

Entonces vez de cambiarla 3 veces podemos asignarla a una variable y luego reemplazar esta variable donde hace referencia por lo que si la referencia cambia solo la cambiamos una vez de la siguiente forma:

public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var leyenda _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(leyenda);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(leyenda);
            valorRetornado = leyenda;

            return valorRetornado.Valor;

        }

Y eso es todo amigos, por esta vez.  No solo es bueno tener buenas herramientas como Visual Studio y componentes de terceros como RSharper sino importante que escribamos código legible y que sea fácil de mantener.

Code4Fun!,

Juan Manuel Herrera Ocheita 

[RETURN TO BASICS] Modificando en un solo lugar el codigo a través de la asignación de variables

La refactorización (del inglés refactoring) es una técnica de la ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo.  (Extraído de wikipedia)

Esta técnica establece la forma de realizar cambios que mejoran a lo interno el código sin afectar su comportamiento externo, con el objetivo que el código sea mas fácil de cambiar y entender.

Este código está escrito en C# y es una solución de granja de SharePoint.

A continuación un segmento de código que evaluaremos en este caso:

 public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);
            valorRetornado = _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;

            return valorRetornado.Valor;

        }

A primera vista podríamos valorar que no requiere ninguna mejora y que lo que hace básicamente es obtener un valor y validar si es nulo crear este valor para luego retornarlo.  Pero cuadno el código se repite hay una oportunidad de mejora siempre dentro del código.

Si observamos detenidamente hay una referencia que se repite 3 veces y es la siguiente:

_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados

Y si por algún motivo necesitamos cambiar esta referencia tendriamos que modificar 3 líneas de código.  Pero el número de veces hacerlo no esta tan grande, pero el error si puede suceder si no cambiamos las 3.  

Entonces vez de cambiarla 3 veces podemos asignarla a una variable y luego reemplazar esta variable donde hace referencia por lo que si la referencia cambia solo la cambiamos una vez de la siguiente forma:

public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var leyenda _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(leyenda);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(leyenda);
            valorRetornado = leyenda;

            return valorRetornado.Valor;

        }

Y eso es todo amigos, por esta vez.  No solo es bueno tener buenas herramientas como Visual Stuidio y componentes de terceros como RSharper sino importante que escribamos código legible y que sea fácil de mantener.

Code4Fun!,

Juan Manuel Herrera Ocheita 

[RETURN TO BASICS] Modificando en un solo lugar el codigo a través de la asignación de variables

La refactorización (del inglés refactoring) es una técnica de la ingeniería de software para reestructurar un código fuente, alterando su estructura interna sin cambiar su comportamiento externo.  (Extraído de wikipedia)

Esta técnica establece la forma de realizar cambios que mejoran a lo interno el código sin afectar su comportamiento externo, con el objetivo que el código sea mas fácil de cambiar y entender.

Este código está escrito en C# y es una solución de granja de SharePoint.

A continuación un segmento de código que evaluaremos en este caso:

 public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados);
            valorRetornado = _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;

            return valorRetornado.Valor;

        }

A primera vista podríamos valorar que no requiere ninguna mejora y que lo que hace básicamente es obtener un valor y validar si es nulo crear este valor para luego retornarlo.  Pero cuadno el código se repite hay una oportunidad de mejora siempre dentro del código.

Si observamos detenidamente hay una referencia que se repite 3 veces y es la siguiente:

_configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados

Y si por algún motivo necesitamos cambiar esta referencia tendriamos que modificar 3 líneas de código.  Pero el número de veces hacerlo no esta tan grande, pero el error si puede suceder si no cambiamos las 3.  

Entonces vez de cambiarla 3 veces podemos asignarla a una variable y luego reemplazar esta variable donde hace referencia por lo que si la referencia cambia solo la cambiamos una vez de la siguiente forma:

public string ObtenerLeyendaMaterialEstudioDerechosReservados()
        {
            var leyenda _configuracionAplicacion.LeyendaMaterialEstudioDerechosReservados;
            var valorRetornado = _configuracionRepositorio.ObtenerConfiguracionPorId(leyenda);

            if (valorRetornado != null) return valorRetornado.Valor;
            _configuracionRepositorio.CrearLlave(leyenda);
            valorRetornado = leyenda;

            return valorRetornado.Valor;

        }

Y eso es todo amigos, por esta vez.  No solo es bueno tener buenas herramientas como Visual Stuidio y componentes de terceros como RSharper sino importante que escribamos código legible y que sea fácil de mantener.

Code4Fun!,

Juan Manuel Herrera Ocheita 

[RETURN TO BASICS]Sabias que Error List en VS te sirve para validar el codigo sin necesidad de compliar

Como  desarrollador y en especial en SharePoint que no es un ambiente muy amigable sino complejo lleno de experiencias y sin sabores iniciaré una serie de post sobre buenas prácticas de programación  y el uso de funcionalidades en Visual Studio que pasamos a veces desapercibidas.  También veremos  formas de resolver en código los problemas que se encuentran en el día a día del desarrollo de soluciones la cual lo he denominado [RETURN TO BASICS] .

El siguiente ejemplo esta escrito en C# y es una solución de granaja en SharePoint.

Visual Studio tiene una ventana llamada Error List y es muy util cuando modificas código donde hay un error sin necesidad de compliar nuevamente.

Miremos esta imagen de abajo

En esta imagen nos muestra el error solo tenemos que hacer clic sobre la fila del error y nos llevará al código donde esta el problema.

Y lo que me indica el error es que no hay un argumento que corresponda al parámetro formal requerido y efectivamente modifique el método para que recibiera un nuevo parámetro y en la llamada no lo estoy colocando entonces automáticamente me lleva al código donde esta el método y allí adiciono el parámetro de la siguiente manera:

var materialEstudioDerechosReservados = ConfiguracionServicio.ObtenerLeyendaMaterialEstudioDerechosReservados();

_vista.MostrarMaterialesEstudio(requisitos.DocumentosBibliotecaMaterialesEstudio, materialEstudioDerechosReservados);

Por qué declarar una variable y luego pasarla como parámetro en vez de invocar el método.  Porque debemos de pensar en cuando haya un error es más fácil ubicar lo de esta forma.  Entre más desacoplemos el código mejor para escribir pruebas unitarias y facilitar el hallazgo el error.

Si vemos la lista de errores de Visual Studio veremos que ya desapareció el error y no tuve que compliar de nuevo estos son segundos valiosos que nos ahorramos por cada cambio que realizamos.



Eso es todo amigos, en este post demostré el uso de la ventana Error List de Visual Studio la cual nos ayuda a resolver los errores que podamos encontrar cuando modificamos el código sin necesidad de compilar el proyecto o la solución.

Code4Fun!,

Juan Manuel Herrera Ocheita

jueves, 23 de junio de 2016

La version destino del sitio de SharePoint es menor a la soportada por la aplicación SharePoint 2013 local o en nuestras instalaciones (On Premises)

Escenario:

Un App para SharePoint o Add-in como lo renombro Microsoft ahora que deseamos probar en un servidor de desarrollo. El App de hecho esta subida en el Seller Dashboard de Microsoft para Office pero al realizar desde Visual Studio 2015 el deployment ahora nos muestra el siguiente mensaje:


The target version of the SharePoint site is 15.0.4569.1000, which is lower than the minimum supported SharePoint version of the app

Esto es porque en el manifiesto del app es decir el archivo AppManifest.xml esta indicada la versión mínima requerida de SharePoint para ejectuar el App.

 
 Y si abrimos el archivo xml en VS nos muestra el requerimiento mínimo.
 

Lo que debemos de hacer es cambiar el número de 16 a 15 para probarlo en nuestro servidor de desarrollo.


 Y listo el app se implementa exitosamente.



Eso es todo amigos!.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita