<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Bernardo Raskovsky's Blogs </title><subtitle type="html">(en español y desde Argentina)</subtitle><id>http://weblogs.asp.net/bernardoraskovsky/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/bernardoraskovsky/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-01-23T15:14:00Z</updated><entry><title>Como armar un rango de fechas en una tabla temporal en SQL</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/27/como-traer-rango-de-fechas-en-una-tabla-temporal-en-sql.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/27/como-traer-rango-de-fechas-en-una-tabla-temporal-en-sql.aspx</id><published>2008-02-27T21:01:00Z</published><updated>2008-02-27T21:01:00Z</updated><content type="html">&lt;p&gt;Este es un truco que utilizo para mostrar datos por fechas, donde no tenia registro para una fecha dentro del rango. Así, que ¿como mostrar las variaciones entre esas dos fechas?. &lt;/p&gt;
  
&lt;p&gt;Primero crear una tabla temporal, con las fechas y luego un left join con nuestra tabla de datos. Así seria el script:&lt;/p&gt;
  
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: Consolas, "Courier New", Courier, Monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; sp_sel_DameVistasEntreFechas   &lt;/pre&gt;
&lt;pre&gt;    @FechaInicio DateTime,&lt;/pre&gt;
&lt;pre class="alt"&gt;    @FechaCierre DateTime&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;ON&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="rem"&gt;-- Tabla temporal con las fechas de inicio y cierre&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; #Temp(&lt;/pre&gt;
&lt;pre&gt;                        Fecha datetime&lt;/pre&gt;
&lt;pre class="alt"&gt;                        )&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @&lt;span class="kwrd"&gt;date&lt;/span&gt; DATETIME   &lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;SET&lt;/span&gt; @&lt;span class="kwrd"&gt;date&lt;/span&gt; = @FechaInicio&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;WHILE&lt;/span&gt; @&lt;span class="kwrd"&gt;date&lt;/span&gt; &amp;lt; @FechaCierre + 1&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; #Temp&lt;/pre&gt;
&lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;VALUES&lt;/span&gt;(@&lt;span class="kwrd"&gt;date&lt;/span&gt;)&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;SET&lt;/span&gt; @&lt;span class="kwrd"&gt;date&lt;/span&gt; = dateadd(&lt;span class="kwrd"&gt;day&lt;/span&gt;, 1, @&lt;span class="kwrd"&gt;date&lt;/span&gt;)&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;Select&lt;/span&gt;  miTabla.* , #Temp.Fecha&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;from&lt;/span&gt;  #Temp&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;LEFT&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; miTabla&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;ON&lt;/span&gt; #Temp.Fecha = miTabla.Fecha&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Espero que lo usen&lt;/p&gt;
  
