Tips C#: Calcular Edad y saber el Próximo cumpleaños


Hola

En este fragmento de código les mostrare como sacar la edad y calcular el próximo cumpleaños.

public string RetornarMensajeCumpleanio()
{
int diaCumple = 4;//Dia del Cumpleanios
int mesCumple = 4;//Mes de Cumple 4=Abril
int anioCumple = 1984; //Anio de Cumple
DateTime fechaNacimiento = new DateTime(anioCumple, mesCumple, diaCumple);

//Se calcula la Edad Actual A partir de la fecha actual Sustrayendo la fecha de nacimiento
//esto devuelve un TimeSpan por tanto tomaremos los Dias y lo dividimos en 365 dias
int edad = (DateTime.Now.Subtract(fechaNacimiento).Days / 365);

DateTime proximoCumple;
//Define el proximo Cumple, En caso de que el mes sea menor al Mes Actual se busca el Proxima fecha que seria del año que viene
//es por ello el AddYear(1)
//En caso de ser mayor se toma el año actual
if (DateTime.Now.Month <= mesCumple && DateTime.Now.Day <= diaCumple)
proximoCumple = new DateTime(DateTime.Now.AddYears(1).Year, mesCumple, diaCumple);
else
proximoCumple = new DateTime(DateTime.Now.Year, mesCumple, diaCumple);


//Definiremos los dias faltantes para el proximo cumple
TimeSpan faltan = proximoCumple.Subtract(DateTime.Now);

//Ahora Elaboramos el Mensaje
StringBuilder sb = new StringBuilder();
sb.AppendFormat("Usted Tiene {0} Años ", edad);
sb.AppendFormat("y tu Próximo Cumpleaños es: {0} Días", faltan.Days);
sb.AppendFormat(", {0} Horas ", faltan.Hours);
sb.AppendFormat("y {0} Minutos ", faltan.Minutes);

return sb.ToString();
}

Como verán es un ejemplo simple, espero que les sea de utilidad.

ScreenCast: MVVM en Windows 8.1 Parte II – Código Tradicional


Hola a tod@s

Hemos comenzado una serie de ScreenCast que les ayudara a desarrollar aplicaciones para Windows 8 usando como patrón de desarrollo MVVM.

Capítulos Anteriores:

MVVM en Windows 8.1 – Parte I

Pueden ver el código en:https://github.com-ajimenezg-Curso-MVVM-Windows-8.1 o Descargarlo desde aquí: https://db.tt-nX4PqalF

Espero que les guste y si tienen alguna sugerencia de que otros temas o como hacer ciertas cosas me pueden escribir

Tips JQuery: Mostrar y Ocultar un mensaje automáticamente


Hola a tod@s

 

La idea de este truco es mostrarle lo sencillo que es hacer aparecer un mensaje y que se oculte de manera automática después de cierto tiempo.

Código HTML:

<button id=”btn”>Esperar 1 Segundos</button>
<div id=”message” >Test</div>

 

Código JavaScript:

$( “#btn” ).click(function() {
    setTimeout(showTooltip, 1000)
});

