Mostrando entradas con la etiqueta AJAX. Mostrar todas las entradas
Mostrando entradas con la etiqueta AJAX. Mostrar todas las entradas

sábado, 22 de septiembre de 2012

Como mostrar efecto Loading de Google en GridView en ASP.NET

Google Loading Gridview ASP.NET
Para lograr el efecto que ven en la imagen vamos a crear un sitio web en C#, y le agregaremos un Control ScriptManager, un Gridview y un DropDownList, ahora crearemos una nueva ficha en el Cuadro de Herramientas:
le ponemos de nombre AJAX y agregamos la dll AjaxControlToolkit, pueden bajarla de aqui pero descarguen la version binaria no el source code. Una vez descargado lo agregamos a nuestro proyecto desde la ficha que creamos, vamos a la opcion Elegir Elementos:
Ajax Control Toolkit
En la pestaña Componentes de .NET Framework agregamos Referencia:
damos click en el boton Examinar y agregamos nuestra dll que bajamos. Una vez descargada podemos utilizar un control UpdatePanelAnimationExtender que necesitaremos para este ejemplo.
UpdatePanelAnimationExtender brinda la facilidad de mostrar alguna animacion mientras el UpdatePanel demora en ejecutar la operacion que se le ha encomendado a realizar.
Por ejemplo si tuviese que mostrar informacion cuyo origen de datos requiere mayor tiempo de ejecucion, pues el UpdatePanelAnimationExtender es la opcion a usar.
El codigo de nuestra pagina sera este:
<body>
    <script type="text/javascript" language="javascript">
        function onUpdating() {
            // get the update progress div
            var updateProgressDiv = $get('updateProgressDiv');
            // get the gridview element
            var gridView = $get('<%= this.grd.ClientID %>');
            // make it visible
            updateProgressDiv.style.display = '';
            // get the bounds of both the gridview and the progress div
            var gridViewBounds = Sys.UI.DomElement.getBounds(gridView);
            var updateProgressDivBounds = Sys.UI.DomElement.getBounds(updateProgressDiv);
            var x;
            var y;
            // do the math to figure out where to position the element
            // center of gridview
            x = gridViewBounds.x + Math.round(gridViewBounds.width / 2) - Math.round(updateProgressDivBounds.width / 2);
            y = gridViewBounds.y + Math.round(gridViewBounds.height / 2) - Math.round(updateProgressDivBounds.height / 2);
            // set the progress element to this position
            Sys.UI.DomElement.setLocation(updateProgressDiv, x, y);
        }
        function onUpdated() {
            // get the update progress div
            var updateProgressDiv = $get('updateProgressDiv');
            // make it invisible
            updateProgressDiv.style.display = 'none';
        }
    </script>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        <asp:UpdatePanel ID="updatePanel" runat="server">
            <ContentTemplate>
                <asp:GridView ID="grd" runat="server" OnPageIndexChanging="grd_PageIndexChanging"
                    AllowPaging="true" PageSize="10">
                </asp:GridView>
            </ContentTemplate>
        </asp:UpdatePanel>
        <cc1:ComboBox runat="server">
        </cc1:ComboBox>
        <cc1:UpdatePanelAnimationExtender ID="upae" BehaviorID="animation" runat="server"
            TargetControlID="updatePanel">
            <Animations>
                <OnUpdating>
                    <Parallel duration="0">
    <%-- place the update progress div over the gridview control --%>
                <ScriptAction Script="onUpdating();" />
                </Parallel>
                </OnUpdating>
                <OnUpdated>
                    <Parallel duration="0">
            <%--find the update progress div and place it over the gridview control--%>
                    <ScriptAction Script="onUpdated();" />
                    </Parallel>
                </OnUpdated>
            </Animations>
        </cc1:UpdatePanelAnimationExtender>
        <div id="updateProgressDiv" style="background-color: #CF4342; display: none; position: absolute;">
            <span style="color: #fff; margin: 3px">Loading ... </span>
        </div>
    </div>
    </form>
</body>
El bloque script lo agregue dentro del body para evitar que me aparezca en la pagina este mensaje La colección de controles no puede modificarse porque el control contiene bloques de código (por ej. <% ... %>). .
Ahora en nuestra pagina agregamos el siguiente codigo de C#
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["ds"] != null)
            {
                grd.DataSource = Session["ds"] as DataTable;
                grd.DataBind();
            }
            else
            {
                grd.DataSource = CreateDataTable();
                grd.DataBind();
            }
        }
    }
    public DataTable CreateDataTable()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("Id", typeof(string)));
        dt.Columns.Add(new DataColumn("Name", typeof(string)));
        DataRow dr;
        for (int i = 0; i <= 100; i++)
        {

            dr = dt.NewRow();
            dr[0] = i.ToString();
            dr[1] = "Test" + i.ToString();
            dt.Rows.Add(dr);
        }
        Session["ds"] = dt;
        return dt;
    }

    protected void grd_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        //Remove this on Application server
        System.Threading.Thread.Sleep(3000);
        grd.PageIndex = e.NewPageIndex;
        grd.DataSource = Session["ds"] as DataTable;
        grd.DataBind();
    }