&lt;p&gt;Un Abrazo&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5872512" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="Tips and Tricks" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Tips+and+Tricks/default.aspx" /><category term="SQL" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/SQL/default.aspx" /><category term="SQL Server" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>Parche para Facebook Developer Toolkit para usuarios de habla Hispana.</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/12/parche-en-facebook-developer-toolkit-para-usuarios-de-habla-hispana.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/12/parche-en-facebook-developer-toolkit-para-usuarios-de-habla-hispana.aspx</id><published>2008-02-12T12:06:00Z</published><updated>2008-02-12T12:06:00Z</updated><content type="html">&lt;p&gt;Como dije en el primer post de la serie de tutoriales sobre aplicaciones en &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;, hay que estar atento a &lt;a href="http://www.facebook.com/developers/" mce_href="http://www.facebook.com/developers/" target="_blank"&gt;los cambios en la arquitectura de Facebook&lt;/a&gt;. Un día nos podemos levantar y nuestras aplicaciones ya no funcionan.&lt;/p&gt;  &lt;p&gt;Eso es lo que me paso el sábado 9 de febrero, Facebook agrego el lenguaje español y los parámetros que recibía la api que uso en mis aplicaciones, Facebook Developer Toolkit, no las entendía y daba error.&lt;/p&gt;  &lt;p&gt;Busque en los foros que hacer, pero nadie respondía. Así que me senté a ver el código fuente y genere la dll por mi cuenta. Dejo el &lt;a href="http://www.ber79.com.ar/downloadsweb.aspx?link=3" mce_href="http://www.ber79.com.ar/downloadsweb.aspx?link=3" target="_blank"&gt;link a la dll&lt;/a&gt; para que la puedan usar, ante algún error que tengan, por favor dejen un comentario así todos pueden seguirlo.&lt;/p&gt;  &lt;p&gt;Un abrazo&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5767869" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="Facebook" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Facebook/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/ASP.NET/default.aspx" /><category term="errores" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/errores/default.aspx" /></entry><entry><title>Aplicaciones en Facebook 2º Parte - Crear nuestra primera App</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/03/aplicaciones-en-facebook-2-186-parte-crear-nuestra-primera-app.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/03/aplicaciones-en-facebook-2-186-parte-crear-nuestra-primera-app.aspx</id><published>2008-02-03T18:21:00Z</published><updated>2008-02-03T18:21:00Z</updated><content type="html">&lt;p&gt;Este es la segunda parte de una serie de post sobre desarrollo de aplicaciones para &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;. El primer post, "&lt;a href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/25/aplicaciones-en-facebook-parte-1-186.aspx" mce_href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/25/aplicaciones-en-facebook-parte-1-186.aspx" target="_blank"&gt;Aplicaciones en Facebook 1º parte&lt;/a&gt;" fue una introducción a la arquitectura de &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;, ahora vamos a aprender a crear una aplicación muy sencilla.&lt;/p&gt;
  
&lt;p&gt;Primero lo primero, hay que tener una cuenta en Facebook (supongo que si ya leyeron el primer post ya deben tener una). Una vez registrados debemos agregar la aplicación "&lt;a href="http://www.facebook.com/developers/" mce_href="http://www.facebook.com/developers/" target="_blank"&gt;Developer&lt;/a&gt;". Con ella accedemos a las pantallas con foros, novedades, el status del framework de &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt; y algunos datos de nuestras aplicaciones.&lt;/p&gt;
  
&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/barra_lateral_2.jpg" mce_href="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/barra_lateral_2.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/barra_lateral_thumb.jpg" style="border-width: 0px;" alt="barra lateral de Facebook" mce_src="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/barra_lateral_thumb.jpg" border="0" height="117" width="84"&gt;&lt;/a&gt; &lt;/p&gt;
  
&lt;p&gt;Ahora hay que dar de alta una nueva aplicación y configurar algunos datos para que &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt; pueda acceder a nuestra página. Para dar de alta una nueva aplicación hay que hacer clic en el botón "+ Set Up New Application".&lt;/p&gt;
  
&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/top_4.jpg" mce_href="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/top_4.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/top_thumb_1.jpg" style="border-width: 0px;" alt="top" mce_src="http://weblogs.asp.net/blogs/bernardoraskovsky/WindowsLiveWriter/AplicacionesenFacebook2ParteCrearnuestra_E5ED/top_thumb_1.jpg" border="0" height="67" width="255"&gt;&lt;/a&gt; &lt;/p&gt;
  
&lt;p&gt;Obtenemos una pantalla para llenar datos que modifican como va a funcionar la aplicación dentro de &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;. Estas es una descripción de los datos mínimos que debemos completar, el resto queda en ustedes para aprender, no son muy difíciles de entender:&lt;/p&gt;
  
&lt;ul&gt;   
&lt;li&gt;Application Name: Nombre de la aplicación. &lt;/li&gt;
    
&lt;li&gt;Developer Contact E-mail: Nuestro e-mail. &lt;/li&gt;
    
&lt;li&gt;Callback Url: Dirección a la que Facebook va a buscar nuestra aplicación, para el ejemplo seria algo así, &lt;i&gt;http://www.midominio.com/Default.aspx.        &lt;br&gt;&lt;/i&gt;Aquí me voy a detener un poco, en la etapa de desarrollo es complicado usar una dirección de tipo localhost, más si usan Web Developer Express como servidor web, es preferible subirlo sobre un IIS local, y usar una dirección así &lt;i&gt;http://localhost:80/Default.aspx &lt;/i&gt;que solo funcionaria dentro de nuestra red. &lt;/li&gt;
    