function showTooltip()
  {
       $(“#message”).show(“slow”);
       setTimeout(hideTooltip, 3000)
  }

function hideTooltip()
  {
   $(“#message”).hide(“slow”);
  }

 

Código CSS:

#message
    {
        background-color:blue;
        display: none;
        margin: 3px;
        width: 80px;
        float: left;
        text-align: center;
    }

 

Link del Resultado: http://jsfiddle.net/ajimenezg/Rhnxt/6/embedded/result/

ScreenCast: MVVM en Windows 8.1 – Parte I


Hola a tod@s..!!

Luego de pasar mucho tiempo sin escribir en este blog he querido volver con una serie de Video Tutoriales que se que les ayudara..!!

Espero que les guste y si tienen alguna sugerencia de que otros temas o como hacer ciertas cosas me pueden escribir, además si tienen cualquier otro comentario me lo pueden hacer llegar…!!

Nota: Tratare de subir 2 videos por semana para que puedan seguir de mejor manera el Video Tutorial.

Tips SilverLight: Behavior para colocar en Mayuscula el Texto de un TextBox


Hola a tod@s

A veces deseamos que el texto que escribe el usuario en un TextBox este de una ves en mayúscula, es por ello que les traigo este Behavior muy sencillo para que lo puedan usar.

using System.Windows;
using System.Windows.Controls;
using System.Windows.Interactivity;

namespace MiProyectoSilverLight.Behaviors
{
    public class UpperCaseAction : TriggerAction<TextBox>
    {
        protected override void Invoke(object parameter)
        {
           //Detectamos la posicion del cursor
            var selectionStart = AssociatedObject.SelectionStart;
            var selectionLenght = AssociatedObject.SelectionLength;
            //Colocamos el Texto en Mayuscula
            AssociatedObject.Text = AssociatedObject.Text.ToUpper();
            //Colocamos el Cursor al final
            AssociatedObject.SelectionStart = selectionStart;
            AssociatedObject.SelectionLength = selectionLenght;
        }
    }
}

Espero que le sea de ayuda.

Tips SilverLight: Guardar y Leer Cookies


Existen ocasiones que deseamos acceder a una Cookie o sencillamente guardar algo de información de poco relevancia, en mi caso no lo uso prefiero el Almacenamiento Aislado (Isolated Storage) pero en su momento alguien me pregunto sobre este punto y pues aquí les dejo los métodos de extensión.

  public static class ExtensionCookie
    {
        /// <summary>
        /// Obtener una cookie por su nombre
        /// </summary>
        /// <param name="document">El <c>HtmlDocument</c></param>
        /// <param name="cookieName">Nombre de la Cookie</param>
        /// <returns>El contenido de la cookie</returns>
        public static string GetCookie(this HtmlDocument document, string cookieName)
        {
            // Obtener token de cookie
            string cookies = document.Cookies;
            int idx = cookies.IndexOf(cookieName + "=");
            string val = "";
            if (idx == 0 || (idx > 0 && (cookies[idx - 1] == ';' 
                || cookies[idx - 1] == ' ')))
            {
                int lastIdx = cookies.IndexOf(';', idx);
                if (lastIdx == -1)
                {
                    lastIdx = cookies.Length;
                }

                int start = idx + cookieName.Length + 1;
                val = cookies.Substring(start, lastIdx - start);
                return HttpUtility.UrlDecode(val);
            }
            else
            {
                return string.Empty;
            }
        }

        /// <summary>
        /// Asignar valor a la cookie.
        /// </summary>
        /// <param name="document">El <c>HtmlDocument</c></param>
        /// <param name="cookieName">nombre de la cookie</param>
        /// <param name="value">El valor de la Cookie</param>
        /// <param name="expireDays">Dias de Expiracion</param>
        public static void SetCookie(this HtmlDocument document, string cookieName
            , string value, int? expireDays)
        {
            StringBuilder cookieDefinition = new StringBuilder(cookieName);
            cookieDefinition.Append('=');
            cookieDefinition.Append(HttpUtility.UrlEncode(value));
            if (expireDays.HasValue)
            {
                cookieDefinition.AppendFormat(";expires={0:R}"
                    , DateTime.Now.AddDays(expireDays.Value).ToUniversalTime());
            }

            document.Cookies = cookieDefinition.ToString();
        }

    }

Aquí les dejo un ejemplo  de como usar este código.

        void btnSetCookie_Click(object sender, RoutedEventArgs e)
        {
            TextBox txtCookie = new TextBox();
            txtCookie.Text = "Prueba de Asignar Valor a una Cookie";
            System.Windows.Browser.HtmlDocument doc = new HtmlDocument();
            doc.SetCookie("PruebaCookie", txtCookie.Text, 2);
            //doc.SetCookie("PruebaCookie", txtCookie.Text, null);
        }

        void btnGetCookie_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Browser.HtmlDocument doc = new HtmlDocument();
            TextBox txtCookie = new TextBox();
            txtCookie.Text = doc.GetCookie("PruebaCookie");            
        }

Espero que le sea de mucha utilidad.

Tips SilverLight: Encriptar y Desencriptar (Base64)


Aquí les dejo unos métodos de extensión simples para la encriptación y des encriptación:

 

    public static class ExtensionesSeguridad
    {
        public static string EncrytedString(this string _stringToEncrypt)
        {
            string result = string.Empty;
            byte[] encryted = System.Text.Encoding.Unicode.GetBytes(_stringToEncrypt);
            result = Convert.ToBase64String(encryted);
            return result;
        }

        public static string DecrytedString(this string _stringToDecrypt)
        {
            string result = string.Empty;
            byte[] decryted = Convert.FromBase64String(_stringToDecrypt);
            result = System.Text.Encoding.Unicode.GetString(decryted, 0, decryted.ToArray().Length);
            return result;
        }
    }

Espero que le sea de mucha utilidad.

Nota: aquí les dejo un Enlace de encriptación mas avanzado: http://www.esasp.net/2010/08/encriptar-y-desencriptar-con-c-metodo.html

Tips SilverLight: AddRange a un ObservableCollection


En ocasiones me he encontrado con personas que me preguntan si existe una manera de tener un AddRange en un ObservableCollection así como lo tiene el List<T>, pues mi respuesta siempre ha sido este código. Quizás no sea el mas optimo o quizás hay mejores truco pero hasta ahora me ha funcionado muy bien, además que me he ahorrado muchos ForEach Sonrisa.

    public static class ExtensionesColecciones
    {
        public static void AddRange<T>(this ObservableCollection<T> listOriginal
            , IEnumerable<T> collection)
        {
            if (listOriginal == null)
                listOriginal = new ObservableCollection<T>();//En caso de que aun no tenga una instancia

            //Verificamos que sea diferente de null o vacio
            if (!collection.IsNullOrEmpty<T>())
            {
                foreach (var item in collection)
                    listOriginal.Add(item);
            }          
        }
     }

Nota: El Método de Extensión IsNullOrEmpty esta en este Link: https://alexjimenez.wordpress.com/2012/08/03/tips-silverlight-comprobar-si-una-coleccion-esta-vacia-o-nula/

Tips SilverLight: Comprobar si una Coleccion esta vacia o Nula


Existen momentos que queremos saber si una Colección sea un ObservableCollection<T> o un List<T> o cualquiera que herede de una interface IEnumerable<T> puede usar este método de extensión.

    public static class ExtensionesColecciones
    {
        public static bool IsNullOrEmpty<T>(this IEnumerable<T> collection)
        {
            if (collection == null) //null
                return true;
            if (collection.Count() < 1) //empty
                return true;

            return false;
        }
    }

 

Espero que le sea de Ayuda.

Tips SilverLight: Validaciones con Expresiones Regulares (IP, E-Mail, URL)


Existen ocasiones que se desea validar si el texto introducido en un TextBox o que viene de la base de datos tienen el formato valido y es por ello que les traigo estos métodos de extensión para facilitar un poco mas la vida, espero que les sea de mucha utilidad.

    public static class ExtensionesValidacion
    {         
        public static bool IsValidUrl(this string text)
        {
            return Regex.IsMatch(text, @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
        }
        public static bool IsValidEmailAddress(this string test)
        {
            return Regex.IsMatch(test, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
        }
        public static bool IsValidIPAddress(this string test)
        {
            return Regex.IsMatch(test,
                    @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\
                    .(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\
                    .(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\
                    .(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b");
        }
    }

Ejemplo de como lo pueden usar:

TextBox txt=new TextBox();
string url="http://ajdev.net";

if (url.IsValidUrl())
{
    txt.Text = url;
}
else
{
    txt.Text = string.Empty;
}

 

Tips SilverLight: Saber el Primer y Ultimo día del Mes


Muchas ocasiones nos encontramos que tenemos una fecha y queremos obtener el primer y el ultimo día del Mes, pues aquí les dejo estos simple ejemplos que muy probablemente alguien lo hizo mejor, pero igual se los dejo para facilitarles un poco la búsqueda.

public static class ExtensionesFecha
    {
        public static string PrimerDiaMes(this DateTime date)
        {
            return new DateTime(date.Year, date.Month, 1).ToString("dd");
        }

        public static string UltimoDiaMes(this DateTime date)
        {
            return new DateTime(date.Year, date.Month + 1, 1).AddDays(-1).ToString("dd");
        }
    }
Ejemplo de como Aplicarlo:
            string primerDia = DateTime.Now.PrimerDiaMes();
            string ultimoDia = DateTime.Now.UltimoDiaMes();

Con este simple ejemplo que a su imaginación de como quieren obtener el dato, es decir, si quieren que le diga hasta que día de la semana cae ese primer o ultimo di del mes eso lo pueden complementar con el formateo de la fecha: http://www.csharp-examples.net/string-format-datetime/

Como les dije es un ejemplo simple y espero que les sea de mucha utilidad.

Tips SilverLight: Extraer el Color Hexadecimal a String


En el articulo anterior les mostré como asignar un String a Color pero en esta ocasión queremos extraer el String de ese color para guardarlo en la Base de Datos como haríamos esto? pues simple aquí les dejo el método:

     public static string ToHexStringFromColor(this Color c)
        {
            return string.Format("#{0}{1}{2}{3}",
                    c.A.ToString("X2"),
                    c.R.ToString("X2"),
                    c.G.ToString("X2"),
                    c.B.ToString("X2"));
        }

Ahora le dejo el ejemplo de como usar este método de extensión, además lo usare con el mismo ejemplo que usamos en el articulo anterior.

      TextBlock textBlock = new TextBlock();
      textBlock.Foreground = new SolidColorBrush("#FF7277FE".ToColor());
      Color c = (textBlock.Foreground as SolidColorBrush).Color;
      textBlock.Text = string.Format("Color: {0}", c.ToHexStringFromColor());

 

Tips SilverLight: Obtener Color de un Hexadecimal


Muchas veces estamos creando un control desde código y no tenemos el color de manera directo si no un valor proveniente de la base de datos algo así como el siguiente ejemplo:

      TextBlock textBlock = new TextBlock();
      textBlock.Text="Prueba de Foreground";
      textBlock.Foreground = new SolidColorBrush("#FF7277FE"); //Esto esta Mal

 

Donde el código anterior esta mal por que el SolidColorBrush recibe como parámetro un dato de tipo Color, es por ello que se debe tener el siguiente código que lo declare en una clase estática para así tener mi método de extensión.

public static class ExtensionesColores
    {
        public static Color ToColorFromHex(this string s)
        {
            if (s.StartsWith("#"))
            {
                s = s.Substring(1);
            }
            byte a = System.Convert.ToByte(s.Substring(0, 2), 16);
            byte r = System.Convert.ToByte(s.Substring(2, 2), 16);
            byte g = System.Convert.ToByte(s.Substring(4, 2), 16);
            byte b = System.Convert.ToByte(s.Substring(6, 2), 16);
            return Color.FromArgb(a, r, g, b);

        }
public static Color ToColorFromString(this string colorString)
   {
      Type colorType = (typeof(Colors));
      if (colorType.GetProperty(colorString) != null)
      {
         object color = colorType.InvokeMember(colorString
                    , BindingFlags.GetProperty, null, null, null);
         if (color != null)
          {
            return (Color)color;
          }
      }
      else
      {
        try
          {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<Line xmlns=\http://schemas.microsoft.com/winfx/2006/xaml/presentation\");
          sb.Append("  xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" ");
          sb.AppendFormat(" Fill=\"{0}\" />", colorString);

              Line lne = (Line)XamlReader.Load(sb.ToString());
              return (Color)lne.Fill.GetValue(SolidColorBrush.ColorProperty);
           }
             catch { }
          }
       throw new InvalidCastException("Color no definido");
    }

Lo que en corrección al código que mostramos al inicio de declarar un control quedaría de esta manera:

         TextBlock textBlock = new TextBlock();
         textBlock.Text = "Prueba de Foreground";
         textBlock.Foreground = new SolidColorBrush("#FF7277FE".ToColorFromHex());

 

Espero que le sea de mucha ayuda.

Off-Topic: Volviendo al mundo..!


Hola a tod@s

 

Después de 2 años de ausencia en el mundo bloguero he vuelto y con ganas de seguir posteando buenos artículos basándome en la experiencia para ayudar a quienes estén comenzando o que ya tengan tiempo en el mundo de la programación.

Han pasado muchas cosas desde la ultima ves que publique algo, lanzamiento de productos nuevos y muy novedosos, Grandes anuncios en las diferentes áreas tecnológicas y hasta una hermosa bebita tengo Sonrisa

Espero seguir siendo de apoyo y que mis futuros artículos le sean de muchísima ayuda. Quiero agradecer a las 1,031,583 personas que han visitado mi blog en los últimos 4 años, no quiero ponerme sentimental ni mucho menos extenderme con tanto bla bla bla así que hasta prontoSonrisa.

Los números de 2010


Los duendes de estadísticas de WordPress.com han analizado el desempeño de este blog en 2010 y te presentan un resumen de alto nivel de la salud de tu blog:

Healthy blog!

El Blog-Health-o-Meter™ indica: Wow.

Números crujientes

Featured image

Un duende de estadísticas ha creado esta pintura abstracta, inspirada en tus estadísticas.

El Museo del Louvre tiene 8,5 millones de visitantes al año. Este blog fue visto cerca de 190,000 veces en 2010. Si el blog fuera una exposición en el Louvre, tomaría 8 días para verla.

 

En 2010, publicaste 27 entradas nueva, haciendo crecer el arquivo para 324 entradas.

The busiest day of the year was 2 de junio with 868 views. The most popular post that day was Uso de Triggers en SQL Server.

 

¿De dónde vienen?

Los sitios de referencia más populares en 2010 fueran google.com.pe, google.com.mx, search.conduit.com, google.es y google.com.co.

Algunos visitantes buscan tu blog, sobre todo por linq, que es silverlight, visual studio 2008, silverlight que es y triggers sql server 2005.

Lugares de interés en 2010

Estas son las entradas y páginas con más visitas en 2010.

1

Uso de Triggers en SQL Server agosto, 2007
21 comentários y 1 “Me gusta” en WordPress.com,

2

Caracteristicas de Visual Studio 2008 y SQL Server 2008 noviembre, 2007
27 comentários

3

Truco: Solo letras en los TexTbox (Windows Forms) – VB y CSharp enero, 2008
46 comentários

4

Microsoft Office Word 2007 agosto, 2006
68 comentários

5

Comandos MS-DOS Para Windows marzo, 2007
34 comentários

Evento: Asiste al Innov@IT en Porlamar totalmente Gratis


Pagina en Facebook con la información del Evento: http://www.facebook.com/pages/InnovaIT/166761420006673

Para Registrarte: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032465720&Culture=es-VE

Nos vemos allá… ahora dime te lo vas a perder???

Post Cruzado de AJDev.net

WebCast: WCF Ria Services, Datos XML, JSON.


Este es el cuarto de una serie WebCasts donde estaremos utilizando esta fantástica tecnología para desarrollar una aplicación de tipo Album de Fotos.

Estos WebCast están dirigidos para personas que recién empiezan a desarrollar aplicaciones con SilverLight o los que aun no tienen idea de que es, como le comente anteriormente la idea es fomentar el uso de esta tecnología creando un álbum de fotos que es lo que mas les agrada a los estudiantes o a empresarios para visualizar sus productos.

A medida que se realicen los WebCast estaré colocando las demos y las ppts mostradas.

Contenido

1. Introducción a SilverLight, Arquitectura, Evolución, Controles ( PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 01 de septiembre de 2010 02:00 p.m. Bogotá

2. Animación, Suavización, StoryBoard, Comportamientos, Plantillas de Controles, Pantalla Completa (Demo,PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: lunes, 13 de septiembre de 2010 02:00 p.m. Bogotá

3. Uso de Datos de Prueba, Descarga bajo demanda, Enlace de Datos entre Controles (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: viernes, 17 de septiembre de 2010 02:00 p.m. Bogotá

4. WCF Ria Services, Datos XML, JSON. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 29 de septiembre de 2010 10:00 a.m. Bogotá

5. Hospedar Silverlight  (ASP.net, PHP, HTML), Acceso al HTML (DOM), Aplicaciones fuera del Navegador. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

Post Cruzado de AJDev.net

WebCast: Uso de Datos de Prueba, Descarga bajo demanda, Enlace de Datos entre Controles


Este es el tercero de una serie WebCasts donde estaremos utilizando esta fantástica tecnología para desarrollar una aplicación de tipo Album de Fotos.

Estos WebCast están dirigidos para personas que recién empiezan a desarrollar aplicaciones con SilverLight o los que aun no tienen idea de que es, como le comente anteriormente la idea es fomentar el uso de esta tecnología creando un álbum de fotos que es lo que mas les agrada a los estudiantes o a empresarios para visualizar sus productos.

A medida que se realicen los WebCast estaré colocando las demos y las ppts mostradas.

Contenido

1. Introducción a SilverLight, Arquitectura, Evolución, Controles ( PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 01 de septiembre de 2010 02:00 p.m. Bogotá

2. Animación, Suavización, StoryBoard, Comportamientos, Plantillas de Controles, Pantalla Completa (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: lunes, 13 de septiembre de 2010 02:00 p.m. Bogotá

3. Uso de Datos de Prueba, Descarga bajo demanda, Enlace de Datos entre Controles (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: viernes, 17 de septiembre de 2010 02:00 p.m. Bogotá

4. WCF Ria Services, Datos XML, JSON. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 29 de septiembre de 2010 10:00 a.m. Bogotá

5. Hospedar Silverlight  (ASP.net, PHP, HTML), Acceso al HTML (DOM), Aplicaciones fuera del Navegador. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

Post Cruzado de AJDev.net

WebCast: Serie Silverlight – Animación, Suavización, StoryBoard, Comportamientos, Plantillas de Controles, Pantalla Completa


Este es el segundo de una serie WebCasts donde estaremos utilizando esta fantástica tecnología para desarrollar una aplicación de tipo Album de Fotos.

Estos WebCast están dirigidos para personas que recién empiezan a desarrollar aplicaciones con SilverLight o los que aun no tienen idea de que es, como le comente anteriormente la idea es fomentar el uso de esta tecnología creando un álbum de fotos que es lo que mas les agrada a los estudiantes o a empresarios para visualizar sus productos.

A medida que se realicen los WebCast estaré colocando las demos y las ppts mostradas.

Contenido

1. Introducción a SilverLight, Arquitectura, Evolución, Controles ( PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 01 de septiembre de 2010 02:00 p.m. Bogotá

 

2. Animación, Suavización, StoryBoard, Comportamientos, Plantillas de Controles, Pantalla Completa (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: lunes, 13 de septiembre de 2010 02:00 p.m. Bogotá

 

3. Uso de Datos de Prueba, Descarga bajo demanda, Enlace de Datos entre Controles (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: viernes, 17 de septiembre de 2010 02:00 p.m. Bogotá

 

4. WCF Ria Services, Datos XML, JSON. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

 

5. Hospedar Silverlight  (ASP.net, PHP, HTML), Acceso al HTML (DOM), Aplicaciones fuera del Navegador. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

Post Cruzado de AJDev.net

JQuery: Agregar TextBox dinámicamente y enviar la información al Servidor


Hace un tiempo, algún estudiante de uno de los cursos me pregunto como se podía agregar campos de manera dinámica y que estos pueda enviar los datos al servidor ya sea mediante QueryString o mediante AJAX.

Así que haremos comencemos con la demostración.

1. Vamos a crear un nuevo proyecto o tomar un proyecto ya existente (sea una MVC o WebSite o Aplicación web)

Para ello vamos al menú Archivo->Nuevo->WebSite

image

2. Agregaremos la referencia a la librería de JQuery en la cabecera (HEAD del html).

<head runat="server">
<title>Demo Agregar textbox dinámico</title>
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script>
</head>

3. Ahora agregaremos un enlace que invocara a la función de JavaScript que agregara los Campos y otro que enviara los datos por QueryString, adicionalmente un DIV donde se mostraran los campos.

<body>
<form id="form1" runat="server">
<div >
<a href="#" onclick="AgregarCampos();">Agregar Campo</a>
<a href="#" onclick="EnviarDatos();">EnviarDatos</a>
<div id="campos">
</div>
</div>
</form>
</body>

4. Ahora las dos funciones que nos permitirán hacer lo que sea ha planteado desde el inicio de este articulo.

<head runat="server">
<title>Demo Agregar textbox dinámico</title>
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
//Consecutivo de campos a agregar
campoNuevo = 0;
//Funcion de agregar campos
function AgregarCampos() {
campoNuevo = campoNuevo + 1;
campo = '<li><label>Campo ' + campoNuevo + ':</label><input type="text" size="20" name="campo' + campoNuevo + '" /></li>';
$("#campos").append(campo);
}
//Pasar los valores txt por QueryString
function EnviarDatos() {
var query = "";
$('input[type=text][name!=""]').each(function (index, domEle) {
//alert(index + ': ' + $(domEle).val());
query = query + "&campo" + index + "=" + $(domEle).val();
});
window.location.href = "/CamposAdicionales.aspx?" + query;
}
</script>
</head>

5. Y ahora en la hoja de código de la pagina capturaremos la información proveniente del querystring

protected void Page_Load(object sender, EventArgs e)
{
//Contamos cuantos valores vienen por QueryString
int iCount = Request.QueryString.Count;
//Recorremos cada uno de los valores recibidos
for (int i = 1; i <= iCount; i++)
{
//Mandamos a escribir los valores a la pagina
Response.Write(Request.QueryString[i-1]);
}
}

Ya con esto ustedes pueden reinventar la rueda Sonrisa, pueden ver esta demo en el siguiente link
Post Cruzado de AJDev.net

Tips & Trucos: Como realizar un Autocomplete con JQuery UI y JsonResult de MVC


A mas de uno nos agrada la idea de tener en nuestra aplicación un TextBox que se autocomplete con la información que el usuario va escribiendo. Existen muchos plugins de JQuery que permite realizar esta funcionalidad y que a su ves le agregan un efecto adicional como por ejemplo el autocomplete de FaceBook.

En esta ocasión le mostrare como realizar su propio autocomplete con JQuery 1.4.2 y Jquery UI que nos permite hacer lo que deseamos sin plugins adicionales, y la data la vamos a obtener de un JsonResult de nuestra aplicación MVC (aunque también lo pueden hacer con un WebServices o un WebForms que maneje WebMethods). Sigue leyendo

WebCast: Serie Silverlight – Introducción a Silverlight, Arquitectura, Evolución y Controles


Este es el primer de una serie WebCasts donde estaremos utilizando esta fantástica tecnología para desarrollar una aplicación de tipo Album de Fotos.

Estos WebCast están dirigidos para personas que recién empiezan a desarrollar aplicaciones con SilverLight o los que aun no tienen idea de que es, como le comente anteriormente la idea es fomentar el uso de esta tecnología creando un álbum de fotos que es lo que mas les agrada a los estudiantes o a empresarios para visualizar sus productos.

A medida que se realicen los WebCast estaré colocando las demos y las ppts mostradas.

Contenido

1. Introducción a SilverLight, Arquitectura, Evolución, Controles (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: miércoles, 01 de septiembre de 2010 02:00 p.m. Bogotá

 

2. Animación, Suavización, StoryBoard, Comportamientos, Plantillas de Controles, Pantalla Completa (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

 

3. Uso de Datos de Prueba, Descarga bajo demanda, Enlace de Datos entre Controles (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin definir

 

4. WCF Ria Services, Datos XML, JSON. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

 

5. Hospedar Silverlight  (ASP.net, PHP, HTML), Acceso al HTML (DOM), Aplicaciones fuera del Navegador. (Demo, PPT)

Moderador(es): Alexander Jiménez

Duración: 60 Minutos

Fecha de inicio: Sin Definir

Post Cruzado de AJDev.net

Entity Framework: Guías Básicas y el Enfoque


Serie de cursos o Guías básicas basados en el Entity Framework 4 que nuestro buen amigo Fernando Loera encontró y publico en su twitter Sonrisa. Aquí le dejo los enlaces:

Nuestro buen amigo Miguel Muñoz Serafín, pode a disposición de todos uno mas de sus excelentes cursos de .NET, aquí el detalle:

Guía básica al Entity Framework 4 Sigue leyendo

MVC: Invocar Reporte de Reporting Services con JQuery y JsonResult (Modo Remoto)


Hace unos días publique varios artículos con respecto a la invocación de un reporte construido en reporting services (ver el mini-tutorial Parte I, Parte II y Parte III y también el articulo Pasar Parametros) pero lo enfocamos a las aplicaciones web de ASP.net específicamente a los WebForms y en ellos podíamos utilizar un control llamado ReportViewer que nos facilitaba mucho la invocación del reporte. Sigue leyendo

ASP.net: Pasar parámetros a un reporte de Reporting Services (Modo Remoto)


Luego de crear el reporte (ver el mini-tutorial Parte I, Parte II y Parte III) vamos agregar un parámetro al reporte y luego desde Visual Studio le pasamos el valor a ese parámetro.

1. Lo primero es revisar las partes del mini-tutorial y luego en el reporte creado en la parte II vamos abrirlo y nos dirigimos a la pestaña de Datos: Sigue leyendo

Tips & Trucos: Mostrar Alerta o Dialog desde el Servidor ASP.net (JavaScript y JQuery UI)


Existen muchas formas de emitir un mensaje al usuario luego de que se registra una acción, la mas común es mostrar el mensaje en un Label.

Aquí les mostrare dos formas con un mismo método, Sonrisa es decir, el primer método es mostrar el tipo alert de javascript y la segunda es usando el Dialog de JQuery UI.

Antes de empezar necesitamos una pagina vacía con un TextBox para escribir el mensaje y dos Buttons:

El primero en la propiedad Text le colocaremos “Mensaje con Javascript” y el Segundo “Mensaje con JQuery”, seria algo así: Sigue leyendo

ASP.net: Creación de una Aplicación con Membership y Roles – Parte III


Artículos anteriores:

ASP.net: Creación de una Aplicación con Membership y Roles – Parte I

ASP.net: Creación de una Aplicación con Membership y Roles – Parte II

En esta tercera parte vamos a empezar con crear una base de datos (ahora si ustedes ya tienen una base de datos a la que deseen agregar la membrecía pues la pueden seleccionar).

Paso 1.: Abriremos el “Server Explorer” o “Explorador de Servidores” eso lo podrán hacer con la combinación de teclas: Ctrl + W y luego presionan l o ir al menú Vista (View) y seleccionarlo desde allí.

Para leer el resto entra en: http://ajdev.net/Publicacion/Articulo/71

Hasta la próxima entrega.

Post Cruzado de AJDev.net

Tutorial: Creación de una Aplicación para Windows Mobile 7


hola a tod@s,

Como bien es sabido me gusta mostrarle mucha información con respecto al desarrollo de aplicaciones con ASP.net y SilverLight, pues en esta ocasión les dejare unos enlaces de un tutorial que esta muy nutritivo :) con full SilverLight y con Windows Mobile 7. El único inconveniente seria el hecho de que esta en Ingles.

Fuente: http://www.thewindowsclub.com/windows-phone-7-series-tutorial-building-deploying-applications

In the series of tutorials, we will be covering up the following areas :

Exercise 1: Creating Windows Phone Applications with Microsoft Visual Studio 2010 Express for Windows Phone

Task 1 – Creating a Windows Phone Application Project in Visual Studio.

Task 2 – Solution Explorer

Task 3 – Building and Testing the Application in the Windows Phone Emulator

Task 4 – Designing the Windows Phone User Interface

Task 5 – Handling Events from the User Interface

Task 6 – Managing Errors in the Application

Source: http://www.thewindowsclub.com/windows-phone-7-series-tutorial-building-deploying-applications#ixzz0piYhfUeM

Task 7 – Verification

Exercise 2: Using Expression Blend to Design the UX of your Windows Phone Application

Task 8 – Creating a Custom Button in Expression Blend – I

Task 9 – Creating a Custom Button in Expression Blend – II

Task 10 – Adding Visual States to the Custom Control

Task 11 – Creating an Animation for the Banner Text

Task 12 – Verification

Source: http://www.thewindowsclub.com/windows-phone-7-series-tutorial-building-deploying-applications#ixzz0piYoExq0

Windows Phone Developer Tools includes:

  • Visual Studio 2010 Express for Windows Phone
  • Windows Phone Emulator
  • Silverlight for Windows Phone
  • XNA Game Studio 4.0 CTP

Download Links:

Source: http://www.thewindowsclub.com/windows-phone-7-series-tutorial-building-deploying-applications#ixzz0piYsEeQQ

Post Cruzado de AJDev.net

Evento: 1era Convención Internacional de Interoperabilidad Tecnologías Integradas


 

 

Evento

Microsoft Latinoamérica te invita a participar este miércoles 9 de junio, en la 1ª Convención Virtual Internacional de Interoperabilidad “Tecnologías Integradas”. Es un evento que tiene como objetivo mostrar escenarios de la vida real que te permitirán ver la manera más efectiva de integrar diversas tecnologías del mundo de hoy. Durante el mismo, tendrás la oportunidad de compartir las experiencias de cada uno de los expositores internacionales desarrolladores de soluciones en diferentes plataformas, dentro del marco de integración tecnológica. Contaremos con la participación de tecnólogos, desarrolladores y profesionales de interoperabilidad de Venezuela, Ecuador, México, Perú, Brasil y otros países de Latinoamérica.

Integrando Tecnologías 

Eduardo Nuñez

Cloud Computing – La Nueva Era 

Luis Daniel Soto

Interoperando con Productividad en ambientes de colaboración

Luis Du Solier Grinda

Virtualizar es la clave de la interoperabilidad 

Argenis Avendaño

Caso de éxito de interoperabilidad: Port.25 

Peter Galli

Desarrollando aplicaciones PHP con Eclipse para Windows Azure 

Eduardo Sojo

Cómo sacarle provecho a las aplicaciones PHP sobre Windows

Antonio Ognio

Servicios de Federación de Active Directory

Felix Gonzalez

Framework Interoperable?

Carlos Figueroa

Integrando aplicaciones de manera extensible

Interoperabilidad con COM en aplicaciones de Silverlight 4

Rodrigo Diaz Concha

Colaboración entre Samba y Sharepoint 

Yonathan Arrivillaga

Conectividad de portales con Web Services for remote portlets   

Virtualizar aplicaciones para ambientes heterogéneos

Julio Martus

Interoperando con SUSE Linux: Proyecto Moonlight 

Alessandro Binhara

Open Source y Software Propietario 

Cesar Brod

Integración y colaboración entre Sistemas Operativos

Everaldo Canuto

Registro

© 2010 Microsoft Corporation Todos los derechos reservados

Aviso Legal | Marcas registradas | Privacidad

Post Cruzado de AJDev.net

ASP.net: Creación de una Aplicación con Membership y Roles – Parte II


En el articulo anterior Mostramos como se define el tag del Membership Provider ahora es el turno del Role Provider:

<roleManager enabled="true">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="ApplicationServices"
applicationName="/"/>
</providers>
</roleManager>

Aquí a diferencia del Membership Provider no hay tantos atributos a configurar como por ejemplo Type que ahora esta apuntando a SqlRoleProvider en ves de SqlMembershipProvider, el atributo de connectioStringName se mantiene igual ahora si quieres manejar en una Base de Datos los Roles y en otra la membrecía es totalmente valido solo debes especificar a que cadena de conexión se va conectar.

Bueno ya con esto pasamos a la siguiente parte que es Configurar nuestra aplicación para trabaje cómodamente con la membrecía y los roles, para ello nos ubicamos en el “Solution Explorer” o en Español el “Explorador de Soluciones” nuestro proyecto web (Si no lo tienes o no lo ves pues puedes presionar las teclas Crtl+W y Luego S o sencillamente te vas al menú Ver y allí aparecerá entre los primeros items) .

 

Si quieres leer mas pues te recomiendo que entres en: http://ajdev.net/Publicacion/Articulo/68.aspx

Post Cruzado de AJDev.net

ASP.net: Creación de una Aplicación con Membership y Roles – Parte I


Hola a tod@s

Antes de empezar quisiera que se respondieran estas preguntas?

Cuantas veces has creado una tabla usuario?

Cuantas veces dejas la clave del usuario totalmente visible en un campo de tu Tabla Usuario?

Cuantas veces defines roles para acceder a unas carpetas?

Cuantas veces defines roles en cada pagina?

Cuantas veces defines una tabla Roles?

Cuantas veces quieres validar tus usuarios con el Active Directory de la Empresa?

Si has respondido todas las preguntas pos… en verdad necesitas de la membrecía de ASP.net jejeje en muchas ocasiones hacemos tareas tan repetitivas y poco productivas como por ejemplo crear un control de tipo Login que se conecte a una tabla y validar si los datos introducidos pertenecen o no al usuario para darle acceso, y si el usuario es algo hábil y quiere entrar a otra pagina diferente al login pues allí se nos enredaba un poco las cosas cierto?

Ya basta de tanto bla bla bla.. :) lo que quiero mostrarte en este tutorial es enseñarte a utilizar La membrecía, los roles y por que no también los perfiles de los usuarios que accederán a tu aplicación web y lo mejor de todo es que no tendrás que hacer malabares a como lo hacías antes para poder tener el control de tus usuarios.

Si quieres leer mas pues te recomiendo que entres en: http://ajdev.net/Publicacion/Articulo/67.aspx

Post Cruzado de AJDev.net


free counters

Silverlight 4: Lo nuevo y el paso de las Versiones


Nota: Antes de empezar quiero aclarar que esta es una traducción simple para el habla hispana, cualquier error en traducción me disculpan el articulo original se encuentra en: http://www.silverlight.net/getstarted/overview.aspx

Silverlight es una plataforma de desarrollo de gran alcance para crear aplicaciones atractivas, interactivas para la web, de escritorio y dispositivos móviles. Silverlight es un plug-in gratuito impulsado por el .NET framework , compatible a través de múltiples navegadores, dispositivos y sistemas operativos para traer un nuevo nivel de interactividad donde funciona la Web. Con apoyo a la integración avanzada de datos, multihilo, vídeo de alta definición utilizando IIS Smooth Streaming, y construido en la protección de contenidos, Silverlight permite a las aplicaciones en línea y sin conexión para una amplia gama de negocios y escenarios de consumo.

Tiempo de ejecución de Silverlight

Todos los tiempos de ejecución de Silverlight apoyar las capacidades multimedia y permiten una entrega rápida y rentable de audio de alta calidad y vídeo a todos los principales navegadores como Firefox, Safari, Internet Explorer (y nueva en Silverlight 4) Google Chrome se ejecuta en el Mac o en Windows. La experiencia de diseño sigue siendo básicamente el mismo para todos los tiempos de ejecución también. La principal diferencia reside en la experiencia del desarrollador.

Para leer mas sobre este articulo visitar: http://ajdev.net/Publicacion/Articulo/65.aspx

La Eficiencia en tus Manos!!!


Hola a todos quiero invitarlos al mayor evento Virtual de este año y es nada mas y nada menos que el lanzamiento de varios productos de alto calibre en Microsoft como lo son:

image

image

Ahora dime, Te lo vas Perder??? :)

Post Cruzado de AJDev.net

Tips & Trucos: Agregar MetaTags de Descripcion y Palabras Claves a nuestras Paginas ASP.net (KeyWords y Description)


En muchas ocasiones nos preocupamos por saber si los buscadores indexan correctamente nuestros sitios web y en su mayoría nos olvidamos de generar las palabras claves de la información que contiene nuestras paginas como también una breve descripción de la misma. es por ello que aquí les dejo este simple truquillo que se puede utilizar con cualquier versión de ASP.net (Ojo ya en VS2010 con Framework 4.0 contiene una solución mas amigable)

Para los que vienen de ASP.net con el .net Framework 2.0 y 3.5 Sigue leyendo

Tips & Truco: Forzar la Utilización de un Tema en ASP.net


Hola a todos,

Hace unos días alguien me hizo esta pregunta y pues quiero compartirlo con todos, se que para muchos programadores esto es básico pero para los que recién comienza o los que están pasando de VS2003 hacia VS2005, VS2008 o VS2010 no lo conocen (saber mas sobre Themes puedes ver este articulo que publique hace un tiempo: http://ajdev.net/Publicacion/Articulo/44.aspx). Sigue leyendo

Actualizado: Cursos de Programación (Web, C#, VB, Azure, Windows 7, Dynamics, Mobile, SilverLight, etc)


Curso de Desarrollo con Windows Azure

Windows Azure constituye la parte fundamental de la plataforma y actúa como el sistema operativo en la nube de Microsoft. De este modo se tratan los fundamentos de crear aplicaciones con .NET para este sistema así como todos los servicios que ofrece, como el Fabric, diagnóstico, trazas, configuración, despliegue, y los diferentes tipos de almacenamiento de datos.

Curso de Windows 7 para desarrolladores

Este curso va dirigido a desarrolladores de Windows que deseen modificar sus aplicaciones, o crear nuevas aplicaciones, de tal forma que sean plenamente compatibles con Windows 7 y, posiblemente, que hagan uso expreso de las nuevas características de dicho sistema operativo. Sigue leyendo

links for 2010-01-19


de Alex Jiménez Publicado en 1

SketchFlow: Creando Prototipos – Parte II La Creación


Ya luego de la primera entrega donde se explicaba un poco la teoría que encierra el SketchFlow pues le daremos inicio a la parte practica de este tutorial.

Como les comente anteriormente el SketchFlow viene dentro del Expression Blend 3 por si no tienes una suscripción MSDN puedes descargarlo de este sitio: http://cut.ms/JTL

1. Simularemos una solicitud de un cliente en donde requiere que se muestre una lista de productos con fotos y su respectiva descripción, además de ver una ventana de inicio, una de login, una que mencione a la empresa. Con esto podemos comenzar :)

2. Ya luego de tener Expression Blend 3 instalado vamos a crear nuestra primera demostración y para ello seleccionaremos la plantilla “Aplicación SketchFlow de SilverLight 3” al Cual llamaremos “Prototipo” y trabajaremos con el lenguaje C# como se muestra en la imagen:

 Para continuar leyendo este post visiten esta dirección: http://ajdev.net/Publicacion/Articulo/58.aspx

 Post cruzado con http://cut.ms/Jn9

Post Cruzado de AJDev.net

WebCast de Tecnología 2010 (Audiencia de MSDN y Technet)


Los próximos WebCast planificado por la gente de Microsoft donde los expositores son de Venezuela (Incluyéndome ya que abriré la tanda :))

Webcast

fecha

Hra

Zona Horaria

Audiencia

Link de Registro

Speaker

Preparandonos para Visual Studio 2010 28-Jan-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSL Alexander Jimenez
Windows Worflow Foundation 21-Jan-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSM Yonathan Arrivillaga
Trabajando Windows 7 y Windows Server 2008 R2 20-Jan-10 11:00:00 a.m. -5 Technet http://cut.ms/JSN Felix Gonzalez
Nuevas Caracteristicas de SQL Server 2008 R2 26-Jan-10 03:00:00 p.m. -5 Technet http://cut.ms/JSO Carlos Cemborain
Extendiendo las capacidades de manejo de Bases de Datos 04-feb-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSP Manuel Mendez
Desarrollando aplicaciones interoperables 10-feb-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSQ Norberto Planchart
Desarrollando Aplicaciones en la nube con Windows Azure 11-feb-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSR Jose Francisco Herrera
Desarrollando aplicaciones para Windows Azure con Eclipse y Visual Studio 2010 25-feb-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSS Jose Herrera y Eduardo Sojo
Reporting services con SQL Server 2008 R2 23-feb-10 11:00:00 a.m. -5 Technet http://cut.ms/JST Rafael Linares
Administrando servidores con VMM 24-feb-10 10:00:00 a.m. -5 TechNet http://cut.ms/JSU Eduardo Lakatos
Nuevas Caracteristicas de Sharepoint 2010 09-feb-10 11:00:00 a.m. -5 Technet http://cut.ms/JSV Marcos Sanchez
Configurando Servidores web interoperables con Windows Server 2008 R2 Server Core 03-mar-10 03:00:00 p.m. -5 MSDN http://cut.ms/JSW Eduardo Sojo

Post Cruzado de AJDev.net

SketchFlow: Creando Prototipos – Parte I La teoría


image

Antes de empezar con el tutorial quiero hacer unas preguntas que estoy seguro que muchos de ustedes han pasado por ello.

Cuantas veces han cambiado de color una pantalla?

han estado en reuniones tan absurdas como que son para definir el tipo de fuente.?

Que el logo debe estar arriba en grande o mas pequeña?

Que la combinación de colores no son las correctas?

Que luego de la pantalla login que debe venir?

Cuando hacen una ppt’s de como se vera la aplicación, tus usuarios creen que ya todo esta listo?

Pierdes tiempo en tratar de adivinar como el usuario quiere ver la aplicación?

Dibujas todas las pantallas en papel o en una ppt?

El usuario a ultima hora te pasa una lista de cambios que afectan la visibilidad de la aplicación?

En fin podemos durar horas y horas mencionando preguntas que nos hacemos al momento de hacer un buen levantamiento de información y sobre todo al momento de crear prototipos de la aplicación que desea ver el usuario final, Te imaginas que puedas resolver la gran mayoría de estas preguntas y que lo mejor de todo que puedes entregar algo funcional para que el usuario interactúes para después llevarlo al desarrollo sin afectar mas tu preciado tiempo? que bien sabemos que en todo desarrollo tienes mucho por hacer y todo es para ayer :)

Pues con SketchFlow que viene en Expression Blend 3 puedes hacer todo esto y mucho mas como:

  • Crear prototipos de aplicaciones web (Con SilverLight 3) o para escritorio (Con WPF) sin necesidad de escribir código.
  • Crear interactividad, animaciones con componentes reales y totalmente funcionales.
  • A través de SketchFlow Player, puedes exponer tu aplicación en la web para que tus usuarios que se encuentre remoto o no tenga la posibilidad de hacer sus comentarios y checar el diseño.
  • Integrar esta retroalimentación dentro de la misma herramienta (Expression Blend 3) para hacer correcciones y centralizar los comentarios de todos los usuarios que revisaron el prototipo.
  • Producir automáticamente la documentación del proyecto como un archivo de Word.
  • Puedes importar tus presentaciones de PowerPoint.
  • Puedes importar tus archivos de Adobe Illustrator y PhotoShop.
  • Te permite incorporar datos de pruebas que vienen por defectos en Expression Blend 3, por lo que te evitas el tener que cargar datos para después ver como quedaría tu aplicación.

SketchFlow no es mas que prototipos rápidos, fáciles y baratos al momento de construirlos, lo que permite crear, explorar y comparar múltiples ideas antes de seguir adelante con una solución. Tradicionalmente los prototipos suelen ser redundante después de la fase de concepto y desechados. SketchFlow permite aprovechar cualquiera de los anteriores trabajos conceptuales, cada elemento creado son reutilizable en el proyecto al momento de pasarlo a la etapa de desarrollo.

Expression Blend 3 a través de SketchFlow te muestra una serie de controles con estilos muy parecidos a los que se dibujan a mano sobre un papel permitiendo centrar al Usuario en las necesidades y funcionalidades propias de la aplicación y no en el que color deben ir las cosas y demás y demás :) Así lo comento Somasegar:

SketchFlow también proporciona un conjunto de controles de “estilo boceto” que dan al prototipo un aspecto de boceto para mantener el enfoque en los conceptos de la experiencia de usuario sin distraerse con los detalles de los elementos visuales demasiado pronto. Los controles de estilo boceto son completamente funcionales y se puede volver a los controles de alta fidelidad en cualquier momento. A continuación puede ver un ejemplo de cómo aparecen los controles de estilo boceto. Fuente: Blog de Soma en español

Cross-Posting con: http://cut.ms/Jn9

Post Cruzado de AJDev.net

Windows 7: Modo Dios


Aunque suene extraño nosotros podemos crear una carpeta en nuestro Windows 7 que nos permita visualizar todas y cuando digo todas es todas las opciones de configuración del sistema de este nuevo sistema Operativo que saco la gente de Microsoft.

Para habilitar estas opciones y tenerlas a la mano como un DIOS en Windows 7 es realmente sencillo, solo tienes que hacer lo siguiente:

  1. Crea una nueva carpeta en el lugar que desees ver todas las opciones, en mi caso la deje en el escritorio para tener un acceso rápido.
  2. Llámala: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
  3. Y ábrela:

image

Información obtenida de este Blog: http://blogs.msdn.com/stevecla01/archive/2010/01/03/enable-godmode-on-windows-7.aspx

Post Cruzado con: AJDev.net

Windows 7 APIs: Trabajando con el TaskBar (Csharp)


Como parte de una serie de Presentaciones en universidades mostrando como se le puede sacar provecho al TaskBar de Windows 7 pues en este post tratare de explicar lo mas sencillo posible… Mi enfoque sigue siendo el mismo que es el desarrollo web pero en esta ocasión hare la excepción (Soy desarrollador no me culpen por intentar aprender mas cosas) :) jejeje

Primero lo primero debemos ir a esta dirección y descargar las API’s de Windows 7 para poder trabajar con el TaskBar: http://code.msdn.microsoft.com/WindowsAPICodePack

Luego de esto pues manos a la obra, para ver el articulo completo con las imagenes y codigo puedes entrar aqui: Windows 7 APIs- Trabajando con el TaskBar (Csharp)

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en .net

SilverLight 4: NotificationWindows


Continuando con la fiebre de SilverLight 4, esta ocasión les escribiré como mostrarle al usuario final una ventana de notificación ya sea para el común alerta o aviso. Esta funcionalidad funciona solo cuando la aplicación esta fuera del Navegador.

Sin mas ni mas aquí les dejo el tutorial espero que lo disfruten y le saquen muchísimo provecho:

1. Crearemos nuestro proyecto de SilverLight Application

image

2. Le daremos OK a la ventana que nos muestra Visual Studio 2010 para ver nuestro aplicativo SilverLight en un proyecto web.

image

3. Luego de agregaremos un nuevo Item a nuestro proyecto de SilverLight donde agregaremos un UserControl al que llamaremos “Notificador” quien será nuestro mensaje de notificación:

image

4. En ese nuevo UserControl agregaremos el Siguiente Codigo XAML reemplazando el grid que ya se encuentra agregado, sencillamente le estamos agregando dos filas donde la cabecera tiene un alto de 20 y agregamos dos border (uno en cada fila del grid) y 2 textblock (uno en cada border)  además de darle un poquito de color a ambos borders:

     <Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="20" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Border Grid.Row="0" Padding="8 2 8 2">
            <Border.Background>
                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                    <GradientStop Color="#FF87BCDB" Offset="0.0" />
                    <GradientStop Color="#FF6EB3C7" Offset="1.0" />
                </LinearGradientBrush>
            </Border.Background>
            <TextBlock x:Name="titulo" FontWeight="Bold" TextWrapping="Wrap" />
        </Border>
        <Border Grid.Row="1" Padding="8">
            <Border.Background>
                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                    <GradientStop Color="#ECECF4" Offset="0.0" />
                    <GradientStop Color="#C3C2D6" Offset="1.0" />
                </LinearGradientBrush>
            </Border.Background>
            <TextBlock x:Name="mensaje" TextWrapping="Wrap"  />
        </Border>
    </Grid>

5. Ahora en el la hoja de código del UserControl agregaremos lo siguiente:

        public void MostrarMensaje(string _titulo, string _mensaje)
        {
            titulo.Text = _titulo;
            mensaje.Text = _mensaje;
        }

6. Regresemos a nuestro UserControl Principal (MainPage.xaml) y agregaremos un botón:

        <Button Content="Notificar" Height="23" Name="btnNotificacion" VerticalAlignment="Center" Width="75" />

7. Ahora nos dirigimos al código y en el constructor de la pagina escribiremos lo siguiente:

   btnNotificacion.Click += new RoutedEventHandler(btnNotificacion_Click);

8. Luego de crear el evento click del boton escribiremos lo siguiente:

        void btnNotificacion_Click(object sender, RoutedEventArgs e)
        {
            if (App.Current.InstallState == InstallState.Installed)
            {
                if (App.Current.IsRunningOutOfBrowser)
                {
                    NotificationWindow nwAlerta = new NotificationWindow();
                    nwAlerta.Height = 80;
                    nwAlerta.Width = 320;
                    //Invocamos al UserControl Notificador.xaml
                    Notificador nota = new Notificador();
                    //Le pasamos los parametros al metodo creado
                    nota.MostrarMensaje("Mi titulo es de Prueba", "Este es una demostracion de como funciona el NoticationWindows en SilverLight 4");
                    nota.Width = nwAlerta.Width;
                    nota.Height = nwAlerta.Height;
                    nwAlerta.Content = nota;
                    nwAlerta.Show(4000);
                }
                else
                {
                    MessageBox.Show("Debe estar instalada la aplicacion para ver la Notificacion");
                }
            }
            else
            {
                MessageBox.Show("Debe estar instalada la aplicacion para ver la Notificacion");
            }
        }

9. Para que esto pueda correr sin problemas debemos decirle a nuestra aplicación SilverLight que puede correr fuera del navegador de lo contrario nos arrojaría error, aunque si ven el código anterior estamos validando de que la aplicación se encuentre instalada para poder mostrar la notificación. Para habilitar que corra fuera del Navegador haremos lo siguiente:

Boton derecho del mouse sobre el proyecto y luego Propiedades y habilitan el check que se muestra en la imagen

image

Si desean agregar alguna configuración adicional como iconos, cambiar el titulo o la descripción pueden hacerlo en el botón que se les aparece al lado “Out-Of-Browser Settings”

Luego de esto pueden ejecutar su aplicación y darle botón derecho en el navegador para instalar su aplicación y hacer las pruebas :)

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en Tutorial

SilverLight 4: Captura del WebCam y Microfono


SilverLight 4 ha ido tomando mucho revuelo en los últimos días y no es para menos con la inclusión de muchas funcionalidades excelentes que harán de SilverLight un punto de entrada al desarrollo de aplicaciones potentes y lo interesante de todo es que en muchas empresas sin la necesidad de tener una infraestructura fuerte puedes montar estas aplicaciones.

Sin mas rodeo en esta oportunidad les comentare como crear un proyecto sencillo que acepte las características de captura de video y de audio. La demo en caso de no verse aquí podrán verlo en esta dirección: http://ajdev.net/Publicacion/Articulo/52.aspx

1. Crearemos un Nuevo Proyecto en Visual Studio 2010 de tipo “SilverLight Aplicación”

image

2.Visual Studio 2010 nos indicara si deseamos crear un Proyecto Web para testear nuestra aplicación SilverLight le daremos OK.

image

3. Agregaremos 3 Controles el cual seran Dos Botones y Grid:

        <Button Content="Iniciar Captura" Height="26" HorizontalAlignment="Left" Margin="64,47,0,0" Name="btnCapturar" VerticalAlignment="Top" Width="120" />
        <Button Content="Paralizar Captura" Height="26" HorizontalAlignment="Left" Margin="209,47,0,0" Name="btnStop" VerticalAlignment="Top" Width="122" />
        <Grid Height="166" HorizontalAlignment="Left" Margin="12,122,0,0" Name="grid1" VerticalAlignment="Top" Width="376" />

4. Declararemos una variable privada del tipo CaptureSource quien almacenara las entrada de audio y video:

        private CaptureSource _cs = new CaptureSource();      

5. Nos ubicaremos en el constructor del formulario (UserControl) y escribiremos los siguientes eventos:

        public MainPage()
        {
            InitializeComponent();
            btnCapturar.Click += new RoutedEventHandler(btnCapturar_Click);
            btnStop.Click+=new RoutedEventHandler(btnStop_Click);
        }

6. Escribiremos en los eventos del Boton Capturar y el Stop las siguientes lineas:

        void btnCapturar_Click(object sender, RoutedEventArgs e)
        {
            //Validamos si permite captura de video y audio
            if (!CaptureDeviceConfiguration.AllowedDeviceAccess )
            {
                CaptureDeviceConfiguration.RequestDeviceAccess();
            }

            //Si la validacion fue efectiva podemos asignarle a la variable
            //antes declara (_cs) el video y el audio
            if (CaptureDeviceConfiguration.RequestDeviceAccess())
            {
                System.Windows.Media.VideoCaptureDevice videodev;
                System.Windows.Media.AudioCaptureDevice audiodev;
                videodev = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
                audiodev = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();
                if (videodev != null && audiodev!=null)
                {
                    _cs.AudioCaptureDevice = audiodev;
                    _cs.VideoCaptureDevice = videodev;
                    VideoBrush vb = new VideoBrush();
                    vb.SetSource(_cs);
                    _cs.Start();
                    grid1.Background = vb;
               }
            }
        }

        private void btnStop_Click(object sender, RoutedEventArgs e)
        {
            //se paraliza la visualizacion del video y el audio
            _cs.Stop();
        }

Con esto podemos porbar nuestra aplicacion… espero que le sea de ayuda… aqui les dejo el codigo XAML completo y el Codigo en C# del ejemplo mostrado:

XAML:

<UserControl x:Class="DemoWebCam.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <Button Content="Iniciar Captura" Height="26" HorizontalAlignment="Left" Margin="64,47,0,0" Name="btnCapturar" VerticalAlignment="Top" Width="120" />
        <Button Content="Paralizar Captura" Height="26" HorizontalAlignment="Left" Margin="209,47,0,0" Name="btnStop" VerticalAlignment="Top" Width="122" Click="btnStop_Click" />
        <Grid Height="166" HorizontalAlignment="Left" Margin="12,122,0,0" Name="grid1" VerticalAlignment="Top" Width="376" />
        
    </Grid>
</UserControl>

C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.Windows.Media.Imaging;

namespace DemoWebCam
{
    public partial class MainPage : UserControl
    {
        ObservableCollection<WriteableBitmap> _images = new ObservableCollection<WriteableBitmap>();
        private CaptureSource _cs = new CaptureSource();      

        public MainPage()
        {
            InitializeComponent();
            btnCapturar.Click += new RoutedEventHandler(btnCapturar_Click);
            btnStop.Click+=new RoutedEventHandler(btnStop_Click);
        }

        void btnCapturar_Click(object sender, RoutedEventArgs e)
        {
            //Validamos si permite captura de video y audio
            if (!CaptureDeviceConfiguration.AllowedDeviceAccess )
            {
                CaptureDeviceConfiguration.RequestDeviceAccess();
            }

            //Si la validacion fue efectiva podemos asignarle a la variable
            //antes declara (_cs) el video y el audio
            if (CaptureDeviceConfiguration.RequestDeviceAccess())
            {
                System.Windows.Media.VideoCaptureDevice videodev;
                System.Windows.Media.AudioCaptureDevice audiodev;
                videodev = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
                audiodev = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();
                if (videodev != null && audiodev!=null)
                {
                    _cs.AudioCaptureDevice = audiodev;
                    _cs.VideoCaptureDevice = videodev;
                    VideoBrush vb = new VideoBrush();
                    vb.SetSource(_cs);
                    _cs.Start();
                    grid1.Background = vb;
               }
            }
        }

        private void btnStop_Click(object sender, RoutedEventArgs e)
        {
            //se paraliza la visualizacion del video y el audio
            _cs.Stop();
        }
    }
}

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en Sin categoría

Tips Arrastrar y Soltar (Drap and Drop) con SilverLight 4


Hola a todos..

Como ya sabrán hace poco anunciaron la beta de SilverLight 4, y con eso han surgido muchos demos yo no dejare de ser uno de los que muestre un demo :) así que les explicare que como hacer el Drap and Drop (Arrastrar y Soltar) en nuestras aplicaciones de SilverLight.

1. La definición explicada por Rodrigo Díaz Concha en su pagina esta mas que genial así que hago referencia a su post: http://rdiazconcha.com/?p=487

Silverlight 4 cuenta con soporte de arrastrar uno o varios archivos desde afuera de la aplicación hacia adentro de ella y soltarlo(s) para poder leer su información y contenido.  Esta característica nos permite como desarrolladores crear mejores Experiencias para los Usuarios ya que evitan el número de cajas de diálogo y clics para abrir o leer un archivo o conjunto de archivos.

2. Abrimos nuestro Visual Studio 2010 Beta2 (el que estoy usando para esta explicación) y creamos una Aplicación SilverLight y le llamaremos Drap_and_Drop

 

Entra en Tips Arrastrar y Soltar (Drap and Drop) con SilverLight 4 para ver el resto de la publicacion con imagenes y codigo..!!

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en .net

Tips, Tutorial y Truco: Boton con Efecto de Vidrio (Button Glass) en SilverLight


Hola a todos,

Me gustaría compartir este pequeño tutorial de como obtener un botón con efecto de vidrio dándole una vistosidad bastante interesante a la interfaz de usuario.

Para ello me base en un articulo publicado en: http://www.sixin.nl/antoni-dol-blog/09-11-15/Silverlight_Style_GlassBorderStyle.aspx

Y el Código de Ejemplo de este Tutorial esta Aquí y la pagina origina esta Aqui:

Así que ni mas ni mas el truco:

1. Creamos nuestro proyecto en Visual Studio o en Expression Blend (Donde mas guste yo estoy usando Blend a la final el código estará en XAML)

2. Agregamos un botón a nuestro UserControl.

Captura1

3. Le daremos Botón derecho del mouse sobre el control Button, para seleccionar la opción Editar una Copia. Este paso es si utilizan Expression Blend, para los que usan Visual Studio 2008 todavía no se desesperen ya les pasare el XAML a pegar en su UserControl recuerden que VS2008 no soporta el Diseño de SilverLight en VS 2010 es la misma secuencia que Blend :)

Captura2

4. Saldra una Ventana como esta donde le daremos el nombre a la plantilla y ubicacion a guardar, en nuestro caso sera dentro del mismo UserControl.

Captura3

5. Este será el Código que veremos al darle aceptar y ubicarnos en el XAML:

Captura4

6. De ese código a mostrar cambiaremos el seteo de Propiedad del BackGround, Padding, Borderthickness, BorderBrush y agregaremos un Effects:

BackGround:

        <Style x:Key="ButtonGlass" TargetType="Button">
            <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.75,1" StartPoint="0.25,0"> 
                    <GradientStop Color="#33FFFFFF" Offset="0"/> 
                    <GradientStop Color="#C0FFFFFF" Offset="0.287"/> 
                    <GradientStop Color="#4011322D" Offset="0.683"/> 
                    <GradientStop Color="#33FFFFFF" Offset="1"/> 
                </LinearGradientBrush> 
            </Setter.Value>
        </Setter>

Padding y Borderthickness :

            <Setter Property="Padding" Value="5"/>
            <Setter Property="BorderThickness" Value="5"/>

BorderBrush:

           <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                        <GradientStop Color="#5811322D" Offset="0"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.25"/> 
                        <GradientStop Color="#FFFFFFFF" Offset="0.5"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.75"/> 
                        <GradientStop Color="#BFFFFFFF" Offset="1"/> 
                    </LinearGradientBrush> 
                </Setter.Value>
            </Setter>

Effects:

            <Setter Property="Effect"> 
                <Setter.Value> 
                    <DropShadowEffect BlurRadius="3" ShadowDepth="3" Opacity="0.5"/> 
                </Setter.Value> 
               </Setter> 

Ahora al boton sencillamente le aplicaremos este template en la propiedad Style le daremos el nombre del Template (ejemplo Style='{StaticResource ButtonGlass}’):

                   <Button Height="54" HorizontalAlignment="Left" Margin="119,0,0,137" 
                             VerticalAlignment="Bottom" Width="169" Content="Button" 
                             Style='{StaticResource ButtonGlass}'/>

Con esto tenemos lo siguiente:

image

Aquí les dejo el Código Completo del XAML (UserControl y Template del Boton):

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="DemoGlassButton.MainPage"
    Width="640" Height="480">
    <UserControl.Resources>
        <Style x:Key="ButtonGlass" TargetType="Button">
            <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.75,1" StartPoint="0.25,0"> 
                    <GradientStop Color="#33FFFFFF" Offset="0"/> 
                    <GradientStop Color="#C0FFFFFF" Offset="0.287"/> 
                    <GradientStop Color="#4011322D" Offset="0.683"/> 
                    <GradientStop Color="#33FFFFFF" Offset="1"/> 
                </LinearGradientBrush> 
            </Setter.Value>
        </Setter>
            <Setter Property="Foreground" Value="#FF000000"/>
            <Setter Property="Padding" Value="5"/>
            <Setter Property="BorderThickness" Value="5"/>
            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                        <GradientStop Color="#5811322D" Offset="0"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.25"/> 
                        <GradientStop Color="#FFFFFFFF" Offset="0.5"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.75"/> 
                        <GradientStop Color="#BFFFFFFF" Offset="1"/> 
                    </LinearGradientBrush> 
                </Setter.Value>
            </Setter>
            <Setter Property="Effect"> 
                <Setter.Value> 
                    <DropShadowEffect BlurRadius="3" ShadowDepth="3" Opacity="0.5"/> 
                </Setter.Value> 
               </Setter> 

            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Grid>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>
                                    <VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackgroundAnimation" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Pressed">
                                        <Storyboard>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="Background" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FF6DBDD1"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackgroundAnimation" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#D8FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#C6FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#8CFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#3FFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value=".55"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="FocusStates">
                                    <VisualState x:Name="Focused">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Unfocused"/>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Border x:Name="Background" Background="White" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
                                <Grid Margin="1" Background="{TemplateBinding Background}">
                                    <Border x:Name="BackgroundAnimation" Opacity="0" Background="#FF448DCA"/>
                                    <Rectangle x:Name="BackgroundGradient">
                                        <Rectangle.Fill>
                                            <LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0">
                                                <GradientStop Color="#FFFFFFFF" Offset="0"/>
                                                <GradientStop Color="#F9FFFFFF" Offset="0.375"/>
                                                <GradientStop Color="#E5FFFFFF" Offset="0.625"/>
                                                <GradientStop Color="#C6FFFFFF" Offset="1"/>
                                            </LinearGradientBrush>
                                        </Rectangle.Fill>
                                    </Rectangle>
                                </Grid>
                            </Border>
                            <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
                            <Rectangle x:Name="DisabledVisualElement" Fill="#FFFFFFFF" RadiusX="3" RadiusY="3" IsHitTestVisible="false" Opacity="0"/>
                            <Rectangle x:Name="FocusVisualElement" Stroke="#FF6DBDD1" StrokeThickness="1" RadiusX="2" RadiusY="2" Margin="1" IsHitTestVisible="false" Opacity="0"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="#FFFCFAFA">
        <Button Height="47" Margin="230,158,287,0" VerticalAlignment="Top" Content="Button" Style='{StaticResource ButtonGlass}'/>
    </Grid>
</UserControl>

Post Cruzado de AJDev.net

SilverLight 4 Beta: Nuevas Caracteristicas


Hola,

Gracias al Twitter logre enterarme de la salida de la beta de SilverLight 4 (lo hicieron publico en la Conferencia de desarrolladores de Professional de Microsoft (PDC), donde Scott Guthrie dio la gran noticia) cosa que me llama full la atención ya que incorpora una serie de funcionalidades súper excelentes que empezare a nombrar a continuación:

General

  1. Soporte de impresión
  2. Diseño implícita
  3. Soporte WebCam/micrófono
  4. Control de RichTextArea
  5. Eventos de botón derecho del ratón
  6. Acceso al Portapapeles
  7. Soporte UDP/multicast en red
  8. Hospedaje de HTML dentro de Silverlight 4
  9. Brocha HTML
  10. Acceso a Archivos Locales
  11. ViewBox
  12. Soporte para Google Chrome

Fuera de las mejoras de explorador

  1. Elevación de confianza  del control WebBrowser la ventana de notificación de Windows (por ejemplo, Outlook popup)
  2. Integración de COM

Mejoras de enlace de datos

  1. Enlace a DependencyObjects (utilizado para ser FrameworkElement)
  2. Extensión de marcado de StringFormat
  3. Extensión de marcado de TargetNullValue
  4. Extensión de marcado de FallbackValue
  5. Soporte para IDataErrorInfo y INotifyDataErrorInfo nueva para la generación de informes de errores de validación.
  6. Enlace a la cadena indizadores
  7. Soporte de GroupDescription en CollectionViewSource para la agrupación simplificada.

Quieres saber un poquito mas entra en: http://bit.ly/3UdQzS

Post Cruzado de AJDev.net

Expression Design: Efecto de humo girando


Bueno este post es motivado a un articulo encontrado en la siguiente dirección: http://bit.ly/1JXgpX y como se encuentra en ingles me tome el atrevimiento de crear un articulo nuevo basándome  en la explicación de Timmy Kokke, en cortas palabras colocar un poco mas a nuestro lenguaje :)

Hacer el efecto de humo girando en lo personal debía utilizar un software que generara 3D por lo que aprender a usarlo me tomo un poquito de tiempo y el cual no le di importancia después, por ello al ver el articulo me di cuenta que en una herramienta al cual muchas personas me han dicho que le falta para llegar hacer como las herramientas de Diseño profesionales ya conocidas pues aun trato de rescatar esa imagen al menos en mi país :) debido a que cada ves encuentro mas artículos y mas documentación que demuestran la potencia de Expression Design.

Sin mas bla bla bla y puedes entrar en esta dirección http://bit.ly/1X3iJB y ver como se logro hacer las siguientes imágenes:

 

 

image     Efectos

Espero que les guste.

Post Cruzado de AJDev.net

Training Kit: Visual Studio 2010 y .net Framework 4.0


Con motivo de esta disponible para descarga el de Visual Studio 2010 beta 2 les dejo el training kit para que empiecen a jugar con el, aja pero que hay dentro del training kit pues esto:

Link de Descarga del Training Kit: http://bit.ly/TrainingKitBeta2VS2010

Link de Descarga de la Edición Express (Facilitado por @shanselman ISO): http://bit.ly/2NuaZH

Link de Descarga Visual Studio 2010: http://bit.ly/VisualStudio2010

Presentations

  • What’s New in .NET Framework 4
  • What’s New in Visual Studio 2010
  • Introduction to ASP.NET MVC
  • Introduction to Managed Extensibility Framework
  • Introduction to .NET RIA Services
  • Introduction to “Velocity”
  • Parallel Computing for Managed Developers
  • Web Deployment with Visual Studio 2010
  • What’s New in ASP.NET AJAX 4
  • What’s New in ASP.NET Web Forms 4
  • What’s New in C# and VB
  • What’s New in ADO.NET Data Services
  • What’s New in Entity Framework 4
  • What’s New in Windows Presentation Foundation 4
  • What’s New in Windows Workflow 4

Hands-On Labs

  • Introduction to ADO.NET Data Services
    • Exercise 1: Creating and Consuming ADO.NET Data Services
    • Exercise 2: Consuming ADO.NET Data Services using ASP.NET AJAX
    • Exercise 3: Extending Data Services with Service Operations and Interceptors
    • Exercise 4: Adding Client-Side Paging with Row Count
  • ASP.NET AJAX 4
    • Exercise 1: Leveraging a Client-Side Template
    • Exercise 2: Using the DataView Control
    • Exercise 3: Creating Custom Markup Extensions
    • Exercise 4: Declaratively Instantiating Behaviors
  • Creating Plan My Night – ASP.NET MVC Application
    • Exercise 1: Creating an ASP.NET MVC Application, Plan My Night
    • Exercise 2: Creating Entity Framework Data Model
    • Exercise 3: Adding AJAX For Searching Activities
  • Enhancing Plan My Night – ASP.NET MVC Application
    • Exercise 1: Adding Caching using “Velocity”
    • Exercise 2: Structuring an Application using MVC Areas
  • Introduction to ASP.NET Web Forms 4
    • Exercise 1: Controlling Server Control ClientIds
    • Exercise 2: Enabling Bi-Directional Routing Support
    • Exercise 3: Granular ViewState
  • Microsoft Office Programmability in C# and Visual Basic
  • Introduction to F#
    • Exercise 1: Types in F#
    • Exercise 2: Using the Let keyword
    • Exercise 3: Functions
    • Exercise 4: Lists
    • Exercise 5: Pattern Matching and Recursion
    • Exercise 6: Types and Discriminated Unions
  • Introduction to the Managed Extensibility Framework
    • Exercise 1: Using MEF To Dynamically Add Modules to an Application
    • Exercise 2: Dynamically extending a form
  • Introduction to “Velocity”
    • Exercise 1: Setting up and running “Velocity”
    • Exercise 2: Programming directly against “Velocity” as a generic object cache
    • Exercise 3: Using Velocity’s SessionState provider with ASP.NET
    • Exercise 4 (Optional): Configure “Velocity” Cache in a cluster
  • Introduction to Workflow 4
    • Exercise 1: Hello Workflow
    • Exercise 2: Refactoring Workflows
    • Exercise 3: The CodeActivity
    • Exercise 4: Dynamic Workflows with XAML
    • Exercise 5: Testing Workflows
    • Exercise 6: WorkflowApplication
    • Exercise 7: Adding If/Else Logic
    • Exercise 8: Error Handling
    • Exercise 9: Activity Designers
    • Exercise 10: Hosted Designer
  • Introduction to Parallel Extensions
    • Exercise 1: Parallelize existing algorithm using static Parallel helper class
    • Exercise 2: Create and run parallelized Tasks
    • Exercise 3: Using the Task<T> class to create and run tasks that return a value
    • Exercise 4: Parallelizing LINQ queries using PLINQ
  • Test-Driven Development in Visual Studio 2010
  • WCF Service Discovery
    • Exercise 1: Ad-Hoc Discovery
    • Exercise 2: Metadata Extensions
    • Exercise 3: Announcements
    • Exercise 4: Discovery Proxy
    • Exercise 5: Legacy Discovery
  • Web Development in Visual Studio 2010
    • Exercise 1: Using HTML Code Snippets
    • Exercise 2: Web.config Transformations
    • Exercise 3: Packaging and Deploying Web Applications
    • Exercise 4: Packaging and Deploying Web Applications for IIS
  • Building a Data-Driven Master/Detail Business Form using WPF 4
  • Multi-touch Gesture – MFC
  • Multi-touch WMTouch – MFC
  • Ribbon – MFC
  • Taskbar – MFC

Demos

  • ContosoAutomotive (Parallel Extensions + MEF + WPF)
  • AdventureWorks AJAX
  • ASP.NET AJAX Ten-In-One
  • Managed Languages Ten-In-One
  • Barrier
  • CountdownEvent
  • Hello Visual Studio 2010
  • Introduction to the Managed Extensibility Framework
  • Parallel Baby Names
  • Parallel For Loop
  • Parallel LINQ (PLINQ)
  • Parallel Tasks
  • “Velocity”

Post Cruzado de AJDev.net

Que hay de Nuevo en C# 4.0


Hola a todos

Aquí les menciono las nuevas características de C# 4.0:

Lenguaje y Compilador

Soporte Dinámico: proporciona compatibilidad con enlace a tipos dinámicos mediante la introducción de un nuevo tipo, dynamic. Esta adición permite muchos nuevos escenarios, incluido el acceso simplificado a las API de COM , como las API de automatización de Office, API dinámicas como las bibliotecas de IronPython y el modelo de objetos de documento de HTML (DOM). Mas info en: Usando Tipo dynamic y dynamic.

Programación en Office: Acceso a las interfaces COM, incluyendo las API de automatización de oficina, se ha mejorado enormemente mediante la adición de argumentos con nombre y opcionales, tipo dinámico, propiedades indizadas y modificadores ref opcional. Mas info en: Cómo: utilizar indexado propiedades en la programación de interoperabilidad COM, y Cómo: objetos de interoperabilidad de Office Access utilizando las características  de Visual C# 2010

 Nota: esto es una humilde traducción por lo tanto me disculpan si encuentran errores de traducción, el articulo original esta en el siguiente enlace en Ingles:

What’s New in Visual C# 2010

Nota el resto de la traducción se encuentra en: http://ajdev.net/Publicacion/Articulo/23.aspx

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en Sin categoría

Escribiendo un cliente de Twitter con .NET Compact Framework y LINQ para XML


Después de estar enfrascado por medio día realizando mi propio notificador y lector de Twitter me encontré con el post que realizo el Fernando Loera en el Facebook con respecto a un post de Carlos Pérez. Pero bueno ya logre mi cometido y les envió esta info por si alguien necesita o desee crear cosas con la API de Twitter.

Twitter ha tomado mucha relevancia, como un vinculo de comunicación que ganó muchos adeptos en todo el mundo. Si bien existen varias formas de actualizar nuestro estado, la idea aqui es codificar un sencillo cliente de Twitter que corra en Windows Mobile, utilizando un WinForm, es decir, una aplicación inteligente a bordo del teléfono.

Preliminares

La API de Twitter se encuentra documentada en una wiki,: http://apiwiki.twitter.com/. Sin embargo, acceder desde .NET Compact Framework involucra ciertos detalles que no están explicitadas claramente en dichos documentos.

Esencialmente, la idea es que las actualizaciones de estado se realizan haciendo un requerimiento HTTP (HTTP request) a una página web, cuya URL tiene el siguiente patrón:

http://twitter.com/statuses/update.format

Donde format es el formato del requerimiento. Puede ser xml o json. En el primer caso, la página requerida es un documento xml: http://twitter.com/statuses/update.xml

En el segundo caso, http://twitter.com/statuses/update.json , se utilizaría JSON = Java Script Object Notation, el cual es un formato liviano para intercambio de información. Como XML ,tiene interpretación de lectura humana, y es fácil procesar (parsing) automáticamente. JSON utiliza dos estructuras para intercambiar datos: (1) una colección de pares ordenados (nombre/valor), o bien (2) una lista ordenada de valores, es decir , una matriz de valores. Para mayores datos acerca de este formato, podemos visitar http://www.json.org/

En nuestro caso, optamos por acceder utilizando la página en formato XML. De esta forma, la secuencia de acciones sería de tres pasos, a saber:

  • enviar un requerimiento HTTP a la página http://twitter.com/statuses/update.xml , donde en la cabecera se envían los datos de usuario, contraseña, versión de protocolo utilizado, y datos que representan la actualización de estado (máximo 140 caracteres en este campo data).
  • recuperar la respuesta, que obviamente sería la página http://twitter.com/statuses/update.xml, la cual contendrá la información generada por la API de twitter acerca del resultado de nuestro intento de actualizar estado. Este es un documento XML, por lo cual..
  • procesar la respuesta utilizando LINQ for XML en .NET CF, que es una forma muy directa de manejar los documentos XML.

En resumen, es un mecanismo REST: al enviar el request HTTP, se incluye allí la información (en el campo data del request) que se desea actualizar, capturar la respuesta y procesarla eventualmente.

Leer Mas de este articulo aquí: http://logica10mobile.blogspot.com/2009/10/escribiendo-un-cliente-de-twitter-con.html

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en Tutorial

Tips & Trucos: Windows 7


Si está actualizando desde Windows Vista o escalando desde Windows XP, Windows 7 ofrece un gran número de mejoras de la versión anterior de Windows. El artículo de TechNet ofrece una gran cantidad de consejos de productividad. Aquí es una muestra de métodos abreviados de teclado de Windows 7.

Tecla Windows + H – ventana actual de mover a pantalla completa
tecla Windows + I – restaura la ventana actual de pantalla completa al tamaño normal o minimiza la ventana actual si no la pantalla completa
Tecla Windows + Shift + flecha – ventana actual de mover a pantalla alternativo
Tecla Windows + D – minimizar todas las ventanas y mostrar el escritorio
Tecla Windows + E – inicio Explorer con equipo como el foco
Tecla Windows + F – inicio de una ventana de búsqueda
Tecla Windows + G – ciclo a través de los gadgets
Tecla Windows + L – bloquear el escritorio
Tecla Windows + M – minimizar la ventana actual
Tecla Windows + R – abrir la ventana ejecutar
Tecla Windows + T – ciclo a través de la barra apertura inspeccionar Aero para cada elemento de la ejecución de tareas
Tecla Windows + U – abrir el centro de la facilidad de uso
Tecla Windows + espacio – Aero inspeccionar el escritorio
Ctrl + tecla Windows + Tab – ventana de selección de Open tarea persistente, desplace el ratón sobre cada icono para obtener una vista previa de elemento y minimizar otros

 

Publicado en: http://ajdev.net/Publicacion/Articulo/22.aspx

Post Cruzado de AJDev.net

de Alex Jiménez Publicado en Windows

BarCamp Valencia: DESConferencia Tecnológica en Venezuela


Los invito a participar en este evento abierto que se llevará a cabo este sábado 3 de Octubre de 2009 en la UNITEC Prebo en Valencia. Microsoft estará participando en este evento como patrocinador y con algunas sesiones. Este evento tiene la particularidad de que todo aquel que asista puede dar una charla anotándose en temprano… a este formato se le conoce como DESCONFERENCIA.

 

Deseas saber mas?? pues entra a la siguiente URL: http://ajdev.net/Publicacion/Articulos/Articulo.aspx?ID=6

Anuncian el WebSiteSpark


Visitando la web de Rodrigo Díaz Concha me encontré con este interesante anuncio hecho por Scott Guthrie 

El día de hoy Scott Guthrie ha anunciado un nuevo de programa de apoyo para desarrolladores/diseñadores independientes y empresas de desarrollo que construyan soluciones con ASP.NET, Silverlight, Expression, SharePoint, PHP.

Con WebsiteSpark podrán obtener las siguientes licencias, SIN COSTO ALGUNO, por 3 años:

  • 3 licencias de VS2008 Professional
  • 1 licencia de Expression Studio 3 !!!!! :)
  • 2 licencias de Expression Web 3
  • 4 licencias por procesador de Windows Web Server 2008 R2
  • 4 licencias por procesador de SQL Server 2008 Web Edition
  • Panel de control DotNetPanel

Asimismo, Visual Studio 2010 será incluido también en el programa, una vez que haya sido liberado (el próximo año) !!!!.  También cabe mencionar que después de los 3 años no hay obligación alguna de adquirir el software.

Pueden leer el anuncio completo en su blog.

Es o no esto una GRAN noticia?! :)   ¡No dejen pasar la oportunidad y enrólense ahora!

Documentacion en Español de SilverLight 3


En el Blog de Fernando Loera me encontrado con una información súper genial y es la documentación en Español de SilverLight 3 asi qeu aqui les dejo los enlaces:

“Por cortesía del Maestro y buen amigo Daniel Seara me entere que por fin ya está disponible en Español la documentación de Silverlight 3.0

Aquí el contenido:

Recursos externos

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Introducción a la programación a través de Desarrollo de juegos con Microsoft XNA Game Studio


Visitando el Blog del MVP Lead de Latinoamérica Fernando García Loera me encontré con este interesante Post:

Me encontré con este excelente recurso en el Faculty Resource Center que ayuda a entender XNA desde cero, este contenido esta creado para ser impartido en aula lo cual es un excelente noticia para todos aquellos que son maestros, aquí el detalle.

Les recomiendo mucho visitar el Faculty Resource Center y el Faculty Connection

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Crear una aplicación Web desde Cero (VB y CSharp)- Part III – Consultas con LINQ


Por cuestiones de tiempo este punto se tratara con LINQ para así mostrarle lo último en tecnología ya que se nos aproxima VS2010 y hay muchas cosas más interesante que se debería mostrar, tranquilos también daré algunos tips de cómo se puede realizar a la manera de Visual Studio 2005 y versiones anteriores :-)

LINQ (Lenguage INtegrated Query), es una tecnología bastante interesante en ella podemos establecer consultas de manera directa a la base de datos partiendo de un simple query, debemos tener en cuenta que no solo base de datos podemos hacer esto si no también a objetos (LINQ to Objects), XML (LINQ to XML), Entidades y otros manejadores (LINQ to ADO.net), por ello LINQ se fortalece cada vez mas permitiendo tener una especie de lenguaje único de consulta para las diferentes formas de obtención de datos.

La definición de la Librería MSDN lo define de esta manera: Language-Integrated Query (LINQ) es un conjunto de características en Visual Studio 2008 que agrega eficaces capacidades de consulta a la sintaxis de los lenguajes C# y Visual Basic. LINQ incluye patrones estándar y de fácil aprendizaje para consultar y actualizar datos, y su tecnología se puede extender para utilizar potencialmente cualquier tipo de almacén de datos. Visual Studio 2008 incluye ensamblados de proveedores para LINQ que habilitan el uso de LINQ con colecciones de .NET Framework, bases de datos de SQL Server, conjuntos de datos de ADO.NET y documentos XML.”

Como hemos venido trabajando en el este tutorial vamos a agregar a nuestro sitio web un nuevo Elemento->Clases de LINQ to SQL el cual lo he llamado dcAdventureWorks.dbml debido a que estaremos utilizando la base de datos AdventureWorks así como resalto en la siguiente imagen.

DataClases

Luego de dar aceptar nos debe aparecer la siguiente pregunta al cual le daremos a la Opción SI.

DataClases-Pregunta

Luego nos saldrá un espacio en blanco donde nos pide ver el Explorador de Servidores o el cuadro de herramientas y así poder arrastrar los objetos (que para nuestro caso serian las tablas de la base de datos AdventureWorks) que deseamos ver en nuestro DataClases por ello seleccionaremos Explorador de Servidores y en el deben aparecer listado los Servidores de base de datos que se encuentren configurado de otras aplicaciones J de estar vacía que es la forma más tradicional de verlo entonces haremos los siguientes pasos para visualizar nuestra base de datos.

1. Seleccionaremos el icono amarillo con forma de base de datos y un + en la parte superior como se indica en la imagen siguiente, esto es para conectarnos al servidor de base de datos.

tablas

2. Aparecerá un cuadro como muchas maneras de conectarnos a la base de datos y por ello debemos seleccionar la siguiente. Si es de su preferencia puede dejar la casilla “Utilizar siempre esta selección” por si siempre utilizara esa manera para conectarse a una fuente de datos.

motores

3. Si se ha equivocado al momento de seleccionar el Origen de datos (Paso anterior) puede reajustar la selección con darle al botón Cambiar (ver la siguiente imagen), se la selección es la correcta usted debe indicar el nombre del servidor de SQL Server donde está la base de datos a utilizar en mi caso estoy usando un Motor de SQL Server 2005 Developer Editions y por ello mi Nombre servidor es (local)\SQL2005 en sus casos si está utilizando la versión Express seria de la siguiente manera (local)\SQLExpress, luego según las características que hallas definido al momento de instalar el servidor de base de datos pudieras usar una autenticación de modo Windows o de Modo SQL Server y de allí puedas seleccionar tu base de datos.

Motor

Nota: por si no sabes quién es (local) vendría siendo tu maquina por lo que en vez de usar (local) pudieras utilizar el nombre de tu Maquina, el \ServidorSQL seria la instancia donde fue instalado el servidor de base de datos, es decir seria esta nomemblecatura: {TUMAQUINA\INSTANCIA_SERVIDOR_SQL}. Te recomiendo hacer una prueba de conexión antes de darle aceptar para validar que te puedes conectar sin problemas.

4. Ahora seleccionaremos todas las tablas de la base de datos o sencillamente podemos usar las tablas que usaremos para el tutorial y luego de seleccionarlas la vamos arrastrando al DataClases donde las tablas son StateProvince y CountryRegion.

Nota: Fíjense la sección remarcada, allí arrastraríamos los StoreProcedures y Funciones que estén definidos en la base de datos lo cual en código podremos invocarlos como Métodos, mientras las tablas la invocaremos como Clases.

Ya con esos puntos podemos empezar a lanzar código J, pero antes de empezar debo explicarle como es la sintaxis de LINQ para que así puedan seguirme, sé que es mucho bla bla bla pero créanme es lo correcto. La sintaxis tradicional y quizás la más utilizada de LINQ es la siguiente:

Linq

La forma de trabajar con LINQ es englobando la consulta y almacenando todo en una variable de tipo “var” (en C# y en VB es DIM sin la asignación de tipo de datos), veamos como se ve lo mostrado en la imagen anterior en código:

 

C#:

var consulta = from country in db.CountryRegion
               select country;

VB:

Dim consulta = From country In db.CountryRegion Select country

Lo que equivale a una consulta al estilo SQL:


Select * From Person.CountryRegion

Si lo ven no es tan difícil al contrario nos facilita el poder manejar objetos, xml y otros fuentes de datos basándonos en un solo esquema, facilitándonos y/o ahorrándonos el tener que aprender cómo obtener los datos y cuál sería su sintaxis J.

Como si eso no fuese todo también podemos hacer consultas a la base de datos como si fuesen métodos así como se muestra en el ejemplo siguiente:

C#:


var consulta = db.CountryRegion;//.Select(c => new { c.Name, c.StateProvince });

VB:

Dim consulta = db.CountryRegion

Es decir que quedaría como la siguiente imagen :-)

Linq Metodo

Aquí le dejo otra imagen para notar la forma como se realiza las consultas con LINQ con ambos lenguajes (VB y C#) y que el Visual Studio 2008 nos brinda todo el soporte necesario.

Untitled2

Ahora teniendo claro la forma de realizar consultas en LINQ podremos comenzar con agregar una nueva página seleccionando la MasterPage creada en el capitulo anterior y la llamaremos infoCountryRegion.aspx en el solo tendremos el GridView que llamaremos gvCountryRegion que mostrara los datos arrojados de las consultas que realizaremos a la tabla CountryRegion.

En la hoja de código del formulario web (infoCountryRegion.aspx.cs) vamos a crear un método que llamaremos “LlenarGrid()” dicho método nos servirá para llenar el GridView la carga de la pagina en futuras mejoras al gridview como la paginación y selección de filas.

C#

    /// <summary>
    /// Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
    /// </summary>
    private void LlenarGrid()
    {
        //Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
        //Y lo alamcenamos en una variable de tipo string
        string sConfig = ConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"].ConnectionString;
        //Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
        //pasamos en el parametro la cadena conexion almacenada en la variable sConfig
        dcAdventureWorksDataContext db = new dcAdventureWorksDataContext(sConfig);
        //Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
        var consulta = from c in db.CountryRegion
                       select c;
        //Lugar donde mostraremos la informacion consultada a la tabla
        gvCountryRegion.DataSource = consulta;
        gvCountryRegion.DataBind();
    }

VB

    ''' <summary>
    ''' Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
    ''' </summary>
    Sub LlenarGrid()
        'Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
        'Y lo alamcenamos en una variable de tipo string
        Dim sConfig As String = ConfigurationManager.ConnectionStrings("AdventureWorksConnectionString").ConnectionString
        'Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
        'pasamos en el parametro la cadena conexion almacenada en la variable sConfig
        Dim db As dcAdventureWorksDataContext = New dcAdventureWorksDataContext(sConfig)
        'Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
        Dim consulta = From country In db.CountryRegion Select country
        'Lugar donde mostraremos la informacion consultada a la tabla
        gvCountryRegion.DataSource = consulta
        gvCountryRegion.DataBind()
    End Sub

Mientras que en el Page_Load de la página escribiremos la invocación del método recién creado colocando un validación de que la Página sea diferente a un PostBack por lo que quedaría así en el siguiente código:

C#

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LlenarGrid();
        }
    }

 

VB

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (IsPostBack = False) Then
            LlenarGrid()
        End If
End Sub

 

 

 

 

 

 

 

 

Hasta el siguiente post que será la continuación de este punto (Consultas)

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Workshop de Silverlight en Microsoft Venezuela


Los invito al evento técnico Workshop
Silverlight. Este es un evento dirigido a Desarrolladores de software
en tecnologías Microsoft y contaremos con la participación de Rodrigo
Diaz, MVP de México.

Asista y comparta ideas y experiencias con
los participantes, además de conocer tendencias en el desarrollo de
software, a través de sesiones interactivas en las cuales se podrá
debatir diferentes opiniones y puntos de vista, gracias a la mezcla de
presentaciones sobre visión técnica y arquitectónica, estrategias y
opciones de implantación para la empresa.

Fecha:
martes, 25 de agosto de 2009
Hora:
18:30 – 21:00
Lugar:
Salón Venezuela
Calle:
Avenida principal la castellana, centro Letonia piso 10
Ciudad:  
Caracas, Venezuela

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

La Liga SilverLight


Hola todos me complace mencionarles acerca de la primera comunidad de habla hispana sobre la tecnología SilverLight de verdad el poco tiempo que he tenido de entrar en su sitio me he encontrado con artículos muy buenos basado en SilverLight y lo mejor de todo es que van actualizados según la versión que este en el momento, he tenido el gusto de compartir un entrenamiento con uno de sus lideres y la verdad que el nivel es sorprendente. Ellos son un grupo de desarrolladores profesionales y entusiastas agrupados para compartir y aprender experiencias y conocimientos acerca de esta magnífica tecnología.

En Enlace es el siguiente y espero que lo disfruten: http://blogs.ligasilverlight.com/

Aquí les dejo el como se definen ellos:

“Somos un gremio auto-organizado y participativo de habla hispana enfocado a la tecnología Silverlight deMicrosoft (y tecnologías íntimamente relacionadas como XAML, ASP.NET, ADO.NET Data Services)

Creemos que la especialización y enfoque en las comunidades y sus contenidos es la única manera de aprender con más detalle cualquier tipo de tecnología

Nuestra comunidad es de origen mexicano, con miras a agrupar a cualquier persona que esté dispuesta a participar en nuestras iniciativas sin importar su nacionalidad o posición geográfica

Creemos que nuestro idioma y pasión por la tecnología son los comunes denominadores para alcanzar nuestros objetivos

Nuestras iniciativas y esfuerzos no tienen fines de lucro y por lo tanto no estamos atados, amarrados, vinculados u obligados con ningún tipo de empresa ni mexicana ni extranjera

La participación de todos sus integrantes es la única manera de producir contenido global y útil para todos

Si bien las reuniones presenciales son importantes, la disponibilidad del contenido y participación en línea son aún más importantes para poder llegar a todas aquellas personas que por su disposición geográfica les es imposible unirse a una reunión física

El tiempo de las personas es lo más valioso que hay, y por ello trataremos que todos nuestros esfuerzos sean para aprender más en menos tiempo, utilizando el tiempo de manera eficaz y eficientemente

Creemos en la privacidad de todos los integrantes y es por ello que toda información personal (como correos electrónicos o nombres) no será distribuida de ninguna manera a terceros con fines de lucro”

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Guía de SilverLight 3


Paseando un rato por la red y buscando un poquito mas de información de SilverLight 3 :-) pase por la Web de Rodrigo Concha y me encontré con interesantes enlaces de funcionalidades que se pueden hacer con SilverLight 3 en versión beta probé algunos (no todos por factor Tiempo) y me ha funcionado con la versión final. Pero igual Rodrigo en su sitio se comprometió a actualizar los artículos, así que aquí les dejo los enlaces.

Espero que lo disfruten:

  • Aplicaciones Fuera del Navegador
  • Conciencia de Conexión
  • Conexión Local
  • Enlace entre Elementos
  • Enlace con RelativeSource
  • Diccionarios de Recursos de tipo Merged
  • Framework de Navegación
  • Data Forms
  • Plane Projection
  • Caret Brush
  • Fuente: Web del MVP Rodrigo Concha

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Inscripciones Abiertas para el PDC 2009


    Hola a todos conversando con algunos amigos Developers y gente de Microsoft me pasaron el dato que el PDC esta abierto para el registro me pasaron algunos abre bocas pero lamentablemente este evento me tocara perdérmelo por falta de visa :( será para el próximo año mientras les dejo la información mas detallada suministrada en la pagina del MVP Rodrigo Concha (que esta de visita por Venezuela :-))

     

    Aquí esta el Trozo robado del siguiente enlace: PDC 2009MVP Rodrigo Concha

     

    PDC09

    Ya está abierto el registro para el Professional Developers Conference 2009 mejor conocido como PDC, el cual se llevará a cabo del 17 al 19 de Noviembre 2009 en el Centro de Convenciones de Los Angeles, California. El PDC es el evento magistral del año en donde Microsoft da a conocer nuevas tecnologías y tendencias en el mundo de desarrollo de su plataforma.

    Si nunca han asistido a esta conferencia y tienen la curiosidad de ir se los recomiendo ampliamente ya que es una experiencia enriquecedora debido no solamente a las sesiones técnicas (que de hecho las pueden ver en línea desde la comodidad de su hogar a posteriori) sino también al hecho de que pueden compartir sus conocimientos y conocer personas con la misma pasión de ustedes.

    Para el tema de Silverlight, ya han sido anunciadas algunas sesiones que sin duda alguna serán de muchísimo interés para los que nos dedicamos a esta tecnología.

    Les sugiero seguirlos en Twitter para estar al tanto de las últimas noticias del evento

    @PDC09

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    [WorkShop] Escenarios reales de interoperabilidad en la web: Silverlight en aplicación


    Tengo el placer de invitarlos al Workshop de Interoperabilidad en el cual se estará hablando del consumo de aplicaciones Silverlight desde PHP. Para este evento contaremos con la presencia del MVP de México Rodrigo Díaz Concha (http://rdiazconcha.com) , quien nos estará mostrando escenarios prácticos de implementación de ambas tecnologías.

    Este evento no tiene ningún tipo de costo, para asistir puedes usar la siguiente información del evento:

    Fecha: Martes 11 de Agosto de 2009
    Hora: 6:30pm
    Lugar: Microsoft Venezuela
    Dirección: Av. Principal de la Castellana Centro Letonia, torre ING Bank, Piso 10, Caracas. Venezuela.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Enlaces: Cursos de Programación Web, SharePoint, Mobile, SilverLight, WPF, Live y Diseño


    clip_image001Curso de Silverlight 2.0 (1º parte)

    En el curso veremos una introducción al desarrollo con la versión 2.0 de Silverlight. Con él aprenderás a utilizar los recursos para la creación de sitios Web enriquecidos y aplicaciones Web completas con una innovadora interfaz de usuario y prestaciones multimedia mejoradas y adaptables a cada situación. Revisaremos la programación de interfaces de usuario mediante el lenguaje XAML adaptado para Silverlight 2.0 y utilizaremos el lenguaje C# para la programación del comportamiento de negocio.

    clip_image001[1]Curso de Silverlight 2.0 (2º parte)

    Esta es la segunda parte del curso de introducción al desarrollo con la versión 2.0 de Silverlight. Aquí nos centraremos en la utilización de Controles Predefinidos, Estilos, Animaciones, Creación de controles personalizados, Visual State Manager, Acceso a Datos y Buenas Prácticas, tanto en la arquitectura, como en la implantación final.

    clip_image002Curso Desarrollo Web

    En este curso se tratan todas las cuestiones fundamentales que le permitirán crear aplicaciones web con Visual Studio 2005 y con Visual Studio 2008. Al final del curso sabrá todo lo necesario para crear sus propias aplicaciones Web orientadas a datos y con multitud de características avanzadas

    clip_image002[1]Curso de Introducción a .NET con Visual Basic 2005 y Visual Basic 2008

    En este curso podrás aprender a desarrollar aplicaciones Windows con Visual Studio 2005 y 2008, y terminaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

    clip_image002[2]Curso de Introducción a .NET con C#

    En este curso podrás aprender a desarrollar aplicaciones Windows con Visual Studio 2005 y también Visual Studio 2008, y terminaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

    clip_image002[3]Curso de Visual Basic 2005 y Visual Studio 2008 para desarrolladores VB6

    En este curso podrás aprender a desarrollar aplicaciones con la última generación de herramientas de desarrollo Microsoft Visual Studio 2005 y Visual Studio 2008. Veremos las principales diferencias con Visual Basic 6, tanto a nivel del lenguaje como de la infraestructura de desarrollo utilizada, y acabaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y también Visual Studio 2008.

    clip_image002[4]Curso de desarrollo con dispositivos móviles

    En este curso aprenderás a desarrollar aplicaciones para dispositivos móviles con Visual Studio 2005 y Visual Studio 2008. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

    clip_image002[5]Curso de desarrollo con Windows Presentation Foundation

    En este curso usted verá cómo crear sus primeras aplicaciones usando Windows Presentation Foundation (WPF). Le enseñaremos a utilizar los nuevos recursos de presentación de esta nueva plataforma de Microsoft con los que podrá elevar a niveles excitantes la calidad y funcionalidad de las interfaces de usuario de sus aplicaciones. Lo introduciremos en la nueva filosofía de programación declarativa con el lenguaje XAML que ayuda a separar la interfaz de presentación del código .NET en el que programe la lógica del negocio de su aplicación. Con WPF verá facilitados y enriquecidos conocidos conceptos como controles, eventos, enlace a datos, así como podrá incorporar nuevos elementos como transformaciones, plantillas, estilos, animaciones, media, 3D, documentos.

    clip_image003Curso de Windows Live APIs

    En este curso aprenderá a integrar y enriquecer su páginas PHP y JSP con las APIs de Windows LIVE. En cada capítulo dispondrá de un video explicativo con una demo de lo visto relacionado con esa API.

    clip_image003[1]Curso de Silverlight 1.0

    Silverlight representa el paso siguiente en el desarrollo del potencial de riqueza en utilización que los desarrolladores y diseñadores de aplicaciones pueden presentar a sus clientes. Este curso pretende acercarle al maravilloso mundo que está resultando ser el desarrollo para la próxima generación de aplicaciones web con Silverlight. Esta tecnología cuenta con multitud de funcionalidades que podrá comenzar a usar ahora para crear su próximo sitio web.

    clip_image003[2]Curso de Servicios Web

    En este curso podrás aprender los conceptos fundamentales relacionados con los Servicios Web, y cómo éstos se implementan en la plataforma .NET, para luego ser consumidos desde esa misma plataforma u otras como Java y PHP. Al final de cada lección de naturaleza práctica, tendrás disponible un vídeo en el que podrás reflejados los conceptos.

    clip_image003[3]Curso de diseño y autoría con Microsoft Expression Web

    Desde principios fundamentales que rigen el diseño Web, hasta el uso de archivos XML para crear diseños dinámicos enlazados a datos, pasando por la creación, edición y mantenimiento de sitios y aplicaciones Web con interfaces accesibles y usables, y garantizando siempre la compatibilidad con los estándares del W3C para la Web, como XHTML, CSS o XML, este curso le guiará paso a paso por los fundamentos prácticos del diseño y la autoría con la potente herramienta Microsoft Expression Web.

    clip_image003[4]Curso de SQL Server 2005

    En este tutorial, aprenderá los fundamentos para desarrollar aplicaciones con la versión Express de SQL Server 2005. El objetivo del tutorial no es cubrir en gran detalle todos los aspectos de SQL Server 2005 Express, pero si aportar una idea general del producto y su integración con el resto de herramientas Express (Visual Basic Express, Visual C# Express, y Visual J# Express). Como complemento adicional al tutorial, deberá seguir los Libros en Pantalla del producto (Books On Line).

    clip_image003[5]Curso de desarrollo con Sharepoint 2007

    SharePoint es no solamente la herramienta de colaboración de Microsoft, sino toda una plataforma de desarrollo, debido a su flexible arquitectura y poderoso Modelo de Objetos. Este curso demuestra las posibilidades de desarrollo de componentes para Windows SharePoint Services (WSS) 2007 y Microsoft Office SharePoint Server (MOSS), tales como WebParts, Tipos de Contenido y Características, así como la forma de interactuar programáticamente con servicios avanzados del sistema, como son sus Flujos de Trabajo y Catalogo de Datos Profesionales.

    clip_image003[6]Desarrolla con MSDN: Introducción a Visual Studio 2005

    En este video veremos todas las novedades en Visual Studio 2005, desde el desarrollo web con ASP .NET pasando por Visual Studio Tools for Office y mucho más. El tamaño de este Video es de 61’50 MB, el tiempo de descarga dependerá del tipo de conexión.

    clip_image003[7]Desarrolla con MSDN: Dispensador de MSDN Video

    Veremos como construir un dispensador de películas automático, basado en WinForms y con despliegue automático por Internet. Nos permitirá construir el interfaz rico y potente necesario en este tipo de aplicaciones. El tamaño de este Video es de 79’34 MB, el tiempo de descarga dependerá del tipo de conexión.

    clip_image003[8]Aplicaciones Smart Client con .NET

    Un smart client consiste en una aplicación que proporciona al usuario un interfaz Windows rico para acceder a un sistema basado en servicios web, pero que mantiene las ventajas de los clientes web tradicionales, como la ausencia de instalación en la máquina cliente, el funcionamiento a través de Internet y la actualización automática. El tamaño de este Video es de 80’33 MB, el tiempo de descarga dependerá del tipo de conexión.

    clip_image003[9]Desarrollo de aplicaciones con .NET y Servicios Web

    En este webcast veremos una introducción al desarrollo en .NET de la lógica de negocio de una aplicación. El tamaño de este Video es de 65,1MB, el tiempo de descarga dependerá del tipo de conexión.

    clip_image003[10]Desarrolla con MSDN: Servidor central de MSDN Video

    Primer webcast de la serie Desarrolla con MSDN. Estos webcasts mostrarán paso a paso cómo desarrollar con Visual Studio .NET la aplicación MSDN Video. En esta ocasión desarrollaremos el servidor central que servirá como núcleo del resto de clientes que consumirán la funcionalidad de la aplicación. El tamaño de este Video es de 75,8MB,


    Comparte este Blog :


    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Tips & Trucos: Convertir Segundos a Minutos, Horas y Días – VB y C#


    Hola a Todos,

    Aquí les dejo unos simples truquillos de convertir Segundos a Minutos, Horas y Días. Utilizando TimeSpan.

    Nota: el Response.Write es por que utilice una pagina ASP.net y en el Load cargaba el resultado :)

    En Visual Basic:

    Dim segundos As Double = 7950 'Los Segundos a Probar
    
    'Prueba 1: Total Dias, Total de Horas, Total Minutos, Total Segundos
    Dim t As New TimeSpan
    
    Response.Write("Prueba 1: Dias: " + t.FromSeconds(segundos).TotalDays.ToString() +
     " Tiempo: " + t.FromSeconds(segundos).TotalHours.ToString() + ":" +
    t.FromSeconds(segundos).TotalMinutes.ToString() + ":" + t.FromSeconds(segundos).TotalSeconds.ToString())
    
    'Prueba 2: Dias, Hora, Minutos y Segundos
    Dim t2 As TimeSpan = TimeSpan.FromSeconds(segundos)
    Response.Write("<br> Prueba 2: Dias: " + t2.Days.ToString() + " Tiempo: " +
    t2.Hours.ToString() + ":" + t2.Minutes.ToString() + ":" +
    t2.Seconds.ToString())

    En C#:

    double segundos=7950 ; //Los Segundos a probar
    TimeSpan t =new TimeSpan;
    //Prueba 1: Total Dias, Total de Horas, Total Minutos, Total Segundos
    Response.Write("Prueba 1: Dias: " + t.FromSeconds
    (segundos).TotalDays.ToString() + " Tiempo: " + t.FromSeconds
    (segundos).TotalHours.ToString() + ":" + t.FromSeconds
    (segundos).TotalMinutes.ToString() + ":" + t.FromSeconds
    (segundos).TotalSeconds.ToString());
    
    TimeSpan t2= TimeSpan.FromSeconds(segundos);
    //Prueba 2: Dias, Hora, Minutos y Segundos
    Response.Write("<br> Prueba 2: Dias: " + t2.Days.ToString() + " Tiempo: " +
    t2.Hours.ToString() + ":" + t2.Minutes.ToString() + ":" +
    t2.Seconds.ToString());

     

    Compartir este Blog :

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Crear una aplicación Web desde Cero (VB y CSharp)- Part II – Páginas Maestras


    Continuando al fin el tutorial que comenzó hace ya tiempo Crear una aplicación Web desde Cero (VB y CSharp)- Part I

    Aquí les dejo la sucesión dedicado  a la creación de Páginas Maestras

    En muchas ocasiones hemos optado por tener un diseño único en las páginas y cuando teníamos que editar una imagen un color o algo de ese diseño nos tocaba las de Caín J revisar todas las páginas y hacerles el cambio a todas. La idea fundamental de las MasterPages en ASP.net es precisamente tener una página principal con el diseño y con las secciones habilitadas (ContentPlaceHolder) para editarlas en las páginas que se generen a partir de la MasterPages.

    Ventajas de tener una página maestra:

    1. Ahorrarnos el copiar y pegar de página en página, es decir, si ya teníamos un modelo de cómo se verán nuestras páginas nosotros optábamos en copiar todo su html y lo pegábamos en las nuevas páginas para mantener el diseño. Permitiendo centralizar diseño de las páginas para que las modificaciones puedan llevarse a cabo en un solo lugar.

    2. Permiten crear un diseño coherente para las páginas de la aplicación

    3. Aparte del aspecto y el diseño también podemos controlar el comportamiento estándar que desea que tengan todas las páginas (o un grupo de páginas) de la aplicación en una sola MasterPage.

    4. Mas fácil la edición del HTML en las paginas hijas, ya que las nuevas adiciones en las paginas están contenidas dentro de un ContePlaceHolder.

    Ok comencemos a nuestro proyecto que hemos creado en el Post anterior le daremos con el botón derecho del mouse o se van al Menú “Sitio Web” y seleccionamos la opción “Agregar Nuevo Elemento” y buscaremos una plantilla llamada “MasterPages” le asignan el nombre que ustedes deseen, yo le diré “MasterPrincipal”. Veamos como se muestra en la siguiente Imagen.

    Antes de agregar el diseño es conveniente borrar el ContentPlaceHolder que se encuentra dentro del Tag Body del HTML que aparece al crear la MasterPage

    <body>

    <form id=”form1″ runat=”server”>

    <div>

    <asp:ContentPlaceHolder id=”ContentPlaceHolder1″ runat=”server”>

    </asp:ContentPlaceHolder>

    </div>

    </form>

    </body>

    Mientras que el ContentPlaceHolder que aparece en el Head lo dejaremos allí para futuras asignaciones J, ahora si procedemos a darle un diseño sencillo por lo que utilizaremos “3 Div” diferentes uno lo llamaremos dvCabezal, el otro dvMenu, y por ultimo dvContenido dentro de este ultimo Div agregaremos un ContentPlaceHolder que llamaremos cphContenido.

    Esto debe quedar como la siguiente Imagen:

    image

    Con todo esto podemos seguir con el resto del tutorial, ahora para ver (probar) nuestra MasterPage borramos del proyecto la página Default.aspx y luego nos dirigimos al Menú “Sitio Web” y seleccionamos la opción “Agregar Nuevo Elemento” y buscaremos una plantilla llamada “Web Forms” le asignan el siguiente nombre “Default” y marcan la casilla de verificación llamada “Seleccionar la Pagina Principal” (Fig. Nuevo Elemento) le damos aceptar y luego seleccionamos Nuestra MasterPage” (Fig. Seleccionar MasterPage).

    image

    Fig. Nuevo Elemento

    image

    Fig. Seleccionar MasterPage

    Ahora veremos la página de la siguiente manera:

    image

    Ahora puedes arrojar los controles que desees en la sección cphContenido y probar presionando la tecla F5, ya sé que se ve blanco y feo nuestro sitio pero en los próximos capítulos te diré como solventar ese detalle.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    [Off-Topic] 10 Malos Hábitos en el Trabajo


    Me agrado este post que me encontré en la pagina http://spargouc.org/ y deseo compartirlo con todos ustedes.

    Fuente: http://spargouc.org/general/recomendaciones/diez-malos-habitos-en-el-trabajo/

    A continuación, desgranamos algunas de las actitudes que pueden ponerte en el punto de mira de las empresas. Son 10 errores que debes evitar cometer:

    1. Dilación con el trabajo: No dejes para mañana lo que puedas hacer hoy. Esta frase resume una actitud positiva frente a cualquier trabajo. Resalta un alto grado de profesionalidad en el trabajador y esto es muy positivo. En cambio, si vamos dejando el tiempo pasar, las tareas se nos acumulan encima de la mesa y tenemos que terminarlo todo, deprisa y corriendo, siendo en ocasiones el resultado no el esperado.
    2. Poca rigurosidad con el e-mail: Si miramos la cuenta de correo electrónico, miramos la cuenta de correo electrónico. No podemos pasar el día navegando por Internet porque se nos va a acumular el trabajo, como decíamos en el punto anterior. Sólo cada cierto rato, y durante un breve espacio de tiempo, podemos desconectar.
    3. No confundas lo informal con lo irrespetuoso: En una empresa como en cualquier otro sitio, debemos saber dónde está la línea que marca la diferencia entra la informalidad y el ser irrespetuoso, y asegurarnos de no cruzarla nunca. Faltar al respeto es una falta grave.
    4. No te aproveches de la libertad de acción: Te dan la mano, y tu les coges el brazo. Actuar así puede costarte muy caro, porque mientras ellos demuestran que confían en ti, tu les das todas las muestras de que no pueden hacerlo.
    5. Falta de adaptación: Demuestra siempre que estás a gusto con tu equipo y que te sientes parte de él. Hacer la guerra en solitario no es una buena idea en ninguna compañía.
    6. Llegar siempre tarde: Hoy en día, no pasa nada si llegas cinco minutos tarde, o incluso diez. Las empresas saben que luego estiras tu jornada y acabas trabajando incluso más. Pero no lo conviertas en un hábito, porque primero son cinco minutos, luego diez y luego veinte, treinta, etc. Esto puede poner en duda tu profesionalidad.
    7. Rigidez: Debes demostrar que eres una persona abierta, tanto social como mentalmente. La rigidez o los pensamientos únicos no funcionan en las empresas de hoy, en las que prevalece el trabajo en equipo.
    8. Llevar siempre la contraria: Tu opinión importa y las críticas constructivas siempre son bienvenidas. Pero resulta lógico que si estás en desacuerdo con todas las decisiones que se toman, ocurre algo más. Quizá esta no es tu empresa.
    9. Hablar mal de la compañía: Mucho cuidado con lo que dices y a quién se lo dices. Puedes discutir algunas acciones de la empresa porque no te parecen las más adecuadas, pero si no te gusta tu lugar de trabajo, no pierdas el tiempo criticando.
    10. Hablar mal de un compañero: Tampoco está bien criticar a otro compañero constantemente. Si no nos gusta su trabajo, deberíamos hablarlo con él directamente, sin tapujos.

    Cualquiera de estas acciones puede llevar a las empresas a marcarnos como trabajadores poco corporativos, por mucho que nuestro trabajo sea excelente. Y sino, fijémonos en el mundo del fútbol: hay tremendos jugadores que mueren por la boca. Da igual los goles que marquen. En la empresa, sucede lo mismo. Nadie es imprescindible.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    [OFF-Topic] Mandamientos de un Programador


    Esto lo conseguí hace tiempo y lo había guardado en un doc. de Word lo que no tengo a la mano es quien fue el creador de estos mandamientos por lo que pido disculpas si infrinjo en alguna ley de derecho de autor..

    1. Entiende y acepta que tendrás errores. La cuestión es hallarlos temprano, antes que estos aparezcan cuando el producto ya esta ‘en vivo’. Afortunadamente, excepto para aquellos que están desarrollando sistemas de control de ojivas nucleares, los nuestros; no son errores fatales. No somos cirujanos; podemos aprender, reírnos y continuar con otra cosa.

    2. No eres tu código. Recuerda, la cuestión es revisar para encontrar problemas, y claro que los hallarán. No lo tomes personal cuando alguien más los encuentre.

    3. No importa cuanto sepas Karate, siempre habrá alguien que sepa más. Este hecho ayudo a los Samurai en el Japón imperial a no atacar a todos indiscriminadamente. Avanzado a tiempos actuales, estas personas con más conocimientos te pueden enseñar nuevas ‘patadas’.

    Busca y acepta la retroalimentación de otros, aun cuando pienses que no es necesario.

    4. No rescribas el código de otros programadores.

    Existe una línea muy estrecha entre ‘arreglar el código de otra persona’ a ‘reescribir el código de otras personas’. Los programadores recién salidos de las escuelas son muy

    propensos a esto.

    5. Trata a las personas que entienden menos que tu con respeto y paciencia. Las personas que no están inmiscuidas en cuestiones técnicas y que tratan con programadores diariamente, por lo regular piensan que somos ‘prima donnas’ cuando hacemos el trabajo bien e incompetentes cuando cometemos errores. Enojarte acrecienta esta percepción y limita a tus clientes para comunicarse contigo.

    6. La única constante en el mundo es el cambio. Mantente abierto y acéptalo con una sonrisa. Mira cualquier cambio de los requerimientos del cliente, plataforma ó herramientas como un nuevo reto y nunca como un inconveniente que tienes para empezar una discusión sin futuro.

    7. El mando lo obtienes usando tus conocimientos, no tu posición. La autoridad la ganas con conocimientos y la autoridad genera respeto. Así que si quieres cultivar un ambiente de desarrollo sin egoísmos, primero cultiva respeto.

    8. Pelea por lo que creas pero también acepta las derrotas amablemente. Entiende que algunas veces tus ideas serán no escuchadas.

    9. No seas el -nerd del cuarto obscuro-. Deja de ser el programador que solo sale de ese cuarto para comprar una coca-cola. Estando ahí dentro estarás fuera del contacto con la gente, fuera de vista y por supuesto fuera de los incrementos salariales.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Liberado SilverLight 3 y Expression Studio 3


    Si ya se que es algo tardío esta información pero igual no esta demás decirles las cosas nuevas que trae este lanzamiento y que mejor forma que darles el link de la traducción a español de lo que Scott Guthrië ha escrito con respecto a SilverLight 3

    Gracias José María Laos por la excelente traducción.

    http://thinkingindotnet.wordpress.com/2009/07/11/ya-esta-aqui-silverlight-3/

    Por cierto ya esta disponible para los suscriptores de MSDN Premium Expression Studio 3 que contiene las siguientes mejoras:

    Expression Blend 3 es una nueva versión que nos permite trabajar mucho más fácilmente. Algunas de las mejoras son:

    • Sketchflow: Sketchflow permite crear prototipos, experimentar con experiencias dinámicas, e incorporar feedback de los clientes mucho más fácilmente. Si no habéis visto o provado – deberíais. Es prácticamente un juego cambiar la forma de crear aplicaciones.
    • Intellisense:  Blend 3 incluye soporte de intellisense para C#, VB y XAML. Podéis escribir código y manejadores de eventos en Blend sin tener que cambiar a VS.
    • Behaviors: Blend 3 soporta comportamiento que puede encapsular interacciones complejas de diseño en componentes reusables que pueden aplicarse directamente a un control en la superficie de diseño. Esto permite que los diseñadores añadan rápidamente funcionalidaes y comportamientos a aplicaciones sin tener que escribir código.
    • Importación de Adobe Photoshop e Illustrator: Blend 3 incluye la importación de archivos de Photoshop e  Illustrator. Como parte del proceso de importación podéis ver y seleccionar capas individuales de Photoshop, personalizarlas y reagruparlas, y tener elementos de Photoshop/Illustrator que mantienen los formatos originales en XAML: incluyendo posicioens de capas, texto editable y opciones de fuentes, y elementos de conversión de vectores a XAML.
    • Datos de ejemplo: Blend 3 soporta datos de ejemplo en tiempo de diseño que hace más sencillo probar aplicaciones con datos conectados y ver cómo se ve sin tener que acceder a datos. Podéis generar datos de ejemplo o importarlos de un archivo XML y ponerlos a disposición de los controles en tiempo de diseño. Podéis perosnlaizar los detalles de vuestros datos, y podéis cambiar fácilmente entre los datos de ejemplo y los reales en ejecución.
    • TFS: Blend 3 incluye soporte para Team Foundation Server (TFS) – permitiendonos usar el control de código. Blend comparte el mismo formato de proyecto y de solución que Visual Studio – permitiendo que tanto Blend como VS trabajen en simultáneamente en los mismos proyectos.
    • Otras mejoras:  Se han incluido más mejoras como soporte para animaciones, transformaciones 3D, efectos visuales y se ha mejorado el diseñador del Visual State.
    • Expression Encoder 3 también incluye una aplicación de captura de pantalla para crear tutoriales y documentación.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Truco: Distinct en LINQ


    Este truco es mas que todo para aclarar la duda que surgió en al finalizar el WebCast que por cuestiones de tiempo no logre responderle, además que no esta mal saber como usarlo.

    Con esta Clausula podemos restringir la visualización de los datos repetidos en una consulta.

    El Siguiente Truco esta orientado a LINQ to SQL (C# – ASP.net)

    //establezco mi DataContex
    dcNorthwindDataContext db = newdcNorthwindDataContext();
    //Defino mi consulta
    var Consulta = (from t indb.Territories
                   select t).Distinct();
    //Muestro el resultado en un GridView
    gvLINQtoSQL1.DataSource = Consulta.ToList();
    gvLINQtoSQL1.DataBind();

    El Siguiente Truco esta orientado a LINQ to Objects (C# – ASP.net)

    Clase:

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace DemoLINQCSharp
    {
        public class clsSpeaker
        {
            private string m_sNombre;
            private string m_sApellido;
            private string m_sTema;
            private int m_iDuracionMinutos;
    
            public string Nombre
            {
                get
                {
                    return m_sNombre;
                }
                set
                {
                    m_sNombre = value;
                }
            }
    
            public string Apellido
            {
                get
                {
                    return m_sApellido;
                }
                set
                {
                    m_sApellido = value;
                }
            }
    
            public string Tema
            {
                get
                {
                    return m_sTema;
                }
                set
                {
                    m_sTema = value;
                }
            }
    
            public int DuracionMinutos
            {
                get
                {
                    return m_iDuracionMinutos;
                }
                set
                {
                    m_iDuracionMinutos = value;
                }
            }
        }
    }

     

    En el Formulario Web:

    Defino el metodo que llena los datos a partir de la clase mencionada anteriormente.

    public List<clsSpeaker> speaker()
          {
              List<clsSpeaker> listaSpeaker = new List<clsSpeaker> 
              { 
                  new clsSpeaker{Nombre="Alexander", Apellido="Jimenez", DuracionMinutos=60, Tema="LINQ con C#"},
                  new clsSpeaker{Nombre="Manuel", Apellido="Mendez", DuracionMinutos=45, Tema="SilverLight"},
                  new clsSpeaker{Nombre="Oscar", Apellido="Berroteran", DuracionMinutos=60, Tema="LINQ con VB"},
                  new clsSpeaker{Nombre="David", Apellido="Delgado", DuracionMinutos=90, Tema="Comunidades"},
                  new clsSpeaker{Nombre="Rafael", Apellido="Linares", DuracionMinutos=45, Tema="SQL Server 2008"},
                  new clsSpeaker{Nombre="Sara", Apellido="Linares", DuracionMinutos=60, Tema="Comunidades"}
              };
              return listaSpeaker;
          }

     

    Lleno en GridView de mi pagina web a traves de la invocacion de un LinkButton:

     

    protected void lnkLINQtoObjects1_Click(object sender, EventArgs e)
    {
        var Consulta = (from s in speaker()
                       select s).Distinct();
        gvLINQtoObjects1.DataSource = Consulta.ToList();
        gvLINQtoObjects1.DataBind();
    }

    Espero que le sea de ayuda.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    WebCast: LINQ con C#


    Hola a todos,

    Quiero agradecer a todos los que estuvieron presente en el WebCast del día Martes 14-07 para mi fue de gran satisfacción poder colaborar en el crecimiento de sus conocimientos.

    Aquí les dejo el link para descargar la presentación y el WebCast Grabado.

    https://cid-8a2363b4af316ee6.skydrive.live.com/embedrow.aspx/Mis%20WebCast/LINQ%20Con%20CSharp

    Espero que le sea de gran ayuda.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Comandos de MSDOS (Comentario de Peter G)


    Hola a Todos

    A continuacion publicare un comentario realizado por PETER G (Muchas Gracias por tu Aporte) Sobre Comandos de MSDOS

    https://alexjimenez.wordpress.com/2008/02/02/comandos-de-ms-dos-parte-2/#comment-4072

    BUENO HOLA A TODOS …
    AQUI PUEDEN VER ALGUNOS COMANDOS DE MSDOS ESPERO QUE LES SEA UTIL …

    MSDOS

    Intérprete de comandos

    – Hacer un disquete de inicio de MSDOS.
    – Clave para entrar en MSDOS. Sigue leyendo

    (WebCast) ASP.Net AJAX Control ToolKit – Mi Primer WebCast


    Hola a todos..

    Quiero compartir con ustedes mi primer WebCast, debo confesar que estaba algo nervioso ya que no es nada parecido a un screencast.. como amo tener al publico de frente :)

    Esta será una nueva faceta, así que mejorare para los próximos webcast.. espero que les agrade y le sea de mucha ayuda para ustedes.

     Para Descargarlo directamente desde MS Events:

    http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=es-AR&EventID=1032415209&CountryCode=AR

     En Mi SkyDriver (PPT y WebCast):

    http://cid-8a2363b4af316ee6.skydrive.live.com/browse.aspx/Mis%20WebCast

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Cursos Gratuitos sobre VB, VC#, WPF, SharePoint, SmartClient y Servicios Web



    Curso Desarrollo Web

    En este curso se tratan todas las cuestiones fundamentales que le permitirán crear aplicaciones web con Visual Studio 2005. Al final del curso sabrá todo lo necesario para crear sus propias aplicaciones Web orientadas a datos y con multitud de características avanzadas

    Sigue leyendo

    [Crystal Reports] No se ven las Imágenes del ToolBar


    Quiero compartir con ustedes algo que me había sucedido al momento de usar Crystal Reports donde al momento de subir a producción la aplicación nos dimos cuenta que visor no mostraba las imágenes de los botones del toolbar por lo que opte por la primera solución, pero no muy convencido con lo que se hizo busque entre las librerías de Crystal Report y me encontré con la segunda solución la cual me parece lo mas estético y hasta cómodo para evitar futuros problemas. Aquí les dejo Ambas soluciones:

    Solución 1:

    Copiar la carpeta aspnet_client del IIS (C:\inetpub\wwwroot\aspnet_client) de mi maquina para colocarla en el IIS del Servidor o si no dentro de la aplicación, en ambas circunstancia nos funciono.

    Solución 2:

    La otra solución es copiar las imágenes del Crystal Reports (C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4\images\toolbar) y colocarla en una carpeta en mi aplicación y escribir una línea de código donde le paso el nombre de la carpeta donde se encuentra las imágenes.

       1: ReportViewer1.ToolbarImagesFoldeUrl="MisImagenesReportes/toolbar/"

    Solucion 2.1

    Esta solucion es partiendo de que copiamos las imagenes de Crystal Reports a nuestra aplicacion y que no queremos lanzar codigo pues podemos decirle al visor mediante el HTML donde buscar las imagenes.

       1: <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
       2: AutoDataBind="true" HasCrystalLogo="False" EnableDatabaseLogonPrompt="False"
       3: EnableParameterPrompt="False" GroupTreeImagesFolderUrl="/MisImagenesReportes/tree/"
       4: ToolbarImagesFolderUrl="/MisImagenesReportes/toolbar/" />

     Espero que este pequeño aporte les sea de mucha utilidad. Y si existen nuevas maneras de corregir este detalle pues bienvenido serán sus comentarios :)

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Crear una aplicación Web desde Cero (VB y CSharp)- Part I


    Antes de comenzar con la explicación correcta debemos tener bien claros los conceptos siguientes:

    • .Net Framework
    • ASP.net
    • Visual Basic
    • Visual C#
    • Base de Datos
    • SQL Server 2005 Express Editions
    • HTML
    • Programación Orientada a Objeto

    Que fastidio porque tengo que buscar esos conceptos y no los explico?? Pues la respuesta es muy simple, con esos conceptos podrás entender de mejor manera y más rápido lo que se intenta plasmar en este mini-tutorial, además si te lo explico dejaría todo al facilismo y no mostrarías el interés en aprender.

    Ahora a seleccionar el entorno donde desarrollaremos nuestro primer aplicativo web así pueden descargar desde la web de Microsoft el Visual Web Developer 2008 Express es totalmente gratuito y no pagaran por licencias J, si lo desean pueden usar Visual Studio 2005 o Visual Studio 2008 (también versiones anteriores pero no queremos ir atrás o sí?), Yo estaré usando el Visual Studio 2008 Team Suite que para efectos de este Tutorial no hay diferencias al crear un Proyecto Web.

    Cual será nuestro plan de Trabajo dentro de este tutorial y de futuros tutoriales que publicare a partir de este:

    1. Crearemos un Aplicación Web
    2. Crearemos una página maestra.
    3. Consultaremos datos de una base de datos de prueba (AdventureWorks)
    4. Insertar y Actualizar datos.
    5. Uso del SiteMap y Menús (Sera un articulo Aparte)
    6. Uso de Controles de Validación (Sera un articulo Aparte)
    7. Uso de la Membrecía (Sera un articulo Aparte)
    8. Temas y Skins (Sera un articulo Aparte)
    9. LINQ (Sera un articulo Aparte)
    10. AJAX (Sera un articulo Aparte)
    11. Reportes: Invocacion a un reporte de Reporting Services
    12. Reportes: Invocacion a un reporte de Crystal Reports

    Todos estos puntos se estará realizando con los siguientes lenguajes de programación Visual Basic y Visual C# para que el tutorial sea justo lo que necesita para empezar y no se vea limitado por el lenguaje a utilizar. Cabe destacar que el punto 9 que es LINQ es utilizando únicamente el .net Framework 3.5 los demás pueden usarse con .net Framework 2.0 y 3.5 sin problemas.

    Arrancaremos con el Punto 1: Crear una Aplicación Web

    Primero que nada debemos abrir nuestro Visual Web Developer y nos vamos al menú Archivo->Nuevo->Sitio Web luego les debe aparecer una pantalla de la siguiente manera:

    clip_image002

    En lo que crean el proyecto verán la página Default.aspx en el “Tags Código” es decir el visor de Visual Studio o de Visual Web Developer se lo mostrara en Código HTML

    Formas de Visualizar el formulario Web

    · Diseño: En esta Vista observaran el formulario en blanco, aquí arrojaran los controles a utilizar

    · Dividir: Podrán ver el código HTML y la Pagina natural al mismo tiempo

    · Código: Podrán ver solo el código HTML, esto no quiere decir que verán el código en el lenguaje que seleccionaron.

    Imagen del Tag:

    clip_image004

    Quizás estén algo confundidos con el Tag Código de la Pagina con el Código que iremos desarrollando en la pagina y no es para menos a muchos le ha pasado eso así que no te sientas mal, a medida que te familiarice con la herramienta te reirás de estos primeros momentos, solo te recuerdo ASP.net tiene la posibilidad de tener el código del lenguaje que seleccionaste en otro archivo o mejor dicho en la mayoría de los casos es así pero existen personas que para no deja su modo de trabajar en ASP deciden incrustar el código sea VB o C# dentro del Código en HTML.

    Ubicarnos dentro del Entorno de Trabajo

    Ok antes de seguir debemos saber dónde estamos ubicados, fíjense en la imagen siguiente:

    clip_image006

    Ese es nuestro marco de Trabajo allí tenemos a la vista lo siguientes elementos importantes:

    1. Web Forms: Esta demás decir que es el lugar donde arrojaremos nuestros controles y empezar a jugar con el código.

    2. Explorador de Soluciones: lugar donde estarán nuestros Proyectos, en el caso que no lo lleguemos a ver podremos darle a la combinación de teclas: Ctrl.+Alt+L

    a. Nuestro Proyecto: Allí estarán todos los archivos a utilizar en nuestra aplicación, es decir, el diseño de los formularios, los archivos de código, las referencias que se hagan a cierto Espacios de Nombres, etc., etc.

    3. Barra de Herramientas: Lugar donde veremos todos los controles a utilizar, ya sean los propios de Visual Studio o los que encontremos en la Web. Combinación de teclas: Ctrl.+Alt+X

    4. La ventana de Propiedades: Allí definiremos las características que tendrá los controles y el formulario. Combinación de teclas: F4

    5. Explorador de Servidores: Allí veremos y podremos colocar los Servidores de Base de Datos con lo que estaremos trabajando. Combinación de teclas: Ctrl.+Alt+S

    6. Lista de Errores: Aquí podrás observar los errores, advertencias o información que ocurra mientras realizas las compilaciones del tu aplicación web. Combinación de teclas: Ctrl.+W

    Teniendo claro nuestro entorno de trabajo, arrojaremos tres simples controles que serán:

    Control Nombre Texto
    Label lblmensaje  
    TextBox txtmensaje  
    Button btnmensaje Mostrar Mensaje

    Para cambiar el Identificador del control basta con seleccionar el Control e ir a las propiedades y en la propiedad ID le colocaran el nombre arriba descrito. La idea es arrancar con un simple “Hola mundo” o lo que deseen mostrar J con la intención de validar que entendemos el entorno y que cada control que arrojemos al formulario web tengan un identificador único de esta manera al momento de referenciarlo desde el código no tengamos ningún inconveniente.

    Nuestro código html dentro del tag de Body quedara de esta manera:

       1: <body>
       2:     <form id="form1" runat="server">
       3:         <div>
       4:             <asp:Label ID="lblmensaje" runat="server" Text=""></asp:Label>
       5:             <asp:TextBox ID="txtmensaje" runat="server"></asp:TextBox>
       6:             <asp:Button ID="btnmensaje" runat="server" Text="Mostrar Mensaje"/>
       7:         </div>
       8:     </form>
       9: </body>
      10:  

    Notese que en la página los controles están desordenado asi que si queremos que se vea mas arreglado debemos utilizar hojas de estilos (css) o sencillamente insertar tablas y dentro de ellas agregar los controles.

    Ahora le damos doble click al botón y le agregaremos el siguiente código:

    Visual Basic:

       1: Protected Sub btnmensaje_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnmensaje.Click
       2:       lblmensaje.Text = txtmensaje.Text
       3: End Sub
       4:  

    Visual C#:

       1: protected void btnmensaje_Click(object sender, EventArgs e)
       2: {
       3:     lblmensaje.Text = txtmensaje.Text;
       4: }
       5:  

    Notese la diferencia entre los dos lenguajes en C# es muy similar a C++ por la utilizacion de los punto y comas y llaves. Recomendación al momento de asignar el identificador de los controles traten de tener un estandar y una nomenclatura para hacer mas facil su lectura y futuras modificaciones, es decir si lo escribes en minusculas mantenlo de esa manera y no tendras problemas en el codigo ya que en C# el entiende minusculas y mayusculas de manera diferente, ejemplo txtFoto no es igual txtfoto mientras que en visual basic si puede entender que son los mismos. En cuanto a la nomenclatura es si el control es un Label utilice lbl y si un textbox use txt antes del nombre que les quieran asignar… de esta manera se evitan dolores de cabezas de identificadores repetidos, de igual pasa en las declaraciones de variables J

    Ademas de las diferencias de lenguaje quiero resaltar que al momento de darle doble click con el mouse al boton nos hemos redireccionado a una hoja de codigo aparte y esas lineas de codigo escrita es lo que dispara el evento Click del Boton, es decir, que al momento de darle click al boton la pagina leera lo que esta en el TextBox (txtmensaje) y lo escribira en el Label (lblmensaje). Asi que probemos nuestra aplicación presionando F5.

    Al ser la primera ves que compilamos nuestra aplicación el Visual Studio o Visual Web Developer necesita escribir un Tag en nuestro archivo de configuracion llamado web.config por lo que nos mostrara el siguiente mensaje, el cual daremos al boton Aceptar

    clip_image008

    Quieres saber que es el Web.Config pues entra en la definición que da WikiPedia

    Con esto terminamos el Punto 1, por lo que estén atentos al resto de los puntos que estaré publicando por este medio.

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    Pre-beta de Windows 7 ocupa 40% menos espacio que Windows Vista


    [ 11/12/2008 – 08:10 CET ]
    El Build 6956 de Windows 7 parece ser mucho más ligero que Windows Vista. Hay varias razones.
    Diario Ti: En el mundo de los sistemas operativos parece ser normal que las nuevas versiones ocupen mucho más espacio en el disco duro que la versión anterior. Esto pudo ser comprobado por todos quienes actualizaron desde Windows XP a Windows Vista. Mientras que la instalación completa de Windows XP Professional ocupaba alrededor de 1,5 GB, el volumen aumentó al menos a 9,5 GB en Windows Vista Ultimate.

    Este hecho en sí descalifica a Windows Vista como un sistema operativo viable en las cada vez más populares mini-laptops, provistas a menudo de discos SSD con capacidad limitada
    Probablemente esta es una de varias razones de que Windows en estos momentos esté siendo sometido a procesos de re-ingeniería con el fin de adelgazarlo. Recientemente, en los foros dedicados al tema se comentaba que la versión beta pre-build 6802 se situaba muy por debajo de los 10 GB. Un nuevo build, 6956, filtrado por un desarrollador chino de la red de Microsoft a sitios de piratería, ocupaba sólo 6 GB, según las discusiones y los comentarios de los foros.
    Las razones del adelgazamiento de Windows son diversas. Una de ellas es que gran parte del código ha sido reescrito y reducido considerablemente con respecto a Windows Vista. Otra razón, más fácil de probar, es que varios programas y funciones estándar en Windows Vista, han sido eliminadas de Windows 7, como Windows Mail, Windows Movie Maker, Windows Calendar y Windows Photo Gallery.
    La totalidad de estos programas se convertirán en parte de la estrategia Windows Live, de Microsoft , y podrán ser descargados gratuitamente por los usuarios de Windows 7.

     

    Fuente: DiarioTI

    Herramientas para SQL Server 2000/2005


    Problema
    A menudo existe la necesidad de hacer algo con SQL Server que no es necesariamente enviados con el producto. Gracias a Microsoft hay un montón de otras herramientas gratuitas que pueden ser utilizados para mejorar su entorno SQL Server.

    Solución
    Microsoft tiene un montón de herramientas adicionales que puede tomar ventaja de la que interactúan o el apoyo de SQL Server. A continuación se muestra una lista de algunas herramientas que podrían venir en práctica y mejorar el conjunto de herramientas que ya tiene disponibles. Algunas de estas herramientas son específicas para SQL Server 2000 o SQL Server 2005, de modo que lea la documentación que está disponible con la descarga.

    A continuación le dejo una pequeña lista de herramientas que se pueden descargar de la pagina de Microsoft Downloads

    Read80Trace
    OSTRESS
    PSSDiag
    SQLIO
    SQLH2
    SQLH2 Performance Collector
    SQLH2 Reports
    SQL 2000 Sample Databases
    SQL 2000 JDBC Driver
    SQL Server 2000 Best Practices Analyzer
    SQL 2000 Critical Update:
    SQL 2000 Scan
    SQL 2000 Check
    SQL 2000 Management Pack
    SQL 2005 JDBC Driver
    SQL 2005 Express Edition Samples
    SQL 2005 Sample Databases
    SQL 2005 Upgrade Advisor
    SQL 2005 Mobile SDK
    SQL 2005 Everywhere
    SQL 2005 Express Utility
    SQL 2005 Report Packs

    Si gusta saber que son y/o que hacen cada unas de las herramientas mencionadas los invito a ver la siguiente pagina: http://www.mssqltips.com/tip.asp?tip=981&m

    Uso de Triggers en SQL Server (Comentario de Jeyson)


    Yo hace un tiempo había publicado un post referente a el uso de Triggers en SQL Server (https://alexjimenez.wordpress.com/2007/08/13/uso-de-triggers-en-sql-server) y uno de los visitantes al sitio dejo un pequeño ejemplo de como se puede usar los Triggers así que muchísimas gracias Jeyson (jmmb) por el aporte que dejaste en mi blog.

    Sigue leyendo

    de Alex Jiménez Publicado en Sin categoría

    Herramientas para SQL Server 2000/2005


    Problema
    A menudo existe la necesidad de hacer algo con SQL Server que no es necesariamente enviados con el producto. Gracias a Microsoft hay un montón de otras herramientas gratuitas que pueden ser utilizados para mejorar su entorno SQL Server.

    Solución
    Microsoft tiene un montón de herramientas adicionales que puede tomar ventaja de la que interactúan o el apoyo de SQL Server. A continuación se muestra una lista de algunas herramientas que podrían venir en práctica y mejorar el conjunto de herramientas que ya tiene disponibles. Algunas de estas herramientas son específicas para SQL Server 2000 o SQL Server 2005, de modo que lea la documentación que está disponible con la descarga.

    A continuación le dejo una pequeña lista de herramientas que se pueden descargar de la pagina de Microsoft Downloads

    Read80Trace
    OSTRESS
    PSSDiag
    SQLIO
    SQLH2
    SQLH2 Performance Collector
    SQLH2 Reports
    SQL 2000 Sample Databases
    SQL 2000 JDBC Driver
    SQL Server 2000 Best Practices Analyzer
    SQL 2000 Critical Update:
    SQL 2000 Scan
    SQL 2000 Check
    SQL 2000 Management Pack
    SQL 2005 JDBC Driver
    SQL 2005 Express Edition Samples
    SQL 2005 Sample Databases
    SQL 2005 Upgrade Advisor
    SQL 2005 Mobile SDK
    SQL 2005 Everywhere
    SQL 2005 Express Utility
    SQL 2005 Report Packs

    Si gusta saber que son y/o que hacen cada unas de las herramientas mencionadas los invito a ver la siguiente pagina: http://www.mssqltips.com/tip.asp?tip=981&m

    Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

    de Alex Jiménez Publicado en Sin categoría