y listo a disfrutar =)

lunes, 10 de septiembre de 2012

Subir archivos estilo Gmail con JQuery y AJAX en ASP.NET 2008

He visto siempre esta duda en muchos foros de asp.net como subir muchos archivos con estilo AJAX y ProgressBar similar al servicio Gmail de Google.
Y la respuesta es el plugin Uploadify para JQuery el cual hace lo mismo en simples pasos. Aqui explicare como hacerlo.
Paso 1
Descargar los plugins Uploadify de JQuery y la libreria JQuery de los links de abajo.
Download JQuery
Download Uploadify
Una vez que hayan descargado necesitaran ubicar estos 4 archivos:
  1. jquery-1.3.2.min.js
  2. jquery.uploadify.js
  3. uploader.fla

  4. uploader.swf
ponganlos en una carpeta llamada scripts en la misma ruta de su aplicacion web asp.net.
Paso 2 Abran Visual Studio, creen un proyecto web y añadan los archivos que descargaron debajo de la etiqueta de su codigo html
<link rel="Stylesheet" type="text/css" href="CSS/uploadify.css" />
     <script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="scripts/jquery.uploadify.js"></script>
Agregamos un control tipo FileUpload al proyecto:
Agreguen el siguiente script al final del codigo html
<script type = "text/javascript">
$(window).load(
    function() {
    $("#<%=FileUpload1.ClientID %>").fileUpload({
        'uploader': 'scripts/uploader.swf',
        'cancelImg': 'images/cancel.png',
        'buttonText': 'Browse Files',
        'script': 'Upload.ashx',
        'folder': 'uploads',
        'fileDesc': 'Image Files',
        'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
        'multi': true,
        'auto': true
    });
   }
);
</script> 
Como puedes ver necesitamos especificar algunas configuraciones junto con el control FileUpload. La completa lista de configuraciones y sus descripciones estan disponibles aqui. Algo importante que tenemos que hacer es apuntar es 'script': 'Upload.ashx' el cual manejara el FileUpload y guardara los archivos subidos al disco duro. Abajo esta el codigo para el archivo Upload.ashx
<%@ WebHandler Language="C#" Class="Upload" %>

using System;
using System.Web;
using System.IO;

public class Upload : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Expires = -1;
        try
        {
            HttpPostedFile postedFile = context.Request.Files["Filedata"];
            
            string savepath = "";
            string tempPath = "";
            tempPath = System.Configuration.ConfigurationManager.AppSettings["FolderPath"]; 
            savepath = context.Server.MapPath(tempPath);
            string filename = postedFile.FileName;
            if (!Directory.Exists(savepath))
                Directory.CreateDirectory(savepath);

            postedFile.SaveAs(savepath + @"\" + filename);
            context.Response.Write(tempPath + "/" + filename);
            context.Response.StatusCode = 200;
        }
        catch (Exception ex)
        {
            context.Response.Write("Error: " + ex.Message);
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}
Como veran ese manejador simplemente acepta los archivos subidos y guarda el archivo en la carpeta llamada uploads la cual crearemos dentro de la ruta raiz de nuestro directorio web. El web.config modificaremos la parte del appsettings como esta abajo:
<appSettings>
    <add key ="FolderPath" value ="uploads"/>
</appSettings >
Y listo al presionar F5 les saldra asi:
Como ven en la figura estos archivos se suben automaticamente una vez que los seleccionamos si no queremos de esta forma cambiamos la configuracion auto a false. Pero en ese caso tendran que crear un trigger de subir archivos para interactuar con el usuario por medio de un boton. Primero cambiamos la opcion a false aqui:
<script type = "text/javascript">
$(window).load(
    function() {
    $("#<%=FileUpload1.ClientID %>").fileUpload({
        'uploader': 'scripts/uploader.swf',
        'cancelImg': 'images/cancel.png',
        'buttonText': 'Browse Files',
        'script': 'Upload.ashx',
        'folder': 'uploads',
        'fileDesc': 'Image Files',
        'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
        'multi': true,
        'auto': false
    });
   }
);
</script> 
luego agregamos este codigo debajo de la etiqueta form que desencadenara la subida de archivos:
<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()">Start Upload</a>  
Si el usuario no da click en el boton los archivos estarn en lista pendientes a ser subidos. Con este codigo se limpiara la lista una vez subidos los archivos:
 <a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadClearQueue()">Clear</a> 
aqui pueden descargar el codigo de la aplicacion espero les sea util =) MultipleFilesUpload.zip (57.08 kb)

domingo, 9 de septiembre de 2012

Subir multiples archivos en Asp.Net usando Control AjaxFileUpload, Drag & Drop y Progress Bar