&lt;li&gt;Canvas Page URL: Como se la dirección a la que accederán los usuarios. &lt;/li&gt;
    
&lt;li&gt;Use FBML o Use iframe: Esta opción es para que &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt; sepa si tiene que detectar las etiquetas FB. Para nuestro ejemplo usamos iframe. &lt;/li&gt;
    
&lt;li&gt;Application Type: vamos a elegir Website. &lt;/li&gt;
    
&lt;li&gt;Can your application be added on Facebook?: elegimos que si. &lt;/li&gt;
    
&lt;li&gt;Post-Add URL: Dirección de Facebook a donde se redirecciona después de agregar la aplicación, tiene que ser la dirección que formamos en Canvas Page. &lt;/li&gt;
    
&lt;li&gt;Developer Mode: Tildamos, temporalmente, solo nosotros podemos agregar la aplicación. &lt;/li&gt;
 &lt;/ul&gt;
  
&lt;p&gt;Una vez que llenamos todo, hacemos clic en submit. Nos redirecciona a una pantalla donde esta un pequeño resumen de nuestra aplicación. Entre estos datos hay dos muy importante: api key, y secret, más adelante las usaremos.&lt;/p&gt;
  
&lt;p&gt;Una vez que configuramos nuestra aplicación vamos a construirla. Antes que nada este ejemplo lo realizo usando la API &lt;a href="http://www.codeplex.com/FacebookToolkit" mce_href="http://www.codeplex.com/FacebookToolkit" target="_blank"&gt;Facebook Developer Toolkit&lt;/a&gt; (es la que estuve usando hasta ahora, probablemente actualice más adelante para &lt;a href="http://www.codeplex.com/FacebookNET" mce_href="http://www.codeplex.com/FacebookNET" target="_blank"&gt;Facebook.Net&lt;/a&gt;), entonces tenemos agregar al proyecto las referencias de esta API, Facebook.dll, Facebook.Controls.dll y Facebook.WebControls.dll así tenemos todas las funciones para trabajar.&lt;/p&gt;
  
&lt;p&gt;En el Code Behind de Default.aspx&amp;nbsp; cambiamos la clase que heredada por CanvasIFrameBasePage, está base page tiene dos propiedades, Api y Secret. ( Adivinaron hay van las llaves que nos da &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;), y un clase FBService que llama los servicios REST. La pagina debería configurarse de esta forma&lt;/p&gt;
  
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: Consolas, "Courier New", Courier, Monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; _Default : CanvasIFrameBasePage&lt;/pre&gt;
&lt;pre&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;   Facebook.Components.FacebookService();&lt;/pre&gt;
&lt;pre&gt;   &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; FACEBOOK_API_KEY = &lt;span class="str"&gt;"llave api"&lt;/span&gt;;  &lt;/pre&gt;
&lt;pre class="alt"&gt;   &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; FACEBOOK_SECRET = &lt;span class="str"&gt;"llave secret"&lt;/span&gt;; &lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre&gt;   {&lt;/pre&gt;
&lt;pre class="alt"&gt;       &lt;span class="kwrd"&gt;base&lt;/span&gt;.Api = FACEBOOK_API_KEY;&lt;/pre&gt;
&lt;pre&gt;       &lt;span class="kwrd"&gt;base&lt;/span&gt;.Secret = FACEBOOK_SECRET;&lt;/pre&gt;
&lt;pre class="alt"&gt;       &lt;span class="kwrd"&gt;base&lt;/span&gt;.Page_Load(sender, e);&lt;/pre&gt;
&lt;pre&gt;    }&lt;/pre&gt;
&lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
  
&lt;p&gt;Bien vamos ha buscar datos del usuario que accede a la aplicación, y mostrarlos en la pantalla. Agregamos un Label en el aspx. en el Code Behind llamamos a las librerías Facebook, Facebook.Entity, Facebook.WebControls y escribimos el siguiente código:&lt;/p&gt;
  
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;User usuario = &lt;span class="kwrd"&gt;this&lt;/span&gt;.FBService.GetUserInfo();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.Label1.Text = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"Hola {0} "&lt;/span&gt;, usuario.FirstName);&lt;/pre&gt;
&lt;/div&gt;
  
