google analytics

lunes, 31 de marzo de 2014

¿Dónde está el 'unshelve' en Visual Studio 2012?

Para los que venimos de Visual Studio 2010 o anterior, pasar al entorno de Visual Studio 2012 a veces puede ser un poquito complicado. Hoy me encontré con la necesidad de recuperar un shelve que realicé hace ya un tiempo y busco el unshelve de la manera en la que buscaba antiguamente. Así que pongo el cursor en la solución, doy click derecho y no encuentro la opción de UNSHELVE  :S:S:S


Entonces para los que se encuentren con la misma situación que yo,  aquí les muestro como encontrar la tan preciada opción de unshelve.


1. Te vas al TeamExplorer -> Pending Changes.





2. Una vez que estés en la parte de Pending Changes, le das click al menú de Actions y le das click a la opción de Find Shelvesets.


3. Esta opción te redigirá a todos los shelves que tengas.



4. Finalmente pones el curso sobre el shelve que quieras recuperar, le das click derecho y ahi encontrarás la opción de unshelve.



Y ya lo tienes, espero les sirva, hasta la prox !


martes, 25 de marzo de 2014

Notificaciones no bloqueantes y bonitas: Usando ToastR

Muchas veces queremos que nuestra aplicación web muestre alertas, notificaciones, avisos y errores de una manera personalizada. El problema de las típicas notificaciones que nos ofrece js son feas y bloqueantes. Felizmente hay una libreria js que nos permite hacer estas notificaciones agradables a la vista del usuario de una manera fácil. Esta librería se llama ToastR y la puedes descargar desde Github. Desde aquí nos bajamos el js y el css y lo integramos a nuestro proyecto. En esa página puedes ver también toda la documentación pero en este post te lo resumo un poco :).

- Una vez añadidos los archivos .js y .css de Toasr (ojo, este librería hace uso de jquery, asi que tambien es necesario que esta librería este en nuestro proyecto) a tu proyecto creamos una nueva página html y referenciamos a la hoja de estilos, a jquery y a toastr.js:

 




-Lo siguiente es crear unos cuantos botones dentro del body de nuestra página para ver los diferentes tipos de notificación que nos ofrece toastr.

 

Usando ToastR


-Y por ultimo escribir el siguiente script en la parte final de la página (aunque puedes escribirla donde quieras, pero por temas de optimización post que espero escribir más adelante se recomienda poner los scripts al final del todo.
 


Resumiendo,

  • Descargamos el js y css de ToastR y lo añadimos al proyecto. 
  • Luego creamos una nueva página y lo referenciamos al proyecto. 
  • Creamos cuatro botones, cada con una función onclick() diferente.
  • Y por ultimo creamos el script necesario para ejecutar la aplicación. En el documento.ready() de la página ponemos el siguiente código:

 
 toastr.options.closeButton = true;

Esto nos indica que las notificación podrán mostrar el boton de Cierre. En caso no lo quieras mostrar, le pones false y ya está :).

Y bueno el resultado es el siguiente:

Notificación Info


Notificación Warning


Notificación Succcess

Notificación Error

Como vean Toasr nos permite mostrar notificaciónes bonitas de una manera fácil. Además tambien ofrece otras propiedas para mostrar tu notificación de diferentes maneras, posiciones y animaciónes. Todo esto lo puedes ver en la documentación. Aquí te dejo un ejemplo


Que lo disfrutes, hasta la próxima.

viernes, 21 de marzo de 2014

LLamar a una función js desde un controllador en Asp .Net MVC

Al fin tengo el blogspot libre y sin bloqueos desde el curro =)... Este post va para responder la pregunta a alguién que me pregunto hace un tiempo como hacer esto.

Aunque la verdad es raro querer ejecutar una funcion js desde un controlador, aquí muestro la manera en que "yo" como lo haría.

1. Crearia una clase que tendra como propiedad un string que tendra el código js que queremos ejecutar:

 
    public class DemoJs
    {
        public string JsFunction { get; set; }
    }

2. Luego sigo con el controlador, en mi caso es un ejemplo simple ya que solo quiero llamar a la funcion js.
 
    public class DemoController : Controller
    {
        //
        // GET: /Demo/
        public ActionResult Index()
        {
            var demoJs = new DemoJs();
            demoJs.JsFunction = "$( window ).load(function() { DisparaAlert();}); ";
            return View(demoJs);
        }
    }    

Aquí la explicación, inicializo el objeto y en la propiedad JsFunction escribo el código js que quiero ejecutar, en este caso lo que hago es disparar la función "DisparaAlert()" cada vez que la página ha sido cargada.

3.Genero la vista de este ActionResult

@model Demo.Models.DemoJs

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Index

La vista lo que hace es llamar a jquery y luego más abajo en la sección js de la página acceder al modelo de la vista y mostrar la propiedad que tenia la funcion js que queriamos que se ejecute en nuestra aplicación. Como la función que seteamos en esta propiedad dijimos que se ejecute la función DisparAlert cada vez que se cargue la página, en la parte de js de la vista tambien declaramos esta función y dentro de ella ponemos un alert sólo para mostrar que esto funciona.



Como ven es un artificio, aunque como dije al principio del post, me parece raro llamar una función js desde un controlador pero como en MVC no tenemos un método RegisterClientScriptBlock o parecidos, esta puede ser una manera. Espero que les sirva de algo , hasta la prox !