Este ejemplo explica como utilizar el Control AjaxFileUpload con Drag Drop y Progress Bar en ASP.NET.
En mayo de este año AjaxControlToolkit incluye un nuevo control AjaxFileUpload el cual soporta multiples subidas de archivos, progressbar y la funcionalidad Drag and Drop.
Estas nuevas caracteristicas son soportadas por Google Chrome version 16+, Firefox 8+ , Safari 5+ and Internet explorer 10 + , IE9 o versiones anteriores no soportan estas caracteristicas.
Para empezar con esto, descargamos y agregamos el ultimo AjaxControlToolkit.dll en la carpeta Bin de nuestra aplicacion, luego agregamos el control ToolkitScriptManager y AjaxFileUpload a la pagina.
<style>
.modalBackground
{
 background-color: Gray;
 filter: alpha(opacity=50);
 opacity: 0.50;
}
.pnl{
 background: #333;
 padding: 10px;  
 border: 2px solid #ddd;
 float: left;
 font-size: 1.2em;
 color:White;
 position: fixed;
 top: 50%; left: 50%;
 z-index: 99999;
 box-shadow: 0px 0px 20px #999; /* CSS3 */
        -moz-box-shadow: 0px 0px 20px #999; /* Firefox */
        -webkit-box-shadow: 0px 0px 20px #999; /* Safari, Chrome */
 border-radius:3px 3px 3px 3px;
        -moz-border-radius: 3px; /* Firefox */
        -webkit-border-radius: 3px; /* Safari, Chrome */
}
.close { 
    DISPLAY: block;BACKGROUND: url(Images/close.png) no-repeat 0px 0px; 
    LEFT: -12px;WIDTH: 26px;TEXT-INDENT: -1000em;POSITION: absolute; 
    TOP: -12px;HEIGHT: 26px; 
}  
</style>
<script type = "text/javascript">
    function Success() {
        document.getElementById("lblMessage").innerHTML = "File Uploaded";
        
    }
 
    function Error() {
         document.getElementById("lblMessage").innerHTML = "Upload failed.";
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btnUpload" runat="server" 
            Text="Upload File" onclick="btnUpload_Click"/>
            
<asp:ModalPopupExtender runat="server" 
                        ID="modelPopupExtender1" 
                        TargetControlID="btnUpload"
                        PopupControlID="popUpPanel" 
                        OkControlID="btOK" 
                        BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>

 <asp:Panel ID="popUpPanel" runat="server" CssClass="pnl">
 <div style="font-weight: bold; border: Solid 3px Aqua; 
                                background-color: AliceBlue">
 
 <asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
                     OnUploadComplete="UploadComplete" 
                     OnClientUploadComplete="Success" 
                     ThrobberID="loader" Width="400px"/>
 <asp:Image ID="loader" runat="server" 
            ImageUrl ="~/loading.gif" 
            Style="display:None"/>
 </div><br /><br />
 <asp:Label ID="lblMessage" runat="server"/><br /><br />
 <asp:Button ID="btOK" runat="server" Text="OK" />
 <asp:LinkButton ID="LinkButton1" runat="server" CssClass="close" 
 OnClientClick="$find('modelPopupExtender1').hide(); return false;"/>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
    
    </div>
    <br /><br />
    
    </form>
</body>
La propiedad ThrobberID del control AjaxFileUpload es utilizado para mostrar la imagen de cargando en vez de progress bar si el navegador no lo soportara.
Algunos tipos de archivos pueden ser restringidos utilizando la propiedad AllowedFileTypes separados con comas de la siguiente forma "zip,doc,pdf".
El codigo de abajo es para el evento OnUploadComplete que guarda el archivo y lo enlazaremos al control AjaxFileUpload.
protected void UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        string filePath = "~/Images/" + e.FileName;
        AjaxFileUpload1.SaveAs(MapPath(filePath));
    }
el boton que nos aparece al cargar el proyecto es para abrir la ventana la cual subira los archivos a la carpeta Images por la ruta que le indicamos en filePath. Espero les haya servido el ejemplo. Pueden descargar el codigo aqui

JQuery UI Ajax Autocompletar TextBox con Base de Datos en ASP.NET usando WebService

Para lograr esto utilize la base de datos AdventureWorks y la tabla Person.Contact, bueno mas abajo veran esta conexion, lo primero que haremos sera crear un proyecto web en C# y agregan este codigo en la hoja de codigo de la parte html:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Página sin título</title>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> 
                <script type="text/javascript">
                    $(document).ready(function() {
                        SearchText();
                    });
                    function SearchText() {
                        $(".auto").autocomplete({
                            source: function(request, response) {
                                $.ajax({
                                    type: "POST",
                                    contentType: "application/json; charset=utf-8",
                                    url: "Default.aspx/GetAutoCompleteData",
                                    data: "{'FirstName':'" + document.getElementById('FirstName').value + "'}",
                                    dataType: "json",
                                    success: function(data) {
                                        response(data.d);
                                    },
                                    error: function(result) {
                                        alert("Error Occurred");
                                    }
                                });
                            }
                        });
                    }
                </script>
</head>
<body>
    <form id="form1" runat="server">
   <div class="demo">
<div class="ui-widget">
    <label for="tbAuto">Ingrese un nombre: </label>
   <input type="text" id="FirstName" class="auto" />
</div></div>
    </form>