&lt;p&gt;Ahora solo queda una cosa, ver la pagina dentro de &lt;a href="http://www.facebook.com" mce_href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt;, primero agregamos la aplicación a nuestro profile, lo pueden hacer directamente entrando con la URL que completaron en el campo "Canvas Page URL". Al agregar serán redireccionados a la pagina que armamos.&lt;/p&gt;
  
&lt;p&gt;Otro ejemplo, ver las fotos de todos sus amigos agregamos un Literal al aspx y copiamos el siguiente código:&lt;/p&gt;
  
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; salida = &lt;span class="str"&gt;"Estos son tus amigos:&amp;lt;br /&amp;gt;"&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;Collection&amp;lt;User&amp;gt; amigos = &lt;span class="kwrd"&gt;this&lt;/span&gt;.FBService.GetFriends();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (User amigo &lt;span class="kwrd"&gt;in&lt;/span&gt; amigos)&lt;/pre&gt;
&lt;pre&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;       salida += &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"&amp;lt;img src='{0}' alt='{1}'/&amp;gt;"&lt;/span&gt;, amigo.PictureSmallUrl,&lt;/pre&gt;
&lt;pre&gt;                amigo.Name);&lt;/pre&gt;
&lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;pre&gt;Literal1.Text = salida;&lt;/pre&gt;
&lt;/div&gt;
  
&lt;p&gt;Bien, hasta aquí por hoy, intenten hacer una App , pueden dejar sus comentarios y las URL de sus App así otros pueden verlas. También les dejo los links a la &lt;a href="http://apps.facebook.com/br_ejemplo_i/" mce_href="http://apps.facebook.com/br_ejemplo_i/" target="_blank"&gt;aplicación&lt;/a&gt; on-line y al &lt;a href="http://www.ber79.com.ar/downloadsweb.aspx?link=2" mce_href="http://www.ber79.com.ar/downloadsweb.aspx?link=2" target="_blank"&gt;código fuente&lt;/a&gt;.&lt;/p&gt;
  
&lt;p&gt;Un abrazo.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5700944" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="Facebook" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Facebook/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/ASP.NET/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/C_2300_/default.aspx" /><category term="Tutorial" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Tutorial/default.aspx" /></entry><entry><title>Videología de Maradona con el tema "A lado del camino"</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/01/videolog-237-a-de-maradona-con-el-tema-quot-a-lado-del-camino-quot.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/02/01/videolog-237-a-de-maradona-con-el-tema-quot-a-lado-del-camino-quot.aspx</id><published>2008-02-01T19:21:00Z</published><updated>2008-02-01T19:21:00Z</updated><content type="html">
&lt;p&gt;Les dejo un video que editó mi amigo &lt;a href="http://www.facebook.com/profile.php?id=724852242&amp;amp;src=fftb" target="_blank" mce_href="http://www.facebook.com/profile.php?id=724852242&amp;amp;src=fftb"&gt;Niki Herrera&lt;/a&gt;. Es una videología de &lt;a href="http://es.wikipedia.org/wiki/Diego_Armando_Maradona" target="_blank" mce_href="http://es.wikipedia.org/wiki/Diego_Armando_Maradona"&gt;Diego Maradona&lt;/a&gt; con música de &lt;a href="http://es.wikipedia.org/wiki/Fito_P%C3%A1ez" target="_blank" mce_href="http://es.wikipedia.org/wiki/Fito_P%C3%A1ez"&gt;Fito Paez&lt;/a&gt;, el tema "Al lado del camino" del disco &lt;a href="http://es.wikipedia.org/wiki/Abre" target="_blank" mce_href="http://es.wikipedia.org/wiki/Abre"&gt;Abre&lt;/a&gt;. Bueno disfruten del video y dejen sus comentarios.&lt;/p&gt;
&lt;p&gt;
&lt;object height="373" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kwclWj7R4jM&amp;amp;rel=0&amp;amp;color1=0xd6d6d6&amp;amp;color2=0xf0f0f0&amp;amp;border=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/kwclWj7R4jM&amp;amp;rel=0&amp;amp;color1=0xd6d6d6&amp;amp;color2=0xf0f0f0&amp;amp;border=1" type="application/x-shockwave-flash" wmode="transparent" height="373" width="425"&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Un abrazo&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5688581" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author></entry><entry><title>Base Page con jquery, script.aculo.us, motools, etc</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/31/base-page-con-jquery-script-aculo-us-motools-etc.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/31/base-page-con-jquery-script-aculo-us-motools-etc.aspx</id><published>2008-01-31T17:58:00Z</published><updated>2008-01-31T17:58:00Z</updated><content type="html">
&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;   &lt;/blockquote&gt;

