<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Yo sólo pasaba por aquí pero ya que estoy....</title><link>http://geeks.ms/blogs/ilanda/default.aspx</link><description>Blog de Ibon Landa</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Highway to Plain Concepts</title><link>http://geeks.ms/blogs/ilanda/archive/2010/02/15/highway-to-plain-concepts.aspx</link><pubDate>Mon, 15 Feb 2010 09:47:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:167381</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>18</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=167381</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/02/15/highway-to-plain-concepts.aspx#comments</comments><description>&lt;p&gt;Pues nada, despu&amp;eacute;s de 2 a&amp;ntilde;os trabajando en &lt;a href="http://www.avangroup.com/"&gt;AvanGroup&lt;/a&gt;, ha llegado el momento de volver a cambiar de aires.&lt;/p&gt;
&lt;p&gt;Guardar&amp;eacute; un buen recuerdo de estos dos &amp;uacute;ltimos a&amp;ntilde;os, los cu&amp;aacute;les he tenido el placer de compartir con unos muy buenos compa&amp;ntilde;eros.&lt;/p&gt;
&lt;p&gt;A&amp;uacute;n as&amp;iacute;, ha llegado el momento de buscar nuevos retos profesionales, y considero que en &lt;a href="http://www.plainconcepts.com/"&gt;Plain Concepts&lt;/a&gt; los podr&amp;eacute; encontrar.&lt;/p&gt;
&lt;p&gt;A finales de este mes, si no cambian de opini&amp;oacute;n, me incorporar&amp;eacute; a Plain Concepts, d&amp;oacute;nde tendr&amp;eacute; la oportunidad de participar en proyectos bastante interesantes, con compa&amp;ntilde;eros de gran nivel, cosa que apetece bastante.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/plain_5F00_3BA8EBB2.png"&gt;&lt;img height="56" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/plain_5F00_thumb_5F00_244DC174.png" alt="plain" border="0" title="plain" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Y claro est&amp;aacute;, intentar&amp;eacute; seguir dando un poco de guerra a trav&amp;eacute;s del blog :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=167381" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/General/default.aspx">General</category></item><item><title>Dando color a nuestras aplicaciones Silverlight</title><link>http://geeks.ms/blogs/ilanda/archive/2010/02/09/dando-color-a-nuestra-aplicaciones-ria-services.aspx</link><pubDate>Tue, 09 Feb 2010 06:15:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:166757</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=166757</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/02/09/dando-color-a-nuestra-aplicaciones-ria-services.aspx#comments</comments><description>&lt;p&gt;Ya llevamos una temporada hablando sobre el funcionamiento de &lt;a href="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx"&gt;WCF RIA Services&lt;/a&gt; y de c&amp;oacute;mo se puede emplear junto con &lt;strong&gt;Silverlight&lt;/strong&gt; para realizar aplicaciones de negocio.&lt;/p&gt;
&lt;p&gt;Hemos hablado de varias caracter&amp;iacute;sticas interesantes pero no hemos hablado en ning&amp;uacute;n momento de c&amp;oacute;mo personalizar el dise&amp;ntilde;o de la aplicaci&amp;oacute;n, de la interfaz Silverlight que hagamos&amp;hellip;&lt;/p&gt;
&lt;p&gt;Pues en esta ocasi&amp;oacute;n toca hablar de dise&amp;ntilde;o pero como no puede decir que el dise&amp;ntilde;o sea mi fuerte, he optado por mostrar algunos recursos de los que disponemos para iniciarnos en este maravilloso mundo.&lt;/p&gt;
&lt;p&gt;Dentro de la p&amp;aacute;gina de la &lt;a href="http://gallery.expression.microsoft.com/en-us/"&gt;Galer&amp;iacute;a de Expression&lt;/a&gt; pod&amp;eacute;is encontrar un mont&amp;oacute;n de ejemplos que os resultar&amp;aacute;n de gran utilidad, ya sea para aplicarlos directamente a vuestra aplicaciones, aprender de ellos o para partiendo de ellos hacer vuestras propias modificaciones utilizando Blend&amp;hellip;.bueno, para lo que quer&amp;aacute;is.&lt;/p&gt;
&lt;p&gt;Por ejemplo, pod&amp;eacute;is encontrar un &lt;a href="http://gallery.expression.microsoft.com/en-us/site/search?f%5B0%5D.Type=RootCategory&amp;amp;f%5B0%5D.Value=themes&amp;amp;f%5B0%5D.Text=Themes"&gt;mont&amp;oacute;n de temas&lt;/a&gt; que pod&amp;eacute;is aplicar directamente a las plantillas de proyecto de Silverlight.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_175F6CC2.png"&gt;&lt;img height="313" width="516" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_3B27F882.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Y pasar del estilo de la plantilla por defecto a una un poco m&amp;aacute;s trabajada&amp;hellip;.sustituyendo simplemente el fichero de estilos por defecto por el que os descargu&amp;eacute;is de la web de &lt;a href="http://gallery.expression.microsoft.com/en-us/"&gt;Expression.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_4719C2E9.png"&gt;&lt;img height="344" width="562" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_3E49BA9D.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://gallery.expression.microsoft.com/en-us/sl3theme/resize/file/1151" align="center" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://gallery.expression.microsoft.com/en-us/slthemeretro/resize/file/810" align="center" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=166757" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Ficheros de recursos en Silverlight</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/27/ficheros-de-recursos-en-silverlight.aspx</link><pubDate>Wed, 27 Jan 2010 10:26:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:165817</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=165817</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/27/ficheros-de-recursos-en-silverlight.aspx#comments</comments><description>&lt;p&gt;Pues como &lt;a href="http://geeks.ms/blogs/ilanda/archive/2010/01/20/traductor-de-recursos-gratuito.aspx"&gt;lo prometido es deuda&lt;/a&gt;, en esta ocasi&amp;oacute;n toca hablar sobre localizaci&amp;oacute;n de aplicaciones Silverlight y m&amp;aacute;s concretamente de c&amp;oacute;mo en el c&amp;oacute;digo XAML se puede indicar que use una cadena que se encuentra en un fichero de recursos.&lt;/p&gt;
&lt;p&gt;Para este ejemplo he creado un proyecto de tipo &amp;ldquo;Silverlight Application&amp;rdquo; usando &lt;strong&gt;Visual Studio 2008 SP1 y Silverlight 3&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Una vez hecho, esto, he a&amp;ntilde;adido al proyecto que contiene los ficheros xaml dos ficheros de recursos, dos ficheros resx; uno para la cultura por defecto y otro para la cultura ingles americano (en-US). &lt;/p&gt;
&lt;p&gt;Les he llamado FicheroRecursos.resx y FicheroRecursos.en-US.resx&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_5D78DC52.png"&gt;&lt;img height="283" width="373" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_0B928C73.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_07588EE1.png"&gt;&lt;img height="279" width="426" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_57D9FA47.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Una vez hecho esto, en cada uno de los ficheros he a&amp;ntilde;adido una nueva entrada llamada &amp;ldquo;Cadena&amp;rdquo;. En el archivo por defecto he puesto el valor por defecto y en el otro el valor en ingles.&lt;/p&gt;
&lt;p&gt;El siguiente paso es indicar en la aplicaci&amp;oacute;n Silverlight las culturas que &amp;eacute;sta va a soportar; en nuestro caso bastar&amp;iacute;a con indicar la cultura &amp;ldquo;en-US&amp;rdquo;, porque en el resto de los casos sacar&amp;iacute;a los valores del fichero de recursos por defecto.&lt;/p&gt;
&lt;p&gt;Para hacer esto, lo primero que tenemos que hacer &lt;strong&gt;es descargar el proyecto&lt;/strong&gt; que contiene los ficheros xaml de la soluci&amp;oacute;n (Unload Project) y editar el fichero .csproj&amp;hellip;con el editor de VStudio, con el notepad o con lo que queramos.&lt;/p&gt;
&lt;p&gt;En el &lt;strong&gt;tag supportedCultures&lt;/strong&gt; tenemos que a&amp;ntilde;adir todas las culturas que queremos que soporte. Si hay varias, debemos separarlas por punto y coma.&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;es-ES;en-US&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Una vez hecho esto, tenemos que volver a cargar el proyecto(Reload Project).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_3FF31321.png"&gt;&lt;img height="114" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_734ED67D.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;El siguiente paso es hacer los cambios necesarios para que desde el c&amp;oacute;digo XAML podamos tener acceso a las cadenas que hay dentro del fichero de recursos.&lt;/p&gt;
&lt;p&gt;Cuando hemos creamos el fichero de recursos habr&amp;eacute;is visto que se ha creado un fichero llamado &lt;strong&gt;FicheroRecursos.Designer.cs &lt;/strong&gt;que contiene una clase llamada &amp;ldquo;FicheroRecursos&amp;rdquo; que posibilita el acceso a las cadenas definidas dentro del fichero.&lt;/p&gt;
&lt;p&gt;El &amp;ldquo;problema&amp;rdquo; es que por defecto tanto la clase como el constructor &lt;strong&gt;est&amp;aacute;n declarados como internal&lt;/strong&gt; y por tanto, no podremos acceder desde el c&amp;oacute;digo XAML directamente.&lt;/p&gt;
&lt;div&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;p&gt;&lt;span style="color:#0000ff;"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; FicheroRecursos {&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; global::System.Resources.ResourceManager resourceMan;&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; global::System.Globalization.CultureInfo resourceCulture;&lt;br /&gt;        &lt;br /&gt;        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(&lt;span style="color:#006080;"&gt;&amp;quot;Microsoft.Performance&amp;quot;&lt;/span&gt;, &lt;span style="color:#006080;"&gt;&amp;quot;CA1811:AvoidUncalledPrivateCode&amp;quot;&lt;/span&gt;)]&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;internal&lt;/span&gt; FicheroRecursos() {&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;&amp;hellip;&amp;hellip;..&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Primero haremos que la clase sea p&amp;uacute;blica. Para ello, seleccionamos el fichero de recursos y lo podemos como &amp;ldquo;public&amp;rdquo;. De esta manera ponemos la clase como p&amp;uacute;blica, pero el constructor sigue siendo &amp;ldquo;internal&amp;rdquo;.&lt;/div&gt;
&lt;div&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_7BEF2F09.png"&gt;&lt;img height="90" width="544" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_5A8F896D.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;div&gt;Ya que el constructor sigue siendo &amp;ldquo;internal&amp;rdquo;, nos vemos obligados a crear una clase p&amp;uacute;blica con un constructor p&amp;uacute;blico que nos haga de intermediario para poder acceder a la clase del fichero de recursos.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;La clase intermediaria ser&amp;iacute;a algo as&amp;iacute;: (esta es la clase que usaremos desde el XAML)&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; ClaseAccesoRecursos&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; FicheroRecursos ficheroRecursos = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; FicheroRecursos();&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; FicheroRecursos FicheroRecursos { get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; ficheroRecursos; } }&lt;br /&gt;}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Una vez hecho, esto, tenemos que editar el fichero App.xaml y a&amp;ntilde;adir la siguiente declaraci&amp;oacute;n: (SilverlightAppSample es el namespace de ClaseAccesoRecursos)&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Application.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;local:ClaseAccesoRecursos&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns:local&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;=&amp;quot;clr-namespace:SilverlightAppSample&amp;quot;&lt;/span&gt;&lt;br /&gt;                       &lt;span style="color:#ff0000;"&gt;x:Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ClaseAccesoRecursos&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Application.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Y ya por fin, podremos usar las cadenas dentro del c&amp;oacute;digo XAML. Si nuestra aplicaci&amp;oacute;n tiene un Label, la sintaxis para indicarle que use una cadena que est&amp;aacute; en un fichero de recursos ser&amp;iacute;a as&amp;iacute;:&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;dataInput:Label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{Binding FicheroRecursos.Cadena, Source={StaticResource ClaseAccesoRecursos}}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;dataInput:Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Ya para terminar, tenemos que configurar la aplicaci&amp;oacute;n web para que se adapte a la cultura del navegador y que la aplicaci&amp;oacute;n Silverlight haga lo mismo.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Como vimos en el &lt;a href="http://geeks.ms/blogs/ilanda/archive/2010/01/20/traductor-de-recursos-gratuito.aspx"&gt;WebCast&lt;/a&gt;, en el fichero de configuraci&amp;oacute;n de la aplicaci&amp;oacute;n web podemos a&amp;ntilde;adir lo siguiente:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;globalization&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;uiCulture&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Auto&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;culture&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Auto&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Una vez hecho, editaremos el fichero aspx que sirve para probar la aplicaci&amp;oacute;n (SilverlightAppSampleTestPage.aspx) para que le pase como par&amp;aacute;metro la cultura que tiene que utilizar.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Dentro del control object a&amp;ntilde;adiremos lo siguiente:&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;param&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;uiculture&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;&amp;lt;%=System.Threading.Thread.CurrentThread.CurrentUICulture%&amp;gt;&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;param&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;culture&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;&amp;lt;%=System.Threading.Thread.CurrentThread.CurrentCulture%&amp;gt;&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Y con esto ya est&amp;aacute;, ya hemos llegado al final. &amp;iquest;Un poco lioso? Pues s&amp;iacute;, pero de momento es lo que hay para Silverlight :-(&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=165817" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Método Response.RedirectPermanent()</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/26/m-233-todo-response-redirectpermanent.aspx</link><pubDate>Tue, 26 Jan 2010 00:41:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:165834</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=165834</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/26/m-233-todo-response-redirectpermanent.aspx#comments</comments><description>&lt;p&gt;Hace unos d&amp;iacute;as os hablaba de &lt;a href="http://geeks.ms/blogs/ilanda/archive/2010/01/14/search-engine-optimization-toolkit.aspx"&gt;SEO Toolkit&lt;/a&gt;, una utilidad que permite analizar un website para optimizar el volumen y la calidad del tr&amp;aacute;fico que recibe desde los motores de b&amp;uacute;squeda, como Bing o Google.&lt;/p&gt;
&lt;p&gt;Jugando un poco con la utilidad, una cosa que vi es que uno de las situaciones de las que avisa la herramienta es de un exceso de redirecciones.&lt;/p&gt;
&lt;p&gt;La raz&amp;oacute;n es que el m&amp;eacute;todo &lt;strong&gt;Response.Redirect&lt;/strong&gt; genera una respuesta &lt;strong&gt;HTTP 302&lt;/strong&gt; (redirecci&amp;oacute;n temporal). Los motores de b&amp;uacute;squeda no siguen estos saltos, por lo que usar este tipo de redirecciones afecta negativamente al ranking de la p&amp;aacute;gina.&lt;/p&gt;
&lt;p&gt;Al entender que es una redirecci&amp;oacute;n temporal, s&amp;oacute;lo indexa la primera, la URL desde la que se hace el redirect.&lt;/p&gt;
&lt;p&gt;Con ASP.NET 4.0 tendremos un nuevo m&amp;eacute;todo llamado &lt;strong&gt;Response.RedirectPermanent(url)&lt;/strong&gt; que puede usarse para realizar una redirecci&amp;oacute;n, pero generando una respuesta &lt;strong&gt;HTTP 301 &lt;/strong&gt;(movido permanentemente).&lt;/p&gt;
&lt;p&gt;Usar este m&amp;eacute;todo &lt;strong&gt;ayudar&amp;aacute; a los motores de b&amp;uacute;squeda&lt;/strong&gt; para entender que la redirecci&amp;oacute;n es permanente y usar la nueva URL, a la que se redirige, para que indexe sus contenidos.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si tuvi&amp;eacute;ramos URLs antiguas que ya no son v&amp;aacute;lidas y que lo &amp;uacute;nico que hacen es redirigir a una URL nueva, usar este nuevo m&amp;eacute;todo ser&amp;iacute;a mucho m&amp;aacute;s adecuado.&lt;/p&gt;
&lt;p&gt;Habr&amp;aacute; que tenerlo en cuenta cuando empecemos con ASP.NET 4.0..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=165834" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Framework/default.aspx">Framework</category></item><item><title>[Artalde.NET] Extensibilidad con MEF y paralelismo con TPL y PLINQ.</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/25/artalde-net-extensibilidad-con-mef-y-paralelismo-con-tpl-y-plinq.aspx</link><pubDate>Mon, 25 Jan 2010 07:19:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:165782</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=165782</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/25/artalde-net-extensibilidad-con-mef-y-paralelismo-con-tpl-y-plinq.aspx#comments</comments><description>&lt;p&gt;El próximo&lt;strong&gt; 3 de febrero, miércoles&lt;/strong&gt;, tendrá lugar la siguiente charla del grupo de usuarios &lt;a href="http://www.artalde.net/"&gt;Artalde&lt;/a&gt;, esta vez hablando de algunas de las novedades de .NET Framework 4.0 para desarrolladores; &lt;strong&gt;una introducción a extensibilidad con MEF y paralelismo con TPL y PLINQ.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El lugar y hora, el de siempre; en la Universidad de Deusto, de 19:00 a 21:00 horas. &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032440932&amp;amp;Culture=es-ES"&gt;El registro aquí&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;En esta ocasión, será &lt;a href="http://www.luisguerrero.net/"&gt;Luis Guerrero&lt;/a&gt; el que haga los honores y nos muestre las maravillas que nos trae la versión 4.0 del Framework…cremita de la buena!&lt;/p&gt;  &lt;p&gt;Aquí os dejo la descripción completa de la charla:&lt;/p&gt;  &lt;p&gt;En esta charlas veremos las novedades de las nos nuevas librerías que Microsoft incluye en .NET Framework para el desarrollo de extensibilidad de las aplicaciones, usado internamente por Microsoft para la extensibilidad de plug-ins en Visual Studio 2010, y cómo afrontar los problemas de concurrencia con &lt;strong&gt;Task Parallel Library&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MEF (Managed Extensibility Framework):&lt;/strong&gt; El Framework de Extensibilidad para componentes administrados es una nueva librería incluida en el .NET Framework 4.0 que permite reutilizar aplicaciones y&amp;#160; componentes. Usando MEF, las aplicaciones .NET pueden avanzar de ser estáticamente compiladas a ser dinámicamente compuestas en runtime. Una aplicación MEF está compuesta de Parts que se exportan, se importan y se componen. &lt;a href="http://www.codeplex.com/mef/"&gt;http://www.codeplex.com/mef/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Parallel Programming in the .NET Framework:&lt;/strong&gt; Son una serie de nuevas APIs que permiten al desarrollador trabajar con el software y paralelizar los componentes para sacar el máximo partido a toda la potencia que los procesadores de varios cores ofrecen. Veremos TPL (Task Parallel Library) que es la librería para trabajar con Task, que son las nuevas unidades mínimas de paralización (nunca más threads), también veremos PLINQ que nos ofrece que la posibilidad de ejecutar nuestras consultas de LINQ tradicionales en varios cores y con mínimo impacto en la modificación de nuestra query y para finalizar veremos las nuestras estructuras de datos para la programación paralela, como pilas, colas y listas.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Lugar:&lt;/b&gt;     &lt;br /&gt;Universidad de Deusto     &lt;br /&gt;Edificio ESIDE, Aula de videoconferencia (2º piso)     &lt;br /&gt;Avda Universidades, 24     &lt;br /&gt;48007, BILBAO     &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=165782" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Evento/default.aspx">Evento</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Artalde/default.aspx">Artalde</category></item><item><title>[CodeCamp 2009] Video sobre RIA Services</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/21/codecamp-2009-video-sobre-ria-services.aspx</link><pubDate>Thu, 21 Jan 2010 21:15:46 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:165686</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=165686</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/21/codecamp-2009-video-sobre-ria-services.aspx#comments</comments><description>&lt;p&gt;Como seguro que muchos de vosotros ya sabréis ya están disponibles la mayoría de las charlas que se pudieron ver en el &lt;a href="http://www.codecamp.es/"&gt;CodeCamp 2009&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Ya os comenté &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/10/18/de-tarragona-a-santander.aspx"&gt;anteriormente&lt;/a&gt; que tuve el placer de participar hablando sobre RIA Services. &lt;/p&gt;  &lt;p&gt;Pues aquí tenéis el video por si alguno le interesa, aunque tened en cuenta que la charla se hizo con la versión Beta.&lt;/p&gt;  &lt;p&gt;&lt;embed src="http://blip.tv/play/AYG9ujcC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/p&gt;  &lt;p&gt;El resto de videos y materiales podéis encontrarlos &lt;a href="http://www.secondnug.com/CodeCamp2009/tabid/94/Default.aspx"&gt;aquí.&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=165686" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Traductor de recursos gratuito</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/20/traductor-de-recursos-gratuito.aspx</link><pubDate>Wed, 20 Jan 2010 21:26:09 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:165589</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=165589</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/20/traductor-de-recursos-gratuito.aspx#comments</comments><description>&lt;p&gt;Ayer mismo tuve el placer de participar en una charla organizada por &lt;a href="http://www.secondnug.com/"&gt;SecondNug&lt;/a&gt; hablando sobre &lt;a href="http://geeks.ms/blogs/ilanda/archive/2010/01/07/evento-secondnug-191-tus-programas-saben-idiomas.aspx"&gt;localización de aplicaciones&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Uno de los temas que salió, fue el tema de la traducción de recursos. Comenté que había una herramienta gratuita para la traducción de recursos que hace uso del sistema de&lt;strong&gt; traducción de Bing&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Aunque alguno ya lo comentó en la charla, la aplicación se llama “&lt;strong&gt;&lt;a href="http://www.scientia.com.ar/descargas.aspx"&gt;Scientia Resource Translator&lt;/a&gt;&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Permite seleccionar un fichero de recursos y generar los ficheros de recursos en los idiomas seleccionadas. Soporta 20 idiomas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_0E0D8B2E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_59E8C60D.png" width="288" height="429" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/srtlang_5F00_66B2F65E.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="srt-lang" border="0" alt="srt-lang" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/srtlang_5F00_thumb_5F00_34F7D909.jpg" width="262" height="435" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por cierto, para aquellos que estéis interesados recordad que podéis ver o descargaros el &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=es-AR&amp;amp;EventID=1032436213&amp;amp;CountryCode=AR"&gt;WebCast&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;PD:En breve espero poder publicar alguna otra cosa más que quedo pendiente…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=165589" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Search Engine Optimization Toolkit</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/14/search-engine-optimization-toolkit.aspx</link><pubDate>Thu, 14 Jan 2010 11:47:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:164584</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=164584</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/14/search-engine-optimization-toolkit.aspx#comments</comments><description>&lt;p&gt;Hoy os hablo de una utilidad que aunque no es nueva, yo he descubierto recientemente y me parece bastante interesante; &lt;a href="http://www.microsoft.com/web/seo/default.aspx"&gt;SEO Toolkit&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Esta utilidad permite analizar un website para optimizar el volumen y la calidad del tráfico que recibe desde los motores de búsqueda, como Bing o Google; para que los motores de búsqueda nos encuentren más fácil…&lt;/p&gt;  &lt;p&gt;Una vez que lo instaléis, se añade como una opción más en la administración del Internet Information Server. &lt;/p&gt;  &lt;p&gt;Una vez instalado, ya veréis que es muy sencillo utilizarlo.Sólo es necesario indicar la URL sobre la que hacer el análisis y ya está, a analizar los resultados y a optimizar tu site!&lt;/p&gt;  &lt;p&gt;Por cierto, el WebSite que se analiza puede estar colgado en cualquier tipo de servidor, no tiene por qué ser IIS.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp_5F00_3727FFB0.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SearchOp" border="0" alt="SearchOp" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp_5F00_thumb_5F00_48F46DB0.jpg" width="488" height="451" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp2_5F00_528CB619.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SearchOp2" border="0" alt="SearchOp2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp2_5F00_thumb_5F00_22A1EE8B.jpg" width="480" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp3_5F00_5F0A3D68.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SearchOp3" border="0" alt="SearchOp3" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp3_5F00_thumb_5F00_3B8D9903.jpg" width="634" height="285" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp4_5F00_3940EA7A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="SearchOp4" border="0" alt="SearchOp4" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/SearchOp4_5F00_thumb_5F00_671E1765.jpg" width="617" height="435" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Espero que os sea de utilidad!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=164584" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Internet+Information+Server/default.aspx">Internet Information Server</category></item><item><title>InstallShield Limited Edition  para Visual Studio 2010</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/12/installshield-limited-edition-para-visual-studio-2010.aspx</link><pubDate>Tue, 12 Jan 2010 07:01:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:164526</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=164526</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/12/installshield-limited-edition-para-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;Hace poco que leía un&amp;#160; post sobre cómo hacer un instalador haciendo uso de los proyectos de Setup de Visual Studio.&lt;/p&gt;  &lt;p&gt;Es importante conocer que una cosa interesante que nos llegará con Visual Studio 2010 será la posibilidad de contar con una versión limitada del &lt;a href="http://www.flexerasoftware.com/products/installshield.htm"&gt;InstallShield&lt;/a&gt;, una de las herramientas más completas para la generación de instaladores. &lt;/p&gt;  &lt;p&gt;Para mí una gran noticia, ya que es una solución que he usado en más de una ocasión y me parece bastante interesante, sobre todo si hay una versión gratuita.&lt;/p&gt;  &lt;p&gt;Para descargarse la versión limitada de InstallShield se debe hacer desde el siguiente menú: &lt;strong&gt;File&amp;gt;New&amp;gt;Project&amp;gt;Other Project Types&amp;gt; Setup and Deployment&amp;gt;InstallShield 2010 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Será necesario registrarse para poder descargarse la versión.&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/EnableInstallShield_5F00_7DE4B7B6.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="EnableInstallShield" border="0" alt="EnableInstallShield" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/EnableInstallShield_5F00_thumb_5F00_272BD9E8.jpg" width="686" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/GoToInstallShieldSmall_5F00_0F44F2C2.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="GoToInstallShieldSmall" border="0" alt="GoToInstallShieldSmall" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/GoToInstallShieldSmall_5F00_thumb_5F00_4BAD419F.jpg" width="461" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/NewProject_5F00_6F85F32C.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="NewProject" border="0" alt="NewProject" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/NewProject_5F00_thumb_5F00_05F891B4.jpg" width="734" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;En el blog de &lt;a href="http://blogs.msdn.com/somasegar/"&gt;Somasegar&lt;/a&gt; podéis encontrar el &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/12/14/building-setup-and-deployment-packages-in-vs-2010.aspx"&gt;Post original&lt;/a&gt; dónde leí la noticia.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=164526" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>[Evento-SecondNUG] ¿Tus programas saben idiomas?</title><link>http://geeks.ms/blogs/ilanda/archive/2010/01/07/evento-secondnug-191-tus-programas-saben-idiomas.aspx</link><pubDate>Thu, 07 Jan 2010 11:04:09 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:164522</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=164522</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2010/01/07/evento-secondnug-191-tus-programas-saben-idiomas.aspx#comments</comments><description>&lt;p&gt;No sé qué extraña locura les ha movido, pero los chicos de &lt;a href="http://www.secondnug.com/"&gt;Second Nug&lt;/a&gt; han vuelto a confiar en mí para realizar un WebCast, esta vez, hablando sobre &lt;strong&gt;localización de aplicaciones&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;El próximo &lt;strong&gt;19 de Enero&lt;/strong&gt;, martes, tendré la oportunidad de hablaros sobre los aspectos principales a tener en cuenta para localizar nuestras aplicaciones.&lt;/p&gt;  &lt;p&gt;El proceso de localización comprende todas las tareas asociadas al hecho de adaptar nuestro producto a una región o país específico; traducción de textos, formatos de fechas, monedas, unidades, etc. &lt;/p&gt;  &lt;p&gt;Preparar tu aplicación para que pueda ser localizada no es una cuestión trivial y es importante conocer las implicaciones que este proceso supone y las diferentes alternativas con las que contamos. &lt;/p&gt;  &lt;p&gt;En éste evento veremos de forma práctica las principales alternativas de las que disponemos para asegurarnos que nuestra aplicación esté preparada para ser localizada: Culturas, ficheros de recursos, cadenas en base de datos, trabajo con idiomas con caracteres extendidos, etc. ¿Estás preparado? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/banner_5F00_localizacion_5F00_361A4EC7.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="banner_localizacion" border="0" alt="banner_localizacion" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/banner_5F00_localizacion_5F00_thumb_5F00_081CD642.jpg" width="454" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Para aquellos que estéis interesados en el evento os pongo unos enlaces que os resultarán útiles:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032436212&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR"&gt;Página de Registro&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://office.microsoft.com/es-es/help/HA101733831033.aspx"&gt;Descargar Live Meeting&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/fdiaz/archive/2008/03/05/how-to-como-entrar-en-una-webcast-a-ver-un-evento.aspx"&gt;Cómo entrar en una Webcast a ver un evento&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=164522" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Evento/default.aspx">Evento</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Framework/default.aspx">Framework</category></item><item><title>WCF RIA Services. Resumen</title><link>http://geeks.ms/blogs/ilanda/archive/2009/12/31/wcf-ria-services-resumen.aspx</link><pubDate>Thu, 31 Dec 2009 10:51:50 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:164003</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=164003</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/12/31/wcf-ria-services-resumen.aspx#comments</comments><description>&lt;p&gt;Después de echar la bronca a un “mal” compañero por no leerme y preguntarme sobre RIA Services, he decidido poneros un pequeño recopilatorio de los post que he escrito sobre &lt;a href="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx"&gt;WCF RIA Services&lt;/a&gt; y así el que quiera pueda ponerse un poco al día en esta tecnología.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/10/191-qu-233-son-los-ria-services.aspx"&gt;¿Qué son los RIA Services?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/17/ria-services-paso-a-paso-i.aspx"&gt;Paso a paso&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/23/ria-services-sobre-la-generaci-243-n-de-c-243-digo.aspx"&gt;Sobre la generación de código…&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/25/ria-services-y-domaindatasource.aspx"&gt;DomainDataSource&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/26/trabajando-con-el-domaindatasource-canela-fina-fina.aspx"&gt;Trabajando con el DomainDataSource….Canela fina, fina!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/30/ria-services-c-243-mo-compartir-c-243-digo-entre-el-cliente-y-el-servidor.aspx"&gt;Cómo compartir código entre el cliente y el servidor&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/07/02/las-clases-de-metadatos.aspx"&gt;Las clases de metadatos&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/19/wcf-ria-services-beta.aspx"&gt;WCF RIA Services Beta&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/20/por-fin-un-poco-de-cordura.aspx"&gt;Integración en WCF.Por fin un poco de cordura!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx"&gt;Pues sí que va a ser WCF…&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/12/09/destripando-la-comunicaci-243-n-de-wcf-ria-services.aspx"&gt;Destripando la comunicación de WCF RIA Services&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/10/20/materiales-del-evento-de-ria-services-del-codecamp.aspx"&gt;Materiales del evento de RIA Services del CodeCamp&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/09/15/silverlight-3-out-of-browser.aspx"&gt;Silverlight 3 Out of browser&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/09/17/ado-net-data-services-offline-astoria-offline.aspx"&gt;ADO.Net Data Services Offline (Astoria Offline)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Algunos post está hechos con las versiones previews pero en esencia es lo mismo. Espero que os sea de utilidad!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=164003" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Destripando la comunicación de WCF RIA Services</title><link>http://geeks.ms/blogs/ilanda/archive/2009/12/09/destripando-la-comunicaci-243-n-de-wcf-ria-services.aspx</link><pubDate>Wed, 09 Dec 2009 08:21:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:161516</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=161516</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/12/09/destripando-la-comunicaci-243-n-de-wcf-ria-services.aspx#comments</comments><description>&lt;p&gt;Ya un &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx" target="_blank"&gt;post anterior&lt;/a&gt; hablaba de cómo RIA Services se ha integrado dentro de WCF. En ese &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx" target="_blank"&gt;post anterior&lt;/a&gt; lo poníamos a prueba y veíamos cómo realmente es WCF, que no nos engañaban!&lt;/p&gt;  &lt;p&gt;En este post toca ver &lt;strong&gt;en detalle&lt;/strong&gt; algunas cosas sobre cómo se produce esta integración.&lt;/p&gt;  &lt;p&gt;Una de las cosas que vimos es cómo al crear la aplicación, el DomainService&lt;strong&gt; crea un servicio WCF implícito&lt;/strong&gt;, que el cliente es capaz de instanciar y usar para realizar las peticiones, siendo la estructura del servicio la siguiente:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://[hostname]/[namespacename]-[classname].svc"&gt;http://[hostname]/[namespacename]-[classname].svc&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por ejemplo, &lt;a href="http://localhost:XXX/BusinessAplication1-Web-OrganizationService.svc"&gt;http://localhost:XXX/BusinessAplication1-Web-OrganizationService.svc&lt;/a&gt;&amp;#160;&lt;em&gt;(BussinessApplication1-Web es el nombre del namespace,cambiando el punto por un guión )&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;WCF RIA Services implementa su propio ServiceHost ( &lt;strong&gt;DomainServiceHost&lt;/strong&gt; ), el cual expone&lt;strong&gt; tres endpoints&lt;/strong&gt;; WebHttpBinding (REST + JSON), BasicHttpBinding (SOAP+XML) y BinaryHttpBinding (SOAP+Binario), siendo éste último el que se usa por defecto.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;WebHttpBinding: &lt;a href="http://[hostname]/[namespacename]-[classname].svc"&gt;http://[hostname]/[namespacename]-[classname].svc&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;BasicHttpBinding:&lt;a href="http://[hostname]/[namespacename]-[classname].svc/soap"&gt;http://[hostname]/[namespacename]-[classname].svc/soap&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;BinaryHttpBinding:&lt;a href="http://[hostname]/[namespacename]-[classname].svc/binary"&gt;http://[hostname]/[namespacename]-[classname].svc/binary&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Si queremos cambiar el endpoint que se utiliza en la comunicación cliente-servidor, simplemente tenemos que indicar la dirección del endpoint que queremos usar al crear el DomainContext en el cliente:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;OrganizationContext ctx = OrganizationContext(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&lt;span style="color:#006080;"&gt;&amp;quot;BusinessApplication1-Web-OrganizationService.svc/soap&amp;quot;&lt;/span&gt;, UriKind.Relative)));&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Aunque el servicio se crea de forma implítica, comentaros que también &lt;strong&gt;lo podemos crear de forma explícita&lt;/strong&gt;. Es tan fácil como crear un nuevo fichero llamando [namespacename]-[classname].svc, con el siguiente contenido:&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;p&gt;&amp;lt;%@ ServiceHost Service=&lt;span style="color:#006080;"&gt;&amp;quot;BusinessAplication1.Web.OrganizationService&amp;quot;&lt;/span&gt; Factory=&lt;span style="color:#006080;"&gt;&amp;quot;System.Web.Ria.Services.DomainServiceHostFactory, &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006080;"&gt;System.Web.Ria, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt; %&amp;gt;&lt;/p&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div&gt;De esta manera, tendremos un fichero svc creado físicamente, pero el funcionamiento de la aplicación no se ve alterado; por tanto, da igual crearlo que no crearlo. ¿Entonces?&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Pues si nos vale con la funcionalidad que ofrece, pues no nos vale para nada, pero si queremos aprender cómo funciona o por qué no, personalizar el funcionamiento por defecto, sí que nos puede venir bien.&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Como veis en el contenido del fichero svc, RIA Services usa un &lt;strong&gt;DomainServiceHostFactory&lt;/strong&gt;, que no es más que una clase que extiende la clase &lt;strong&gt;ServiceHostFactory&lt;/strong&gt;, y que lo que hace es proporcionar la funcionalidad que RIA Services necesita, por ejemplo, la de exponer los tres endpoints que comentábamos anteriormente.&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Si quisiéramos crear nuevo propio comportamiento podría ser “tan fácil” como crearnos una nueva clase hija de ServiceHostFactory y ala, a personalizar todo lo que queramos :-)&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;El fichero svc quedaría algo así: &lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;p&gt;&amp;lt;%@ ServiceHost Service=&lt;span style="color:#006080;"&gt;&amp;quot;BusinessAplication1.Web.OrganizationService&amp;quot;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;Factory=&lt;span style="color:#006080;"&gt;&amp;quot;BusinessAplication1.Web.CustomDomainServiceHostFactory&amp;quot;&lt;/span&gt; %&amp;gt;&lt;/p&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div&gt;Otra forma de hacerlo, en lugar de extender ServiceHostFactory, puede ser hacerlo de DomainServiceFactory. Por ejemplo, si quisiéramos hacer que nuestro servicio siempre funcione en binario y que no exponga los dos otros endpoints, ésta podría ser la solución más adecuada.&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;Los métodos que se usan dentro del método AddEndpoints para crear los endpoints los proporciona la clase base DomainServiceHostFactory. 
  &lt;br /&gt;&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; CustomDomainServiceHostFactory:DomainServiceHostFactory&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; System.ServiceModel.ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; CustomDomainServiceHost(serviceType, baseAddresses);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; CustomDomainServiceHost:DomainServiceHost&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; CustomDomainServiceHost(Type domainServiceType, &lt;span style="color:#0000ff;"&gt;params&lt;/span&gt; Uri[] baseAddresses)&lt;br /&gt;            : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(domainServiceType, baseAddresses)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; AddEndpoints()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (Uri uri &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.BaseAddresses)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color:#008000;"&gt;//AddSoapWithBinaryEndpoint(uri);&lt;/span&gt;&lt;br /&gt;                AddRestWithJsonEndpoint(uri);&lt;br /&gt;                &lt;span style="color:#008000;"&gt;//AddSoapWithXmlEndpoint(uri);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            }                      &lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=161516" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Trabajando con el DomainDataSource….Canela fina, fina!</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/26/trabajando-con-el-domaindatasource-canela-fina-fina.aspx</link><pubDate>Thu, 26 Nov 2009 22:12:32 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:161376</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=161376</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/26/trabajando-con-el-domaindatasource-canela-fina-fina.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;[Luis, va por tí…un poquito de cremita, canela fina, fina..]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;En un &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/19/wcf-ria-services-beta.aspx" target="_blank"&gt;post anterior&lt;/a&gt; os comentaba que una de las novedades de la última versión de &lt;a href="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx" target="_blank"&gt;RIA Services&lt;/a&gt; es que se ha simplificado enormemente el trabajo con el componente DomainDataSource.&lt;/p&gt;  &lt;p&gt;Este componente nos va permitir trabajar de una manera bastante cómoda contra servicios de dominio que se exponen con RIA Services.&lt;/p&gt;  &lt;p&gt;Hasta la salida de la versión beta, la utilización de este componente requería escribir bastante código XAML.&lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/25/ria-services-y-domaindatasource.aspx" target="_blank"&gt;En este post&lt;/a&gt; ya vimos cómo se usaba este control y algún ejemplo del código XAML a escribir. &lt;/p&gt;  &lt;p&gt;En aplicaciones de negocio las operaciones de altas,bajas y modificaciones son las operaciones más habituales…listados, maestros-detalles, disponer de filtros, permitir ordenar…..es en todas estas situaciones dónde el control&lt;strong&gt; DomainDataSource nos debe ahorrar mucho trabajo&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Pero hasta la salida de la versión beta para hacer estas operaciones era necesario escribir demasiado código XAML. Demasiado código para tareas tan habituales. &lt;/p&gt;  &lt;p&gt;Yo soy de la opinión que las tareas más habituales deben poder hacerse de la manera más automática y productiva posible…&lt;/p&gt;  &lt;p&gt;Pues bien, con la Beta de RIA Services la cosa cambia&lt;strong&gt; y se simplifica enormemente el trabajo…a través de operaciones de arrastrar-soltar y con configuraciones a través de menús de propiedades pueden&lt;/strong&gt; &lt;strong&gt;realizarse las tareas más habituales.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A nivel de servidor, los pasos que debemos realizar son los mismos que &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/17/ria-services-paso-a-paso-i.aspx" target="_blank"&gt;veíamos hasta ahora&lt;/a&gt;. Una vez que tenemos el DomainService creado y queremos usarlo en el cliente Silverlight es cuando la cosa cambia.&lt;/p&gt;  &lt;p&gt;El primer paso es acceder al menú DataSource, desde el cuál podremos ver todos los DomainServices que expone el servidor y desde el cuál podremos hacer todas las operaciones que necesitamos.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/ViewDataSource_5F00_58017622.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ViewDataSource" border="0" alt="ViewDataSource" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/ViewDataSource_5F00_thumb_5F00_223C0AFB.jpg" width="259" height="70" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El primer paso va a ser hacer un listado de los empleados. Para ello, sólo tenemos que seleccionar el DomainService en el menú DataSource, indicar que queremos que se muestre como un DataGrid y arrastrarlo a la interfaz Silverlight. &lt;strong&gt;De manera inmediata tenemos un grid que muestra la lista de empleados&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DataSource_5F00_47595567.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="DataSource" border="0" alt="DataSource" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DataSource_5F00_thumb_5F00_6557635B.jpg" width="244" height="214" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Grid_5F00_55681E97.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Grid" border="0" alt="Grid" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Grid_5F00_thumb_5F00_0AB130FD.jpg" width="537" height="221" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Fijaros en la imagen, que al seleccionar la servicio Empleados podemos elegir cómo queremos que se muestre cuando lo arrastramos a la página; DataGrid, Details o también podemos elegir otro control, por ejemplo, un listbox.&lt;/p&gt;  &lt;p&gt;Del mismo modo en que podemos elegir como se va a dibujar la entidad completa, también podemos personalizar cómo se va a representar cualquier propiedad de la misma…por ejemplo, fijaros que en las fechas se muestra un calendar, pero podrías decidir que sólo queremos mostrar una etiqueta….&lt;strong&gt;todo desde el menú DataSource y sin tocar nada de código XAML&lt;/strong&gt;. (si seleccionamos la opción “None”, esa propiedad no se mostrará)&lt;/p&gt;  &lt;p&gt;Fijaros también en que está seleccionado el método “GetEmployeesQuery”. Este es el único método de tipo Query del servicio. Si tuviese varios, es aquí dónde podríamos elegir cuál de los métodos del servicio queremos que se utilice cuando lo arrastramos a la página.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Customize_5F00_158E1245.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Customize" border="0" alt="Customize" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Customize_5F00_thumb_5F00_2475415F.jpg" width="425" height="373" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por ejemplo, si indicamos que queremos ver los detalles y lo arrastramos, tendremos el siguiente resultado:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Details_5F00_2113A9B7.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Details" border="0" alt="Details" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/Details_5F00_thumb_5F00_052274BF.jpg" width="216" height="414" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Meter paginación al listado anterior veréis que también es muy sencillo. &lt;/p&gt;  &lt;p&gt;Lo primero que tendréis que hacer es incluir en la Toolbox el control DataPager. Desde la toolbox, botón derecho “Add Items”.&lt;/p&gt;  &lt;p&gt;Una vez que tenemos el control DataPager lo arrastramos a la página, configuramos el control para que se vean 5 páginas en las propiedades y le indicamos que tiene que paginar la lista de empleados…¿Cómo? &lt;/p&gt;  &lt;p&gt;Pues tan fácil como arrastrar la entidad Empleados del DomainService (la misma que hemos arrastrado para ver el grid) sobre el control DataPager. Con esta simple acción ya queda configurado!!&lt;strong&gt; Ya tenemos paginación sobre el listado.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/AddControl_5F00_699D72BB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="AddControl" border="0" alt="AddControl" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/AddControl_5F00_thumb_5F00_06B2F4F9.jpg" width="359" height="275" /&gt;&lt;/a&gt; &lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DataPager_5F00_23003719.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="DataPager" border="0" alt="DataPager" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/DataPager_5F00_thumb_5F00_3906A2AB.jpg" width="515" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Y si queremos hacer un maestro-detalle?&lt;/strong&gt; Pues seguimos arrastrando :-)&lt;/p&gt;  &lt;p&gt;Para el listado hemos visto antes que hemos arrastrado la entidad Empleados desde el nodo principal, indicamos que queríamos que se viese como un DataGrid.&lt;/p&gt;  &lt;p&gt;Si desplegamos la entidad, veremos todas sus propiedades. Seleccionamos el nodo “Employees1” y lo arrastramos a la página, indicando que se vea como una formulario de detalles…..&lt;strong&gt;Ya ya está, ya tenemos un maestro detalle!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/GenerateDetails_5F00_0ED6F4C3.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="GenerateDetails" border="0" alt="GenerateDetails" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/GenerateDetails_5F00_thumb_5F00_53A318F7.jpg" width="277" height="316" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/MasterDetail_5F00_0A30C43C.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MasterDetail" border="0" alt="MasterDetail" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/MasterDetail_5F00_thumb_5F00_46991319.jpg" width="426" height="459" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como veis el trabajo se simplifica bastante y de una manera muy sencilla podemos conseguir cosas bastante interesantes…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=161376" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Pues sí que va a ser WCF…</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx</link><pubDate>Tue, 24 Nov 2009 22:39:05 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:161191</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=161191</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/24/pues-s-237-que-va-a-ser-wcf.aspx#comments</comments><description>&lt;p&gt;En un post anterior comentaba cómo una de las novedades de la última versión de RIA Services es que se &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/20/por-fin-un-poco-de-cordura.aspx" target="_blank"&gt;integra dentro de la familia WCF&lt;/a&gt;. Ahora toca comprobar cómo ha quedado.&lt;/p&gt;  &lt;p&gt;Para poder comprobarlo, lo que he hecho es hacer un ejemplo sencillo del mismo modo que lo hacía con las versiones anteriores. En &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/06/17/ria-services-paso-a-paso-i.aspx" target="_blank"&gt;este post&lt;/a&gt; podéis ver los principales pasos a seguir.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sin hacer ningún paso más&lt;/strong&gt; de los que hacíamos en las versiones anteriores, &lt;strong&gt;ya tenemos la comunicación WCF funcionando&lt;/strong&gt;. La comunicación es HTTP, usando protocolo binario. &lt;/p&gt;  &lt;p&gt;Por lo tanto, al menos de momento, la integración de RIA Services en la familia WCF no ha supuesto una mayor complejidad en este tipo de aplicaciones. &lt;/p&gt;  &lt;p&gt;Al crear la aplicación, el DomainService crea un servicio WCF implícito, que el cliente es capaz de instanciar y usar para realizar las peticiones. La estructura del servicio es:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://[hostname]/[namespacename]-[classname].svc"&gt;http://[hostname]/[namespacename]-[classname].svc&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si podemos en el navegador la URL de nuestro servicio, veremos que éste está disponible…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/proxy_5F00_73C0BEEF.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="proxy" border="0" alt="proxy" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/proxy_5F00_thumb_5F00_7344662D.jpg" width="530" height="367" /&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/wsdl_5F00_01532F5E.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="wsdl" border="0" alt="wsdl" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/wsdl_5F00_thumb_5F00_6551D498.jpg" width="534" height="318" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En la relación entre la aplicación Silverlight y el DomainService no es necesario hacer nada más. &lt;/p&gt;  &lt;p&gt;En el servidor se van creando los servicios que consideremos y en el cliente Silverlight los podemos ir usando sin ningún trabajo extra, ya que los proxys se crean de manera automática y transparente, tal y como se hacía en la versiones anteriores. (si os fijáis en los ficheros web.config no veréis “nada” parecido a lo que veis en los servicios WCF tradicionales)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Por lo tanto, al ser un servicio WCF también lo podemos instanciar desde cualquier otra aplicación como si de un servicio “normal” se tratara. &lt;/strong&gt;Por ejemplo, desde una aplicación WinForm podéis hacer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/AddReference_5F00_4592D503.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="AddReference" border="0" alt="AddReference" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/AddReference_5F00_thumb_5F00_136B84B9.jpg" width="465" height="386" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Si os fijáis cómo queda el fichero de configuración de la aplicación WinForm, veréis que queda exactamente igual como quedaría si el servicio WCF fuese un servicio creado directamente.&lt;/p&gt;  &lt;p&gt;Por ejemplo, en la sección cliente podéis ver los dos endpoints que se crean por defecto:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;client&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;endpoint&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;address&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://localhost:30335/Services/BusinessApp-Web-EmpService.svc/soap&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0000;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;basicHttpBinding&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;BasicHttpBinding_EmpServiceDomainService&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0000;"&gt;contract&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ServiceReference1.EmpServiceDomainService&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;BasicHttpBinding_EmpServiceDomainService&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;endpoint&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;address&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://localhost:30335/ServicesBusinessApp-Web-EmpService.svc/binary&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0000;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;customBinding&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;BinaryHttpBinding_EmpServiceDomainService&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0000;"&gt;contract&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;ServiceReference1.EmpServiceDomainService&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;BinaryHttpBinding_EmpServiceDomainService&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;client&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
  &lt;br /&gt;Como veis, la integración de RIA Services en la familia WCF no ha supuesto una mayor complejidad en este tipo de aplicaciones….pero si será un beneficio, ya que nos permitirá beneficiarnos de algunas de las características de WCF.&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;En próximos post espero poder mostrar alguna característica interesante: Cómo hacer uso de los Service Behavior, Operation Behavior o cómo poder crear los servicios svc de forma explícita, por ejemplo, para exponer un servicio usando JSON o REST.&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=161191" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF/default.aspx">WCF</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Por fin un poco de cordura!</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/20/por-fin-un-poco-de-cordura.aspx</link><pubDate>Fri, 20 Nov 2009 21:24:48 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:160934</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=160934</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/20/por-fin-un-poco-de-cordura.aspx#comments</comments><description>&lt;p&gt;Desde el PDC nos llega una interesante noticia y es que se van a unificar varias tecnologías de comunicación de las que dispone Microsoft en una. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RIA Services y ADO.NET Data Services pasan a integrarse dentro de la familia de WCF.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Desde los inicios de &lt;strong&gt;WCF&lt;/strong&gt; uno de los aspectos destacables de esta tecnología siempre me ha parecido que era el hecho de que ofrezca un &lt;strong&gt;marco de trabajo unificado para crear aplicaciones distribuidas. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ya no teníamos que pensar si usar servicios Web ASP.NET, Remoting, Enterprise Services o lo que fuera…teníamos WCF!! que aúna toda la funcionalidad de todas estas tecnologías bajo un modelo de programación único.&lt;/p&gt;  &lt;p&gt;Pero últimamente me daba la sensación de que esta idea se estaba perdiendo &lt;strong&gt;y que volvíamos a lo mismo de antes…&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;ADO.NET Data Services y RIA Services eran dos claros ejemplos de esto, ya que ambas son tecnologías para crear aplicaciones distribuidas y que no usaban WCF. Se estaba perdiendo el carácter unificador, el hecho de tener un única tecnología con la que podamos hacer todo lo que queramos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_02840C04.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_5B297734.png" width="549" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cierto es que WCF en algunas ocasiones podría resultar un poco complicado de entender pero no es menos cierto que el hecho de unificar estas tecnologías no tiene por qué implicar que DataServices y RIA Services se compliquen. &lt;/p&gt;  &lt;p&gt;El tiempo sólo nos dirá si ganamos o perdemos, pero al menos yo la considero una decisión acertada.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=160934" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF/default.aspx">WCF</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Opini_26002300_243_3B00_n/default.aspx">Opini&amp;#243;n</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/ADO.NET+Data+Services/default.aspx">ADO.NET Data Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>WCF RIA Services Beta</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/19/wcf-ria-services-beta.aspx</link><pubDate>Thu, 19 Nov 2009 22:40:37 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:160885</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=160885</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/19/wcf-ria-services-beta.aspx#comments</comments><description>&lt;p&gt;Ya tenemos desde ayer disponible la beta de WCF RIA Services, lo que antes conocíamos como &lt;a href="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx"&gt;.NET RIA Services&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;La palabra WCF viene porque RIA Services formará parte de la familia WCF, como ADO.NET DataServices, que también pasa a llamarse WCF Data Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Novedades?&lt;/strong&gt; Unas cuentas…por destacar algunas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Integración con Visual Studio 2010 Beta 2.&lt;/li&gt;    &lt;li&gt;El instalador de WCF Ria Services se incluye también dentro del instalador de Silverlight 4.&lt;/li&gt;    &lt;li&gt;Integración con WCF, eso sí, sin perder la sencillez de manejo &lt;strike&gt;(ya veremos)&lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;El canal de comunicación por defecto es binario.&lt;/li&gt;    &lt;li&gt;Simplificar el trabajo con DomainDataSource (por ejemplo, evitando tener que acudir tanto el código XAML para relacionar los controles con el DomainDataSource)&lt;/li&gt;    &lt;li&gt;Mejora en el tratamiento de errores, tanto del cliente como del servidor.&lt;/li&gt;    &lt;li&gt;Corrección de muchos bugs.&lt;/li&gt;    &lt;li&gt;Plantilla de Visual Studio más completa (Business Application Template), con más funcionalidad incluida, como el soporte a la globalización.&lt;/li&gt;    &lt;li&gt;…..&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enlaces de interés:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=91998faf-d2df-42bb-af2e-17d43d7ce078&amp;amp;displaylang=en" target="_blank"&gt;Instalador para Visual Studio 2010 Beta 2&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&amp;amp;displaylang=en" target="_blank"&gt;Instalador para Visual Studio 2008 SP1&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlight.net/getstarted/riaservices/" target="_blank"&gt;Página oficial&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707344(VS.91).aspx" target="_blank"&gt;Documentación&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/RIAServices" target="_blank"&gt;Ejemplos&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=160885" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/WCF+Ria+Services/default.aspx">WCF Ria Services</category></item><item><title>Data Dude: Partial Projects</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/19/data-dude-partial-projects.aspx</link><pubDate>Thu, 19 Nov 2009 07:20:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:160643</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=160643</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/19/data-dude-partial-projects.aspx#comments</comments><description>&lt;p&gt;En un post anterior os hablaba de los &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/11/17/data-dude-composite-projects.aspx"&gt;Composite Projects&lt;/a&gt;, una característica de Visual Studio Database Edition que nos permite dividir base de datos grandes y complejas en múltiples proyectos de base de datos, dependientes unos de otros, y que pueden desplegarse todos a la vez.&lt;/p&gt;  &lt;p&gt;En esta ocasión os hablaré de una característica relacionada, &lt;strong&gt;los proyectos parciales.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Los proyectos parciales permiten compartir una misma implementación entre múltiples proyectos, manteniendo una única definición de la misma. &lt;/p&gt;  &lt;p&gt;La característica podría ser similar a los &lt;a href="http://geeks.ms/blogs/ilanda/archive/2007/05/27/los-shares-en-el-gestor-de-fuentes-de-team-foundation-server.aspx"&gt;shares&lt;/a&gt; que permite el gestor de fuentes SourceSafe.&lt;/p&gt;  &lt;p&gt;Imagina un equipo de desarrollo que tiene una línea base que define el schema de la base de datos. A partir de esta línea base se crean nuevas base de datos según surgen las necesidades.&lt;/p&gt;  &lt;p&gt;Cuando se crea una nueva definición a partir de la línea base, cada equipo coge la definición base y la incorpora (copy-paste) a su proyecto….pero claro, aunque las nuevas definiciones parten de la misma base, no tienen ninguna relación entre ellas y por ejemplo, un cambio en la línea base no se ve reflejado en el resto.&lt;/p&gt;  &lt;p&gt;Los proyectos parciales es esto lo que te permiten, poder añadir ficheros de tu proyecto de base de datos que son de otro. La línea base debería exponer una determinada&amp;#160; lista de ficheros que serán usando por el resto de proyectos.&lt;/p&gt;  &lt;p&gt;Vamos a suponer un escenario muy sencillo, dónde tenemos dos proyectos de base de datos, uno con la definición de las tablas y otro con la definición de los procedimientos almacenados. &lt;/p&gt;  &lt;p&gt;En el proyecto de las tablas, tendremos que exportar la definición de las mismas, para poder emplearlo dentro del proyecto de procedimientos.&lt;/p&gt;  &lt;p&gt;Sobre Schemas&amp;gt;dbo&amp;gt;Tables, seleccionamos la opción de “exportar como proyecto parcial”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_68D4C21D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_13607D2E.png" width="254" height="106" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Indicamos el nombre que queremos darle al fichero e indicamos que queremos que el fichero generado se añada dentro del proyecto de base de datos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_62E9F8B7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_21DB7953.png" width="244" height="72" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_1C205FAD.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_04A5AB7C.png" width="428" height="159" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez que tenemos el fichero generamos, sólo tenemos que incluirlo dentro del proyecto de procedimientos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_1B184A03.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_79B8A466.png" width="244" height="74" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Como veréis, una vez importado, la nueva tabla os aparece (Schema View) como una tabla más del proyecto.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_4CC3418B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_51C57F3A.png" width="186" height="337" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=160643" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category></item><item><title>Data Dude: Composite Projects</title><link>http://geeks.ms/blogs/ilanda/archive/2009/11/17/data-dude-composite-projects.aspx</link><pubDate>Tue, 17 Nov 2009 06:52:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:160641</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=160641</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/11/17/data-dude-composite-projects.aspx#comments</comments><description>&lt;p&gt;Ya hace unas semanas que coincidí con &lt;a href="http://geeks.ms/blogs/jirigoyen"&gt;Juan Irigoyen&lt;/a&gt; en una charla en Santander, dónde nos habló de &lt;a href="http://geeks.ms/blogs/jirigoyen/archive/2009/10/25/database-professionals-2010-pruebas-unitarias-de-bases-de-datos-y-materiales-de-la-charla.aspx"&gt;VStudio Database Edition 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una de las características que quedaron fuera y que me parece interesante comentar son los &lt;strong&gt;Composite Projects&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;La idea es muy sencilla; poder dividir base de datos grandes y complejas en múltiples proyectos de base de datos, dependientes unos de otros, y que pueden desplegarse todos a la vez.&lt;/p&gt;  &lt;p&gt;Simplificando, se podría decir que son como las referencias de los proyectos tradicionales de VStudio, pero llevado al mundo de las base de datos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_281575C0.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_796F4710.png" width="244" height="102" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Por ejemplo, podrías tener un proyecto de base de datos que contenga la definición de tus tablas y vistas y en otro proyecto tener los procedimientos y funciones que atacan tu base de datos. &lt;/p&gt;  &lt;p&gt;Esta situación, que en proyectos grandes podría ayudar a tener más organizada la base de datos, también podrías servirnos, por ejemplo, para establecer diferentes niveles de seguridad….por ejemplo, nos puede interesar que cierto grupo de desarrolladores cree los procedimientos almacenados pero que no puedan hacer cambios en el schema de la base de datos. Si lo separamos en proyectos, podemos dar diferentes permisos de acceso.&lt;/p&gt;  &lt;p&gt;Como veis en la imagen se puede enlazar con otro proyecto de base de datos que esté dentro de la misma solución o contra un fichero .dbschema generado por un proyecto de base de datos que se encuentra en otra ubicación.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_77524847.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ilanda/image_5F00_thumb_5F00_48D87700.png" width="506" height="401" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cuando se despliega el proyecto principal sobre la base de datos, antes de desplegarlo se despliegan sus dependencias. Si están configurados para que se desplieguen en la misma base de datos, el resultado final serán una base de datos que contenga el contenido de todos los proyectos de base de datos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=160641" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category></item><item><title>Ya no hay excusa para no usar TFS</title><link>http://geeks.ms/blogs/ilanda/archive/2009/10/21/ya-no-hay-excusa-para-no-usar-tfs.aspx</link><pubDate>Wed, 21 Oct 2009 20:33:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:158574</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=158574</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/10/21/ya-no-hay-excusa-para-no-usar-tfs.aspx#comments</comments><description>&lt;p&gt;Pues, nada, con la salida de &lt;a href="http://geeks.ms/blogs/lfraile/archive/2009/10/19/ya-tenemos-beta-2-de-visual-studio-2010-o-el-rey-ha-muerto-viva-el-rey.aspx"&gt;la beta 2 de Visual Studio&lt;/a&gt; no sólo ha cambiado el nombre de la versión Team System, también ha cambiado la forma de licenciar Team Foundation Server.&lt;/p&gt;  &lt;p&gt;Con la subscripción MSDN se incluirá la licencia de Team Foundation Server.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Team Foundation Server 2010 will be included in the MSDN subscription that comes with Visual Studio 2010 Professional, Premium, Ultimate, and Test Elements. This copy of Team Foundation Server in licensed for unlimited development and test use (as is all MSDN software) and licensed for one production deployment. These MSDN subscriptions also include one CAL.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Team Foundation Server has three installation choices - &lt;/em&gt;&lt;a href="http://blogs.msdn.com/buckh/archive/2009/10/19/where-is-tfs-basic.aspx"&gt;&lt;em&gt;Basic&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, Advanced and Custom.&amp;#160; You will be able to install this either on your client machine (very similar to client side SCM such as VSS) or on a server machine just like TFS 2008.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Team Foundation Server will also be available in retail for around $500 USD and will include a license term allowing up to five (5) named users without CALs to use Team Foundation Server. To grow to more than five users, simply buy CALs for the new users. This enables small teams of five or fewer to get up and running on Team Foundation Server for as little as $500 USD.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Of course having Visual Studio 2010 with MSDN means you can get Team Foundation Server up and running at no additional cost&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Podéis ver la noticia &lt;a href="http://blogs.msdn.com/buckh/archive/2009/10/20/tfs-2010-server-licensing-it-s-included-in-msdn-subscriptions.aspx"&gt;aquí.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=158574" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Team+Server/default.aspx">Team Server</category></item><item><title>Materiales del evento de RIA Services del CodeCamp</title><link>http://geeks.ms/blogs/ilanda/archive/2009/10/20/materiales-del-evento-de-ria-services-del-codecamp.aspx</link><pubDate>Tue, 20 Oct 2009 18:58:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:158459</guid><dc:creator>Ibon Landa</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/ilanda/rsscomments.aspx?PostID=158459</wfw:commentRss><comments>http://geeks.ms/blogs/ilanda/archive/2009/10/20/materiales-del-evento-de-ria-services-del-codecamp.aspx#comments</comments><description>&lt;p&gt;Como ya os he contado este fin de semana tuve la suerte de participar en el CodeCamp que se ha celebrado en Tarragona hablando de &lt;a href="http://geeks.ms/blogs/ilanda/archive/2009/10/18/de-tarragona-a-santander.aspx"&gt;RIA Services.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aunque prácticamente no las utilicé, aquí os dejo la presentación.&lt;/p&gt;  &lt;p&gt;&lt;iframe style="border-bottom:#dde5e9 1px solid;border-left:#dde5e9 1px solid;padding-bottom:0px;background-color:#ffffff;margin:3px;padding-left:0px;width:240px;padding-right:0px;height:66px;border-top:#dde5e9 1px solid;border-right:#dde5e9 1px solid;padding-top:0px;" marginheight="0" src="http://cid-57fe75212e7fcf62.skydrive.live.com/embedrowdetail.aspx/CodeCamp%20Slide" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=158459" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/ilanda/archive/tags/Evento/default.aspx">Evento</category><category domain="http://geeks.ms/blogs/ilanda/archive/tags/RIA+Services/default.aspx">RIA Services</category></item></channel></rss>