</body>
</html>
Mas o menos se vera asi:
Como ven en el codigo de la cabecera de arriba agregue algunos scripts y archivos CSS esto para tener la opcion de mostrar el autocompletado con estilo css. Para conseguir estos archivos agreguen estas URLS a su aplicacion.
Otra cosa que necesitamos saber es la funcion script en la seccion header.
$(".auto").autocomplete({
                            source: function(request, response) {
                                $.ajax({
                                    type: "POST",
                                    contentType: "application/json; charset=utf-8",
                                    url: "Default.aspx/GetAutoCompleteData",
                                    data: "{'FirstName':'" + document.getElementById('FirstName').value + "'}",
                                    dataType: "json",
                                    success: function(data) {
                                        response(data.d);
                                    },
                                    error: function(result) {
                                        alert("Error Occurred");
                                    }
                                });
                            }
                        });
Esta declaracion de la funcion de formato JSON que estamos usando es para llamar a los metodos web usando JQuery $.ajax() cuando queramos llamar a Ajax con JQuery usaremos funciones JSON con el formato de arriba.
Los atributos ContentType y dataType son los mismos para todas las funciones solo url, data y success function variaran basadas en nuestra peticion.
url: Esta es la ruta para nuestros metodos Web
data: Pasaremos parametros utilizando este parametro sino pasamos ninguno entonces en data pondremos: "{}".
Hay un detalle JSON es sensible a mayusculas asi que sean cuidadosis antes de escribir el formato de data JSON.
Ahora abran la hoja de codigo y agreguen los siguientes namespaces:
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Web.Services;
Luego agregan el siguiente codigo en C#
[WebMethod]

    public static List GetAutoCompleteData(string FirstName)
    {
        List result = new List();
        using (SqlConnection con = new SqlConnection("Data Source=XSaint;Integrated Security=true;Initial Catalog=AdventureWorks"))
        {
            using (SqlCommand cmd = new SqlCommand("select distinct FirstName from Person.Contact where FirstName LIKE '%'+@FirstName+'%'", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@FirstName", FirstName);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    result.Add(dr["FirstName"].ToString());
                }
                return result;
            }
        }
    } 
Luego presionen F5 y el resultado sera asi:

viernes, 23 de diciembre de 2011

Libros AJAX, JavaScript, CSS, XHTML en Linea


La web llamada librosweb.es, nos da la oportunidad de aprender 4 lenguajes con los cuales podemos DOMINAR EL MUNDO WEB... y adentrarse mas en el diseño web porque con CSS se puede hacer muuuuchas cosas ... yo solo les puedo decir que son la base de toda Web 2.0... y si aprendemos a manejarlos dominaran el mercado web... asi que el que no aprende es porque no quiere... disfruten estos libros

sábado, 12 de noviembre de 2011

Generalidades y modelos de negocio en la WEB 2.0

Web 1.0
En 1989 Tim Berners-Lee (CERN)
  • Concibe la www
  • Cambia la internet de 1970
  • Se populariza el uso de http ftp mail
  • Concentrado en publicación
  • Usuarios pasivos
  • En 2001 Tim Berners-Lee emplea el término Web Semántico.
Conceptos
“El conocimiento sólo es pertinente cuando se es capaz de contextualizar su información, de globalizarla y situarla en un conjunto”
Edgar Morin
Filósofo y político francés
de origen judeo-español
“Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguimos teniendo una manzana. Pero si tu tienes una idea y yo tengo una idea e intercambiamos ideas, entonces ambos tenemos dos ideas”
George Bernard Shaw
Escritor irlandés, ganador del premio Nobel
de literatura en 1925 y del Óscar en 1938
De acuerdo ... pero ¿qué es Web 2.0?
Web 2.0 se refiere a la transición percibida en Internet desde las webs tradicionales a aplicaciones web destinadas a usuarios.
“La Web 2.0 es la representación de la evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final. La Web 2.0 es una actitud y no precisamente una tecnología”
Christian Van Der Henst S.
www.microsiervos.com
  • Es un termino de marketing acuñado por Dale Dougherty de O'Reilly Media en una lluvia de ideas con Craig Cline de MediaLive para desarrollar ideas para una conferencia (2004)
  • Aparece para atraer inversiones a internet después de la crisis “.com” en otoño del 2001
  • Crea un proceso de reflexión: Encontrar patrones de éxito de empresas y servicios de Internet que han sobrevivido con enorme éxito a la burbuja de Internet : Google, Amazon, eBay, Wikipedia, Blogosfera, SecondLife, Youtube, etc...
La revolución TIC

Esquema evolutivo
WEB 1.0
  • Contenido, HTML, Sitios, navegadores (navegador), lectores de pantalla. NAVEGACIÓN.
WEB 2.0
  • Contenido feeds, APIs, RSS, blogs, agregación, remezcla, clientes ligeros, COMUNICACIÓN.
¿Revolución tecnológica?
blogs AJAX service oriented architecture CMS RSS/Atom Web Services
In a simplistic term, SOA is the practice of segregating the core business functions into independent services that don’t change frequently. Going further it also extends this segregation to many things that can logically and functionally be separated, regardless of whether they’re changeable or not.

Componentes WEB 2.0
  • AJAX: Asynchronous JavaScript XML
  • Feeds: Semillas (alimentadores de noticias)
  • RSS: Sindicación “simple” de noticias
  • Tags: marcas para categorizar contenidos
  • Web Services: intercomunicación
  • APIS: facilidades para intercomunicación
  • Blogs
  • Wikis