&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt; &lt;/blockquote&gt;
  
&lt;p&gt;Un requisito para tener una excelente web 2.0 es el framework javascript que uno elije, mi favorito es &lt;a href="http://jquery.com/" target="_blank" mce_href="http://jquery.com/"&gt;jquery&lt;/a&gt;, pero también hay otros igual de buenos como &lt;a href="http://script.aculo.us/" target="_blank" mce_href="http://script.aculo.us/"&gt;script.aculo.us&lt;/a&gt;, &lt;a href="http://mootools.net/" target="_blank" mce_href="http://mootools.net/"&gt;mootols&lt;/a&gt;. Agregarlos a todas las páginas del sitio aun cuando no se usan en todas es un mal uso de los recursos y de performance. De eso se trata este post, como usar los framework sólo donde se necesitan.&lt;br&gt;  &lt;/p&gt;

&lt;p&gt;Cuando uno trabaja con Master Page y solo algunas de las paginas usan un framework. Debemos agregar al header programando una por una, algo que cualquier programador odia. Mi solución (después de programar mucho) fue crear una base page para cada framework. &lt;/p&gt;
  
&lt;p&gt;Para los que no sepan una Base Page es simplemente una clase que hereda la clase System.Web.UI.Page a la cual le modificamos los eventos como por ejemplo OnLoad con nuestro código. Todas las demás paginas que hereden de esta clase&amp;nbsp; ejecutaran ese código y luego continuaran con su código propio. Algo así: &lt;/p&gt;
  
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: Consolas, "Courier New", Courier, Monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MiBasePage : System.Web.UI.Page&lt;/pre&gt;
&lt;pre&gt;        {&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnLoad(EventArgs e)&lt;/pre&gt;
&lt;pre&gt;            {&lt;/pre&gt;
&lt;pre class="alt"&gt;                &lt;span class="rem"&gt;// Código General&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnLoad(e);&lt;/pre&gt;
&lt;pre class="alt"&gt;            }&lt;/pre&gt;
&lt;pre&gt;        }&lt;/pre&gt;
&lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MiPagina : MiBasePage&lt;/pre&gt;
&lt;pre class="alt"&gt;        {&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;
&lt;pre class="alt"&gt;            {&lt;/pre&gt;
&lt;pre&gt;              &lt;span class="rem"&gt;//Código particular de la pagina&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            }&lt;/pre&gt;
&lt;pre&gt;        }&lt;/pre&gt;
&lt;/div&gt;
  
&lt;p&gt;Ahora tenemos que agregar en el header de nuestra paginas la etiqueta &amp;lt;script&amp;gt;, para eso se utiliza la clase HtmlGenericControl con etiqueta "script", el atributos "type" con valor "text/javascript" y el atributo "src" con la dirección del framework, este ultimo atributo puede cambiar y adaptarse al framework que vamos a usar. Aquí hay un ejemplo:&lt;/p&gt;
  
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;HtmlGenericControl jquery = &lt;span class="kwrd"&gt;new&lt;/span&gt; HtmlGenericControl(&lt;span class="str"&gt;"script"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;jquery .Attributes.Add(&lt;span class="str"&gt;"type"&lt;/span&gt;, &lt;span class="str"&gt;"text/javascript"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="alt"&gt;jquery .Attributes.Add(&lt;span class="str"&gt;"src"&lt;/span&gt;, &lt;span class="str"&gt;"jquery/jquery.js"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.Page.Header.Controls.Add(jquery );&lt;/pre&gt;
&lt;/div&gt;
  
&lt;p&gt;Tomando el código previo lo agregamos dentro del evento Onload antes del    "base.Onload(e)" y todas las paginas que hereden esta clase compartiran este funcionamiento. &lt;/p&gt;

&lt;p&gt;Un tip: podemos tener distintas base page con diferentes framework y usar el que necesitamos eligiendo la base page de cada framework, asi una pagina hecha en mootols otra en jquery. etc.&lt;/p&gt;
  
&lt;p&gt;Yo les dejo un &lt;a href="http://www.ber79.com.ar/downloadsweb.aspx?link=1" mce_href="http://www.ber79.com.ar/downloadsweb.aspx?link=1"&gt;link&lt;/a&gt; para que bajen la clase que yo uso y vean si les sirve.&lt;/p&gt;
  
&lt;p&gt;Un abrazo&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5682771" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/ASP.NET/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/C_2300_/default.aspx" /><category term="Tips and Tricks" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Tips+and+Tricks/default.aspx" /></entry><entry><title>Aplicaciones en Facebook 1º parte</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/25/aplicaciones-en-facebook-parte-1-186.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/25/aplicaciones-en-facebook-parte-1-186.aspx</id><published>2008-01-25T13:10:00Z</published><updated>2008-01-25T13:10:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;Para los que no conocen, &lt;a href="http://www.facebook.com" target="_blank" mce_href="http://www.facebook.com"&gt;Facebook&lt;/a&gt; es la red social con mayor crecimiento en el mundo de Internet. Este sitio permite a sus usuarios compartir&amp;nbsp; no solo fotos&amp;nbsp; y vídeos, si no la experiencia de compartir millones de aplicaciones hechas por 3ros a facebook. Si leyeron bien cualquier persona con un poco de conocimiento en lenguajes de programación web puede programar aplicaciones que pueden ser compartidas y visitadas por millones de usuarios en todo el mundo, aun que parezca bastante simple es un mercado que esta moviendo millones de dolares en USA, Asia y Europa.&lt;/p&gt;
&lt;p&gt;¿Pero como se programa una aplicación en Facebook?&amp;nbsp; primero hay que entender como nuestra aplicación debe comunicarse mediante &lt;a href="http://es.wikipedia.org/wiki/REST" mce_href="http://es.wikipedia.org/wiki/REST"&gt;REST&lt;/a&gt;. es decir nuestro sistema hace un request a facebook y recibe un xml de respuesta. hasta aquí parece muy difícil, pero por suerte hay gente con buen corazón y ya se encuentran dando vuelta varias API's para cada lenguaje. El que nos importa ahora .Net, las dos API's mas importantes en este momento son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/FacebookToolkit" target="_blank" mce_href="http://www.codeplex.com/FacebookToolkit"&gt;Facebook Developer Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/FacebookNET" target="_blank" mce_href="http://www.codeplex.com/FacebookNET"&gt;Facebook.Net&lt;/a&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; Hasta ahora solo probé la primera con muy buen resultado (sin quitarle valor a la segunda), hice una aplicación llamada &lt;a href="http://apps.facebook.com/soyhinchade/" target="_blank" mce_href="http://apps.facebook.com/soyhinchade/"&gt;Soy hincha de...&lt;/a&gt; en solo un fin de semana, ahora tiene más de 200 usuarios y va creciendo de a poquito, próximamente voy ha construir alguna más interesante.&lt;/p&gt;
&lt;p&gt; Algo que se debe tener en cuenta es que el ritmo de las versiones de estas API van con el ritmo en el que Facebook actualiza su framework. Es recomendable que una vez que elijan una API cada cierto tiempo revisen si el framework de Facebook cambio y si hay una actualización de la API.&lt;/p&gt;
&lt;p&gt;Muy importante es saber como Facebook muestra nuestra aplicación en su sitio, en un principio lo hacia directamente dentro de un IFrame, una solución con poca performance pero el 80% y mas de desarrolladores lo hacen. Una Novedad es que Facebook agrego un lenguaje de etiquetas como HTML llamdo FBML donde estas etiquetas son reconocidas por Facebook y procesadas, liberando el código HTML, algo muy parecido a lo que hace ASP.Net. De estas dos técnicas solo prové la primera, es rápida, muy fácil y para una aplicación pequeña es suficiente.&lt;/p&gt;
&lt;p&gt;Bueno creo que para empezar está bien, tienen links para y viendo de que estoy hablando y le dejo mi &lt;a href="http://www.facebook.com/profile.php?id=684334624" target="_blank" mce_href="http://www.facebook.com/profile.php?id=684334624"&gt;profile &lt;/a&gt;en Facebook también.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Un abrazo&lt;br&gt;&amp;nbsp;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5650206" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="Facebook" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Facebook/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/ASP.NET/default.aspx" /><category term="Tutorial" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Tutorial/default.aspx" /></entry><entry><title>Dattatec se cayó</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/24/dattatec-se-cayo.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/24/dattatec-se-cayo.aspx</id><published>2008-01-24T21:33:00Z</published><updated>2008-01-24T21:33:00Z</updated><content type="html">&lt;p&gt;Hace dos días que &lt;a href="http://www.dattatec.com.ar/" target="_blank" mce_href="http://www.dattatec.com.ar/"&gt;&lt;b&gt;Dattatec&lt;/b&gt; &lt;/a&gt;se cayo, no da servicios de mail, web, servidores dedicados, inclusive su sitio está fuera de servisio. Se rumorea que es un ataque &lt;a href="http://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio" target="_blank" mce_href="http://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio"&gt;&lt;b&gt;DDoS&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Los que programan en asp.net deben conocer bien sobre esta empresa rosarina, es la provedora de hosting más barata de Argentina y ademas ofrece hosting .net 2.0 - 3.0 -3.5 con Sql Server 2005, siendo muy dificil encontrar otro servicio igual, aun así la calidad de servicio y la seguridad que provee deja mucho que decear. &lt;/p&gt;&lt;p&gt;Voy a&amp;nbsp; dejar libre los comentarios asi dejan su expreriencias con dattatec.&lt;/p&gt;&lt;p&gt;Un abrazo&amp;nbsp;&lt;/p&gt;&lt;p&gt;Actualización: Si algun representante de Dattatec quiere dejar alguna info de que esta ocurriendo, tambín puede hacerlo, solo que deje un link o me mande un email.&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5646071" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author><category term="Hosting" scheme="http://weblogs.asp.net/bernardoraskovsky/archive/tags/Hosting/default.aspx" /></entry><entry><title>Mi primer post desde la comunidad asp.net</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/23/mi-primer-post-desde-la-comunidad-asp-net.aspx" /><id>http://weblogs.asp.net/bernardoraskovsky/archive/2008/01/23/mi-primer-post-desde-la-comunidad-asp-net.aspx</id><published>2008-01-23T17:14:00Z</published><updated>2008-01-23T17:14:00Z</updated><content type="html">&lt;P mce_keep="true"&gt;Hola a todos, le agradezco mucho a &lt;SPAN class=SubjectSenderLabel id=SenderData&gt;&lt;SPAN class=ContactPresence contactparams:contactsize="XXSmall" contactparams:puid=""&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;A class="" href="http://joeon.net/" target=_blank mce_href="http://joeon.net/"&gt;Joe Stagner&lt;/A&gt; &lt;/STRONG&gt;y &lt;STRONG&gt;&lt;A class="" href="http://weblogs.asp.net/scottgu/" target=_blank mce_href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/A&gt;&lt;/STRONG&gt; por darme esta oportunidad de bloguear (&lt;EM&gt;ya se, no existe esta palabra en español, pero se entiende&lt;/EM&gt;) para la comunidad &lt;STRONG&gt;&lt;A class="" href="http://www.asp.net/" target=_blank mce_href="http://www.asp.net"&gt;asp.net&lt;/A&gt;.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=SubjectSenderLabel&gt;La idea es poder escribir sobre cosas que me gustan en el mundo web y mostrarlas a los que quieran saber y me envien sus comentarios.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=SubjectSenderLabel&gt;Un abrazo.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5640213" width="1" height="1"&gt;</content><author><name>Ber_Arg</name><uri>http://weblogs.asp.net/members/Ber_5F00_Arg.aspx</uri></author></entry></feed>