<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;DEcBRns9fip7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595</id><updated>2011-11-27T20:20:57.566-03:00</updated><category term="MSDN" /><category term="Tecnología" /><category term="Java" /><category term="Noticias" /><category term="Desarrollo de Software" /><title>Desarrollo de Software y Tecnologías Informáticas</title><subtitle type="html">Blog dedicado a las personas o alumnos de instituciones que deseen aprender a desarrollar aplicaciones y enterarse de las últimas herramientas para el desarrollo de software tanto en .NET como Java.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://carlodiban.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ProgramacionOrientadaAObjetos" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="programacionorientadaaobjetos" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUAHRno4cCp7ImA9WxRbGE8.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-4822766303159335206</id><published>2008-12-09T10:02:00.001-03:00</published><updated>2008-12-09T10:02:17.438-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-09T10:02:17.438-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Depuración de código usando Eclipse y Tomcat</title><content type="html">&lt;p&gt;Leyendo en la pagina debug_mode=ON encontre un post interesante y practico, que me gustaria compartir, el cual trata de lo siguiente:&lt;/p&gt;  &lt;p&gt;La depuración de código es una de las tareas más habituales cuando programamos. Los IDEs como Eclipse ofrecen herramientas para hacer esta práctica de forma sencilla, pero cuando se trata de depurar código que se está ejecutando en un servidor remoto o independiente del entorno tenemos que hacer una pequeña configuración, pero muy útil.&lt;/p&gt;  &lt;p&gt;El primer paso es configurar tomcat para que arranque en modo debug y envie la ejecución a un puerto en concreto. Para configurar tomcat editamos el archivo catalina.bat o catalina.sh, dependiendo de si nos encontramos en Windows o un Linux / Mac OS X, y buscamos la línea&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;set DEBUG_OPTS&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Que por defecto se encuentra vacía y la modificamos con el siguiente texto&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8002&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Básicamente esta línea hace que tomcat se arranque en modo debug y le indica que el puerto al que debe mandar las cosas de debug es el 8002, podemos modificar este puerto a nuestra voluntad, siempre que sea un puerto disponible. Estas opciones son opciones de la máquina virtual (desde Java 5), con lo que en otros servidores simplemente habría que investigar dónde ponerlas, por lo demás sería igual.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora toca configurar eclipse para que escuche ese puerto, en la IP en la que se encuentre el servidor. En el caso de este tutorial Eclipse y Tomcat se encuentran en la misma máquina, pero podrían estar en máquinas separadas siempre que se tenga acceso de una a otra.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para crear una nueva configuración de debug en Eclipse pulsamos en 'Run' -&amp;gt; 'Open Debug Dialog ...' se abrirá una pantalla y en la columna de la izquierda seleccionamos 'Remote Java Application' y pulsamos el botón 'New'. Se nos abrirá una pantalla como la siguiente&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_3ZKuzfPO_Zk/ST5sUfc42HI/AAAAAAAAAIE/4PtQn3QyGpM/s1600-h/3092588768_e08f6521bc_o%5B14%5D.png"&gt;&lt;img title="3092588768_e08f6521bc_o" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="402" alt="3092588768_e08f6521bc_o" src="http://lh6.ggpht.com/_3ZKuzfPO_Zk/ST5sVwvEQ8I/AAAAAAAAAII/e0Mp6zQMFxE/3092588768_e08f6521bc_o_thumb%5B12%5D.png?imgmax=800" width="456" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En el campo 'project' ponemos el nombre del proyecto en nuestro workspace, en el campo 'host' la ip donde se encuentra el servidor, en nuestro caso localhost y en el campo 'Port' el puerto que hemos configurado anteriormente en el Tomcat. Para finalizar y empezar a depurar sólo debemos hacer click en 'Debug' y poner lo breakpoints donde queramos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font size="1"&gt;Este post fue realizado por &lt;strong&gt;plunchete&lt;/strong&gt; de la comunidad de &lt;/font&gt;&lt;a href="http://www.debugmodeon.com" target="_blank"&gt;&lt;font size="1"&gt;debug_mode=ON&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-4822766303159335206?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=4822766303159335206" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4822766303159335206?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4822766303159335206?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/12/depuracin-de-cdigo-usando-eclipse-y.html" title="Depuración de código usando Eclipse y Tomcat" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_3ZKuzfPO_Zk/ST5sVwvEQ8I/AAAAAAAAAII/e0Mp6zQMFxE/s72-c/3092588768_e08f6521bc_o_thumb%5B12%5D.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;C0IBQnczfyp7ImA9WxRXGEs.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-8599760736381473052</id><published>2008-10-24T12:19:00.001-03:00</published><updated>2008-10-24T12:19:13.987-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-24T12:19:13.987-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Noticias" /><title>Nuevos WebCast MSDN</title><content type="html">&lt;p&gt;Se han organizado tres nuevos webcast para el cono sur los cuales han sido publicados en la lista de WebCast de este blog.&lt;/p&gt;  &lt;p&gt;Los nuevos webcast son:&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032389787&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR" target="_blank"&gt;Conviértase en un Desarrollador de Windows CE Embebido en 60 Minutos&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032389789&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR" target="_blank"&gt;Dando valor agregado a su Producto: Integración con Network Access Protection (NAP)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032389750&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR" target="_blank"&gt;Desde la perspectiva del desarrollador de Software: Microsoft Expression Studio y Microsoft Visual Studio 2008&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh6.ggpht.com/carlodiban/SQHnV7ZNMnI/AAAAAAAAAHc/5csssfTgvs8/s1600-h/header_logo%5B12%5D.jpg"&gt;&lt;img title="header_logo" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="82" alt="header_logo" src="http://lh6.ggpht.com/carlodiban/SQHnbXcvKFI/AAAAAAAAAHg/xRha0o7n3Sg/header_logo_thumb%5B10%5D.jpg?imgmax=800" width="164" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-8599760736381473052?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=8599760736381473052" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8599760736381473052?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8599760736381473052?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/10/nuevos-webcast-msdn.html" title="Nuevos WebCast MSDN" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/carlodiban/SQHnbXcvKFI/AAAAAAAAAHg/xRha0o7n3Sg/s72-c/header_logo_thumb%5B10%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DE4CQXc_eSp7ImA9WxRQE0U.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-50997655008536742</id><published>2008-10-07T09:42:00.001-04:00</published><updated>2008-10-07T09:42:40.941-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-07T09:42:40.941-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Problema: menú de Agregar Vistas (Add View) no aparece.</title><content type="html">&lt;p&gt;Si el menú “Add View (with pressenter) and “Add WPF-View (with presenter)” no aparece al momento de crear una solución con SCSF – April 2008 en Visual Studio 2008 con el Services Pack 1 Beta.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/carlodiban/SOtnRxzpuxI/AAAAAAAAAHU/rs12NDf1eN4/s1600-h/ViewRecipesIssue%5B10%5D.png"&gt;&lt;img title="ViewRecipesIssue" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="289" alt="ViewRecipesIssue" src="http://lh3.ggpht.com/carlodiban/SOtnSzmo3KI/AAAAAAAAAHY/n5HTDB-8QMA/ViewRecipesIssue_thumb%5B8%5D.png?imgmax=800" width="438" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Causa&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;El Guidance Package verifica si es que el proyecto donde se agregaran las vistas (Views) se han agregado las siguientes referencias para habilitar “Add View (with presenter) and “Add WPF-View (with presenter)”:&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Microsoft.Practices.CompositeUI&lt;/b&gt; assembly&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Microsoft.Practices.ObjectBuilder&lt;/b&gt; assembly&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Insfractucture.Interface&lt;/b&gt; Project&lt;/p&gt;  &lt;p&gt;El template del proyecto que es usado por SCSF tiene la variable $RootNamespace$ como prefijo en las propiedades del proyecto &lt;b&gt;AssemblyName.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;AssemblyName&amp;gt;$RootNamespace$.Infrastructure.Interface&amp;lt;/AssemblyName&amp;gt;&lt;/p&gt;  &lt;p&gt;Parece ser que en el Visual Studio 2008 sin SP1, la opción “Create Smart Client Solution” ignora la variable $RootNamespace$ en el nombre del assembly. Por lo tanto el nombre del assembly siempre toma el valor como &lt;b&gt;Insfractucture.Interface.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Solución&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Para solucionar este inconveniente, es necesario que modifiquemos el código de nuestro Guidance Package, y tenemos que seguir los siguientes pasos:&lt;/p&gt;  &lt;p&gt;- Abrir la solución &lt;b&gt;GuidancePackage.sln&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- En el Solution Explorer, abrimos el archivo &lt;b&gt;ViewTemplateReferenceVB.cs&lt;/b&gt; ubicado en la carpeta R&lt;b&gt;eferences&lt;/b&gt;, del proyecto SmartClientFactoryPackage.&lt;/p&gt;  &lt;p&gt;- Luego buscamos la siguiente línea de código en el archivo:&lt;/p&gt;  &lt;p&gt;Line #154: if (reference.Identity == referenceIdentity) return true;&lt;/p&gt;  &lt;p&gt;- Remplazamos esa línea de código por la siguiente:&lt;/p&gt;  &lt;p&gt;Line #154: if (reference.Name == referenceIdentity) return true; &lt;/p&gt;  &lt;p&gt;Repetimos el tercer y cuarto paso para el archive &lt;b&gt;ViewTemplateReferenceCS.cs&lt;/b&gt; ubicado en la carpeta &lt;b&gt;Reference&lt;/b&gt;, del proyecto SmartClientFactoryPackage (Línea de código 153).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-50997655008536742?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=50997655008536742" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/50997655008536742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/50997655008536742?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/10/problema-men-de-agregar-vistas-add-view.html" title="Problema: menú de Agregar Vistas (Add View) no aparece." /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/carlodiban/SOtnSzmo3KI/AAAAAAAAAHY/n5HTDB-8QMA/s72-c/ViewRecipesIssue_thumb%5B8%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkYGRnszeip7ImA9WxRRFE4.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-286754049302300701</id><published>2008-09-26T10:08:00.001-04:00</published><updated>2008-09-26T10:08:47.582-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-26T10:08:47.582-04:00</app:edited><title>WebCast MSDN Octubre</title><content type="html">&lt;p&gt;Se ha actualizado la sección de WebCast MSDN con el material proporcionado por Microsoft Cono Sur para el mes de Octubre. &lt;/p&gt;  &lt;p&gt;Este mes están muy orientados a WPF (Windows Presentation Foundation). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/carlodiban/SNzs7Pkez1I/AAAAAAAAAHM/bmXUXlRewNY/s1600-h/msdn%5B39%5D.gif"&gt;&lt;img title="msdn" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="105" alt="msdn" src="http://lh4.ggpht.com/carlodiban/SNzs7lPJbGI/AAAAAAAAAHQ/amI5RHVSmg8/msdn_thumb%5B33%5D.gif?imgmax=800" width="228" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/spanish/msdn/latam/mediacenter/" target="_blank"&gt;&lt;font size="1"&gt;MSDN Media Center&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-286754049302300701?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=286754049302300701" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/286754049302300701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/286754049302300701?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/09/webcast-msdn-octubre.html" title="WebCast MSDN Octubre" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/carlodiban/SNzs7lPJbGI/AAAAAAAAAHQ/amI5RHVSmg8/s72-c/msdn_thumb%5B33%5D.gif?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEUNRno_eCp7ImA9WxRREUQ.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-1850717759594933799</id><published>2008-09-23T13:50:00.001-04:00</published><updated>2008-09-23T13:51:37.440-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-23T13:51:37.440-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Tutorial Disconnected Service Agent</title><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Esta documentaci&amp;#243;n trata sobre c&amp;#243;mo crear, implementar y usar DSA. Para llevar a cabo esta implementaci&amp;#243;n se necesitan los siguientes componentes:&lt;/p&gt;  &lt;p&gt;- SCSF May 2007&lt;/p&gt;  &lt;p&gt;- Microsoft SQL Server Compact Edition 3.5&lt;/p&gt;  &lt;p&gt;- Visual Studio 2005 con C#&lt;/p&gt;  &lt;p&gt;Al momento de crear una aplicaci&amp;#243;n con Composite Aplication Block lo que obtenemos en el Solution Explorer de Visual Studio lo podemos apreciar en la siguiente imagen. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/carlodiban/SNksUSCvlWI/AAAAAAAAAGc/0h8EJrCXGHs/s1600-h/clip_image002%5B4%5D%5B14%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="572" alt="clip_image002[4]" src="http://lh3.ggpht.com/carlodiban/SNksVYF8LvI/AAAAAAAAAGg/v3bOdcG4WyI/clip_image002%5B4%5D_thumb%5B12%5D.gif?imgmax=800" width="272" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El Solution Explorer contiene los siguientes directorios:&lt;/p&gt;  &lt;p&gt;- Infrastructure: Es te directorio contiene el stuff de Smart Client Software Factory.&lt;/p&gt;  &lt;p&gt;- Business Modules: Ac&amp;#225; se encuentra la GUI que consume los web services con WCF.&lt;/p&gt;  &lt;p&gt;- WCFService: Contiene la definici&amp;#243;n del web services. Esto es opcional si es que lo quieren implementar en la misma soluci&amp;#243;n que los dem&amp;#225;s directorios, tambi&amp;#233;n se puede crear en una soluci&amp;#243;n totalmente aparte.&lt;/p&gt;  &lt;p&gt;Bien, ahora los pasos a seguir para llevar a cabo la implementaci&amp;#243;n de DSA son los siguientes:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Agregar Librer&amp;#237;as de SQL&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;DSA necesita una base de datos para poder guardar los request queue, para ello tenemos que agregar unas librer&amp;#237;as en nuestra soluci&amp;#243;n, que las podemos encontrar en el siguiente directorio C:\Program Files\Microsoft SQL Server Compact Edition\v3.5.&lt;/p&gt;  &lt;p&gt;Las librer&amp;#237;as a agregar son:&lt;/p&gt;  &lt;p&gt;- sqlceca35.dll&lt;/p&gt;  &lt;p&gt;- sqlcecomact35.dll&lt;/p&gt;  &lt;p&gt;- sqlceer35EN.dll&lt;/p&gt;  &lt;p&gt;- sqlceme35.dll&lt;/p&gt;  &lt;p&gt;- sqlceoledb35.dll&lt;/p&gt;  &lt;p&gt;- sqlceqp35.dll&lt;/p&gt;  &lt;p&gt;- sqlcese35.dll&lt;/p&gt;  &lt;p&gt;- System.Data.SqlServerCe.Entity.dll&lt;/p&gt;  &lt;p&gt;Nos quedar&amp;#237;a el Shell como se muestra en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/carlodiban/SNksWoymgqI/AAAAAAAAAGk/76wJTW37A2A/s1600-h/clip_image002%5B6%5D%5B4%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="307" alt="clip_image002[6]" src="http://lh3.ggpht.com/carlodiban/SNksXYD4TpI/AAAAAAAAAGo/Z0cLs8RSF5I/clip_image002%5B6%5D_thumb%5B2%5D.gif?imgmax=800" width="279" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Agregar Base de Datos&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Necesitamos de una base de datos para poder guardar nuestros request del web services. Para ello agregamos nuestra base de datos de tipo SQL Compact Edition (.sdf) al proyecto &amp;#8220;Infrastructure.Module&amp;#8221;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Crear el DSA&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;La forma de crear el DSA es bastante simple gracias a que podemos usar el SCSF recipe para hacerlo. La forma de hacerlo es la siguiente.&lt;/p&gt;  &lt;p&gt;Hacemos click con el bot&amp;#243;n derecho en la referencia del web services, que puede estar ubicada dentro de nuestro Business Module o tambi&amp;#233;n dentro de nuestro Shell, todo eso va depender donde tengamos ubicadas nuestras referencias a los web services. Luego seleccionamos &amp;#8220;Smart Client Factory&amp;#8221; y despu&amp;#233;s &amp;#8220;Create Disconnected Service Agent&amp;#8221;, y aparecer&amp;#225; la siguiente ventana:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/carlodiban/SNksYN_bXmI/AAAAAAAAAGs/mRHt88AA8qI/s1600-h/clip_image002%5B14%5D%5B4%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="297" alt="clip_image002[14]" src="http://lh6.ggpht.com/carlodiban/SNksZV_nzlI/AAAAAAAAAGw/foBztlqcSCQ/clip_image002%5B14%5D_thumb%5B2%5D.gif?imgmax=800" width="425" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hacemos click en el bot&amp;#243;n &amp;#8220;&amp;#8230;&amp;#8221; para elegir el tipo de proxy, el proxy fue generado cuando agregamos las referencias de nuestros web services, y elegimos la clase que contiene el &amp;#8220;Client&amp;#8221; del proxy. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/carlodiban/SNksafFoe5I/AAAAAAAAAG0/LvRR_HR52NQ/s1600-h/clip_image002%5B10%5D%5B4%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="373" alt="clip_image002[10]" src="http://lh4.ggpht.com/carlodiban/SNksbLbu3NI/AAAAAAAAAG4/qh_NWIWwOjY/clip_image002%5B10%5D_thumb%5B2%5D.gif?imgmax=800" width="339" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Luego de hacer esta tarea nos aparecer&amp;#225; el tipo de m&amp;#233;todos que contiene el web services, a trav&amp;#233;s del Client y tambi&amp;#233;n el Preview del Solution Explorer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/carlodiban/SNksb61CXsI/AAAAAAAAAG8/mX99ooHxXoE/s1600-h/clip_image002%5B12%5D%5B6%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="300" alt="clip_image002[12]" src="http://lh6.ggpht.com/carlodiban/SNkscjR6C2I/AAAAAAAAAHA/_5IBzJ-28Bg/clip_image002%5B12%5D_thumb%5B4%5D.gif?imgmax=800" width="421" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Apretamos el bot&amp;#243;n Finish y podremos ver que se ha creado un nuevo directorio que contiene la carpeta DSA.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/carlodiban/SNksdEfUywI/AAAAAAAAAHE/paN7nxJXFxI/s1600-h/clip_image002%5B16%5D%5B3%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="223" alt="clip_image002[16]" src="http://lh5.ggpht.com/carlodiban/SNkseI0PzrI/AAAAAAAAAHI/xngObO5V3FE/clip_image002%5B16%5D_thumb%5B1%5D.gif?imgmax=800" width="259" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y as&amp;#237; hemos creado nuestro Service Disconnected Agent.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Modificar el App.config&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Ahora abrimos nuestro archivo de configuraci&amp;#243;n de la aplicaci&amp;#243;n que est&amp;#225; en el Shell. Y configuramos las siguientes l&amp;#237;neas de nuestro XML.&lt;/p&gt;  &lt;p&gt;Agregamos en la secci&amp;#243;n de configuraci&amp;#243;n lo siguiente:&lt;/p&gt;  &lt;p&gt;&amp;lt;configSections&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;section name=&amp;quot;loggingConfiguration&amp;quot; type=&amp;quot;Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,&lt;/p&gt;  &lt;p&gt;Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;section name=&amp;quot;exceptionHandling&amp;quot; type=&amp;quot;Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings,&lt;/p&gt;  &lt;p&gt;Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;section name=&amp;quot;ConnectionMonitor&amp;quot; type=&amp;quot;Microsoft.Practices.SmartClient.ConnectionMonitor.Configuration.ConnectionSettingsSection,&lt;/p&gt;  &lt;p&gt;Microsoft.Practices.SmartClient.ConnectionMonitor&amp;quot; /&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;section name=&amp;quot;dataConfiguration&amp;quot; type=&amp;quot;Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Microsoft.Practices.EnterpriseLibrary.Data&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/configSections&amp;gt;&lt;/p&gt;  &lt;p&gt;Luego modificamos o agregamos la siguiente modificaci&amp;#243;n:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;dataConfiguration defaultDatabase=&amp;quot;QueueDatabase&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;providerMappings&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;add databaseType=&amp;quot;Microsoft.Practices.SmartClient.EnterpriseLibrary.SmartClientDatabase, Microsoft.Practices.SmartClient.EnterpriseLibrary&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;name=&amp;quot;System.Data.SqlServerCe&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;/providerMappings&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;/dataConfiguration&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Configuramos nuestro Connection Monitor:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;ConnectionMonitor&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;Networks&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;add Name=&amp;quot;Internet&amp;quot; Address=&amp;quot;http://www.carlodiban.com&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;/Networks&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;/ConnectionMonitor&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Esto puede ser a elecci&amp;#243;n de cada uno seg&amp;#250;n los requerimientos que se necesiten.&lt;/p&gt;  &lt;p&gt;Y por &amp;#250;ltimo configuramos nuestro Connection String:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;connectionStrings&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;remove name=&amp;quot;LocalSqlServer&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;add name=&amp;quot;QueueDatabase&amp;quot; connectionString=&amp;quot;DataSource=Requests.sdf&amp;quot; providerName=&amp;quot;System.Data.SqlServerCe&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&amp;lt;/connectionStrings&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;En DataSource tiene que ir el nombre de la base de datos que se cre&amp;#243;. En mi caso es Requests.sdf&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Request Manager y ConnectionMonitor&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Nosotros para poder inicializar nuestro RequestManager lo haremos desde el proyecto &amp;#8220;Insfractructure.Module&amp;#8221; y abrimos el archivo &amp;#8220;ModuleController.cs&amp;#8221;. Luego agregamos los using correspondientes que son:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; microsoft.Practices.SmartClient.DisconnectedAgent;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; Microsoft.Practices.SmartClient.EnterpriseLibrary;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Despu&amp;#233;s de hacer esta operaci&amp;#243;n creamos una variable privada de tipo ConnectionMonitor y le decimos que cree su valor desde la configuraci&amp;#243;n esto se hace de la siguiente manera:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;private readonly&lt;/font&gt; &lt;font color="#0ddbf2"&gt;ConnectionMonitor&lt;/font&gt; _connectionMonitor = &lt;font color="#0ddbf2"&gt;ConnectionMonitorFactory&lt;/font&gt;.CreateFromConfiguration();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Despu&amp;#233;s creamos una variable privada de tipo RequestManager.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0ddbf2"&gt;RequestManager&lt;/font&gt; _requestManager;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Y por ultimo modificamos el m&amp;#233;todo AddServices() de la siguiente manera:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;private void&lt;/font&gt; AddServices()&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" color="#008000"&gt;//TODO: add services provided by the Module. See: Add or AddNew method in WorkItem.Services collection or &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" color="#008000"&gt;// See: ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.practices.2005Nov.cab/CAB/html/03-020-Adding%20Services.htm&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;_requestManager = &lt;font color="#0ddbf2"&gt;DatabaseRequestManagerIntializer&lt;/font&gt;.Initialize();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;_connectionMonitor.Connections.ConnectionStatusChanged += &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#0ddbf2"&gt;EventHandler&lt;/font&gt;&amp;lt;&lt;font color="#0ddbf2"&gt;ConnectionEventArgs&lt;/font&gt;&amp;gt;(Connections_ConnectionStatusChanged);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;WorkItem.RootWorkItem.Services.Add(_requestManager.RequestQueue);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;WorkItem.RootWorkItem.Services.AddNew&amp;lt;&lt;font color="#0ddbf2"&gt;Agent&lt;/font&gt;&amp;gt;();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt; Connections_ConnectionStatusChanged(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#0ddbf2"&gt;ConnectionEventArgs&lt;/font&gt; e)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (_connectionMonitor.IsConnected)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;_requestManager.StartAutomaticDispatch();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Con esto inicializamos el Request Manager, luego si la conexi&amp;#243;n sufre alg&amp;#250;n cambio de estado se notificara y si estamos conectados se ejecutara el m&amp;#233;todo StartAutomaticDispatch(), para enviar todos nuestros Request pendientes. Y si no hay conexi&amp;#243;n los Request seguir&amp;#225;n almacenados en nuestra base de datos.&lt;/p&gt;  &lt;p&gt;Y al final del m&amp;#233;todo agregamos el servicio del Agent a nuestro rootWorkItem.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Consumir el DSA&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Para consumir nuestro DSA lo que hay que hacer es asignarle a una variable de tipo Agent que cree una nueva instancia de este y le pasamos un Request Queue para que se cree en la clase Agent. Luego creamos una variable de tipo OfflineBehavior y le asignamos como valor el comportamiento que debe tener nuestro offlineBehavior seg&amp;#250;n sea nuestro m&amp;#233;todo del web services y por &amp;#250;ltimo llamamos al m&amp;#233;todo que corresponde desde la clase Agent y le pasamos los par&amp;#225;metros, si es que el m&amp;#233;todo requiere y nuestro offlineBehavior.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0ddbf2"&gt;IdCodeNameList&lt;/font&gt; GetAllCategorias()&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0ddbf2"&gt;IdCodeNameList&lt;/font&gt; result = &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (_connectionMonitor.IsConnected)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;result = _coreDataClient.GetAllCategorias();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" color="#0000ff"&gt;else&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;{&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;_agent = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#0ddbf2"&gt;Agent&lt;/font&gt;(&lt;font color="#0ddbf2"&gt;RequestManager&lt;/font&gt;.Instance.RequestQueue);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0ddbf2"&gt;OfflineBehavior&lt;/font&gt; offlineBehavior = &lt;font color="#0ddbf2"&gt;Agent&lt;/font&gt;.GetGetAllCategoriasDefaultBehavior();&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;_agent.GetAllCategorias(offlineBehavior);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt; result;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;En el c&amp;#243;digo muestro un ejemplo de lo reci&amp;#233;n redactado. Lo que estoy haciendo en el c&amp;#243;digo, es preguntar si es que tengo conexi&amp;#243;n, llamo al servicio y todo funcionaria normal. Si no tengo conexi&amp;#243;n encolo mi requerimiento para el servicio, y as&amp;#237; cuando se recupere la conexi&amp;#243;n sea enviado.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Clases del DSA&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Nuestro directorio DSA contiene dos clases como pudieron ver una es la clase Agent.cs y la otra es la clase Callback.cs.&lt;/p&gt;  &lt;p&gt;En la clase Agent los cambio que hay que hacer son casi nulos gracias al SCSF r&amp;#233;cipe, ya que al momento de configurarlo se generan todas las configuraciones de esta clase, si posteriormente queremos hacer alg&amp;#250;n cambio, por ejemplo el cambio del EndPoint lo debemos hacer en la clase Agent.&lt;/p&gt;  &lt;p&gt;En la clase Callback, pueden haber dos sucesos el primero es que si obtenemos el resultado de nuestro m&amp;#233;todo del servicio, podemos realizar una acci&amp;#243;n en el m&amp;#233;todo de la clase Callback.cs On&lt;font color="#ff0000"&gt;&amp;#8221;NombreDelMetododelServicio&amp;#8221;&lt;/font&gt;Return(Request request, object[] parameters, object returnValues)&lt;/p&gt;  &lt;p&gt;Y en el segundo caso podemos recibir un error que haya ocurrido, por ende podemos manejarlo en el m&amp;#233;todo On&lt;font color="#ff0000"&gt;&amp;#8221;NombreDelMetodoDelServicio&amp;#8221;&lt;/font&gt;Exception(Request request, Exception ex).&lt;/p&gt;  &lt;p&gt;Y ah&amp;#237; podemos lanzar un mensaje de erro o lo que casa usuario estime conveniente.&lt;/p&gt;  &lt;p&gt;Un ejemplo de la clase CallBack.cs es el siguiente:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;public class&lt;/font&gt; &lt;font color="#0ddbf2"&gt;Callback&lt;/font&gt; : &lt;font color="#0ddbf2"&gt;CallbackBase&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;public static event&lt;/font&gt; &lt;font color="#0ddbf2"&gt;EventHandler&lt;/font&gt;&amp;lt;&lt;font color="#0ddbf2"&gt;EventArgs&lt;/font&gt;&amp;lt;&lt;font color="#0ddbf2"&gt;IdCodeNameList&lt;/font&gt;&amp;gt;&amp;gt; GetAllCategoriasReturn;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;#region&lt;/font&gt; GetAllCategorias&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;public override void&lt;/font&gt; OnGetAllCategoriasReturn(&lt;font color="#0ddbf2"&gt;Request&lt;/font&gt; request, &lt;font color="#0000ff"&gt;object&lt;/font&gt;[] parameters, &lt;font color="#0ddbf2"&gt;IdCodeNameList&lt;/font&gt; returnValue)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;GetAllCategoriasReturn(&lt;font color="#0000ff"&gt;this&lt;/font&gt;, &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#0ddbf2"&gt;EventArgs&lt;/font&gt;&amp;lt;&lt;font color="#0ddbf2"&gt;IdCodeNameList&lt;/font&gt;&amp;gt;(returnValue));&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;public override&lt;/font&gt; &lt;font color="#0ddbf2"&gt;OnExceptionAction&lt;/font&gt; OnGetAllCategoriasException(&lt;font color="#0ddbf2"&gt;Request&lt;/font&gt; request, &lt;font color="#0ddbf2"&gt;Exception&lt;/font&gt; ex)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;throw new&lt;/font&gt; &lt;font color="#0ddbf2"&gt;NotImplementedException&lt;/font&gt;(&lt;font color="#800000"&gt;&amp;quot;Not implemented&amp;quot;&lt;/font&gt;, ex);&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;#endregion&lt;/font&gt; GetAllCategorias&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-1850717759594933799?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=1850717759594933799" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1850717759594933799?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1850717759594933799?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/09/tutorial-disconnected-service-agent.html" title="Tutorial Disconnected Service Agent" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/carlodiban/SNksVYF8LvI/AAAAAAAAAGg/v3bOdcG4WyI/s72-c/clip_image002%5B4%5D_thumb%5B12%5D.gif?imgmax=800" height="72" width="72" /><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;A0cAQ3Yyeip7ImA9WxRSEk8.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-4626626386501307665</id><published>2008-09-12T10:17:00.001-04:00</published><updated>2008-09-12T10:17:22.892-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-12T10:17:22.892-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Noticias" /><title>Publicado Marcadores Sociales MSDN</title><content type="html">&lt;p&gt;En junio de este a&amp;#241;o, se anuncio una vista previa de una &lt;a href="http://blogs.msdn.com/somasegar/archive/2008/06/03/social-bookmarking-ticker.aspx"&gt;aplicaci&amp;#243;n de marcadores sociales&lt;/a&gt; (en ingl&amp;#233;s). Esta semana se ha publicado la versi&amp;#243;n 1.0 de Marcadores sociales de &lt;a href="http://social.msdn.microsoft.com/es-es"&gt;MSDN&lt;/a&gt;, &lt;a href="http://social.technet.microsoft.com/es-ES/"&gt;TechNet&lt;/a&gt;, y &lt;a href="http://social.expression.microsoft.com/es-es"&gt;Expression&lt;/a&gt; que permite a los profesionales t&amp;#233;cnicos compartir sus favoritos en la web, buscar y conectar con otros profesionales y publicar contenido creado por la comunidad directamente en estos sitios web. &lt;/p&gt;  &lt;p&gt;Esta nueva versi&amp;#243;n de la aplicaci&amp;#243;n de marcadores contiene nueva funcionalidad, incluyendo la habilidad de subscribir a gente y etiquetas, soporte en 12 idiomas diferentes, herramientas de importaci&amp;#243;n desde otros servicios de marcadores que pueda estar utilizando actualmente, adem&amp;#225;s de un dise&amp;#241;o nuevo y mejorado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/carlodiban/SMp5fg6YgdI/AAAAAAAAAF0/VD6RczoznFw/s1600-h/bookmarks_small%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="319" alt="bookmarks_small" src="http://lh4.ggpht.com/carlodiban/SMp5rrtb4WI/AAAAAAAAAF4/KZV9njO7B84/bookmarks_small_thumb%5B3%5D.jpg?imgmax=800" width="449" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La publicaci&amp;#243;n de la nueva plataforma social tambi&amp;#233;n incluye una vista previa de MSDN Code Search (B&amp;#250;squeda de c&amp;#243;digo de MSDN) que tiene caracter&amp;#237;sticas especializadas en la b&amp;#250;squeda de c&amp;#243;digo en varios sitios de Microsoft incluida MSDN Library mediante la extensi&amp;#243;n de la b&amp;#250;squeda de MSDN. En futuras versiones esta se expandir&amp;#225; para cubrir MSDN Code Gallery (galer&amp;#237;a de c&amp;#243;digo de MSDN) y MSDN Foros entre otros. Para obtener m&amp;#225;s detalles sobre MSDN Code Search, incluyendo sugerencias para buscar c&amp;#243;digo, consulte el blog de &lt;a href="http://blogs.technet.com/roblog/default.aspx"&gt;Rob Veliz&lt;/a&gt; (en ingl&amp;#233;s).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/carlodiban/SMp50UIMQrI/AAAAAAAAAF8/VSaId5bmV54/s1600-h/codesearch_small%5B9%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="361" alt="codesearch_small" src="http://lh6.ggpht.com/carlodiban/SMp57PqvrOI/AAAAAAAAAGA/BQeKCh8nYm0/codesearch_small_thumb%5B7%5D.jpg?imgmax=800" width="444" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a title="http://blogs.msdn.com/somaespanol/" href="http://blogs.msdn.com/somaespanol/"&gt;http://blogs.msdn.com/somaespanol/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-4626626386501307665?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=4626626386501307665" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4626626386501307665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4626626386501307665?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/09/publicado-marcadores-sociales-msdn.html" title="Publicado Marcadores Sociales MSDN" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/carlodiban/SMp5rrtb4WI/AAAAAAAAAF4/KZV9njO7B84/s72-c/bookmarks_small_thumb%5B3%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkQEQng_fSp7ImA9WxdaGEg.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-7916180988005593679</id><published>2008-08-27T11:18:00.001-04:00</published><updated>2008-08-27T11:18:23.645-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-27T11:18:23.645-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Introducción a Composite UI Application Block (CAB)</title><content type="html">&lt;p&gt;En este post dejo un excelente material correspondiente a Composite UI Application Block, el cual consta de seis parte explicando en detalle el funcionamiento de esta tecnolog&amp;#237;a. El material lo encontr&amp;#233; en el blog de Mariano Converti, integrante de SouthWorks y est&amp;#225; completamente en espa&amp;#241;ol. Yo creo que este aporte es muy importante, ya que es dif&amp;#237;cil encontrar materiales sobre esta tecnolog&amp;#237;a en espa&amp;#241;ol, pero un buen espa&amp;#241;ol.&lt;/p&gt;  &lt;p&gt;Ac&amp;#225; se encuentran los link del blog: &lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2007/09/03/introduccion-a-composite-ui-application-block-cab-i/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) I&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2007/09/03/introduccion-a-composite-ui-application-block-cab-ii/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) II&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2007/09/03/introduccion-a-composite-ui-application-block-cab-iii/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) III&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2007/09/10/introduccion-a-composite-ui-application-block-cab-iv/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) IV&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2007/09/27/introduccion-a-composite-ui-application-block-cab-v/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) V - UI Extension Sites&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://blogs.southworks.net/mconverti/2008/04/03/introduccion-a-composite-ui-application-block-cab-vi-commands/" target="_blank"&gt;Introducci&amp;#243;n a Composite UI Application Block (CAB) VI - Commands&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/carlodiban/SLVwN0wWa6I/AAAAAAAAAFs/fzyfICPR__E/s1600-h/NewpnpheroA%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="68" alt="NewpnpheroA" src="http://lh5.ggpht.com/carlodiban/SLVwPTpiShI/AAAAAAAAAFw/IYWiiahr_GI/NewpnpheroA_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://blogs.southworks.net/mconverti"&gt;http://blogs.southworks.net/mconverti&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-7916180988005593679?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=7916180988005593679" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/7916180988005593679?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/7916180988005593679?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/08/introduccin-composite-ui-application.html" title="Introducción a Composite UI Application Block (CAB)" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/carlodiban/SLVwPTpiShI/AAAAAAAAAFw/IYWiiahr_GI/s72-c/NewpnpheroA_thumb%5B1%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0AFSHs-eCp7ImA9WxdbF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-487328851978454566</id><published>2008-08-14T12:35:00.001-04:00</published><updated>2008-08-14T12:35:19.550-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-14T12:35:19.550-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Noticias" /><title>Visual Studio 2008 y .NET Framework 3.5 Service Pack 1</title><content type="html">&lt;p&gt;El d&amp;#237;a 11 de Agosto fue lanzado el Service Pack para Visual Studio&lt;a href="http://lh4.ggpht.com/carlodiban/SKRexKMD9kI/AAAAAAAAAFk/1wrlKtzGq14/s1600-h/visual%20studio%5B5%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="visual studio" src="http://lh4.ggpht.com/carlodiban/SKRexrjhwwI/AAAAAAAAAFo/xlOGCul8VpA/visual%20studio_thumb%5B3%5D.jpg?imgmax=800" width="180" align="right" border="0" /&gt;&lt;/a&gt; 2008 y para el Framwork 3.5&lt;/p&gt;  &lt;p&gt;En este &lt;a href="http://blogs.msdn.com/somaespanol/archive/2008/08/11/publicado-el-service-pack-1-de-visual-studio-2008-y-net-fx-3-5.aspx" target="_blank"&gt;Link&lt;/a&gt; dejo informaci&amp;#243;n proporcionada por MSDN sobre el tema.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.microsoft.com/msdn"&gt;www.microsoft.com/msdn&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-487328851978454566?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=487328851978454566" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/487328851978454566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/487328851978454566?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/08/visual-studio-2008-y-net-framework-35.html" title="Visual Studio 2008 y .NET Framework 3.5 Service Pack 1" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/carlodiban/SKRexrjhwwI/AAAAAAAAAFo/xlOGCul8VpA/s72-c/visual%20studio_thumb%5B3%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkACRXg9cCp7ImA9WxdbFUg.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-8250241867362665474</id><published>2008-08-12T10:18:00.001-04:00</published><updated>2008-08-12T10:19:24.668-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-12T10:19:24.668-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>wizdl - Herramienta para pruebas de Web Services</title><content type="html">&lt;p&gt;wizdl es una herramienta .NET desarrollada en C#, la que nos permite importar y hacer r&amp;#225;pidamente pruebas de nuestros web services. Cuenta con una GUI muy amigable.&lt;/p&gt;  &lt;p&gt;Todo lo que se necesita hacer es:&lt;/p&gt;  &lt;p&gt;- Introduccir la URL donde se encuentra nuestro WSDL.&lt;/p&gt;  &lt;p&gt;- Seleccionar el m&amp;#233;todo que deseamos probar.&lt;/p&gt;  &lt;p&gt;- Editar los argumentos de los m&amp;#233;todos a probar en la grilla de propiedades. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/carlodiban/SKGblZDcM0I/AAAAAAAAAFU/twLNuT9XURg/s1600-h/wizdl_adservice%5B10%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="wizdl_adservice" src="http://lh3.ggpht.com/carlodiban/SKGbmqiPbqI/AAAAAAAAAFY/8OA-pq4HqQc/wizdl_adservice_thumb%5B8%5D.jpg?imgmax=800" width="454" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ac&amp;#225; pueden encontrar el &lt;a href="http://www.codeplex.com/wizdl/SourceControl/ListDownloadableCommits.aspx" target="_blank"&gt;Source Code&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/carlodiban/SKGbnbBoFfI/AAAAAAAAAFc/jFVPoLMguPg/s1600-h/devolver%5B3%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="36" alt="devolver" src="http://lh6.ggpht.com/carlodiban/SKGboAUY3zI/AAAAAAAAAFg/7lSAyXyp2Uw/devolver_thumb%5B1%5D.png?imgmax=800" width="40" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://www.codeplex.com/wizdl" target="_blank"&gt;CodePlex Project wizdl&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-8250241867362665474?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=8250241867362665474" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8250241867362665474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8250241867362665474?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/08/wizdl-herramienta-para-pruebas-de-web.html" title="wizdl - Herramienta para pruebas de Web Services" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/carlodiban/SKGbmqiPbqI/AAAAAAAAAFY/8OA-pq4HqQc/s72-c/wizdl_adservice_thumb%5B8%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkUFQHYzfSp7ImA9WxdUFk8.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-8661568363057924992</id><published>2008-08-01T18:03:00.001-04:00</published><updated>2008-08-01T18:03:31.885-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-01T18:03:31.885-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Noticias" /><title>Webcast MSDN</title><content type="html">&lt;p&gt;Como muchos saben y los que no se pueden enterar ahora, Microsoft cuenta con una gran ayuda para poder difundir las herramientas de su tecnolog&amp;#237;a, la cual es a trav&amp;#233;s de webcast hechos por profesionales y expertos en dicha tecnolog&amp;#237;a. Gracias a esto he creado una lista con los webcast m&amp;#225;s interesantes para que puedan acceder lo m&amp;#225;s c&amp;#243;modamente posible a ellos. Solo necesitan una cuenta Live, Hotmail, MSN, etc. (Solo una de estas), para poder acceder. &lt;/p&gt;  &lt;p&gt;La lista se ir&amp;#225; actualizando mediante vayan lanzando m&amp;#225;s webcast. Los webcast que Microsoft nos ofrece son gratis y en vivo, si ya paso la fecha del evento, igual puedes acceder a ellos y descargarlos o verlos en l&amp;#237;nea. &lt;/p&gt;  &lt;p&gt;Espero que les sea de gran ayuda para poder aprender sobre la tecnolog&amp;#237;a .NET.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-8661568363057924992?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=8661568363057924992" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8661568363057924992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8661568363057924992?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/08/webcast-msdn.html" title="Webcast MSDN" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CE4DQ3s8cSp7ImA9WxdUFU4.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-2696931410670958119</id><published>2008-07-31T15:35:00.001-04:00</published><updated>2008-07-31T15:36:12.579-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-31T15:36:12.579-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Web Client Software Factory</title><content type="html">&lt;p&gt;&lt;a href="http://lh4.ggpht.com/carlodiban/SJIT92vO9QI/AAAAAAAAAFM/KZ6jjAvTyF0/s1600-h/wcsf-Intro-scope%5B4%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="395" alt="wcsf-Intro-scope" src="http://lh6.ggpht.com/carlodiban/SJIT-qItg8I/AAAAAAAAAFQ/1IRoBrQQwdI/wcsf-Intro-scope_thumb%5B2%5D.png?imgmax=800" width="417" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The Web Client Software Factory (WCSF) proporciona un conjunto de guidance para arquitectos y desarrolladores para la construcci&amp;#243;n de aplicaciones Web empresariales. Este Factory incluye muestras de c&amp;#243;digo reutilizable y un guidance package que automatiza las tareas claves del desarrollo dentro de Visual Studio.&lt;/p&gt;  &lt;p&gt;Usando the Web Client Software Factory assets, los desarrolladores pueden crear &lt;a href="http://www.codeplex.com/websf/Wiki/View.aspx?title=Composite%20Web%20Clients&amp;amp;referringTitle=Home" target="_blank"&gt;Composite Web&lt;/a&gt; applications, donde se encuentran los respectivos m&amp;#243;dulos. Estos m&amp;#243;dulos se re&amp;#250;nen din&amp;#225;micamente en tiempo de ejecuci&amp;#243;n en un shell en com&amp;#250;n. Adem&amp;#225;s la f&amp;#225;brica incluye soporte para ASP.NET AJAX por lo tanto, se puede ofrecer a los usuarios una m&amp;#225;s sensible y mejor experiencia.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Primeros pasos&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Los &lt;a href="http://www.codeplex.com/websf/Wiki/View.aspx?title=Getting_Started_Feb_2008&amp;amp;referringTitle=Home" target="_blank"&gt;Primeros Pasos&lt;/a&gt; proveen de recomendaciones de c&amp;#243;mo utilizar r&amp;#225;pidamente la gu&amp;#237;a disponible de esta f&amp;#225;brica.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click aqu&amp;#237; para descargar &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=47755838-049B-4291-AFEA-A379AE28D7B3&amp;amp;displaylang=en" target="_blank"&gt;Web Client Software Factory - February 2008&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Click aqu&amp;#237; para obtener instrucciones detalladas sobre &lt;a href="http://www.codeplex.com/websf/Wiki/View.aspx?title=Installing_the_Web_Client_Software_Factory_February_2008_Release&amp;amp;referringTitle=Home" target="_blank"&gt;Installing the factory&lt;/a&gt; o &lt;a href="http://www.codeplex.com/websf/Wiki/View.aspx?title=Upgrade_to_WCSFFeb2008&amp;amp;referringTitle=Home" target="_blank"&gt;Upgrade From Previous Releases&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Click aqu&amp;#237; si desea descargar &lt;a href="http://www.codeplex.com/websf/Release/ProjectReleases.aspx?ReleaseId=1563" target="_blank"&gt;Web Client Software Documentation&lt;/a&gt; en lugar de toda la f&amp;#225;brica. &lt;/li&gt;    &lt;li&gt;Click aqu&amp;#237; para ver una lista de &lt;a href="http://www.codeplex.com/websf/Wiki/View.aspx?title=Known%20Issues%20%2f%20Fixes" target="_blank"&gt;Problemas Conocidos.&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-2696931410670958119?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=2696931410670958119" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/2696931410670958119?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/2696931410670958119?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/web-client-software-factory.html" title="Web Client Software Factory" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/carlodiban/SJIT-qItg8I/AAAAAAAAAFQ/1IRoBrQQwdI/s72-c/wcsf-Intro-scope_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0AAR349fip7ImA9WxdUFEg.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-206212069974131555</id><published>2008-07-30T18:09:00.001-04:00</published><updated>2008-07-30T18:09:06.066-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-30T18:09:06.066-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>patterns &amp; practices: Repository Factory</title><content type="html">&lt;p&gt;The Repository Factory es un guidance package que automatiza la creaci&amp;#243;n de entidades que hacen de ruta para las tablas de la base de datos, y tambi&amp;#233;n automatiza la creaci&amp;#243;n de repositorios para leer y escribir dichas entidades. El c&amp;#243;digo generado minimiza la tediosa tarea de estar escribiendo un modelo de dominio. &lt;/p&gt;  &lt;p&gt;Este package fue originalmente publicado en forma &amp;quot;Data Access Guidance Package&amp;quot; como parte de The &lt;a href="http://www.codeplex.com/servicefactory"&gt;Web Service Software Factory&lt;/a&gt;. Data access es un problema muy largo, por lo cual han decidido dividir este package en un solo proyecto. &lt;/p&gt;  &lt;h6&gt;Objetivo&lt;/h6&gt;  &lt;p&gt;Este package se trata de un generador de c&amp;#243;digo ligero que automatiza la mayor parte de la mano de codificaci&amp;#243;n necesaria para construir el modelo de dominio objeto y que persista a una base de datos. &lt;/p&gt;  &lt;h6&gt;Noticias&lt;/h6&gt;  &lt;p&gt;   &lt;br /&gt;patterns &amp;amp; practices ha completado el desarrollo. &lt;a href="http://www.codeplex.com/RepositoryFactory/Release/ProjectReleases.aspx?ReleaseId=7429"&gt;El c&amp;#243;digo fuente est&amp;#225; disponible aqu&amp;#237;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh5.ggpht.com/carlodiban/SJDmfoS2JMI/AAAAAAAAAFE/BZ8Eu_JGk6A/s1600-h/NewpnpheroA%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="68" alt="NewpnpheroA" src="http://lh5.ggpht.com/carlodiban/SJDmgdV3AxI/AAAAAAAAAFI/7Oo7G0nSV8M/NewpnpheroA_thumb%5B1%5D.jpg?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-206212069974131555?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=206212069974131555" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/206212069974131555?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/206212069974131555?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/patterns-practices-repository-factory.html" title="patterns &amp;amp; practices: Repository Factory" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/carlodiban/SJDmgdV3AxI/AAAAAAAAAFI/7Oo7G0nSV8M/s72-c/NewpnpheroA_thumb%5B1%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkcCQ3ozcSp7ImA9WxdUE00.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-5457290174111038753</id><published>2008-07-28T22:54:00.001-04:00</published><updated>2008-07-28T22:54:22.489-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T22:54:22.489-04:00</app:edited><title>Composite Application Guidance for WPF 2008 Release Candidate 1</title><content type="html">&lt;p&gt;The Composite Application Guidance para WPF est&amp;#225; dise&amp;#241;ado para ayudarle a construir con mayor facilidad a nivel de empresa de Windows Presentation Foundation (WPF) las aplicaciones cliente. Este guidance le ayudar&amp;#225; a dise&amp;#241;ar y construir flexibles aplicaciones cliente compuestas para WPF - aplicaciones que se usan vagamente unidas, seran piezas independiente que trabajaran junto dentro de la aplicaci&amp;#243;n general. &lt;/p&gt;  &lt;p&gt;Esta versi&amp;#243;n es la primera liberaci&amp;#243;n de Composite Application Guidance para WPF, sobre la base de sus comentarios, esta gu&amp;#237;a va a evolucionar en futuras versiones. Se caracteriza como una liberaci&amp;#243;n, como su candidato final se designo a MSDN previsto dentro de un par de semanas. No esperamos que el contenido cambie antes de ir a MSDN. &lt;/p&gt;  &lt;h6&gt;Requisitos del sistema&lt;/h6&gt;  &lt;p&gt;Este guidance fue dise&amp;#241;ado para funcionar en Microsoft Windows Vista, Windows XP Professional, o Windows Server 2003 como sistema operativo. Las aplicaciones construidas utilizando este guidance ser&amp;#225; necesario. NET Framework 3,5 a correr. &lt;/p&gt;  &lt;p&gt;Antes de poder utilizar los Composite Application Library, lo siguiente debe ser instalado: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Visual Studio 2008 Microsoft Visual Studio 2008 &lt;/li&gt;    &lt;li&gt;Microsoft. NET Framework 3.5 (El Framework 3.5 incluye WPF).&lt;/li&gt; &lt;/ul&gt;  &lt;h6&gt;Instalaci&amp;#243;n&lt;/h6&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/CompositeWPF/Wiki/View.aspx?title=Installation Instructions"&gt;Instrucciones de instalaci&amp;#243;n&lt;/a&gt; para m&amp;#225;s detalles sobre la instalaci&amp;#243;n de esta versi&amp;#243;n. &lt;/p&gt;  &lt;p&gt;Nota: El &lt;a href="http://www.codeplex.com/CompositeWPF/Release/ProjectReleases.aspx?ReleaseId=14771"&gt;Manifest Manager Utility&lt;/a&gt; est&amp;#225; disponible en una p&amp;#225;gina liberaci&amp;#243;n aparte. &lt;/p&gt;  &lt;h6&gt;   &lt;br /&gt;Archivos&lt;/h6&gt;  &lt;p&gt;&lt;img alt="C&amp;#243;digo fuente" src="http://www.codeplex.com/Images/SourceCode.gif" align="middle" /&gt; &lt;a href="http://www.codeplex.com/CompositeWPF/Release/ProjectReleases.aspx?ReleaseId=14800"&gt;CompositeApplicationGuidanceForWPF-Release-2008.exe&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-5457290174111038753?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=5457290174111038753" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/5457290174111038753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/5457290174111038753?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/composite-application-guidance-for-wpf.html" title="Composite Application Guidance for WPF 2008 Release Candidate 1" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0ANQ3c8eCp7ImA9WxdUEE8.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-783944690960424807</id><published>2008-07-25T18:43:00.001-04:00</published><updated>2008-07-25T18:43:12.970-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-25T18:43:12.970-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Smart Client Guidance Community site.</title><content type="html">&lt;p&gt;El Smart Client Software Factory es una orientaci&amp;#243;n que ofrece la arquitectura, proporcion&amp;#225;ndonos una ayuda para que los clientes puedan construir &lt;a href="http://msdn.microsoft.com/en-us/library/aa480450.aspx"&gt;Composite Smart Clients&lt;/a&gt; utilizando la plataforma de Microsoft (Win forms, WPF, etc.). Un SCSF solution se compone de una serie de discretas, independientes y, sin embargo, funcional componentes y assemblies. Estas piezas son de carga din&amp;#225;mica e integrada conjuntamente en tiempo de ejecuci&amp;#243;n dentro de un shell para formar una aplicaci&amp;#243;n totalmente coherente.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/carlodiban/SIpW9qmQlOI/AAAAAAAAAE0/B4rNLhrHYo4/s1600-h/SCSF_Architecture%5B8%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="326" alt="SCSF_Architecture" src="http://lh3.ggpht.com/carlodiban/SIpW-rUKm1I/AAAAAAAAAE4/OIN-aEgyVEs/SCSF_Architecture_thumb%5B6%5D.png?imgmax=800" width="433" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Primero Pasos&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;En los &lt;a href="http://www.codeplex.com/smartclient/Wiki/View.aspx?title=Getting Started with the Smart Client Software Factory&amp;amp;referringTitle=Home"&gt;Primeros pasos&lt;/a&gt; se ofrecen recomendaciones sobre c&amp;#243;mo utilizar r&amp;#225;pidamente la gu&amp;#237;a disponible en esta f&amp;#225;brica. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Haga clic aqu&amp;#237; para descargar el &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3BE112CC-B2C1-4215-9330-9C8CF9BCC6FA&amp;amp;displaylang=en"&gt;Smart Client Software Factory - Abril de 2008 release.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Haga clic aqu&amp;#237; para obtener instrucciones detalladas sobre la &lt;a href="http://www.codeplex.com/smartclient/Wiki/View.aspx?title=Installing the Smart Client Software Factory&amp;amp;referringTitle=Home"&gt;instalaci&amp;#243;n de la f&amp;#225;brica&lt;/a&gt; o de &lt;a href="http://www.codeplex.com/smartclient/Wiki/View.aspx?title=How to upgrade from the Smart Client Software Factory June 2006&amp;amp;referringTitle=Home"&gt;Actualizaci&amp;#243;n de versiones anteriores.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Haga clic aqu&amp;#237; si quieres descargar s&amp;#243;lo el &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=5C42C35D-DA1C-40B9-892E-11AB13AAFD9E&amp;amp;displaylang=en"&gt;c&amp;#243;digo fuente del instalador&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Haga clic aqu&amp;#237; si quieres descargar s&amp;#243;lo los &lt;a href="http://www.codeplex.com/smartclient/Release/ProjectReleases.aspx?ReleaseId=5027"&gt;Smart Client Software Factory Documentation.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Haga clic aqu&amp;#237; para ver una lista de &lt;a href="http://www.codeplex.com/smartclient/Wiki/View.aspx?title=Known Issues / Fixes&amp;amp;referringTitle=Home"&gt;problemas conocidos.&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Haga clic aqu&amp;#237; para descargar el &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F9176708-9F57-4C0F-97FB-F9C65A9BBF22&amp;amp;displaylang=en"&gt;cliente de Mobile Software Factory - julio de 2006 release.&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh6.ggpht.com/carlodiban/SIpW_HBfO0I/AAAAAAAAAE8/b6-HgRrZ64U/s1600-h/pnp%5B3%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="119" alt="pnp" src="http://lh5.ggpht.com/carlodiban/SIpW_25r4vI/AAAAAAAAAFA/izlE5tW-T3w/pnp_thumb%5B1%5D.gif?imgmax=800" width="379" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-783944690960424807?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=783944690960424807" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/783944690960424807?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/783944690960424807?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/smart-client-guidance-community-site.html" title="Smart Client Guidance Community site." /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/carlodiban/SIpW-rUKm1I/AAAAAAAAAE4/OIN-aEgyVEs/s72-c/SCSF_Architecture_thumb%5B6%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkEMQnc-cCp7ImA9WxdVGUg.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-194005101584025239</id><published>2008-07-24T21:50:00.001-04:00</published><updated>2008-07-24T21:51:23.958-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-24T21:51:23.958-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSDN" /><title>¡Ya estan disponibles los videos del Evento 2008!</title><content type="html">&lt;p&gt;Ya se puede acceder en el MediaCenter a las presentaciones del Lanzamiento Edici&amp;#243;n Especial 2008. Especialistas de toda Latinoam&amp;#233;rica desarrollan los temas que m&amp;#225;s te interesan.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/spanish/msdn/latam/mediacenter/webcast/eventos.aspx"&gt;Link Videos Eventos 2008&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/carlodiban/SIkxciejnpI/AAAAAAAAAEs/t3txkcJQjEk/s1600-h/msdn%5B3%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="105" alt="msdn" src="http://lh5.ggpht.com/carlodiban/SIkxdASLfQI/AAAAAAAAAEw/83xGEOFgq1M/msdn_thumb%5B1%5D.gif?imgmax=800" width="228" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;fuente: &lt;a href="http://www.microsoft.com"&gt;www.microsoft.com&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-194005101584025239?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=194005101584025239" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/194005101584025239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/194005101584025239?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/ya-estan-disponibles-los-videos-del.html" title="¡Ya estan disponibles los videos del Evento 2008!" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/carlodiban/SIkxdASLfQI/AAAAAAAAAEw/83xGEOFgq1M/s72-c/msdn_thumb%5B1%5D.gif?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A04NQX0zeyp7ImA9WxdVGEk.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-1202348797826511777</id><published>2008-07-23T17:53:00.001-04:00</published><updated>2008-07-23T17:53:10.383-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-23T17:53:10.383-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desarrollo de Software" /><title>Enterprise Library</title><content type="html">&lt;p&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/carlodiban/SIeoQu7yg8I/AAAAAAAAADE/uS0Hk4AiFwA/s1600-h/NewpnpheroA%5B8%5D.jpg"&gt;&lt;a href="http://lh4.ggpht.com/carlodiban/SIeoQu7yg8I/AAAAAAAAADE/uS0Hk4AiFwA/s1600-h/NewpnpheroA%5B8%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="101" alt="NewpnpheroA" src="http://lh5.ggpht.com/carlodiban/SIeoRTwEVbI/AAAAAAAAADI/EYypSSPNcsA/NewpnpheroA_thumb%5B6%5D.jpg?imgmax=800" width="367" border="0" /&gt;&lt;/a&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;The patterns and practices Enterprise Library es una biblioteca de application blocks dise&amp;#241;ados para ayudar a los desarrolladores de empresas comunes con problemas de desarrollo. Application blocks son un tipo de guidance, siempre como c&amp;#243;digo fuente que puede ser utilizada &amp;quot;como es&amp;quot;, ampliado o modificado por los desarrolladores a utilizar en los proyectos de desarrollo empresarial. &lt;/p&gt; &lt;/p&gt;  &lt;h3&gt;Links&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/es-cl/library/cc467894(en-us).aspx"&gt;Download official releases&lt;/a&gt;: May 2008 (4.0) -&lt;strong&gt; Ahora disponible!&lt;/strong&gt;, May 2007 (3.1), April 2007 (3.0), January 2006 (2.0), June 2005 (1.1) &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/entlib/Wiki/View.aspx?title=Patches&amp;amp;referringTitle=Home"&gt;Patches&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/entlib/Wiki/View.aspx?title=Sample Files&amp;amp;referringTitle=Home"&gt;Sample Files&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/entlib/Wiki/View.aspx?title=Videos&amp;amp;referringTitle=Home"&gt;Videos&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;a href="http://www.codeplex.com/entlib/Wiki/View.aspx?title=EntLib4 Backlog&amp;amp;referringTitle=Home"&gt;EntLib4 Backlog&lt;/a&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;Community Extensions:    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.codeplex.com/entlibcontrib"&gt;EntLib Contrib&lt;/a&gt; Community Extensions Project &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Subiendo a la red tu extensi&amp;#243;n en tu propio proyecto de&amp;#160; CodePlex?&amp;#160; Etiquete esto como &lt;a href="http://www.codeplex.com/Project/ProjectDirectory.aspx?TagName=Enterprise Library"&gt;Enterprise Library&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.bennedik.de/2007/04/wpf-integration-for-validation.html"&gt;Validation Application Block: WPF Integration Adapter&lt;/a&gt; by&amp;#160; Martin Bennedik &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.gotdotnet.com/community/usersamples/Default.aspx?query=enterprise library"&gt;Externally hosted extensions&lt;/a&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;a href="http://msdn.microsoft.com/practices/comm/entlibblogs/default.aspx"&gt;Team Blogs&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;fuentes: &lt;a href="http://www.microsoft.com"&gt;www.microsoft.com&lt;/a&gt;, &lt;a href="http://www.codeplex.com"&gt;www.codeplex.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-1202348797826511777?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=1202348797826511777" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1202348797826511777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1202348797826511777?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/enterprise-library.html" title="Enterprise Library" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/carlodiban/SIeoRTwEVbI/AAAAAAAAADI/EYypSSPNcsA/s72-c/NewpnpheroA_thumb%5B6%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EMRHk9fyp7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-1769950391551702601</id><published>2008-07-22T10:08:00.001-04:00</published><updated>2008-07-22T10:08:05.767-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:08:05.767-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tecnología" /><title>Tecnología TransferJet</title><content type="html">&lt;p&gt;Sony, Canon, Kodak, Hitachi, Victor Company of Japan, KDDI, Kenwood, Panasonic, Nikon, Olympus, Pioneer, Samsung, Seiko Epson, Sony Ericsson y Toshiba anunciaron un acuerdo para desarrollar una especificaci&amp;#243;n que permita interconectar dispositivos el&amp;#233;ctr&amp;#243;nicos usando una nueva tecnolog&amp;#237;a de transferencia inal&amp;#225;mbrica de alta velocidad llamada TransferJet.&lt;/p&gt;  &lt;p&gt;Esta tecnolog&amp;#237;a permite el traspaso de videos, m&amp;#250;sica o fotos de alta resoluci&amp;#243;n a una velocidad te&amp;#243;rica de hasta 560Mbps (375 Mbps efectivos), y promete ser sencilla de usar, siendo s&amp;#243;lo necesario que los dispositivos se toquen para que se inicie el proceso de transferencia de manera autom&amp;#225;tica. Para evitar de manera sencilla el robo de informaci&amp;#243;n, los equipos deben estar a un m&amp;#225;ximo de 3 cms de distancia el uno del otro. De todos modos, el usuario siempre puede especificar restricciones a que equipos puede conectarse.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/carlodiban/SIXpwvtXxTI/AAAAAAAAAC8/GgDlXigrTi0/s1600-h/zz1ea19d75_large%5B8%5D.jpg"&gt;&lt;img height="125" alt="zz1ea19d75_large" src="http://lh6.ggpht.com/carlodiban/SIXpxbEz4xI/AAAAAAAAADA/Gu_fH-J4qtc/zz1ea19d75_large_thumb%5B6%5D.jpg?imgmax=800" width="298" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;font size="1"&gt;fuente: &lt;a href="http://www.fayerwayer.com"&gt;www.fayerwayer.com&lt;/a&gt;&amp;#160;&lt;/font&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-1769950391551702601?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=1769950391551702601" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1769950391551702601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1769950391551702601?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/tecnologa-transferjet.html" title="Tecnología TransferJet" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/carlodiban/SIXpxbEz4xI/AAAAAAAAADA/Gu_fH-J4qtc/s72-c/zz1ea19d75_large_thumb%5B6%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D04BSH09eCp7ImA9WxdVFks.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-3590142570274654044</id><published>2008-07-21T14:43:00.001-04:00</published><updated>2008-07-21T14:45:59.360-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T14:45:59.360-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Noticias" /><title>Volviendo…</title><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Como se pudo notar deje de lado un poco las tareas del blog, para poder probar con otras herramientas y estudiar nuevas tecnolog&amp;#237;as. Ya dando por finalizado ese paso, volver&amp;#233; a publicar en el blog sobre temas como las tecnolog&amp;#237;as de Microsoft para desarrolladores de software y seguiremos viendo el mundo de Java.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-3590142570274654044?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=3590142570274654044" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/3590142570274654044?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/3590142570274654044?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/07/volviendo.html" title="Volviendo…" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUEGRXY-fip7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-1845264629448355747</id><published>2008-01-29T15:19:00.001-03:00</published><updated>2008-07-22T10:40:24.856-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:40:24.856-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Los Paquetes (Package)</title><content type="html">&lt;p&gt;Los paquetes en Java son una manera de organizar nuestras clases, ya sea por finalidad, por su relación con la herencia que tienen, etc. Al momento de crear una aplicación muy extensa el numero de clases va aumentando considerablemente y puede que se nos de que necesitemos colocarle el mismo nombre a dos clases distintas.&lt;br /&gt;Un proyecto que recién comenzamos se crea en un subdirectorio con el nombre del proyecto, luego se crea la aplicación, un archivo que tiene como extensión .java, la cual tiene todo nuestro código de la clase y así sucesivamente podemos crear más clases en nuestro proyecto y quedaran en el mismo directorio. Bien, java tiene la función de los paquetes que nos ayuda a organizar esto cuando hay demasiadas clases, las cuales las podemos organizar en directorios distintos pero dentro del mismo proyecto.&lt;br /&gt;Para poder utilizar la función de los paquetes debemos utilizar la palabra reservada “package”, la cual se tiene que ubicar antes de declarar nuestra clase ósea una línea antes que cuando escribamos la palabra class.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo de esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;package MisClases;&lt;br /&gt;&lt;br /&gt;public class primeraClase&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Como podemos observar le indique que mi clase pertenezca al paquete MisClases y automáticamente mi clase quedara guardad en el directorio dentro de mi proyecto MisClases. Podemos crear otra clase para que quede en el mismo paquete, veamos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;package MisClases;&lt;br /&gt;&lt;br /&gt;public class segundaClase&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Las clases primeraClase y segundaClase quedaran guardadas en el mismo paquete, porque tienen algún tipo de relación como explique mas arriba, eso lo determina el desarrollador.&lt;br /&gt;&lt;br /&gt;También podemos crear Subpaquetes, esto sirve para organizar más aún nuestra aplicación, por ejemplo si queremos tener nuestro paquete MisClases organizado en categorías podemos utilizar esta función, veamos como se hace:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;package MisClases.basicas;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;package MisClases.avanzadas;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;En este situación lo que hice es decirle que guarde mis clases de este paquete en el directorio básicas o avanzadas según corresponda, y así vamos armando una estructura organizada de las clases de nuestra aplicación.&lt;br /&gt;&lt;br /&gt;Para importar las clases debemos utilizar la palabra reservada “import”, la cual tiene dos tipos de importación, las que pueden ser importando una clase específica o las clases públicas de un paquete entero, esto se hace de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;import java.awt.Font;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Acá estoy importando una clase específica de Java, o bien:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;import java.awt.*;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;En este caso lo que hice es importar todas las clases publicas del paquete awt, esto lo hice indicando con un *.&lt;br /&gt;Java cuenta con muchísimos paquetes de clases, los que pueden revisar en la página de Sun (Link indicado al costado derecho del Blog). Pero yo les voy a poner los más utilizados.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;Paquete Descripción&lt;br /&gt;&lt;br /&gt;java.applet : Contiene las clases necesarias para crear applets que se ejecutan&lt;br /&gt;en la ventana del navegador.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;java.awt : Contiene clases para crear una aplicación GUI independiente&lt;br /&gt;de la plataforma.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;java.io : Entrada/Salida. Clases que definen distintos flujos de datos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;java.lang : Contiene clases esenciales, se importa implícitamente sin&lt;br /&gt;necesidad de una sentencia import.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;java.net : Se usa en combinación con las clases del paquete java.io para&lt;br /&gt;leer y escribir datos en la red.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;java.util : Contiene otras clases útiles que ayudan al programador.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ojo, que los dos puntos ( : ) no van en el código.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-1845264629448355747?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=1845264629448355747" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1845264629448355747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/1845264629448355747?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/los-paquetes-package.html" title="Los Paquetes (Package)" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eCp7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-883879607657913510</id><published>2008-01-26T15:44:00.000-03:00</published><updated>2008-07-22T10:41:32.840-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.840-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Interfaces</title><content type="html">Las interfaces son el paso más delante de las clases abstractas, En este lenguaje de programación el concepto de interfaces es una clase abstracta pura, ya que en las interfaces todos los métodos son abstractos, no se puede implementar ninguno. ¿Para que nos sirve una interfase?, estas nos sirven para estableces una especie de protocolos entre clases. También nos permite diseñar la clase con su forma con nombres de métodos, pero no bloques de código, por eso se parecen a las clases abstracta, la lista de argumentos y el tipo de retorno.&lt;br /&gt;Las interfaces pueden tener datos dentro de ellas pero estos siempre van a ser final y static.&lt;br /&gt;&lt;br /&gt;También como en Java no contamos con la herencia múltiple, las interfaces nos ayudan a poder implementar esta utilidad que sirve muchísimo, en la entrada sobre herencia les comente esto, que con las interfaces podemos crear clases como el hidroavión que es un tipo de transporte aéreo y acuático a la vez y si queremos heredar de dos parte no podemos, aquí entran las interfaces, nos ayudan a simular una herencia múltiple.&lt;br /&gt;Para poder utilizar las interfaces dentro de una aplicación lo debemos hacer utilizando la palabra reservada “implements” en la clase que queremos ocupar nuestra interfaces y para crear nuestra interfase debemos utilizar la palabra reservada “interface” en vez de la palabra “class”, la interfase puede declararse public o sin  un modificador de acceso.&lt;br /&gt;&lt;br /&gt;Ejemplo de esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;interface Acuático&lt;br /&gt;{&lt;br /&gt;           &lt;dd&gt;void Acelerar(int velocidad);&lt;/dd&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Hidroavión extends Aéreo implements Acuático&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Nosotros podemos hacer referencia de una interfase, pero no podemos instanciarlas, la referencia de las interfaces pueden ser implementadas a cualquier objeto que este utilizando la interfase.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Acuático hidro = new Hidroavión();&lt;br /&gt;hidro.Acelerar(int velocidad);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A diferencia de las clases las interfaces pueden heredar más de una interfase, Veamos como se hace esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;interface Nombre_Interfase extends Nom_Interface, Nom_Interface2,…&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;En el video de esta materia no voy hacer el ejemplo del hidroavión, ese se los dejo a ustedes para que practiquen, yo voy a explicar otro tipo de aplicación.&lt;br /&gt;&lt;a style="color: rgb(255, 102, 0);" href="http://rapidshare.com/files/86904162/Interfaces.rar.html"&gt;&lt;br /&gt;Descargar: Video utilización de las Interfaces.&lt;/a&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-883879607657913510?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=883879607657913510" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/883879607657913510?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/883879607657913510?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/interfaces.html" title="Interfaces" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eSp7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-8648879540220344550</id><published>2008-01-22T16:10:00.000-03:00</published><updated>2008-07-22T10:41:32.841-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.841-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Clases Abstractas</title><content type="html">&lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Las clases abstractas en Java, son clases las cuales solo se utilizan si aplicamos herencia, para que otras clases deriven de nuestra clase abstracta. ¿Para que nos sirve esto?, esto nos sirve para poder reutilizar código y hacer la programación más organizada y rápida, para declarar una clase abstracta tenemos que utilizar la palabra reservada “abstract”, la cual se pone al inicio de la clase.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Ejemplo de esto:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(204, 0, 0);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;abstract class miClase&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(204, 0, 0);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;dd&gt;…&lt;/dd&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Una clase abstracta tiene métodos abstractos, los cuales se declaran igual con la palabra “abstract”, la diferencia de esto es que cuando una clase tiene un método abstracto la clase automáticamente tiene que ser abstracta. Los métodos abstractos no tiene un cuerpo de código, solo se escribe la declaración de los métodos, cuando nosotros heredamos de una clase abstracta y queremos utilizar a los métodos de esta que heredamos, tenemos que hacerlo mediante una redefinición de los métodos mediante una implementación.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Los métodos abstractos no pueden ser static debido a que si es así no pueden ser redefinidos por las subclases que tengamos.&lt;/span&gt;&lt;/p&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;abstract int aumentaNumero(int numero);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;Bien, como pueden observar el método abstracto no tiene un cuerpo de código cuando lo declaramos en la clase abstracta.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a style="color: rgb(255, 102, 0);" href="http://rapidshare.com/files/85769607/Clases_Abstractas.rar.html"&gt;Descargar: Video instructivo sobre Clases y Métodos Abstractos.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-8648879540220344550?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=8648879540220344550" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8648879540220344550?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/8648879540220344550?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/clases-abstractas.html" title="Clases Abstractas" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eSp7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-6849095111207039663</id><published>2008-01-18T00:01:00.000-03:00</published><updated>2008-07-22T10:41:32.841-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.841-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>this y super</title><content type="html">&lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;this&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Cuando nosotros queremos referirnos a los miembros de la propia clase debemos utilizar la palabra reservada “this”, ¿Qué es esto? Es mas fácil explicarlo con ejemplo, ósea cuando nosotros queremos que una variable tome un valor el cual nos vamos a referir mediante la misma variable, ya sea esto:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;int numero = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;this.numero = numero;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;lo que le estamos diciendo a nuestra aplicación es que la variable numero, tome el valor de numero en este caso es 1, si le cambiamos el valor a 5, por ejemplo, la variable va a tomar el valor 5. ¿Para que sirve esto?, esto lo utilizamos comúnmente cuando debemos ocupar un constructor y le va llegar un parámetro, por ende le decimos a nuestro constructor que la variable que tome el valor que le llegue, ya sea por teclado o si esta asignada.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;Veamos un ejemplo:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;class miVariable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="ES-CL"&gt;miVariable(int numero) {&lt;/span&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;    &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;dd&gt;this.numero = numero;&lt;/dd&gt;&lt;/span&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style=""&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;En este caso lo que estoy diciendo con la palabra this es que haga referencia a la variable numero, esto siempre es cuando se hace referencia a los miembros de la propia clase como dice en muchas otras paginas de cursos de Java.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;super&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES-CL"&gt;la palabra clave super se utiliza cuando nosotros trabajamos en una subclase, ósea estamos implementando herencia en java. Cuando ocupamos herencia, valga la redundancia, heredamos todo lo de la clase padre, por ende en nuestro constructor de la subclase tenemos que inicializar las variables de esta misma, más los que heredamos. Esto se hace a través de la palabra reservada “super”, para este funcionamiento veamos el siguiente código:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="ES-CL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="color: rgb(51, 204, 0);" class="MsoNormal"&gt;// En la clase madre por ejemplo tenemos una variable int contador.&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;public class Hija extends Madre&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;Hija(int contador, double dolar, String saludo)&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;{&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="" lang="EN-US"&gt;          &lt;/span&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;super(contador);&lt;/span&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;&lt;dd&gt;this.dolar = dolar;&lt;/dd&gt;&lt;/span&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;&lt;dd&gt;this.saludo = saludo;&lt;/dd&gt;&lt;/span&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;span style="" lang="ES-CL"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p style="color: rgb(102, 102, 102);" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Bien, aquí cree mi clase hija donde escribí su constructor con tres parámetros, los cuales uno lo herede de la clase madre y los otros dos que son dólar y saludo pertenecen solamente a la clase hija. Como pudieron ver la forma para inicializar la variable que herede tuve que aplicar la variable especial “super”.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a style="color: rgb(255, 102, 0);" href="http://rapidshare.com/files/84665953/This_y_Super.rar.html"&gt;Descargar: Video instructivo de this y super.&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-6849095111207039663?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=6849095111207039663" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/6849095111207039663?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/6849095111207039663?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/this-y-super.html" title="this y super" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eip7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-4396380758234533880</id><published>2008-01-14T12:00:00.000-03:00</published><updated>2008-07-22T10:41:32.842-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.842-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Variables, Métodos y Clases final</title><content type="html">Variables Final&lt;br /&gt;&lt;br /&gt;Las variables final son donde guardamos información que no podemos modificar, es muy parecido a la función static pero la diferencia es que las variables final no se pueden modificar. Si nosotros tratamos de modificar una variable final el compilador de nuestra aplicación nos arrojara un error, ya que una vez definido el valor no se puede volver a modificar, mientras que las variables static si podíamos modificarlas pero cambiaba el valor de nuestra variable para todas las instancias de esta misma.&lt;br /&gt;&lt;br /&gt;Veamos la sintaxis de variables final:&lt;br /&gt;&lt;br /&gt;Sintaxis:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;final tipo_variable nombre_de_variable = valor;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;final String miFrase = “Este va a ser mi valor final”;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Métodos Final&lt;br /&gt;&lt;br /&gt;En el caso de los métodos finales es la misma función que las variables finales, la cual consta que no se puede modificar el funcionamiento de nuestro método, pero además de esto al utilizar herencia no podemos derivar un método final a una clase hija de nuestra aplicación.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;class Finalización&lt;br /&gt;{&lt;br /&gt;            &lt;dd&gt;int numero = 5;&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;            &lt;dd&gt;final void Aumentar()&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;{&lt;/dd&gt;&lt;br /&gt;                        &lt;dd&gt;&lt;dir&gt;numero++;&lt;/dir&gt;&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;}&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;public int devuelveNumero()&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;{&lt;/dd&gt;&lt;br /&gt;                        &lt;dd&gt;&lt;dir&gt;return numero;&lt;/dir&gt;&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;}&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class ejemploFinal extends Finalizacíon&lt;br /&gt;{&lt;br /&gt;            &lt;dd&gt;int numero = 5;&lt;/dd&gt;&lt;br /&gt;           &lt;br /&gt;            &lt;dd&gt;public int devuelveNumero()&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;{&lt;/dd&gt;&lt;br /&gt;                        &lt;dir&gt;&lt;dd&gt;return numero;&lt;/dir&gt;&lt;/dd&gt;&lt;br /&gt;            &lt;dd&gt;}&lt;/dd&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Acá como se puede observar se aplico herencia entre la clase Finalización y ejemploFinal, pero si pueden ver en la clase hija (ejemploFinal), no se derivo el método aumentaNumero(), ya que este es final.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Clases Final&lt;br /&gt;&lt;br /&gt;La función final en una clase es bastante simple, la cual consta que nosotros si deseamos crear una clase final lo que estamos indicando es que esta no va a poder tener subclases, ósea le indicamos que no va a derivar en clases hijas.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo de esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;final class Hijo extends Padre&lt;br /&gt;{&lt;br /&gt;….&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;class Primo extends Hijo&lt;/span&gt; &lt;span style="color:#33cc00;"&gt;// Acá arrojara un error.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#cc0000;"&gt;{&lt;br /&gt;….&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;El error que arroja es ya que la clase hijo es final y no puede tener subclases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-4396380758234533880?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=4396380758234533880" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4396380758234533880?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/4396380758234533880?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/variables-mtodos-y-clases-final.html" title="Variables, Métodos y Clases final" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eip7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-6044891534621746260</id><published>2008-01-10T17:37:00.000-03:00</published><updated>2008-07-22T10:41:32.842-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.842-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Atributos y Métodos Estáticos</title><content type="html">&lt;p&gt;Nosotros en algún momento determinado al crear una clase necesitamos o queremos almacenar información de tal manera que esta sea igual para todas las instancias de esa clase, para ello debemos ocupar los denominados atributos estáticos, los cuales cumplen con la función de que su valor no se modifica dependiendo de la instancia, sino que el valor va a ser para todos igual, en caso de que se modifique el valor o la información de nuestro atributo estático este cambiara para todas las instancias de nuestra clase. A final de cuentas a lo que llegamos es a una copia única de la variable de instancia. Para hacer esto posible debemos utilizar la palabra reservada “static” al momento de declarar nuestra variable.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo de esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;public class Ejemplo extends GranEjemplo&lt;br /&gt;{&lt;br /&gt;&lt;dd&gt;static int UF = 100;&lt;/dd&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;El valor de nuestra variable UF siempre será el mismo para cualquier objeto instansiado de la clase Ejemplo. Si el objeto instansiado cambia el valor de nuestra variable este cambiara para todos los demás objetos.&lt;br /&gt;&lt;br /&gt;Bien, de esta misma manera podemos crear métodos estáticos también, los cuales solamente pueden trabajar con variables estáticas, estos métodos estáticos no pueden acceder a variables que no sean de instancia estática.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;public class Ejemplo extends GranEjemplo&lt;br /&gt;{&lt;br /&gt;&lt;dd&gt;static int UF = 100;&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;double dolar = 50.45;&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;dd&gt;static void aumentaUF()&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;{&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;&lt;dir&gt;UF++;&lt;/dir&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dd&gt;}&lt;/dd&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Acá podemos observar que el método al ser declarado al principio también lleva la palabra reservada “static” por ende lo hace un método estático, recuerden que solo pueden trabajar con variables de instancia static. Si al método aumentaUF(), yo le hubiese indicado que aumentara el valor de la variable “dolar”, esto me mandaría un error, ya que esta variable no es estática. &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://rapidshare.com/files/82794499/Estaticos.rar.html"&gt;&lt;span style="color:#ff6600;"&gt;Descargar: Video sobre función static.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-6044891534621746260?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=6044891534621746260" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/6044891534621746260?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/6044891534621746260?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/atributos-y-mtodos-estticos.html" title="Atributos y Métodos Estáticos" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUENQ3Y_eip7ImA9WxdVF04.&quot;"><id>tag:blogger.com,1999:blog-8852790235702467595.post-2177601322897820401</id><published>2008-01-05T15:55:00.000-03:00</published><updated>2008-07-22T10:41:32.842-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-22T10:41:32.842-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Creación de Constructores</title><content type="html">&lt;p class="MsoNormal" style=""&gt;&lt;span lang="ES-TRAD"&gt;Los constructores son una especie de métodos con una estructura similar a la de los métodos, pero la diferencia que los constructores son invocados automáticamente cuando nosotros queremos instanciar un objeto de la clase a la que pertenece nuestro constructor. La función específica de los constructores es para inicializar valores en un objeto.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="ES-TRAD"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="ES-TRAD"&gt;Veamos un ejemplo de esto:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="ES-TRAD"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;public class Constructor&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;{&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;dd style="color: rgb(204, 0, 0);"&gt;int Valor;&lt;/dd&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;dd style="color: rgb(204, 0, 0);"&gt;Constructor()&lt;/dd&gt;&lt;br /&gt;&lt;dd style="color: rgb(204, 0, 0);"&gt;{&lt;/dd&gt;&lt;br /&gt;&lt;dir style="color: rgb(204, 0, 0);"&gt;&lt;dd&gt;Valor = 5;&lt;/dd&gt;&lt;/dir&gt;&lt;br /&gt;&lt;dd style="color: rgb(204, 0, 0);"&gt;}&lt;/dd&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="ES-TRAD"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="ES-TRAD"&gt;Bien, acá podemos ver que tenemos una clase llamada Constructor la cual tiene una variable de tipo entero, la cual a través de nuestro constructor le indicamos que tome el valor de 5. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="ES-TRAD"&gt;Como pueden ver los constructores de parecen en estructura mucho a los métodos pero ahí una diferencia para poder saber cual es cual, una es que siempre los constructores se deben llamar igual que la clase y la segunda es que no tiene un tipo de dato ni primitivo, ni personalizado al momento de declararlo mientras que los métodos si debemos colocarles algún tipo de identificador de dato.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8852790235702467595-2177601322897820401?l=carlodiban.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8852790235702467595&amp;postID=2177601322897820401" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/2177601322897820401?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8852790235702467595/posts/default/2177601322897820401?v=2" /><link rel="alternate" type="text/html" href="http://carlodiban.blogspot.com/2008/01/creacin-de-constructores.html" title="Creación de Constructores" /><author><name>Carlo Diban B.</name><uri>http://www.blogger.com/profile/11643008949518347011</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="21" height="32" src="http://3.bp.blogspot.com/_3ZKuzfPO_Zk/SNkLHE87CEI/AAAAAAAAAGE/FRrG8PCQRrg/S220/Carlo+Diban.png" /></author><thr:total>0</thr:total></entry></feed>