Fenómeno Blog
UN BLOG es una página web en la que la información entradas/posts y comentarios) se ordena cronológicamente, de más reciente a más antigua.
  • Realizado, en general, con herramientas sencillas transparentes para el usuario (no requiere conocimientos de publicación HTML). Sencillez.
  • Contenidos “paralelos” al discurso oficial de las webs. Democratización de contenidos.
  • Integran RSS y permiten búsquedas internas. Etiquetación humana. Integración con otras herramientas (del.icio.us, por ejemplo). Sindicación.
  • Monitorizados a través de buscadores especializados (Technorati, Google BlogSearch). Orden.
Ventajas
  • Son personas quienes hablan. Es quizá la herramienta tecnológica más personal: transparenta seres humanos.
  • En general, no hay segundas intenciones de mercado. No están mediatizados por los objetivos de marketing/marca/mercado.
  • Son simples. En un mundo tan complicado, la simplicidad es un valor que atrae.
  • Simplifica y asegura la reputación. Parecería que es difícil generar reputación falsa cuando hay un público potencial tan grande.
  • Van rápido, con los tiempos actuales. El criterio temporal se sobrevalora: las cosas valen en tanto que son cercanas al momento actual.
  • Suscripción. Concepto simple, eficaz y comprensible por todo el mundo: quédate con lo que te interesa… y sólo con ello.
Inconvenientes
  • Cantidad. Googlelización: ¿hay demasiadas respuestas?
  • Calidad. No hay fuente de discriminación que no sea la propia de cada uno.
  • Agresividad de mercado. Empiezan a ser piezas codiciadas del marketing y fuente de captación de clientes.
  • Muy difícil integración en el tiempo de trabajo. Si blogueas, o eres un vago y no tienes nada que hacer o, peor aún, te crees un dios.
  • Máximo exponente del riesgo amateur de la web 2.0. Adiós a los expertos, viva la multitud.
Contenidos
PARTE II – Modelos de negocio
  1. Creación de empresas WEB 2.0
  2. Plataforma de modelo de negocios. Definiciones y reflexiones
  3. Modelos de plataforma (configuraciones)
  4. Modelos de ingresos
    1. Suscripciones
    2. Publicidad
    3. Comisiones por transacción (intermediarios)
Cambios de entorno
Importantes cambios en factores que influyen en el costo de creación de una empresa Web 2.0.

  • HARDWARE: El precio de todos los componentes de hardware ha disminuido de una forma muy rápida. La eficiencia del mercado de harware usado ha ayudado a incrementar la adquisición de equipamiento (eBay, MercadoLibre, etc.)
  • SOFTWARE: Una serie de tecnologías de código abierto, tales como Linux, Apache, MySQL y PHP (conocida como LAMP), han reducido los costos de dasarrollo de aplicaciones Web fácilmente escalables.
  • INFRAESTRUCTURA: Gran aumento de la capacidad de almacenamiento de los datacenters. Crecimiento en utilización de internet y banda ancha. (Un amplio número de proveedores ofrecen planes de hosting de bajo costo con servicios de respaldo de datos y una capacidad de ancho de banda casi ilimitada).
  • ACCESO A TALENTO PROFESIONAL:El fácil acceso a un mercado de profesionales con alto talento y experiencia ha disminuido los costos para contar con arquitectos de software, diseñadores y programadores.
  • MARKETING: Estrategias de marketing basadas en internet. La presencia en internet no es un factor puramente económico, sino más bien de la eficiencia con la que se aprovechan las nuevas plataformas de comunicación (blogs, posicionamiento, etc.)
Viento a favor
Muchas startups deciden no buscar financiación con inversionistas privados o empresas capitalistas de riesgos para el desarrollo inicial de aplicaciones Web.
  • Son creadas por desarrolladores de software quienes pueden realizar ellos mismos la mayoría del trabajo de desarrollo
  • Los fundadores de estas startups, generalmente enfocan sus esfuerzos en desarrollar la solución en sí misma, en vez de redactar un plan de negocios
  • Los fundadores trabajan en estos nuevos emprendimientos utilizando su tiempo libre, sin dejar sus trabajos principales. Esto permite que los tiempos de desarrollo del producto sean de carácter indefinido
Plataforma. Definiciones.
concepto de Web 2.0 como plataforma

¿Qué es una plataforma 2.0?
“Base común de tecnología sobre la cual se basa un
conjunto de sistemas de la información”
(Raynet Bussiness Marketing Glossary)

Un entorno digital compuesto por un conjunto de tecnologías que sirven de base para el desarrollo de otras, en donde los usuarios (individuos, comunidades, etc.) pueden crear mayor valor para sí mismos mediante la interacción entre estos y/o con datos.
8 Modelos de plataforma
La forma en que esta Web como plataforma interactúa con usuarios, comunidades y datos permite presentar 8 tipos o modelos de plataforma, que dan la base necesaria para el desarrollo de modelos de negocios.
(MODELO DE OSTENWALDER)
Tipo de plataformaEnfoque
¿para quién se diseña?
Valor ¿quién recibe
los beneficios?
Aplicaciones interconectadasUsuariosUsuarios
Expertos interconectadosDatosPlataforma
Plataformas de colaboraciónDatosPlataforma
Redes de movilizaciónUsuariosUsuarios
Redes de informantesUsuariosPlataforma/Usuarios
Redes de inteligencia
colectiva
DatosPlataforma
Plataformas para redes
de interacciones sociales
RedesUsuarios
Plataformas de intercambioDatosUsuarios

1.- Aplicaciones interconectadas
Foco principalRedes- USUARIOS -Datos
Quién recibe los beneficiosPlataforma - USUARIOS
Rol de la plataformaProveer herramientas a los usuarios. Crear
un contexto para el aprendizaje social, redes
sociales y comunidades


del.icio.us (USUARIO-USUARIO)
del.icio.us
  • del.icio.us es un servicio de gestión de marcadores sociales en web. Permite agregar los marcadores que clásicamente se guardaban en los navegadores y categorizarlos con un sistema de etiquetado denominado folcsonomías (tags).
  • Uno de los secretos de su éxito sea quizás la sencillez de su interfaz, usando HTML muy sencillo y un sistema de URLs legible. Además posee un flexible servicio de sindicación web mediante RSS y una API bastante potente que permite hacer rápidamente aplicaciones que trabajen con del.icio.us.
  • El servicio se encuentra funcionando desde el año 2003, mantenido principalmente por Joshua Schachter, pero ayudado por Memepool. El 9 de diciembre de 2005 fue adquirido por Yahoo!.

2.- Redes de especialistas interconectados
Foco principal
Redes - Usuarios - DATOS
Quién recibe los beneficios PLATAFORMA - Usuarios
Rol de la plataforma Crear un ecosistema de inteligencia
distribuida y cosechar
esta inteligencia

Innocentive.com (DATOS-PLATAFORMA)
innocentive datos usuario
  • Intermediario entre demandantes de soluciones científicas y científicos e investigadores
  • Reúne en un solo lugar a la comunidad científica
  • Genera datos de gran calidad
3.- Plataformas de colaboración
Foco principal
Redes - Usuarios - DATOS
Quién recibe los beneficios PLATAFORMA - Usuarios
Rol de la plataforma Crear una arquitectura y
contexto en el cual los usuarios
pueden cooperar y co-crear contenidos

  • A nivel académico y empresarial presenta una de las plataformas más visibles para la creación de comunidades en torno a datos
  • Capacidad de guardar historial de cambios
  • Los usuarios masifican la plataforma a través de la publicación no jerarquizada (Wikipedia) y la colaboración ilimitada de participantes (Google docs)
4.- Redes de movilización
Foco principal
Redes - USUARIOS - datos
Quién recibe los beneficios PLATAFORMA - Usuarios
Rol de la plataforma Proveer las herramientas para
que personas se organicen
y tomen acciones colectivas

Blogs
  • Usuarios sin grandes conocimientos pueden tener su espacio online, donde crear contenidos con sus propias preferencias
  • Capacidad de crear redes basadas en enlaces, debido a la sindicación de contenidos (Feeds).
  • Incrementa su presencia en la red.
  • Posibilidad de acceso a información desde un punto fijo (bidireccionalidad, cambio de sentido de la información)
  • Nuevo poder mediático: EL PODER COLECTIVO (Hell Dell, Ikea, etc.)
5.- Redes de informantes
Foco principal
Redes - USUARIOS - datos
Quién recibe los beneficios PLATAFORMA - USUARIOS
Rol de la plataforma Agregar contenido que es generado
por los participantes de la red;
actúa como un facilitador.
6.- Redes de inteligencia colectiva
Foco principal
Redes – Usuarios – DATOS
Quién recibe los beneficios PLATAFORMA - Usuarios
Rol de la plataforma Capitalizando el poder de
la red. Sindicando
lo creado


daily postium volume

7.- Plataformas para redes de interacciones sociales
Foco principal
REDES – Usuarios – Datos
Quién recibe los beneficios Plataforma - USUARIOS
Rol de la plataforma Crear un ambiente en el cual
las personas puedan presentarse a si
mismas e interaccionar con otras personas


MySpace
  • MySpace es un verdadero portal de comunidades, que se hizo masivo y popular en menos de dos años.
  • Actualmente cuenta con casi el 3,9% del tráfico de la Web, gracias al poderoso efecto que suman la arquitectura de participación y el efecto de redes.
  • MySpace permite a cualquier usuario construir su propio canal de contenidos. Blogs, favoritos online, grupos y comunidades, música y videos, etc. La increíble capacidad de creación de grupos ha permitido contar con más de cien millones de cuentas creadas (en Agosto del 2006).
8.- Plataformas de intercambio
Foco principal
REDES – Usuarios – Datos
Quién recibe los beneficios Plataforma - USUARIOS
Rol de la plataforma Creación de un mercado virtual en
el que los usuarios pueden presentar, buscar
y encontrar bienes tangibles
y realizar transacciones para obtenerlos.


Plataformas de intercambio
  • Son lo más parecido al e-commerce de la Web 1.0
  • Información intrínseca de los servicios, más información otorgada por otros usuarios le dan al cliente un mejor panorama de la oferta.
  • Amazon es un ejemplo claro que funciona como puente entre la Web 1.0 y la Web 2.0
Mashups – Innovación de servicios

Pensonalización y ampliación de aplicaciones existentes a partir de de las API’s y feeds facilitadas.

MODELOS DE INGRESOS
El modelo táctico entrega tres modelos de ingresos clásicos, que ya se utilizaban en la anterior generación, pero que en la actualidad han demostrado su vigencia y validez.

1.- Suscripciones
Pueden ser divididas en:
  • Precios fijos
  • Precios variables
  • Precios fijos + variables
  • Freepremium
Los tres primeros suelen apreciarse con claridad en sitios que ofrecen
contenidos pagados (diarios, revistas, publicaciones científicas, etc.).
No ofrecen nada nuevo pero han demostrado ser totalmente válidos
en WEB 2.0
Freepremium es mucho más interesante y orientado a WEB 2.0
Freepremium
Consiste en:
  1. Entregar un servicio gratuito
  2. Capturar una enorme cantidad de usuarios registrados (boca a boca, redes de referencias, marketing, etc.)
  3. Ofrecer entonces un servicio Premium cuyo precio valora servicios añadidos y/o mejora el servicio entregado
Ventajas de Freepremium
  • Permite al usuario testear la herramienta
  • Se trata de un servicio de simple compromiso. Los pagos son periódicos.
  • Desafío para el desarrollador (beta continua) para fidelización de usuarios. Una empresa que continuamente está obligada a desarrollar más y mejores servicios está mejor apreciada en el mercado.
Desventajas Freepremium
  • Alta inversión inicial con capital de riesgo
  • Estimar la cantidad de suscriptores por período (previsión) es muy difícil
Publicidad
Google Adsense
El sistema antiguo (banners,
gráficos y animaciones)
no
está para nada en desuso

evoluciona

se ofrece publicidad para
nichos especificos

Ejemplo:

Techcrunch de Michael Arrington
(Junio 2005)

Ingresos por publicidad en internet en EEUU (millones de $)
Pero…
No todos somos Michael Arrington

El modelo requiere:
  • Alto tráfico de visitas para asegurar rentabilidad
  • Alta segmentación de usuarios: debemos contar con un gran grupo con un perfil específico para poder dirigir campañas publicitarias.

Ventajas
  • Posibilita tener servicios gratuitos con simplicidad en la utilización de aplicaciones:
    • El cliente no tiene que registrarse
    • El cliente no hace uso de la tarjeta de crédito
    • Debido a esto suele tener un efecto comunicacional más grande (gratis y sin registros)

Desventajas
  • Exclusiva dependencia del tráfico. Difícil valoración de las empresas.
  • Sistema poco confiable para los avisadores. Basado en CPC (costo por clic) o CPM (costo por mil).
  • Los especialistas calculan que aproximadamente el 25% del total del tráfico de clicks indexados son “fraudulentos.”

Comisiones por transacción
  • La empresa hace de mediador entre los compradores y los vendedores.
  • Quizás es el más conocido (subastas online, eBay, Mercado Libre, etc.)
  • El modelo de ingresos es claro: comisión por transacción realizada.

Posibilidades (Web 1.5+)
  • Broker de transacciones financieras (PayPal)
  • Broker de subastas (creación de mercados virtuales para encuentro entre compradores y vendedores)
  • Agentes de búsquedas: Software utilizado para navegar por diversos sitios de comercio electrónico (búsqueda de precios y productos)
  • Mercados virtuales: Tiendas online que facilitan las ventas a tiendas ya establecidas a través de su infraestructura. AMAZON.

PROGRAMA DE AFILIADOS(las franquicias de la WEB 2.0)
  • El avisador de encarga de todo y facilita la interconexión con sus sistemas
  • Se integra el sistema avisador (se facilitan APIS)
  • Comisiones por ventas/visitas/registros
Ventajas
  • Si no hay clics no hay ganancias (pero tampoco pérdidas)
  • Existe una gran cantidad y variedad de programas de afiliados (Amazon, Ebay, etc.)
  • Implementación sencilla (API)
  • Prácticamente no tiene desventajas
Desventajas
  • Aún cuando los precios por comisiones son visibles, sigue siendo difícil estimar en nivel de ingresos (previsión) ya que como en otros modelos depende del tráfico que genera el sitio.
  • No existe control sobre los contenidos y puede suceder que no encajen con los contenidos de la web en la que se insertan
Gracias por su lectura

jueves, 28 de julio de 2011

Tutorials/eLearning

sábado, 14 de mayo de 2011

AppDev ASP.NET Using Visual C Sharp 2008 Volume 1 & 2 DVD



AppDev ASP.NET Using Visual C Sharp 2008 Volume 1 & Volume 2 DVD | 3.6 GB


In this course, you'll learn how to use features of Visual Studio 2008 and Visual C# 2008 to build ASP.NET 3.5 Web pages. You'll gain an understanding of the architecture behind ASP.NET and how to use the various ASP.NET server controls. You'll learn to create consistent web sites using Master Pages, add membership features and configure-deploy ASP.NET applications, to authenticate users and limit their access to resources, direct users using Site Navigation tools, debug .NET, and to display/edit data using ASP.NET and ADO.NET. In addition, you'll learn new ASP.NET 3.5 features, such as support for LINQ (Language Integrated Query), CSS tools, and will become familiar with the tracing features in Visual Studio that help you quickly troubleshoot issues. You will also learn how to work with ASP.NET Profile features, ASP.NET Web Parts, and how to take advantage of creating your own user-defined control. As you progress through the course you will learn about optimizing your sites, the new support ASP.NET AJAX, the new ListView control, and so much more.
In this course, you will learn how to…

* Use ASP.NET server controls to generate HTML and to execute event procedures.
* Configure and deploy ASP.NET applications.
* Promote consistency within your Web site through the use of Master Pages.
* Use Membership features to manage your Web users.
* Use Site Navigation controls to direct users within your site.
* Add scalability and reliability by setting up an out-of-process session state server.
* Use ASP.NET's new CSS tools to create consistent and maintainable sites.
* Debug .NET code that runs on the server to generate Web pages and interact with the user.
* Find problems in JavaScript code and learn about other debugging tools in Visual Studio.
* Use tracing to find problems in a Web site and monitor performance.
* Cache all or portions of a Web page to enhance performance and lighten the load on Web and database servers.
* Make Web pages more responsive to users and avoid unnecessary page flashing with AJAX.
* Display and edit data using the databound DataList, Repeater, and ListView controls.
* Read and write XML data using the XML Document Object Model.
* Give users control over a page layout and behavior with Web parts.
* Hook into browser history for AJAX pages.
* Create deployment packages to handle complex setup issues for installing a Web site on test and production servers.

Volumen 1

http://rapidshare.com/files/294109798/i-apaspnuvcs1.iso.part01.rar
http://rapidshare.com/files/294110453/i-apaspnuvcs1.iso.part02.rar
http://rapidshare.com/files/294110229/i-apaspnuvcs1.iso.part03.rar
http://rapidshare.com/files/294110066/i-apaspnuvcs1.iso.part04.rar
http://rapidshare.com/files/294105547/i-apaspnuvcs1.iso.part05.rar
http://rapidshare.com/files/294106527/i-apaspnuvcs1.iso.part06.rar
http://rapidshare.com/files/294106718/i-apaspnuvcs1.iso.part07.rar
http://rapidshare.com/files/294109987/i-apaspnuvcs1.iso.part08.rar
http://rapidshare.com/files/294110161/i-apaspnuvcs1.iso.part09.rar
http://rapidshare.com/files/294110084/i-apaspnuvcs1.iso.part10.rar
http://rapidshare.com/files/294106621/i-apaspnuvcs1.iso.part11.rar
http://rapidshare.com/files/294109551/i-apaspnuvcs1.iso.part12.rar
http://rapidshare.com/files/294112422/i-apaspnuvcs1.iso.part13.rar
http://rapidshare.com/files/294110015/i-apaspnuvcs1.iso.part14.rar
http://rapidshare.com/files/294109330/i-apaspnuvcs1.iso.part15.rar
http://rapidshare.com/files/294108352/i-apaspnuvcs1.iso.part16.rar
http://rapidshare.com/files/294106405/i-apaspnuvcs1.iso.part17.rar
http://rapidshare.com/files/294110139/i-apaspnuvcs1.iso.part18.rar
http://rapidshare.com/files/294106781/i-apaspnuvcs1.iso.part19.rar
http://rapidshare.com/files/294109813/i-apaspnuvcs1.iso.part20.rar
http://rapidshare.com/files/294109649/i-apaspnuvcs1.iso.part21.rar
http://rapidshare.com/files/294106876/i-apaspnuvcs1.iso.part22.rar
http://rapidshare.com/files/294106209/i-apaspnuvcs1.iso.part23.rar

Volumen 2

http://rapidshare.com/files/294100886/i-apaspnuvcs2.iso.part01.rar
http://rapidshare.com/files/294101195/i-apaspnuvcs2.iso.part02.rar
http://rapidshare.com/files/294101663/i-apaspnuvcs2.iso.part03.rar
http://rapidshare.com/files/294100868/i-apaspnuvcs2.iso.part04.rar
http://rapidshare.com/files/294101510/i-apaspnuvcs2.iso.part05.rar
http://rapidshare.com/files/294104117/i-apaspnuvcs2.iso.part06.rar
http://rapidshare.com/files/294101503/i-apaspnuvcs2.iso.part07.rar
http://rapidshare.com/files/294104861/i-apaspnuvcs2.iso.part08.rar
http://rapidshare.com/files/294104956/i-apaspnuvcs2.iso.part09.rar
http://rapidshare.com/files/294101724/i-apaspnuvcs2.iso.part10.rar
http://rapidshare.com/files/294101584/i-apaspnuvcs2.iso.part11.rar
http://rapidshare.com/files/294105452/i-apaspnuvcs2.iso.part12.rar
http://rapidshare.com/files/294104292/i-apaspnuvcs2.iso.part13.rar
http://rapidshare.com/files/294100183/i-apaspnuvcs2.iso.part14.rar