<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11471302</id><updated>2012-01-22T09:36:12.739-05:00</updated><category term='Crystal Reports'/><category term='Microsoft Community Specialist'/><category term='Windows Mobile'/><category term='WebCamp2010'/><category term='Strong Name Assembly'/><category term='Desarrollo con Móviles'/><category term='VB.NET PrevInstance / Instancia Previa'/><category term='Microsoft Colombia'/><category term='IE9'/><category term='acid3'/><category term='Assembly generation failed -- Referenced assembly does not have a strong name'/><category term='VB.NET'/><category term='ExpertDay'/><category term='Desarrollo por Capas'/><category term='Azure'/><category term='BogotaDotNet'/><category term='ASP.NET'/><category term='Almacenamiento Local Azure'/><category term='Curso de Azure'/><category term='css'/><category term='eVB'/><category term='Compact frameqork'/><category term='Tutor Embedded Visual Basic'/><category term='Expression Blend 4 WP7'/><category term='Most Valuable Professional'/><category term='WebCamp'/><category term='PictureBox'/><category term='VS2003'/><category term='Bases de Datos Locales WP7'/><category term='CF'/><category term='Nuevas Caracteristicas MANGO'/><category term='Internet Explorer 9'/><category term='PPC'/><category term='Cloud'/><category term='Concurso'/><category term='Requisitos Desarrollo'/><category term='Curso C# desde Cero'/><category term='SharePoint'/><category term='css3'/><category term='MVP'/><category term='WP7'/><category term='Curso Virtual'/><category term='Cursos BogotaDotNet'/><category term='VS2008'/><category term='Profesional mas Valioso'/><category term='Carga'/><category term='Azure Development Storage Initializaion'/><category term='Windows Phone 7'/><category term='evb Tutor'/><category term='Curso Silverlight'/><category term='VS2010'/><category term='Desarrollo en la Nube'/><category term='Compact Framework'/><category term='Curso Windows Phone 7'/><category term='VS2005'/><category term='WebCamp10'/><category term='r Imagen'/><category term='PocketPC'/><category term='WinCE'/><category term='Windows CE'/><category term='Reportes'/><title type='text'>CodigoMobile</title><subtitle type='html'>Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11471302.post-3291041155213495471</id><published>2012-01-01T14:14:00.001-05:00</published><updated>2012-01-03T05:19:24.667-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Community Specialist'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Colombia'/><category scheme='http://www.blogger.com/atom/ns#' term='Most Valuable Professional'/><title type='text'>[MVP] Reconocimiento MVP 2012</title><content type='html'>Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Solo para compartir con ustedes que he sido nombrado por Microsoft como MVP (Most Valuable Professional)&amp;nbsp; por segundo año en C# (C Sharp).&lt;br /&gt;A &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; mis agradecimientos porque sin ustedes no hubiera sido posible este reconocimiento, pero sobre todo mis agradecimientos a nuestro padre Dios, por sus bendiciones, a todos los miembros y asistentes a los eventos organizados por la comunidad @BogotaDotNet hoy @BDotNet.&lt;br /&gt;Especialmente al grupo de colaboradores y líderes de la comunidad BDotnet:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Luis Alberto Álvarez&lt;/li&gt;&lt;li&gt;Néstor Fernández&lt;/li&gt;&lt;li&gt;Nelson Venegas&lt;/li&gt;&lt;li&gt;Julio Avellaneda&lt;/li&gt;&lt;li&gt;Miguel Quintero&lt;/li&gt;&lt;li&gt;Eduardo Montilla&lt;/li&gt;&lt;li&gt;Jhonnys López&lt;/li&gt;&lt;li&gt;Nicolás Herrera&lt;/li&gt;&lt;li&gt;Mario Botero&lt;/li&gt;&lt;li&gt;Sergio Vargas&lt;/li&gt;&lt;li&gt;Felipe Sotelo&lt;/li&gt;&lt;li&gt;Jorge Gamba&lt;/li&gt;&lt;li&gt;Samuel Arellano (Mexico)&lt;/li&gt;&lt;li&gt;Vicente Guzman (Mexico)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Pero sobre todo al grupo de directores de la comunidad BDotNet del cual hago parte, a ustedes que mas que compañeros de lucha en esto de las comunidades los considero mis amigos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Juan Carlos Ruiz&lt;/li&gt;&lt;li&gt;John Alexander Bulla&lt;/li&gt;&lt;li&gt;Robinson Moscoso.&lt;/li&gt;&lt;/ul&gt;A ustedes mis amigos que hace 4 años confiaron en mi y me permitieron ser parte primero del Core Group y luego de la dirección de esta nuestra comunidad BDotNet!!!&lt;br /&gt;&lt;br /&gt;Muchos agradecimientos también al programa Microsoft Community Specialist en cabeza de un Master: Walter Novoa!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-GXOmjGtdi9s/TwCwqgDvHWI/AAAAAAAACzw/-j7pIvF3l_8/s1600-h/image%25255B9%25255D.png"&gt;&lt;img alt="image" border="0" height="486" src="http://lh6.ggpht.com/-Tzny7-wN9-o/TwCwr82SISI/AAAAAAAACz4/nCnv9-3TrLs/image_thumb%25255B5%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="710" /&gt;&lt;/a&gt;&lt;br /&gt;Un FELIZ AÑO 2012!!!! y muchas bendiciones para &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!!!!&lt;br /&gt;Hasta la próxima!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-3291041155213495471?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3291041155213495471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3291041155213495471'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2012/01/mvp-reconocimiento-mvp-2012.html' title='[MVP] Reconocimiento MVP 2012'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-Tzny7-wN9-o/TwCwr82SISI/AAAAAAAACz4/nCnv9-3TrLs/s72-c/image_thumb%25255B5%25255D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-3705591672321500794</id><published>2011-12-13T08:06:00.001-05:00</published><updated>2011-12-13T18:28:15.717-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursos BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><title type='text'>[Curso] Desarrollo para Windows Phone 7–Profesores</title><content type='html'>Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;Les comparto algunas fotos del curso de Windows Phone 7 dictado en las instalaciones de Microsoft Bogotá para los profesores de algunas universidades del país. &lt;br /&gt;&lt;br /&gt;Realizado los días 12 y 13 de Diciembre de 2011.&lt;br /&gt;&lt;br /&gt;Gracias a todos los asistentes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-oGdyl6rTdqQ/TudN33kaNwI/AAAAAAAACyw/guzBBjWMGOY/s1600-h/DSC05609%25255B5%25255D.jpg"&gt;&lt;img alt="DSC05609" border="0" height="377" src="http://lh5.ggpht.com/-b7EfGJMxeAM/TudN4zi-A6I/AAAAAAAACy4/t0yqAD5H8wc/DSC05609_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05609" width="484" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MA8pCHFjS2Q/Tufe0lqL4SI/AAAAAAAACzY/iBwaaAB-2Vw/s1600/DSC05618.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-MA8pCHFjS2Q/Tufe0lqL4SI/AAAAAAAACzY/iBwaaAB-2Vw/s320/DSC05618.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-nQsXBeDNXLg/Tufeu6UN8QI/AAAAAAAACzQ/zBcjqvv_LwM/s1600/DSC05617.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-nQsXBeDNXLg/Tufeu6UN8QI/AAAAAAAACzQ/zBcjqvv_LwM/s320/DSC05617.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zvPF4n_PjO8/TuffQXVInFI/AAAAAAAACzg/fGFeav1EZuk/s1600/DSC05614.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-zvPF4n_PjO8/TuffQXVInFI/AAAAAAAACzg/fGFeav1EZuk/s320/DSC05614.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://lh5.ggpht.com/-LsUD236J3oY/TudN5uxrVDI/AAAAAAAACzA/kw9PBNQDVWg/s1600-h/DSC05610%25255B4%25255D.jpg"&gt;&lt;img alt="DSC05610" border="0" height="372" src="http://lh6.ggpht.com/-ZDPLdttIDeo/TudN6tu8DZI/AAAAAAAACzI/QJJHX5FUk-Q/DSC05610_thumb%25255B1%25255D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05610" width="484" /&gt;&lt;/a&gt;&lt;br /&gt;Saludos a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-3705591672321500794?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3705591672321500794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3705591672321500794'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/12/curso-desarrollo-para-windows-phone.html' title='[Curso] Desarrollo para Windows Phone 7–Profesores'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-b7EfGJMxeAM/TudN4zi-A6I/AAAAAAAACy4/t0yqAD5H8wc/s72-c/DSC05609_thumb%25255B2%25255D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8074099498391209850</id><published>2011-10-15T13:08:00.001-05:00</published><updated>2011-10-15T13:08:42.442-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos Locales WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='PocketPC'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso C# desde Cero'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[WP7] Bases de datos Locales en Windows Phone 7.5 (I)</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:todo@s"&gt;todo@s&lt;/a&gt; nuevamente,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy quiero compartir con ustedes como es el proceso para generar el contexto que se utiliza para utilizar bases de datos locales en Windows Phone 7.5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Crear Contexto de datos para Bases de datos Locales en Windows Phone 7.5&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Es necesario indicar que los motores de bases de datos que podemos utilizar locales en Windows Phone 7.5 son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft SQL Server Mobile (Algunos lo siguen llamando Compact Edition)&lt;/li&gt;    &lt;li&gt;SQLite&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Debemos crear un contexto de datos (DataContext) para poder tener acceso a la base de datos local en Windows Phone 7.5 conocido también como Windows Phone Mango, aquí es necesario aclarar, que no podemos utilizar ADO.NET de manera directa para este acceso a la base de datos local en el dispositivo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Por la razón anterior debemos crear un contexto de datos de la base de datos a utilizar en nuestro desarrollo para Windows Phone 7.5, este DataContext, no es mas que una clase en uno de los lenguajes de la plataforma .NET (VB.NET o C#), en la cual se encuentran métodos que permiten las operaciones CRUD, clases de tipo entidad que representan un registro de cada una de las tablas, clases de tipo colección que representan la tabla o un conjunto de registros de la tabla.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para muchos de los que venimos del mundo de Windows Mobile, desarrollo ASP.NET o Windows Forms es un cambio brusco, ya que estábamos acostumbrados a tener todo controlado desde ADO.NET.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La razón principal de la reflexión anterior es que al no tener el manejo de las operaciones de la base de datos a través de ADO.NET las cosas como que se nos complican. Sin embargo, el manejo de las operaciones de la base de datos locales en Windows Phone 7.5 se realiza a través de LinQ y un DataContext, este DataContext es el que vamos a aprender a construir en este post.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Algo que debemos tener claro es que nuestra base de datos local de SQL Server Mobile se almacena en el almacenamiento privado del dispositivo, esto es lo que conocemos como “Isolated Storage”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-ZUQagDpTLv0/TpnLov4_Z5I/AAAAAAAACsc/QeJ9mFnT06w/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-_9V24xtpaOg/TpnLpXrq3TI/AAAAAAAACsk/lZAPOx2wW2k/image_thumb%25255B1%25255D.png?imgmax=800" width="519" height="249" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la imagen anterior podemos observar como se almacena nuestra base de datos en el &lt;strong&gt;Isolated Storage&lt;/strong&gt; y que a través de &lt;strong&gt;LINQ to SQL&lt;/strong&gt; nos comunicamos con ella utilizando el DataContext desde nuestra aplicación de Windows Phone 7.5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;La clase DataContext&lt;/h5&gt;  &lt;p&gt;Esta es una clase que contiene de todas las operaciones CRUD (Create, Read, Update, Delete) basada en la base de datos para realizar operaciones sobre la Base de Datos. En la cual utilizando LINQ to SQL accedemos a todas las operaciones que necesitemos realizar sobre la base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Muy bien, ya teniendo claro todo lo anterior, lo primero que debemos hacer es definir el modelo de datos en nuestra base de datos SQL Mobile, para esto vamos a utilizar SQL Server Management Studio para crear la base de datos y la estructura de las tablas de nuestra base de datos.&lt;/p&gt;  &lt;p&gt;Si se preguntan si podemos utilizar Entity Framework 4.1 para realizar esta operación, la respuesta es SI, lo importante es definir el modelo de nuestro repositorio de datos y generar el archivo .SDF de la base de datos SQL Server Mobile.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora vamos a mostrar como crear una base de datos desde el &lt;strong&gt;SQL Server Management Studio&lt;/strong&gt;, al iniciar esta aplicación nos vamos a encontrar con la siguiente pantalla:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-wG69iQAf0eA/TpnLp6kUQ-I/AAAAAAAACss/r5HCyJ5qcnY/s1600-h/image%25255B8%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-8PP7Tkuq99g/TpnLq6KJIBI/AAAAAAAACs0/iUMQc-loVDE/image_thumb%25255B4%25255D.png?imgmax=800" width="457" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En el tipo de Servidor vamos a abrir la lista de selección y seleccionar &lt;strong&gt;SQL Server Compact&lt;/strong&gt;, con esto nos aseguramos crear la base de datos que podemos utilizar en Windows Phone 7.5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al seleccionar el tipo de base de datos, seleccionamos en el archivo de la base de datos, para crear nuestra base de datos SQL Server Compact:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-tDjg1BQ2pR8/TpnLrONiFfI/AAAAAAAACs8/O_RCP62uuxc/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-H4HmaJkJCCU/TpnLrzX74VI/AAAAAAAACtE/icPATltq3c4/image_thumb%25255B7%25255D.png?imgmax=800" width="465" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vamos a crear una nueva base de datos, entonces de la lista que nos muestra, que son las bases de datos que hayamos utilizado, vamos a seleccionar la opción &lt;strong&gt;&amp;lt;New Database…&amp;gt;&lt;/strong&gt; para crear una nueva base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Esta acción nos abre una nueva pantalla en la cual podemos darle un nombre a nuestra base de datos, colocarle un nombre, etc.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-IC0cq5hyg-o/TpnLsTepqpI/AAAAAAAACtM/PrSZH_PT5Gw/s1600-h/image%25255B19%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-QZyKizXS8OU/TpnLtaPkgcI/AAAAAAAACtU/P2-daYZwf_s/image_thumb%25255B11%25255D.png?imgmax=800" width="466" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;Como observamos podemos seleccionar la ruta y colocar el nombre de la base de datos .SDF que vamos a crear, esto lo hacemos en el primer cuadro de texto de la ventana, en donde dice “&lt;strong&gt;Enter the new SQL Server Compact database filename&lt;/strong&gt;”, el botón que se encuentra junto a la caja de texto con el texto “&lt;strong&gt;Browse…”&lt;/strong&gt; nos permite explorar el sistema de archivos de nuestra PC para seleccionar la ruta que nosotros deseemos y colocar allí la base de datos.&lt;/p&gt;  &lt;p&gt;Luego hay un Check que nos permite sobre escribir la base de datos si esta ya existe.&lt;/p&gt;  &lt;p&gt;También podemos escoger en este punto, el tipo idioma que va a manejar nuestra base de datos.&lt;/p&gt;  &lt;p&gt;Si deseamos que nuestra base de datos haga diferencia entre mayúsculas y minúsculas podemos seleccionar el Check de &lt;strong&gt;“Case sensitive”&lt;/strong&gt; que aparece bajo el Collation que hayamos seleccionado para nuestra base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La siguiente configuración de creación, es si deseamos asignarle una clave para poder acceder a nuestra base de datos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-azmIqoDqJiE/TpnLyThUv5I/AAAAAAAACtc/18DO2amfrA0/s1600-h/image%25255B23%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-XpgHAaNuqgk/TpnLzGy0LNI/AAAAAAAACtk/Mi0ADu7LtgU/image_thumb%25255B13%25255D.png?imgmax=800" width="462" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;También podemos seleccionar un método de encriptación de los datos para nuestra base de datos, si no deseamos encriptar nuestra base de datos seleccionamos la opción por defecto : “&lt;strong&gt;UNENCRYPTED&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-cflmEdiBIQY/TpnLzo5FjzI/AAAAAAAACts/XFRJsHCzbdA/s1600-h/image%25255B28%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-00jpPZNjb9M/TpnL0d5rztI/AAAAAAAACt0/SAhe8obc5Ck/image_thumb%25255B16%25255D.png?imgmax=800" width="465" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vamos a crear una BD que se llame &lt;strong&gt;DBWinPhone.sdf,&lt;/strong&gt; con los parámetros por defecto, como lo podemos apreciar en la imagen anterior.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al presionar el botón de OK, nos muestra una ventana de confirmación indicando que la base de datos no tiene una clave de protección.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-potvzbnB5Kg/TpnL07qs-uI/AAAAAAAACt8/Kirqis40Ch0/s1600-h/image%25255B32%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-fNbuSIrjUtY/TpnL1S5vTSI/AAAAAAAACuE/UFkTXwBvxeE/image_thumb%25255B18%25255D.png?imgmax=800" width="472" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seleccionamos el botón Yes para que nos muestre la pantalla para abrir nuestra base de datos y empezar a diseñar y crear nuestras tablas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-YfWEXFQ9A2U/TpnL10dSYkI/AAAAAAAACuM/6_rinMQ5aZ8/s1600-h/image%25255B36%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-iO3qq9HJvFs/TpnL2_2gWLI/AAAAAAAACuU/iPJPzS3jg5E/image_thumb%25255B20%25255D.png?imgmax=800" width="465" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En esta pantalla ya tenemos el botón de “&lt;strong&gt;Connect&lt;/strong&gt;” con el cual abrimos y nos conectamos a la base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nos abre la ventana del SQL Server Management Studio y en el explorador de Objetos nos muestra algo como la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-8wWOe_rBhH0/TpnL3oE6K_I/AAAAAAAACuc/Y1WNryk4bOU/s1600-h/image%25255B110%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-8LkxpsXQeG0/TpnL4Rh3gsI/AAAAAAAACuk/LxElfvbLeT8/image_thumb%25255B67%25255D.png?imgmax=800" width="380" height="194" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Vamos a crear una nueva tabla para nuestra base de datos, para esto, damos clic derecho sobre la carpeta de las tablas “&lt;strong&gt;Tables&lt;/strong&gt;”, esto lo podemos apreciar en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-t1hnPRaNpzw/TpnL6PLh5HI/AAAAAAAACus/Znj_TsvJOmw/s1600-h/image%25255B49%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-XmHy65b9uNM/TpnMAH1mWwI/AAAAAAAACu0/32tfrJEIGiM/image_thumb%25255B27%25255D.png?imgmax=800" width="367" height="276" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al seleccionar la opción “&lt;strong&gt;New Table&lt;/strong&gt;” nos abre la pantalla de creación de una nueva tabla para nuestra base de datos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-80YdStrLRFU/TpnMAsu79zI/AAAAAAAACu8/4gaD9Kk4TlU/s1600-h/image%25255B54%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-pQhGzwgfWD4/TpnMBJHO0uI/AAAAAAAACvE/fWTJoSgOClU/image_thumb%25255B30%25255D.png?imgmax=800" width="474" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la caja de texto “&lt;strong&gt;Name&lt;/strong&gt;” colocamos el nombre de nuestra tabla, el la parte inferior vamos creando cada una de las columnas de nuestra base de datos.&lt;/p&gt;  &lt;p&gt;En la caja de texto debajo de “&lt;strong&gt;Column Name&lt;/strong&gt;” colocamos el nombre de las columnas, el tipo de dato para el campo, la longitud si aplica y si acepta o no nulos.&lt;/p&gt;  &lt;p&gt;Vamos a crear una tabla llamada Pais, con dos campos: Id de tipo auto numérico y el campo Pais de tipo nvarchar (texto) para almacenar el nombre del país.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-RUtrEJcmwnQ/TpnMBkeWOwI/AAAAAAAACvM/NsBtsPmZfho/s1600-h/image%25255B59%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-H2AtdbzQwog/TpnMCHwl5II/AAAAAAAACvU/nAwoju4TnDM/image_thumb%25255B33%25255D.png?imgmax=800" width="492" height="453" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la imagen anterior podemos observar la estructura de la tabla Pais que creamos para nuestra base de datos.&lt;/p&gt;  &lt;p&gt;Al darle clic al botón de OK de la pantalla se graba la estructura de la&amp;#160; tabla y se ve de la siguiente forma en el SQl Server Management Studio:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-X2wSNtovtXk/TpnMC4fkebI/AAAAAAAACvc/Y4OFI9uLvUw/s1600-h/image%25255B63%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-dJYb4ip-s2A/TpnMD-ZkEcI/AAAAAAAACvk/X6ieRpXLQ-4/image_thumb%25255B35%25255D.png?imgmax=800" width="398" height="395" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ya tenemos nuestra base de datos .SDF creada, ahora vamos a realizar el proceso de la creación de la clase que forma el DataContext para poder utilizarlo en nuestra aplicación de Windows Phone 7.5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para poder realizar el proceso necesitamos un programa que se instala con el SDK de Windows Phone 7.5, este programa se llama SQLMetal. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para ejecutarlo, vamos a abrir una ventana de comandos del sistema operativo, pero la ventana de comandos a abrir es la que se encuentra en la sección de Visual Studio 2010, como lo podemos apreciar en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-xf4-3Zrm5jo/TpnMElq3oaI/AAAAAAAACvs/lNrS6w87_LM/s1600-h/image%25255B67%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-Pwof4RJZdIc/TpnMFSLkLPI/AAAAAAAACv0/ovU26KpaLIQ/image_thumb%25255B37%25255D.png?imgmax=800" width="404" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esto nos abre una ventana de comandos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-kavZ_KZhxS4/TpnMFmBlAnI/AAAAAAAACv8/He5yz0AMMwY/s1600-h/image%25255B71%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-FhoIg36Tqd4/TpnMGEb7c6I/AAAAAAAACwE/KhfnS537p5s/image_thumb%25255B39%25255D.png?imgmax=800" width="480" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ahora si podemos ejecutar el comando SQLMetal que nos permite generar la clase que representa el DataContext para acceder a nuestra base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El comando a utilizar para generar nuestra clase es el siguiente:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQLMETAL &lt;/strong&gt;D:\Roberto\Projects\Silverlight\DBWinPhone.sdf &lt;/p&gt;  &lt;p&gt;/code:D:\Roberto\Projects\Silverlight\DBWinPhone.cs &lt;/p&gt;  &lt;p&gt;/language:csharp &lt;/p&gt;  &lt;p&gt;/namespace:LocalDBDemo &lt;/p&gt;  &lt;p&gt;/context:DBWinPhoneDataContext &lt;/p&gt;  &lt;p&gt;/pluralize&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;El primer parámetro es la ruta y el nombre de la base de datos .SDF a la cual vamos a generar el DataContext.&lt;/li&gt;    &lt;li&gt;/code: representa la ruta y el nombre del archivo físico en donde se va a generar el DataContext.&lt;/li&gt;    &lt;li&gt;/language: representa el lenguaje de programación en el cual se va a generar la clase.&lt;/li&gt;    &lt;li&gt;/namespace: representa el NameSpace con el cual se va a generar el DataContext.&lt;/li&gt;    &lt;li&gt;/context: representa el nombre que va a tener al clase del DataContext.&lt;/li&gt;    &lt;li&gt;/pluralize: indica que se deben crear los objetos que representan las colecciones y grupos de registros en el DataContext.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;En nuestra ventana de comandos colocamos nuestra sentencia para ejecutarla:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-Yz5I6CXmxEM/TpnMGnkC0HI/AAAAAAAACwM/7fKZhXKVr98/s1600-h/image%25255B76%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-8yQODURawdY/TpnMHL5YhII/AAAAAAAACwU/vNnVafCpQMo/image_thumb%25255B42%25255D.png?imgmax=800" width="671" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Iniciando la ejecución del comando:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-I0OWZcsRgd8/TpnMHVMsgQI/AAAAAAAACwc/hCN-Hm_zu0M/s1600-h/image%25255B81%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-cLE2WTvZT14/TpnMIDGflLI/AAAAAAAACwk/7afgQpFMkVY/image_thumb%25255B45%25255D.png?imgmax=800" width="673" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al terminar la generación nos muestra lo siguiente:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-4_UEBLapG_Q/TpnMIjNK20I/AAAAAAAACws/g0_-lHTy_pY/s1600-h/image%25255B85%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-CrxZ_apqcEk/TpnMJdNXSyI/AAAAAAAACw0/9hfZxsdriHw/image_thumb%25255B47%25255D.png?imgmax=800" width="671" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esto lo que hace es generarnos el archivo DBWinPhone.cs en la ruta especificada como lo podemos apreciar en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-yRT4vLFW6cM/TpnMJlHp8jI/AAAAAAAACw8/nxOQpeWIPG8/s1600-h/image%25255B95%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-xICUpOke3xY/TpnMKdVPlBI/AAAAAAAACxE/tTdISQ9tP4g/image_thumb%25255B58%25255D.png?imgmax=800" width="682" height="295" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al verificar la clase DataContext generada con el nombre DBWinPhone.cs podemos observar lo siguiente en el código:&lt;/p&gt;  &lt;pre&gt;&lt;font style="background-color: #a5b592"&gt;#pragma warning disable 1591&lt;br /&gt;//------------------------------------------------------------------------------&lt;br /&gt;// &amp;lt;auto-generated&amp;gt;&lt;br /&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; This code was generated by a tool.&lt;br /&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; Runtime Version:4.0.30319.239&lt;br /&gt;//&lt;br /&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; Changes to this file may cause incorrect behavior and will be lost if&lt;br /&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; the code is regenerated.&lt;br /&gt;// &amp;lt;/auto-generated&amp;gt;&lt;br /&gt;//------------------------------------------------------------------------------&lt;br /&gt; &lt;br /&gt;namespace &lt;font style="background-color: #ffc000"&gt;LocalDBDemo&lt;/font&gt;&lt;br /&gt;{&lt;br /&gt;	using System.Data.Linq;&lt;br /&gt;	using System.Data.Linq.Mapping;&lt;br /&gt;	using System.Data;&lt;br /&gt;	using System.Collections.Generic;&lt;br /&gt;	using System.Reflection;&lt;br /&gt;	using System.Linq;&lt;br /&gt;	using System.Linq.Expressions;&lt;br /&gt;	using System.ComponentModel;&lt;br /&gt;	using System;&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	[global::System.Data.Linq.Mapping.DatabaseAttribute(Name=&amp;quot;DBWinPhone&amp;quot;)]&lt;br /&gt;	public partial class &lt;font style="background-color: #ffc000"&gt;DBWinPhoneDataContext&lt;/font&gt; : System.Data.Linq.DataContext&lt;br /&gt;	{&lt;br /&gt;		&lt;br /&gt;		private static System.Data.Linq.Mapping.MappingSource mappingSource &lt;br /&gt;                          = new AttributeMappingSource();&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Como se observa en el código el namespace es el mismo que colocamos en la sentencia de la ventana de comandos, de igual manera podemos ver le nombre de la clase que también corresponde al nombre utilizado en la sentencia.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Lo siguiente que debemos hacer con la clase DataContext generada es eliminar dos de los cuatro constructores de la clase, si los dejamos, al compilar la clase en nuestro proyecto vamos a tener errores pues estos constructores no son soportados por el espacio de nombres System.Data.Linq.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;font style="background-color: #a5b592" size="2"&gt;public DBWinPhoneDataContext(string connection) :&amp;#160; base(connection, mappingSource)&lt;br /&gt;{&lt;br /&gt;	OnCreated();&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;font style="background-color: #ffc000"&gt;public DBWinPhoneDataContext(System.Data.IDbConnection connection) :&amp;#160; base(connection, mappingSource)&lt;br /&gt;{&lt;br /&gt;	OnCreated();&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;public DBWinPhoneDataContext(string connection, &lt;br /&gt;&lt;/font&gt;&lt;font style="background-color: #a5b592" size="2"&gt;                System.Data.Linq.Mapping.MappingSource mappingSource) :&amp;#160; base(connection, mappingSource)&lt;br /&gt;{&lt;br /&gt;	OnCreated();&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;&lt;font style="background-color: #ffc000"&gt;public DBWinPhoneDataContext(System.Data.IDbConnection connection, &lt;br /&gt;                System.Data.Linq.Mapping.MappingSource mappingSource) :&amp;#160; base(connection, mappingSource)&lt;br /&gt;{&lt;br /&gt;	OnCreated();&lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Los constructores señalados en color amarillo son los que deben eliminarse de la clase de DataContext generada, al eliminarlos y compilar, los errores van a desaparecer.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Al finalizar, grabamos la clase y la adicionamos a nuestro proyecto de manejo de bases de datos locales en Windows Phone 7.5.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Bien, este es el primer artículo sobre este tema, en próximos días estaré publicando la manera como vamos a utilizar y como incorporar esta clase a nuestro proyecto de Windows Phone 7.5&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hasta la próxima!&amp;#160; Feliz desarrollo!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8074099498391209850?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8074099498391209850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8074099498391209850'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/10/wp7-bases-de-datos-locales-en-windows.html' title='[WP7] Bases de datos Locales en Windows Phone 7.5 (I)'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-_9V24xtpaOg/TpnLpXrq3TI/AAAAAAAACsk/lZAPOx2wW2k/s72-c/image_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5863336836102032701</id><published>2011-10-05T09:29:00.001-05:00</published><updated>2011-10-05T09:29:32.678-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='ExpertDay'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Colombia'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Most Valuable Professional'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='CF'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[EVENTO] ExpertDay</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-2k3C6MXAj4M/Toxpwrhj1uI/AAAAAAAACsE/eWPW824NUHc/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-WOG2WUu4O3Y/ToxpxK1uHbI/AAAAAAAACsI/gl9dVGIyfhM/image_thumb.png?imgmax=800" width="183" height="210" /&gt;&lt;/a&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; &lt;a href="http://lh6.ggpht.com/-xAUf1q9_VPM/ToxpxhgvU4I/AAAAAAAACsM/EP49Vks8-2k/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-ohnSXvBY_E0/Toxpx6XTdwI/AAAAAAAACsQ/bqzqlunrrMg/image_thumb%25255B1%25255D.png?imgmax=800" width="152" height="50" /&gt;&lt;/a&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; &lt;a href="http://lh6.ggpht.com/-bOZaMHdRx9U/ToxpyhMv4UI/AAAAAAAACsU/e_ZIg7Pvhcw/s1600-h/image%25255B8%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-CBn89dK04ww/Toxpy6Oq64I/AAAAAAAACsY/fp27sbeiqzU/image_thumb%25255B2%25255D.png?imgmax=800" width="140" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Tengo el gusto de invitarlos al Evento ExpertDay que se realizara en Bogotá el 8 de octubre de 9am a 5pm con la participación de expertos en los diferentes temas a tratar.&lt;/p&gt;  &lt;p&gt;Registro: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://expertday.org/registro/?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday"&gt;http://expertday.org/registro/?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pueden registrarse para asistir de manera virtual también al evento.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La lista de conferencias la encuentran en:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://expertday.org/conferencistas.html?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday"&gt;http://expertday.org/conferencistas.html?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si asistes presencialmente&amp;#160; puedes participar en el concurso para ganar un XBOX 360 con Kinet:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://expertday.org/xbox.html?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday"&gt;http://expertday.org/xbox.html?utm_source=blogs&amp;amp;utm_medium=miembrosbdotnet&amp;amp;utm_campaign=expertday&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los espero a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;, para que disfruten de este gran evento!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5863336836102032701?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5863336836102032701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5863336836102032701'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/10/evento-expertday.html' title='[EVENTO] ExpertDay'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-WOG2WUu4O3Y/ToxpxK1uHbI/AAAAAAAACsI/gl9dVGIyfhM/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1154076086239744202</id><published>2011-09-21T17:49:00.001-05:00</published><updated>2011-09-21T17:49:35.135-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nuevas Caracteristicas MANGO'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursos BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Most Valuable Professional'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='CF'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>{EVENTO} Desarrollo en Windows Phone</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los invito a esta teleconferencia sobre como empezar a desarrollar con Windows Phone 7.5 o mas conocido como Mango! &lt;/p&gt;  &lt;p&gt;El día 22 de Septiembre de 2011 a las 4 pm –5 GMT.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=9R6RJ8&amp;amp;role=attend&amp;amp;pw=cD%7C6pb8Dt"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-UknM29a53ws/Tnpp_mzLgVI/AAAAAAAACr4/2ECwcoeBlV8/image%25255B15%25255D.png?imgmax=800" width="611" height="474" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El link en el cual pueden ver esta conferencia es: &lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=9R6RJ8&amp;amp;role=attend&amp;amp;pw=cD%7C6pb8Dt"&gt;Ingreso a la TeleConferencia&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hasta la Próxima!!!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fbb7a7b9-362a-4fe2-94b2-1f347866461f" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Windows+Phone+7" rel="tag"&gt;Windows Phone 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WP7" rel="tag"&gt;WP7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Desarrollo+Windows+Phone" rel="tag"&gt;Desarrollo Windows Phone&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Mango" rel="tag"&gt;Mango&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-1154076086239744202?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1154076086239744202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1154076086239744202'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/09/evento-desarrollo-en-windows-phone.html' title='{EVENTO} Desarrollo en Windows Phone'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-UknM29a53ws/Tnpp_mzLgVI/AAAAAAAACr4/2ECwcoeBlV8/s72-c/image%25255B15%25255D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5028562747935468896</id><published>2011-08-03T12:47:00.001-05:00</published><updated>2011-08-03T12:47:45.471-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo en la Nube'/><category scheme='http://www.blogger.com/atom/ns#' term='Strong Name Assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Assembly generation failed -- Referenced assembly does not have a strong name'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo por Capas'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso C# desde Cero'/><title type='text'>Strong Name for Assembly – Crear un nombre fuerte para un Ensamblado</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;Hoy voy a hablarles de un problema que se presenta en algunos casos, cuando desarrollamos una aplicación y nuestros assemblies o dll no están firmados o no tienen un nombre único (fuerte) en inglés Strong Name.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al intentar compilar nuestra solución con estos assemblies nos arroja un mensaje de error: “&lt;strong&gt;&lt;font color="#000000" size="3"&gt;Assembly generation failed -- Referenced assembly does not have a strong name&lt;/font&gt;&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Un ejemplo es cuando se desarrolla un Web Part, para SharePoint, si utilizamos un esquema de N-Capas, nuestros assemblies deben estar firmados para que reconozca Visual Studio que los dll tienen un Strong Name.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para ello debemos primero hacer uso de una utilidad que nos genera un archivo que asegura que nuestro Assembly tiene un Strong Name.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lo primero entonces, es ir al Inicio, Todos los programas, Visual Studio 2010, Visual Studio Tools, y aquí seleccionar &lt;strong&gt;Visual Studio Command Prompt, &lt;/strong&gt;con esto nos aseguramos que la instrucción va a funcionar.&lt;/p&gt;  &lt;p&gt;En la ventana de comando escribimos la siguiente instrucción:&lt;/p&gt;  &lt;p&gt;[Code]&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;sn –k ejemplo.snk&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;[/Code]&lt;/p&gt;  &lt;p&gt;En nuestro caso, ejemplo, representa el nombre de nuestro assembly, la instrucción anterior, genera un archivo con la extensión .snk, la cual debemos copiar de la ruta donde ejecutamos el comando anterior y pegarlo dentro de nuestro proyecto.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la consola de comandos nos muestra el siguiente mensaje:&lt;/p&gt;  &lt;p&gt;[Code]   &lt;br /&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC&amp;gt;sn -k SDP.Indicadores.Negocio.snk&lt;/p&gt;  &lt;p&gt;Microsoft (R) .NET Framework Strong Name Utility&amp;#160; Version 4.0.30319.1   &lt;br /&gt;Copyright (c) Microsoft Corporation.&amp;#160; All rights reserved.&lt;/p&gt;  &lt;p&gt;Key pair written to SDP.Indicadores.Negocio.snk   &lt;br /&gt;[/Code]&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al pegar los archivos .snk en nuestro proyecto, observará algo similar a la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-LQXu8QTGuyE/TjmJtagiOuI/AAAAAAAACrE/CXWeSXJ915k/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-yJyiV84l4iU/TjmJtnetKoI/AAAAAAAACrI/c8RWv3d_zsM/image_thumb%25255B2%25255D.png?imgmax=800" width="224" height="101" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora debemos especificar en las propiedades del proyecto que nuestro proyecto se va a firmar o va a tener un Strong Name.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-QYPflM8tGVw/TjmJuCHjSUI/AAAAAAAACrM/g4h_N8cRxlg/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-NrFsx7OqW-o/TjmJvIIg4yI/AAAAAAAACrQ/ewxKmrjFbpg/image_thumb%25255B5%25255D.png?imgmax=800" width="248" height="419" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la ventana de propiedades del proyecto, ubicamos la pestaña de firma o &lt;strong&gt;Signing, &lt;/strong&gt;como lo apreciamos en la imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-yvB8URKsUDw/TjmJvcwDbcI/AAAAAAAACrU/RxKRjWmj53g/s1600-h/image%25255B14%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-LGUJ1tkokxc/TjmJwOzpytI/AAAAAAAACrY/XRumkFCDt2g/image_thumb%25255B8%25255D.png?imgmax=800" width="622" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aquí seleccionamos el check. &amp;quot;”&lt;strong&gt;Sign the assembly&lt;/strong&gt;” y en la lista desplegables ubicamos el archivo .snk que ya incluimos en el proyecto.&lt;/p&gt;  &lt;p&gt;Grabamos y compilamos.&lt;/p&gt;  &lt;p&gt;Luego compilamos la solución completa, o el proyecto con los nuevos assemblies generados de esta manera y firmados, con esto desaparece el error al momento de compilar.&lt;/p&gt;  &lt;p&gt;Espero esto solucione sus problemas a este respecto.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hasta la próxima!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5028562747935468896?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5028562747935468896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5028562747935468896'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/08/strong-name-for-assembly-crear-un.html' title='Strong Name for Assembly – Crear un nombre fuerte para un Ensamblado'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-yJyiV84l4iU/TjmJtnetKoI/AAAAAAAACrI/c8RWv3d_zsM/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8929772832778462306</id><published>2011-07-28T22:09:00.001-05:00</published><updated>2011-07-28T22:09:07.829-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursos BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso C# desde Cero'/><title type='text'>[Cursos] Nueva temporada de cursos BogotaDotNet</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy quiero informarles que la nueva temporada de cursos de la Comunidad &lt;strong&gt;&lt;font size="4"&gt;BogotaDotNet&lt;/font&gt;&lt;/strong&gt; empieza en &lt;font size="3"&gt;Agosto 13&lt;/font&gt; del 2011.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los cursos a dictar son: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introducción a Silverlight 4&lt;/li&gt;    &lt;li&gt;Desarrollo con el Framework .NET 4.0&lt;/li&gt;    &lt;li&gt;Desarrollo Web desde Cero ( Introducción ASP.NET con C#)&lt;/li&gt;    &lt;li&gt;Introducción&amp;#160; a MVC 3&lt;/li&gt;    &lt;li&gt;Patrones de Diseño, aplicados a .NET&lt;/li&gt;    &lt;li&gt;Curso de ASP.NET profundo (Este curso es virtual 100%).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La pagina de inscripciones a los cursos :&lt;a title="http://www.bogotadotnet.org/Cursos/Registro.aspx" href="http://www.bogotadotnet.org/Cursos/Registro.aspx"&gt;http://www.bogotadotnet.org/Cursos/Registro.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los espero!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8929772832778462306?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8929772832778462306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8929772832778462306'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/07/cursos-nueva-temporada-de-cursos.html' title='[Cursos] Nueva temporada de cursos BogotaDotNet'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-3393939658954687660</id><published>2011-07-02T10:42:00.001-05:00</published><updated>2011-07-02T10:42:10.339-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Colombia'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[EVENTO] {Activa} Tu Conocimiento: Desarrollo sobre Windows Phone 7</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy quiero invitarlos a este evento que se realizará el próximo &lt;font size="4"&gt;9 de Julio de 2011&lt;/font&gt; en las instalaciones de Microsoft Colombia, Bogotá, donde al comunidad de desarrolladores profesionales BogotaDotNet.&lt;/p&gt;  &lt;p&gt;El evento también lo podrán apreciar vía internet a través de Live Meeting para aquellos que no puedan o no se encuentren en la ciudad.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/--tOMxpjNsJA/Tg88SrYSyLI/AAAAAAAACqM/A5nYCusBN6o/s1600-h/propagandaWP7%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="propagandaWP7" border="0" alt="propagandaWP7" src="http://lh5.ggpht.com/-MNPVfgNJ-uk/Tg88UdtY8FI/AAAAAAAACqQ/XXPMmkMc718/propagandaWP7_thumb%25255B2%25255D.png?imgmax=800" width="522" height="719" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El horario de de 8:30 de la mañana a 12 m, los espero a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!!!!!&lt;/p&gt;  &lt;p&gt;El link para el registro tanto presencial como virtual los pueden encontrar aquí: &lt;a title="Inscripciones al evento" href="http://bogotadotnet.org" target="_blank"&gt;http://bogotadotnet.org&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los espero!!!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-3393939658954687660?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3393939658954687660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3393939658954687660'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/07/evento-activa-tu-conocimiento.html' title='[EVENTO] {Activa} Tu Conocimiento: Desarrollo sobre Windows Phone 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-MNPVfgNJ-uk/Tg88UdtY8FI/AAAAAAAACqQ/XXPMmkMc718/s72-c/propagandaWP7_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-9091659063250509147</id><published>2011-07-01T19:12:00.001-05:00</published><updated>2011-07-01T19:12:29.656-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nuevas Caracteristicas MANGO'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>[EVENTO] Campus Party Colombia 2011</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; nuevamente!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En esta ocasión voy&amp;#160; a compartir el PDF con la presentación&amp;#160; que utilice el pasado Jueves 30 de Junio donde explique como desarrollar para la plataforma de Windows Phone 7.1 mas conocida como MANGO.&lt;/p&gt;  &lt;p&gt;Aquí esta el link de la presentación: &lt;a href="https://skydrive.live.com/?cid=861554cc20aafddd#!/?cid=861554cc20aafddd&amp;amp;sc=documents&amp;amp;uc=1&amp;amp;id=861554CC20AAFDDD%21564" target="_blank"&gt;PDF con la presentación&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aquí el link del proyecto desarrollado explicando como utilizar bases de datos locales en WP7: &lt;a href="https://skydrive.live.com/?cid=861554cc20aafddd#!/?cid=861554cc20aafddd&amp;amp;sc=documents&amp;amp;uc=1&amp;amp;id=861554CC20AAFDDD%21564" target="_blank"&gt;Proyecto de ejemplo de manejo de Bases de datos en WP7&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Esperen pronto una entrada en el blog explicando el manejo de datos locales con SQL Server Compact en dispositivos WP7.&lt;/p&gt;  &lt;p&gt;Por ahora …. hasta una próxima oportunidad!&lt;/p&gt;  &lt;p&gt;Como dice un gran colega: Go Ninja, Go!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-9091659063250509147?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9091659063250509147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9091659063250509147'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/07/evento-campus-party-colombia-2011.html' title='[EVENTO] Campus Party Colombia 2011'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4333912520866090641</id><published>2011-05-31T09:06:00.001-05:00</published><updated>2011-05-31T09:06:57.999-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo en la Nube'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[WebCast]Construyendo aplicaciones para Windows Phone 7 con Windows Azure Platform</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;Hoy quiero invitarlos al web cast de construcción de aplicaciones Windows Phone 7 con Windows Azure, es el próximo viernes 3 de junio del 2011 a las 10 AM ( GMT –5 Bogotá,Lima).&lt;/p&gt;  &lt;p&gt;Aqui les dejo el link de inscripciones al webcast&amp;#160; &lt;a title="Inscripciones al web cast" href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032475415&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR" target="_blank"&gt;https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032475415&amp;amp;EventCategory=4&amp;amp;culture=es-AR&amp;amp;CountryCode=AR&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los espero a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; para ayudarles a desarrollar para esta plataforma.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hasta el viernes, si Dios me lo permite !!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4333912520866090641?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4333912520866090641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4333912520866090641'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/webcastconstruyendo-aplicaciones-para.html' title='[WebCast]Construyendo aplicaciones para Windows Phone 7 con Windows Azure Platform'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-6971081555522018955</id><published>2011-05-15T08:47:00.001-05:00</published><updated>2011-05-15T08:47:53.083-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='PocketPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='eVB'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[WM] Windows Embedded Handheld: La evolución de Windows Mobile</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Esta es una noticia que muchos de los desarrolladores profesionales para Windows&amp;#160; Mobile estábamos esperando, pues con todo el empuje que se ha dado a Windows Phone 7, no sabíamos que pasaría con nuestras aplicaciones de esta plataforma, aquí les dejo un video sobre la evolución de Windows Mobile.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=16umJSA49GY&amp;amp;feature=autoshare" target="_blank"&gt;Evolución de Windows Mobile&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pronto más noticias al respecto….&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy development!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-6971081555522018955?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6971081555522018955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6971081555522018955'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/wm-windows-embedded-handheld-la.html' title='[WM] Windows Embedded Handheld: La evolución de Windows Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5788231550490202617</id><published>2011-05-15T07:41:00.001-05:00</published><updated>2011-05-15T07:41:23.180-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Concurso'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Colombia'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursos BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[Concurso] Gana un teléfono Windows Phone 7 con Microsoft Colombia</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;Para compartirles este concurso de Microsoft Colombia, no pierdan la oportunidad de poderse ganar un teléfono de última generación y además aprendiendo a cómo hacerlo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Tc_J8E4r7sI/AAAAAAAACqE/F19udMiuDpw/s1600-h/Concurso%5B5%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Concurso" border="0" alt="Concurso" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Tc_J8k6kADI/AAAAAAAACqI/qlcQC-kjDRQ/Concurso_thumb%5B3%5D.jpg?imgmax=800" width="517" height="649" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Go Ninja, Go!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5788231550490202617?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5788231550490202617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5788231550490202617'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/concurso-gana-un-telefono-windows-phone.html' title='[Concurso] Gana un teléfono Windows Phone 7 con Microsoft Colombia'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/Tc_J8k6kADI/AAAAAAAACqI/qlcQC-kjDRQ/s72-c/Concurso_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-9183891869433440069</id><published>2011-05-15T07:30:00.001-05:00</published><updated>2011-05-15T07:30:14.039-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo con Móviles'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>[WP7] Mini Curso de Windows Phone 7</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;, &lt;/p&gt;  &lt;p&gt;Nuevamente los invito a este ciclo de conocimiento en Desarrollo para Windows Phone 7 con Silverlight, a los que puedan asistir los espero con mucho gusto y con ganas de que aprendan algunas cosas!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Tc_HUu6oSyI/AAAAAAAACp8/IJj9O3vuT74/s1600-h/Invitaci%C3%B3..%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Invitació.." border="0" alt="Invitació.." src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tc_HVSI8xAI/AAAAAAAACqA/OBQgwtOJszY/Invitaci%C3%B3.._thumb%5B1%5D.jpg?imgmax=800" width="594" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la Castellana en Bogotá, los espero!!!!&lt;/p&gt;  &lt;p&gt;Hasta la Próxima!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-9183891869433440069?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9183891869433440069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9183891869433440069'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/wp7-mini-curso-de-windows-phone-7.html' title='[WP7] Mini Curso de Windows Phone 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tc_HVSI8xAI/AAAAAAAACqA/OBQgwtOJszY/s72-c/Invitaci%C3%B3.._thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8569873404022511090</id><published>2011-05-07T18:24:00.002-05:00</published><updated>2011-05-07T18:26:09.503-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>[WP7] Iniciando con Windows Phone 7</title><content type='html'>Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; nuevamente, hoy voy a hablar de las herramientas que se necesitan para iniciarnos en el desarrollo para la plataforma de Windows Phone 7.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Herramientas de Desarrollo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Lo primero para iniciarnos en el desarrollo de esta nueva plataforma móvil es conocer el lenguaje de programación C# ( C Sharp), actualmente&amp;nbsp; el desarrollo para esta plataforma en VB.NET no esta liberada, existe un plug-in que podemos instalar en Visual Studio 2010 que aun esta en versión Beta.&lt;br /&gt;&lt;br /&gt;Las herramientas que necesitamos para este desarrollo son Visual Studio 2010 Express for Windows Phone, el emulador de Windows Phone, Microsoft Expression Blend 4 for Windows Phone, Silverlight para Windows Phone. Todas estas herramientas las podemos descargar desde este enlace: &lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;http://create.msdn.com/en-us/home/getting_started&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Al ingresar a la pagina ubicamos la sección que muestro en la siguiente imagen:&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TcXUPeDn-EI/AAAAAAAACo0/T02mGCI3F2U/s1600-h/image%5B4%5D.png"&gt;&lt;img alt="image" border="0" height="331" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TcXUQEKxRPI/AAAAAAAACo4/Y_byHwsSRL4/image_thumb%5B2%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="711" /&gt;&lt;/a&gt;&lt;br /&gt;Y seguir los 3 pasos de instalación que aparecen en la página.&lt;br /&gt;En caso de que Expression Blend 4 para Windows Phone no baje bien desde este enlace, lo podemos bajar desde el siguiente enlace:&amp;nbsp; &lt;a href="http://www.microsoft.com/expression/windowsphone/"&gt;http://www.microsoft.com/expression/windowsphone/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Arquitectura Software de WP7&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Windows Phone 7 es un sistema operativo para móviles basado en Windows CE 6.0 R3, la gran innovación, es que el sistema se reescribió totalmente desde cero, es mas poderoso pues soporta mas de 32.000 procesos mientras su predecesor solo soportaba 32, se mejoro el kernel del sistema operativo para que en él residiera la parte de renderizado y los gráficos, la parte de networking o manejo de conexiones y redes, todo el manejo de los drivers y el manejo del sistema de archivos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Marco de Desarrollo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUSNCPovI/AAAAAAAACo8/XJLqstHNwlg/s1600-h/image%5B8%5D.png"&gt;&lt;img alt="image" border="0" height="401" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUToIhWzI/AAAAAAAACpA/JP_8j_a6K1s/image_thumb%5B4%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="643" /&gt;&lt;/a&gt;&lt;br /&gt;Como podemos apreciar en la gráfica anterior, la parte superior es la capa de todo lo relacionado con Windows Phone donde encontramos clases y espacios de nombre especializados en los sensores, el radio, la camara, integracion con mapas de Bing, notificaciones, web controls, el framework de Silverlight y el framework de XNA (para desarrollar video juegos).&lt;br /&gt;En la parte inferior en color azul, tenemos toda la CBCL (Common Base Class Library) en la cual tenemos todas las clases del Framework de .NET necesarias para la ejecución de nuestros proyectos en esta plataforma.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Tipos de Desarrollo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;El desarrollo para Windows Phone se puede atacar desde dos frentes, el primero aplicaciones enriquecidas desarrolladas con Silverlight&amp;nbsp; con características inherentes a al plataforma exclusivas por el hardware y los sensores y accesorios del dispositivo móvil. &lt;br /&gt;El segundo frente es con XNA Framework, el cual es un framework para desarrollar video juegos que pueden ejecutarse en Windows Phone, Windows y consola XBOX 360. &lt;br /&gt;Aquí voy a hablar del desarrollo sobre Silverlight.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;Utilizando la herramienta Visual Studio 2010&lt;/span&gt;&lt;br /&gt;Cuando ingresamos al VS2010 y seleccionamos la sección de Silverlight para Windows Phone:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUURw2ygI/AAAAAAAACpE/6KJn651pDPE/s1600-h/image%5B12%5D.png"&gt;&lt;img alt="image" border="0" height="400" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcXUVGriBGI/AAAAAAAACpI/XuLcpkReCQQ/image_thumb%5B6%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="630" /&gt;&lt;/a&gt;&lt;br /&gt;Observamos los diferentes tipos de proyectos Silverlight para Windows Phone que podemos crear :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Windows Phone Application&lt;/li&gt;&lt;li&gt;Windows Phone Databound Application&lt;/li&gt;&lt;li&gt;Windows Phone Class Library&lt;/li&gt;&lt;li&gt;Windows Phone Panorama Application&lt;/li&gt;&lt;li&gt;Windows Phone Pivot Application&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Plantilla Windows Phone Application&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Es la plantilla base para toda aplicación Silverlight para Windows Phone, incluye una página por defecto con los estilos de Windows Phone, archivos de imagen para la pantalla de inicio e icono que podemos sustituir por los nuestros. &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUWz6MM0I/AAAAAAAACpM/hG_Sn7XheU0/s1600-h/image%5B17%5D.png"&gt;&lt;img alt="image" border="0" height="436" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TcXUXzEGfqI/AAAAAAAACpQ/jev0NNJCRDE/image_thumb%5B9%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Plantilla Windows Phone Databound Application&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Esta plantilla es igual a la plantilla base vista anteriormente, con el adicional de que en la página creada tenemos un listbox con una plantilla de datos simple, una carpeta SampleData con datos de ejemplo y una carpeta viewmodels con clases MVVM listas para ser usadas en nuestro desarrollo. &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcXUZhfoltI/AAAAAAAACpU/fEbMmPgL8p8/s1600-h/image%5B22%5D.png"&gt;&lt;img alt="image" border="0" height="419" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcXUbEzeRoI/AAAAAAAACpY/_xALb40h3-s/image_thumb%5B12%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="679" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Plantilla Windows Phone Panorama Application&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Se trata de un proyecto Windows Phone Application, pero se ha sustituido el contenido por defecto por un control panorama, el cual nos permite tener elementos que ocupen más que el ancho de la pantalla y poder movernos por ellos simplemente desplazándonos de derecha a izquierda, en una rueda o carrusel sin fin, podemos ver ejemplos de este control en los Hubs de Windows Phone 7 .&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUdlYlBxI/AAAAAAAACpc/7sRf57Zub_4/s1600-h/image%5B27%5D.png"&gt;&lt;img alt="image" border="0" height="423" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUe-DkUSI/AAAAAAAACpg/SOpiz8oCyx4/image_thumb%5B15%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="683" /&gt;&lt;/a&gt;&lt;br /&gt;Algunos ejemplos de aplicaciones en modo &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUgUpScsI/AAAAAAAACpk/9PhZCbGrgiI/s1600-h/image%5B32%5D.png"&gt;&lt;img alt="image" border="0" height="477" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUholljYI/AAAAAAAACpo/wEn3LJgMnCs/image_thumb%5B18%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="686" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Plantilla Windows Phone Pivot Application&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Como en el proyecto Panorama Application, pero en este caso sustituyendo el contenido por defecto por un control Pivot, este control se comporta de forma parecida a un control de pestañas, tenemos secciones que ocupan la pantalla y podemos navegar por ellas, pulsando sobre el título superior o simplemente desplazándonos con gestos de derecha a izquierda o viceversa. &lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TcXUjPuVnEI/AAAAAAAACps/z_f_hbODHzM/s1600-h/image%5B36%5D.png"&gt;&lt;img alt="image" border="0" height="410" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TcXUk2H0toI/AAAAAAAACp0/vhIs_Zm7fyU/image_thumb%5B20%5D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="672" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Plantilla Windows Phone Class Library&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Es una librería de clases, igual como lo conocemos en otros tipos de proyectos de la plataforma de .NET.&lt;br /&gt;&lt;br /&gt;Y para finalizar por hoy…&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;¿Qué es Silverlight para Windows Phone?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Es un subconjunto de Silverlight, esta basado en Silverlight 3 ( a abril del 2011), la nueva versión de WP7 conocida por su nombre clave &lt;strong&gt;MANGO&lt;/strong&gt; esta para salir para descarga en Mayo del 2011 solucionando y ampliando toda la gama de controles y tipos de proyectos que podemos crear y basándose en Silverlight 4 y otras características que han solicitado los desarrolladores de la plataforma.&lt;br /&gt;Características:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Características propias para Windows Phone&lt;/li&gt;&lt;li&gt;Input, &lt;/li&gt;&lt;li&gt;Renderizado de UI, &lt;/li&gt;&lt;li&gt;Media, &lt;/li&gt;&lt;li&gt;Deep Zoom, &lt;/li&gt;&lt;li&gt;Layout, &lt;/li&gt;&lt;li&gt;Enlace a datos, &lt;/li&gt;&lt;li&gt;Isolated Storage, &lt;/li&gt;&lt;li&gt;HttpWebRequest, &lt;/li&gt;&lt;li&gt;Utilización de WCF, &lt;/li&gt;&lt;li&gt;Lenguaje descriptivo XAML, &lt;/li&gt;&lt;li&gt;Empaquetado XAP, &lt;/li&gt;&lt;li&gt;Serialización XML&lt;/li&gt;&lt;/ul&gt;Lo que no posee Silverligth para Windows Phone a Abril del 2011&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open/Save Filedialog, &lt;/li&gt;&lt;li&gt;Calendar, &lt;/li&gt;&lt;li&gt;datagrid, &lt;/li&gt;&lt;li&gt;datepicker, &lt;/li&gt;&lt;li&gt;frame, &lt;/li&gt;&lt;li&gt;gridsplitter, &lt;/li&gt;&lt;li&gt;page, &lt;/li&gt;&lt;li&gt;label, &lt;/li&gt;&lt;li&gt;Scrollbar, &lt;/li&gt;&lt;li&gt;tabControl, &lt;/li&gt;&lt;li&gt;Treeview&lt;/li&gt;&lt;/ul&gt;Muchas de estas carencias viene en la nueva versión MANGO.&lt;br /&gt;Bueno, por hoy hasta aquí con esta lección de Silverlight. &lt;br /&gt;Pronto mas lecciones para iniciar a desarrollar con esta plataforma.&lt;br /&gt;&lt;br /&gt;Feliz desarrollo!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8569873404022511090?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8569873404022511090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8569873404022511090'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/wp7-iniciando-con-windows-phone-7.html' title='[WP7] Iniciando con Windows Phone 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/TcXUQEKxRPI/AAAAAAAACo4/Y_byHwsSRL4/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-7104939641213415942</id><published>2011-05-07T07:38:00.001-05:00</published><updated>2011-05-07T07:38:58.545-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Cursos BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso Virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Curso C# desde Cero'/><title type='text'>[Cursos] Iniciamos cursos en BogotaDotNet</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; !&lt;/p&gt;  &lt;p&gt;Este pequeño post es para anunciarles que iniciamos cursos virtuales en la Comunidad de Desarrolladores Profesionales de .NET &lt;a href="http://www.bogotadotnet.org/" target="_blank"&gt;BogotaDotNet&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Las inscripciones están abiertas y se cierran el 14 de mayo del 2011 en la noche, iniciamos clases el sábado 14 de mayo en la mañana.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcU9WV5Rk9I/AAAAAAAACos/hZEgp5WEHkw/s1600-h/Cursos-I%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Cursos-I" border="0" alt="Cursos-I" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcU9YdV19gI/AAAAAAAACow/fZDFZuEDuBY/Cursos-I_thumb%5B2%5D.png?imgmax=800" width="591" height="459" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nuestros cursos son de una alta calidad dictados por expertos en la materia, a un costo muy bajo!, no pierdan la oportunidad de esta capacitación.&lt;/p&gt;  &lt;p&gt;Hasta la próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-7104939641213415942?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7104939641213415942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7104939641213415942'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/cursos-iniciamos-cursos-en-bogotadotnet.html' title='[Cursos] Iniciamos cursos en BogotaDotNet'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_SSzr2Hx_9CQ/TcU9YdV19gI/AAAAAAAACow/fZDFZuEDuBY/s72-c/Cursos-I_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1750914041193942756</id><published>2011-05-02T08:37:00.001-05:00</published><updated>2011-10-23T13:24:37.007-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Expression Blend 4 WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>Mini Curso Desarrollo Windows Phone</title><content type='html'>Hola a &lt;a href="mailto:Tod@s"&gt;Tod@s&lt;/a&gt;!&lt;br /&gt;Agradeciendo a todos los organizadores de este evento y a los asistentes, espero que los halla podido orientar en el desarrollo de esta tecnología.&lt;br /&gt;Aquí algunas fotografías del curso de Windows Phone 7 el día Viernes 29 de Abril en las instalaciones de Microsoft – Bogotá.&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6zT_Oe9tI/AAAAAAAACoE/4MglwbdNRMA/s1600-h/DSC05036%5B4%5D.jpg"&gt;&lt;img alt="DSC05036" border="0" height="351" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tb6zUy9bLdI/AAAAAAAACoI/4IIEp0N6tjE/DSC05036_thumb%5B1%5D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05036" width="456" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6zWqJz0FI/AAAAAAAACoM/DF1LAsqLPbA/s1600-h/DSC05037%5B4%5D.jpg"&gt;&lt;img alt="DSC05037" border="0" height="357" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tb6zYZnRBpI/AAAAAAAACoQ/Upd0Wt-Iw0g/DSC05037_thumb%5B1%5D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05037" width="465" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las siguiente son del sábado 30 de Abril en las instalaciones de la Universidad Manuela Beltrán en el Auditorio a las 2 pm.&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6zaV5k81I/AAAAAAAACoU/Yf9-deaf5l8/s1600-h/DSC05040%5B4%5D.jpg"&gt;&lt;img alt="DSC05040" border="0" height="357" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6zblm_xrI/AAAAAAAACoY/IGCE_XFjFg4/DSC05040_thumb%5B1%5D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05040" width="464" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6ze93WWBI/AAAAAAAACoc/a0dxiZktvlk/s1600-h/DSC05041%5B4%5D.jpg"&gt;&lt;img alt="DSC05041" border="0" height="362" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Tb6zf1M2UeI/AAAAAAAACog/q3lx9JnV2Lk/DSC05041_thumb%5B1%5D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05041" width="471" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Tb6zivTJ6nI/AAAAAAAACok/6IR9hceJAE4/s1600-h/DSC05042%5B4%5D.jpg"&gt;&lt;img alt="DSC05042" border="0" height="367" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Tb6zj_m9NeI/AAAAAAAACoo/GiH8Bk4U1DU/DSC05042_thumb%5B1%5D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DSC05042" width="477" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esperen muy pronto aquí varios artículos reforzando y complementando lo visto estos dos días.&lt;br /&gt;&lt;br /&gt;Muchas GRACIASSS!!!!!!!!!!!!!!!!!&lt;br /&gt;Hasta la próxima!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-1750914041193942756?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1750914041193942756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1750914041193942756'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/05/mini-curso-desarrollo-windows-phone.html' title='Mini Curso Desarrollo Windows Phone'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tb6zUy9bLdI/AAAAAAAACoI/4IIEp0N6tjE/s72-c/DSC05036_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-9098581093486254459</id><published>2011-04-26T06:41:00.001-05:00</published><updated>2011-04-26T06:41:40.423-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Expression Blend 4 WP7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>[Curso] Mini curso de Desarrollo para Windows Phone 7</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:Tod@s"&gt;Tod@s&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;En esta oportunidad los invito al curso sobre desarrollo para Windows Phone 7 a realizarse el día 29 de Abril de 2011 en las instalaciones de Microsoft Colombia, en Bogotá. Este curso tendrá una duración de 4 horas desde las 2 pm a las 6 pm.&lt;/p&gt;  &lt;p&gt;En este mini curso hablaré sobre las herramientas necesarias para el desarrollo para esta plataforma, la arquitectura de Windows Phone, Silverlight para Windows Phone y una introducción de como manejar Expression Blend 4 para Windows Phone.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para los interesados en asistir al curso de manera virtual lo pueden seguir a través de este link:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.livemeeting.com/cc/microsoftstudentpartners1/join?id=2SCJKW&amp;amp;role=attend&amp;amp;pw=x%7D%285%2FmBNm"&gt;https://www.livemeeting.com/cc/microsoftstudentpartners1/join?id=2SCJKW&amp;amp;role=attend&amp;amp;pw=x%7D%285%2FmBNm&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;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TbavcJYgaDI/AAAAAAAACn4/Tz9eh3hedaA/s1600-h/image%5B8%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tbavc7S_6EI/AAAAAAAACn8/sx6TMM0s8to/image_thumb%5B4%5D.png?imgmax=800" width="531" height="408" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Los espero!!! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-9098581093486254459?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9098581093486254459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9098581093486254459'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/04/curso-mini-curso-de-desarrollo-para.html' title='[Curso] Mini curso de Desarrollo para Windows Phone 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/Tbavc7S_6EI/AAAAAAAACn8/sx6TMM0s8to/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2814700355929401633</id><published>2011-04-18T21:52:00.001-05:00</published><updated>2011-04-18T21:52:56.080-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nuevas Caracteristicas MANGO'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>MANGO MANIA–WINDOWS PHONE 7</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:Tod@s"&gt;Tod@s&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy les traigo algunas de las nuevas características de la nueva versión de Windows Phone 7 llamada “MANGO”, estas nuevas características han sido anunciadas en el pasado MIX 2001 en Las Vegas ( Abril 13, 14 y 15).&lt;/p&gt;  &lt;p&gt;Estas nuevas características para el desarrollo y el sistema operativo Windows Phone 7 para los SmartPhone estarán liberadas en el próximo mes de Mayo. &lt;/p&gt;  &lt;p&gt;Las nuevas características son: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Soporte Multitarea para los smartphone.&lt;/li&gt;    &lt;li&gt;Cambio entre aplicaciones mucho mas rápido.&lt;/li&gt;    &lt;li&gt;Ejecución de Agentes en background.&lt;/li&gt;    &lt;li&gt;Acceso total a la cámara del dispositivo para efectos de Realidad Aumentada.&lt;/li&gt;    &lt;li&gt;Manejo de Sockets.&lt;/li&gt;    &lt;li&gt;Una completa API para el acceso y control de los sensores del smartphone.&lt;/li&gt;    &lt;li&gt;Silverlight y XNA combinados, con esto se logra que en Silverlight se puedan mostrar modelos en 3D.&lt;/li&gt;    &lt;li&gt;Una base de datos local en Windows Phone 7, SQL Server Copact.&lt;/li&gt;    &lt;li&gt;Aceleradores de hardware para HTML5 y con IE9.&lt;/li&gt;    &lt;li&gt;Emulador del teléfono con soporte para los sensores, con esto podemos tener una mejor experiencia con el desarrollo dentro del emulador, sin necesidad de un dispositivo físico.&lt;/li&gt;    &lt;li&gt;Una disminución del 25% al 30% en la utilización de la memoria al momento de ejecutar aplicaciones.&lt;/li&gt;    &lt;li&gt;Una herramienta para poder hacer tracking o un Profiler&amp;#160; a nuestra aplicaciones.&lt;/li&gt;    &lt;li&gt;Mejoras en el sistema de envío de notificaciones.&lt;/li&gt;    &lt;li&gt;LINQ para todo!! (Contactos, citas, XML, SQL, objetos).&lt;/li&gt;    &lt;li&gt;La tienda de Windows phone disponible en 35 países.&lt;/li&gt;    &lt;li&gt;Windows Phone 7 ahora está disponible en 16 nuevos idiomas.&lt;/li&gt;    &lt;li&gt;Por fin! disponemos de Sketchflow para Windows Phone 7.&lt;/li&gt;    &lt;li&gt;Nuevo modelos de distribución en la tienda de aplicaciones o MarketPlaces. Para aplicaciones internas a las compañías, existe un marketplace totalmente privado que no permite que personas ajenas a las organizaciones puedan acceder a&amp;#160; estas aplicaciones corporativas. Ahora se pude tener hasta 5 aplicaciones en demo en el Marketplace.&lt;/li&gt;    &lt;li&gt;Mejoras en el recolector de basura (Garbage Collector).&lt;/li&gt;    &lt;li&gt;SDK de Windows Phone 7 para Azure.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Los invito a probar todas estas nuevas características del desarrollo para Windows Phone 7. &lt;/p&gt;  &lt;p&gt;Hasta la próxima!!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2814700355929401633?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2814700355929401633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2814700355929401633'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/04/mango-maniawindows-phone-7.html' title='MANGO MANIA–WINDOWS PHONE 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8244269583921086215</id><published>2011-01-17T10:20:00.001-05:00</published><updated>2011-01-17T10:20:48.799-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Profesional mas Valioso'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Most Valuable Professional'/><title type='text'>[Anuncio] Nombramiento como Microsoft MVP</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TTReTSjWhXI/AAAAAAAACno/EokkBzZ3bqo/s1600-h/MVP_FullColor_ForScreen%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MVP_FullColor_ForScreen" border="0" alt="MVP_FullColor_ForScreen" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TTReTw8LLpI/AAAAAAAACns/0ik9k6TVVsQ/MVP_FullColor_ForScreen_thumb.png?imgmax=800" width="157" height="244" /&gt;&lt;/a&gt; Solo para compartir con ustedes este reconocimiento que Microsoft me ha dado nombrándome como uno de los Profesionales más Valiosos (MVP) en Visual C Sharp (C#) para el año de 2011.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A ustedes muchas gracias por leerme y espero poder continuar aportándole a la comunidad de desarrolladores mis conocimientos y mi experiencia en la plataforma y en las tecnologías de Micrsoft.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8244269583921086215?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8244269583921086215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8244269583921086215'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/01/anuncio-nombramiento-como-microsoft-mvp.html' title='[Anuncio] Nombramiento como Microsoft MVP'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/TTReTw8LLpI/AAAAAAAACns/0ik9k6TVVsQ/s72-c/MVP_FullColor_ForScreen_thumb.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-812495245797279651</id><published>2011-01-13T06:34:00.001-05:00</published><updated>2011-01-13T06:34:08.689-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure Development Storage Initializaion'/><category scheme='http://www.blogger.com/atom/ns#' term='Almacenamiento Local Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><title type='text'>[Azure] Configurar Almacenamiento Local de Azure</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&amp;#160; &lt;/p&gt;  &lt;p&gt;Hoy quiero compartir con ustedes un tip que nos puede ocurrir a muchos al momento de iniciar el desarrollo y la configuración con Windows Azure.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En el momento de ejecutar nuestra aplicación de Azure de manera local para probarla, nos aparece un mensaje de error indicando que no es posible abrir o subir el servicio emulador de almacenamiento para Azure.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Esto es debido a que Azure por defecto esta buscando una instancia de SQL Server Express, el mensaje nos indica que “.\SQLSERVEREXPRESS” no lo encuentra. &lt;/p&gt;  &lt;p&gt;Para solucionar este inconveniente, debemos abrir la aplicación de D.O.S. o la ventana de comandos del sistema operativo con la configuración del SDK de Windows Azure.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para esto vamos la menú de inicio de Windows, y buscamos la carpeta de Windows Azure SDK v.13 (en mi caso) la abrimos y de allí ejecutamos la aplicación de comandos del sistema operativo, que es la que aparece seleccionada en la imagen en color azul claro.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TS7jI0pqcnI/AAAAAAAACnQ/hMT_m6xWfio/s1600-h/image%5B6%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TS7jJioVU1I/AAAAAAAACnU/ukIArE-Ygls/image_thumb%5B2%5D.png?imgmax=800" width="359" height="416" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al ejecutar esta aplicación nos muestra una ventana de DOS y allí podemos ejecutar el comando que nos permite decirle a Azure que utilice la instancia de SQL Server 2008 ya instalada en nuestro PC para el Emulador de Almacenamiento de Azure.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En esta pantalla ejecutamos el comando &lt;strong&gt;DSInit /sqlInstance: [Nombre Instancia SQL Server]&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;En mi caso yo deseo que tome la instancia por defecto de mi servidor de SQL Server 2008 R2, en ese caso como se aprecia en la figura, el comando que yo utilizo es:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DsInit /sqlInstance:. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Con el punto “.” indico que tome la instancia por defecto de la instalación de SQL Server 2008 R2&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TS7jKJ2PkVI/AAAAAAAACnY/tZgiu0CJqj8/s1600-h/image%5B7%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TS7jKrXvqpI/AAAAAAAACnc/L82IEhRmhJA/image_thumb%5B3%5D.png?imgmax=800" width="476" height="254" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cuando ejecutamos la instrucción nos aparece un mensaje de advertencia sobre la ejecución de este programa le decimos que si lo ejecute y nos muestra la siguiente pantalla:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TS7jLMcSgWI/AAAAAAAACng/38cez3Y5hus/s1600-h/image%5B11%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TS7jL68aUGI/AAAAAAAACnk/gSSqAbO5AZI/image_thumb%5B5%5D.png?imgmax=800" width="444" height="354" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En esta pantalla nos indica la configuración del almacenamiento de Azure para nuestras pruebas de manera local en nuestro PC.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno espero que tengan en cuenta esto al momento de iniciar su desarrollo con Windows Azure y puedan resolver este pequeño inconveniente de configuración.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Felicidades!!&lt;/p&gt;  &lt;p&gt;Hasta la próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-812495245797279651?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/812495245797279651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/812495245797279651'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/01/azure-configurar-almacenamiento-local.html' title='[Azure] Configurar Almacenamiento Local de Azure'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/TS7jJioVU1I/AAAAAAAACnU/ukIArE-Ygls/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5648485158243052928</id><published>2011-01-05T09:00:00.001-05:00</published><updated>2011-01-05T09:00:42.754-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Curso de Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo en la Nube'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><title type='text'>{CURSO} Curso de Cloud Computing</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; nuevamente!&lt;/p&gt;  &lt;p&gt;Primero que nada espero que este nuevo año que inicia sea de muchos éxitos profesionales para todos ustedes!&lt;/p&gt;  &lt;p&gt;Y desde ya en la &lt;a href="http://www.bogotadotnet.org/" target="_blank"&gt;Comunidad BogotaDotNet&lt;/a&gt;&amp;#160; empezamos a capacitarnos, es por esto que los&amp;#160; estoy invitando al curso de &lt;strong&gt;Cloud Computing&lt;/strong&gt;, este curso va&amp;#160; a ser dictado a través de live meeting, o sea por internet, en el horario de 7pm a 10 pm Bogota (GMT –5).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TSR5grGYCYI/AAAAAAAACnI/IJ-Okc5U1go/s1600-h/cursoAzure%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="cursoAzure" border="0" alt="cursoAzure" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TSR5iMxvcFI/AAAAAAAACnM/eAehP2RXi1M/cursoAzure_thumb%5B2%5D.jpg?imgmax=800" width="552" height="433" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para inscribirse al curso pueden hacerlo desde el siguiente link: &lt;a href="https://www323.livemeeting.com/lrs/8000181573/Registration.aspx?pageName=mhdp3swh4l3sp5jk" target="_blank"&gt;Inscripciones al curso de Cloud Computing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si estas en Colombia puedes participar en un concurso y ganarte uno de los 30 XBOX 360 con Kinect. Para inscribirte y revisar los términos del concurso lo puedes revisar en este link: &lt;a href="http://www.bogotadotnet.org/Concursos/CloudComputing.aspx" target="_blank"&gt;Concurso Cloud Computing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para las personas que asistan al curso pero no se encuentren en Colombia, deben revisar en sus países si existe un concurso como este al que puedan aplicar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los espero en el curso!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; y feliz entrenamiento!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5648485158243052928?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5648485158243052928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5648485158243052928'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2011/01/curso-curso-de-cloud-computing.html' title='{CURSO} Curso de Cloud Computing'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_SSzr2Hx_9CQ/TSR5iMxvcFI/AAAAAAAACnM/eAehP2RXi1M/s72-c/cursoAzure_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-45154428872852536</id><published>2010-12-10T09:48:00.001-05:00</published><updated>2010-12-10T09:48:46.509-05:00</updated><title type='text'>[EVENTO] Microsoft Innovation Tour</title><content type='html'>&lt;p&gt;Los espero diciembre 11 en Cartagena, los que no puedan asistir presencialmente lo pueden hacer via live meeting:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.livemeeting.com/cc/ajtech/join?id=SBFBW6&amp;amp;role=attend&amp;amp;pw=HK%23.2z%25DC" target="_blank"&gt;Inscripciones via Web&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 0px 0px 5px" border="0" src="http://65.55.154.121/att/GetInline.aspx?messageid=724f5136-046b-11e0-903d-00215ad9bd58&amp;amp;attindex=1&amp;amp;cp=-1&amp;amp;attdepth=1&amp;amp;imgsrc=cid%3aimage002.jpg%4001CB984E.43C4E7C0&amp;amp;hm__login=ralvaradot&amp;amp;hm__domain=hotmail.com&amp;amp;ip=10.1.106.118&amp;amp;d=d1454&amp;amp;mf=0&amp;amp;hm__ts=Fri%2c%2010%20Dec%202010%2014%3a45%3a33%20GMT&amp;amp;st=ralvaradot&amp;amp;hm__ha=01_f7612abb8b42aa03dc550c378eae2a85667de34f489d2b148c0d7535352f9c6b&amp;amp;oneredir=1" width="605" height="915" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-45154428872852536?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/45154428872852536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/45154428872852536'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/12/evento-microsoft-innovation-tour.html' title='[EVENTO] Microsoft Innovation Tour'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2164829910087478770</id><published>2010-12-01T10:42:00.001-05:00</published><updated>2010-12-01T10:42:46.403-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamp'/><category scheme='http://www.blogger.com/atom/ns#' term='WebCamp10'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='WebCamp2010'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><title type='text'>[EVENTO] Microsoft WebCamp Colombia 2010</title><content type='html'>&lt;p&gt;&lt;a href="mailto:Amig@os"&gt;Amig@os&lt;/a&gt;, ha sido para mi un honor haber podido participar en el WebCamp 2010 organizado por Microsoft este 30 de Noviembre del 2010 en las instalaciones de Microsoft en Bogotá.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TPZs68aVYxI/AAAAAAAACm8/m5hk-FiNtU0/s1600-h/image%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TPZs9LJCZuI/AAAAAAAACnA/S9Nifg48PDA/image_thumb%5B2%5D.png?imgmax=800" width="487" height="378" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muchas gracias a todos los asistentes y muchas gracias a los organizadores del evento!&lt;/p&gt;  &lt;p&gt;Aquí les dejo el .pdf con las diapositivas utilizadas que fueron muy pocas realmente: &lt;a href="http://cid-861554cc20aafddd.office.live.com/self.aspx/P%c3%bablico/WebCamp1020/WebCamp%20ASP.pdf" target="_blank"&gt;Diapositivas en PDF&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En este otro link les dejo el código fuente de la charla: &lt;a href="http://cid-861554cc20aafddd.office.live.com/self.aspx/P%c3%bablico/WebCamp1020/WebCampDemo01.rar" target="_blank"&gt;Codigo Fuente WebCamp10 ASP.NET&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En próximos días voy publicando los artículos de cada uno de los temas tratados en el el WebCamp2010 Colombia.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Disfrútenlo!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2164829910087478770?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2164829910087478770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2164829910087478770'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/12/evento-microsoft-webcamp-colombia-2010.html' title='[EVENTO] Microsoft WebCamp Colombia 2010'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/TPZs9LJCZuI/AAAAAAAACnA/S9Nifg48PDA/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1194798309351572133</id><published>2010-10-11T22:03:00.001-05:00</published><updated>2010-10-11T22:03:17.364-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css3'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 9'/><category scheme='http://www.blogger.com/atom/ns#' term='acid3'/><category scheme='http://www.blogger.com/atom/ns#' term='IE9'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Novedades en IE9: Internet Explorer 9.</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hoy quiero hablarles de una herramienta que utilizamos a diario en nuestro trabajo, uno de los exploradores de internet del mercado, en este caso de Internet Explorer 9.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ya tenemos disponible para descargar y probar el beta de Internet Explorer 9, la última versión del navegador de internet de Microsoft con muchas mejoras desarrolladas para esta nueva versión, dichas mejoras redundan en una mejor experiencia para el usuario del explorador de internet y en la adopción de los estándares de la industria.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Algunos conceptos básicos importantes para entender porque esta nueva versión del navegador de Microsoft es tan importante dentro de las aplicaciones y de los navegadores para internet las intento explicar a continuación.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Una de las herramientas en las cuales nos apoyamos para verificar las funcionalidades del explorador es el WebKit SunSpider.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;¿Qué es WebKit SunSpider? &lt;font style="font-weight: normal"&gt;&lt;/font&gt;&lt;font style="font-weight: normal"&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font style="font-weight: normal"&gt;(Wikipedia: &lt;/font&gt;&lt;a title="http://en.wikipedia.org/wiki/WebKit" href="http://en.wikipedia.org/wiki/WebKit"&gt;&lt;font style="font-weight: normal"&gt;http://en.wikipedia.org/wiki/WebKit&lt;/font&gt;&lt;/a&gt;&lt;font style="font-weight: normal"&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Es un conjunto de programas que tiene como objetivo medir el rendimiento de JavaScript en las tareas que son relevantes para el uso actual y futuro de JavaScript en el desarrollo, tales tareas son la codificación y la manipulación de texto en los diferentes exploradores de internet al momento de dibujar una página web, esto es lo que se conoce como “render”.&amp;#160; La versión 0.9 de SunSpider fue lanzado por el equipo de WebKit de Apple en diciembre de 2007. Fue bien recibido, y los desarrolladores de otros navegadores también lo utilizan para comparar el rendimiento de JavaScript de los diferentes navegadores. La versión 0.9.1 fue lanzado en abril de 2010.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;¿Qué es ACID3?&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;Acid3&lt;/b&gt; es un sitio hecho por WaSP que pone a prueba los navegadores con los estándares web, especialmente los de DOM y ECMAScript (JavaScript).&lt;/p&gt;  &lt;p&gt;Estaba en desarrollo desde abril de 2007 y fue lanzado el 3 de marzo de 2008.El principal desarrollador fue Ian Hickson, quien también escribió la prueba Acid2. Acid2 se concentraba principalmente en CSS, en cambio Acid3 también se enfoca en tecnologías muy usadas en la Web 2.0, tales como ECMAScript y DOM Nivel 2. Algunas sub-pruebas también se encargan del lenguaje SVG, XML y del esquema data:URI. Sólo elementos de la especificaciones del 2004 son incluidos.&lt;/p&gt;  &lt;p&gt;El nuevo navegador de Microsoft Internet Explorer 9 tiene un puntaje de 95/100 en esta prueba.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;¿Qué es CSS3?&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;Antes de adentrarnos en CSS3 recordemos que es CSS.&lt;/p&gt;  &lt;h5&gt;¿Qué es CSS?&lt;/h5&gt; CSS es un lenguaje para definir el estilo o la apariencia de las páginas web, escritas con HTML o de los documentos XML. CSS se creó para separar el contenido de la forma, a la vez que permite a los diseñadores mantener un control mucho más preciso sobre la apariencia de las páginas.   &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la versiones anteriores a css3 se cumplieron los objetivos de separar la apariencia&amp;#160; de las páginas web con el código, en css3 la novedad que se incorpora para los desarrolladores web, son los nuevos mecanismos para un mayor control sobre los estilos que se utilizan para mostrar los controles de las páginas web, esto sin utilizar trucos que hacían mas complicado el código de la página a desarrollar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pero, ¿que cosas nuevas trae css3 ?, a continuación una lista de las nuevas características que implementa css3:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Bordes&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;border-color &lt;/li&gt;    &lt;li&gt;border-image &lt;/li&gt;    &lt;li&gt;border-radius &lt;/li&gt;    &lt;li&gt;box-shadow &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Fondos&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;background-origin &lt;/li&gt;    &lt;li&gt;background-clip &lt;/li&gt;    &lt;li&gt;background-size &lt;/li&gt;    &lt;li&gt;hacer capas con múltiples imágenes de fondo &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Color&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;colores HSL &lt;/li&gt;    &lt;li&gt;colores HSLA &lt;/li&gt;    &lt;li&gt;colores RGBA &lt;/li&gt;    &lt;li&gt;Opacidad o Transparencia &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Texto&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;text-shadow &lt;/li&gt;    &lt;li&gt;text-overflow &lt;/li&gt;    &lt;li&gt;Rotura de palabras largas &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Interfaz&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;box-sizing &lt;/li&gt;    &lt;li&gt;resize &lt;/li&gt;    &lt;li&gt;outline &lt;/li&gt;    &lt;li&gt;nav-top, nav-right, nav-bottom, nav-left &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Selectores&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;Selectores por atributos &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Modelo de caja básico&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;overflow-x, overflow-y &lt;/li&gt; &lt;/ul&gt; &lt;b&gt;Otros&lt;/b&gt;   &lt;ul&gt;   &lt;li&gt;media queries &lt;/li&gt;    &lt;li&gt;creación de múltiples columnas de texto &lt;/li&gt;    &lt;li&gt;Web Fonts &lt;/li&gt;    &lt;li&gt;Propiedades orientadas a lectura automática de páginas web &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Estas características y algunas otras las pueden consultar en la pagina oficial de ccs: &lt;a href="http://www.css3.info/preview/" target="_blank"&gt;http://www.css3.info/preview/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;¿Qué es DOM? &lt;/h4&gt;  &lt;p&gt;(Tomado de Wikipedia en español &lt;a href="http://es.wikipedia.org/wiki/Document_Object_Model" target="_blank"&gt;http://es.wikipedia.org/wiki/Document_Object_Model&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="font-weight: normal"&gt;El &lt;strong&gt;DOM&lt;/strong&gt; viene de las siglas en inglés de las palabras &lt;strong&gt;Document Object Model.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;El &lt;i&gt;&lt;b&gt;Document Object Model&lt;/b&gt;&lt;/i&gt; (&lt;i&gt;modelo de objetos del documento&lt;/i&gt;, otra traducción al español no literal, pero apropiada, podría ser &lt;i&gt;modelo en objetos para la representación de documentos&lt;/i&gt;), abreviado &lt;b&gt;DOM&lt;/b&gt;, es esencialmente una &lt;a href="http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones"&gt;interfaz de programación de aplicaciones&lt;/a&gt; que proporciona un conjunto estándar de objetos para representar documentos &lt;a href="http://es.wikipedia.org/wiki/HTML"&gt;HTML&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Extensible_Markup_Language"&gt;XML&lt;/a&gt;, un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos. A través del DOM, los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos HTML y XML, que es para lo que se diseñó principalmente.&lt;/p&gt;  &lt;p&gt;El responsable del DOM es el &lt;a href="http://es.wikipedia.org/wiki/World_Wide_Web_Consortium"&gt;World Wide Web Consortium&lt;/a&gt; (W3C).&lt;/p&gt;  &lt;p&gt;En efecto, el DOM es una &lt;a href="http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones"&gt;API&lt;/a&gt; para acceder, añadir y cambiar dinámicamente contenido estructurado en documentos con lenguajes como &lt;a href="http://es.wikipedia.org/wiki/ECMAScript"&gt;ECMAScript&lt;/a&gt; (&lt;a href="http://es.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://es.wikipedia.org/wiki/Archivo:DocumentObjectModelES.svg"&gt;&lt;img style="margin: 0px 0px 5px" alt="alt" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/DocumentObjectModelES.svg/250px-DocumentObjectModelES.svg.png" width="250" height="333" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;Diagrama de la Jerarquía del DOM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En definitiva el &lt;strong&gt;DOM&lt;/strong&gt; es quien arma la página web que va a ser mostrada en el navegador de internet, pero también controla todos los controles que se utilicen en al página así como los diferentes eventos que generan estos controles causados por el mouse o por el teclado del computador en donde se ejecute el navegador de internet y los envía al navegador para que se ejecuten las acciones pertinentes.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Todo lo anterior para entender los siguientes test y ejemplos de Internet Explorer 9.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para verificar todas las características anteriormente mencionadas &lt;/p&gt;  &lt;p&gt;En cuanto al performance de las aplicaciones web:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/Performance/SpeedReading/Default.html" target="_blank"&gt;Velocidad de Carga de las paginas&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/Performance/BrowserHunt/Default.xhtml" target="_blank"&gt;Juegos en el Navegador de Internet&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Utilizando HTML5&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/HTML5/ECMAScript5Breakout/Default.html" target="_blank"&gt;Ejemplo de ECMAScript5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/HTML5/DOMCapabilities/Default.html" target="_blank"&gt;Capacidades extendidas del DOM&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Demos de las capacidades graficas del Navegador IE9, utilizando el GPU&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/Graphics/DeepZoom/Default.html" target="_blank"&gt;Zoom de imagenes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ie.microsoft.com/testdrive/Graphics/DeepZoom/Default.html" target="_blank"&gt;Juego de pinball usando las ventajas de graficacion del GPU&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Esperen… HTML5 y ejemplos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Que lo disfruten!!!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy development!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-1194798309351572133?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1194798309351572133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1194798309351572133'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/10/novedades-en-ie9-internet-explorer-9.html' title='Novedades en IE9: Internet Explorer 9.'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-593876243396619627</id><published>2010-09-10T09:47:00.001-05:00</published><updated>2010-09-10T09:50:48.327-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Requisitos Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='PocketPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo por Capas'/><category scheme='http://www.blogger.com/atom/ns#' term='CF'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Desarrollo Aplicación N-Capas para Windows Mobile ( II )</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; nuevamente, hoy vamos a hablar como implementar este modelo de N-Capas en nuestra aplicación.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tomando nuestro mismo ejemplo del articulo “Operaciones CRUD con SQL Mobile y ADO.NET en Windows Mobile” que lo pueden encontrar en&amp;#160; &lt;a href="http://vbcodigopocketpc.blogspot.com/2010/07/operaciones-crud-con-sql-mobile-y.html" target="_blank"&gt;este&lt;/a&gt; enlace. Y aplicando la estructura de N-Capas del articulo anterior, &lt;a href="http://vbcodigopocketpc.blogspot.com/2010/08/desarrollo-aplicacion-n-capas-para.html" target="_blank"&gt;aquí lo pueden consultar&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Implementando N-Capas en Visual Studio 2008&lt;/h2&gt;  &lt;p&gt;Lo primero es crear una solución en VS2008 que vamos a llamar WMBDNNCapas, y el tipo de proyecto a seleccionar es un proyecto Windows Mobile Application (Aplicación de Dispositivo).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpEwmn06bI/AAAAAAAACQM/L54DtIh1fX0/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpExjkQ_NI/AAAAAAAACQQ/nQ_eG2gIWFs/image_thumb2.png?imgmax=800" width="641" height="418" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como se puede observar en al imagen, seleccionamos la plataforma de destino para la cual vamos a desarrollar, en este caso &amp;quot;WM 6 Professional SDK” y la versión del Compact Framework para la cual vamos a desarrollar: 3.5.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Este proyecto de tipo aplicación Windows, es nuestra capa superior o capa de presentación.&lt;/p&gt;  &lt;p&gt;Ahora vamos a proceder a crear 4 proyectos de tipo librería de clases, que representen las capas de Negocio (BL 0 Business Logic), Manejo de Datos (DM = Data Management), Acceso a Datos (DA = Data Access) y la capa de Infraestructura Transversal (Entities).&amp;#160; Los datos entre paréntesis, son los sufijos de los nombres de los proyectos que vamos a crear y los cuales indicaran cada una de las diferentes capas del modelo N-Capas a desarrollar. &lt;/p&gt;  &lt;p&gt;Mi practica personal es utilizar el mismo nombre del proyecto principal, y agregarle el sufijo indicado en los paréntesis a los diferentes proyectos a crear. &lt;/p&gt;  &lt;p&gt;En otras palabras voy a crear un proyecto de tipo librería de clases llamado &lt;strong&gt;WMBDNNCapasBL&lt;/strong&gt; que representa la capa lógica, un proyecto de tipo librería de clases llamado &lt;strong&gt;WMBDNNCapasDM&lt;/strong&gt; que representa la capa de manejo de datos, un proyecto de tipo librería de clases llamado &lt;strong&gt;WMBDNNCapasDA&lt;/strong&gt; que represente el acceso a los datos y por último un proyecto de tipo librería de clases llamado &lt;strong&gt;WMBDNNCapasEntities&lt;/strong&gt; que representa la capa de las entidades y colecciones donde se transportan los datos entre las diferentes capas del modelo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para crear los diferentes proyectos y adicionarlos a la solución que ya hemos creado, para esto, damos clic derecho en el nombre de la solución y en menú contextual que aparece, seleccionamos Agregar y Nuevo proyecto…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TIpEyK_cw2I/AAAAAAAACQU/hUEnnmbTGXY/s1600-h/image8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TIpEy5ss3LI/AAAAAAAACQY/AmPfODUxVDU/image_thumb4.png?imgmax=800" width="444" height="396" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le damos el nombre al proyecto y lo configuramos de la manera correcta:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TIpEzSgrffI/AAAAAAAACQc/ZFkTWGzONvU/s1600-h/image12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TIpEzwcBxfI/AAAAAAAACQg/JBiWIZgPohk/image_thumb6.png?imgmax=800" width="488" height="381" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Después de crear todos los proyectos en la solución, nuestra solución quedaría de la siguiente manera:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TIpE0cP4KFI/AAAAAAAACQk/_Xg6UYlwCdo/s1600-h/image16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TIpE08tCzLI/AAAAAAAACQo/X4SE9U7Rd7s/image_thumb8.png?imgmax=800" width="289" height="374" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Capa de Acceso a Datos&lt;/h2&gt;  &lt;p&gt;La primera capa que vamos a desarrollar es la capa de Acceso a Datos, o sea el proyecto &lt;strong&gt;WMBDNNCapasDA&lt;/strong&gt;, este proyecto en nuestro caso solo va a contener 1 clase para el manejo al acceso de la bases de datos tipo SQL Mobile, en algunos casos de aplicaciones móviles he tenido la necesidad de manejar varios tipos de bases de datos, en ese caso en este proyecto existe mas de una clase para el manejo y acceso a los datos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpE1S_FiaI/AAAAAAAACQs/zDvYNpIuPeI/s1600-h/image20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TIpE2PzEwMI/AAAAAAAACQw/VCnQOo8g6rU/image_thumb10.png?imgmax=800" width="242" height="321" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Lo primero es eliminar del proyecto la clase que se crea por defecto Class1.cs , luego creamos una nueva clase a la cual le vamos a signar el nombre &lt;strong&gt;DBSQLMobileDA.cs&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Si se fijan como regla tengo que a las clases también les coloco el mismo sufijo que utilizo en el proyecto. &lt;/p&gt;  &lt;p&gt;Lo siguiente que vamos&amp;#160; a hacer es agregar la referencia para &lt;strong&gt;System.Data.SqlCeServer&lt;/strong&gt; que es la clase que me permite acceder a bases de datos Microsoft SQL Mobile.&lt;/p&gt;  &lt;p&gt;Para esto debemos dar clic derecho sobre la carpeta de References del proyecto, y escogemos Agregar Referencia:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TIpE2TYSmrI/AAAAAAAACQ0/s7my1yO9D_w/s1600-h/image24.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpE3IsiwDI/AAAAAAAACQ8/d9DSQUxmYmw/image_thumb12.png?imgmax=800" width="264" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al hacer esto Visual Studio nos muestra una ventana con la lista de las referencias que podemos utilizar para nuestro proyecto:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpE3hw8RDI/AAAAAAAACRA/7Q12X8H63zY/s1600-h/image29.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TIpE4V8igNI/AAAAAAAACRE/Lp1bXjcuOtE/image_thumb15.png?imgmax=800" width="509" height="417" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Buscamos en la lista &lt;strong&gt;System.Data.SqlServerCe&lt;/strong&gt; y lo seleccionamos, presionamos el botón &lt;strong&gt;Aceptar&lt;/strong&gt; para asegurar esta selección.&lt;/p&gt;  &lt;p&gt;Al hacer esto la lista de las referencias se actualiza y debe aparecer de la siguiente manera:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpE4pD8o6I/AAAAAAAACRI/7IuO4RvZMKs/s1600-h/image33.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TIpE5BBfbwI/AAAAAAAACRM/XhCVp0qHhGE/image_thumb17.png?imgmax=800" width="239" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como observamos la referencia fue adicionada a la lista.&lt;/p&gt;  &lt;p&gt;Aquí es muy importante resaltar que esta referencia solo se realizara en este proyecto,NO se realizara en los demás proyectos, pues solo este proyecto es el único que interactúa de manera directa con la base de datos.&lt;/p&gt;  &lt;p&gt;Si en nuestra solución necesitamos de otra referencia a una base de datos diferente, se agregará la nueva referencia también en este proyecto y en ningún otro de la solución.&lt;/p&gt;  &lt;p&gt;Esto es súper importante en la arquitectura de N-Capas, porque estamos aislando en las diferentes capas las funcionalidades, en este caso particular la capa de acceso a la base de datos.&lt;/p&gt;  &lt;p&gt;Muy bien, ya entendiendo esto, vamos a codificar nuestra clase de conexión y de interactuación directa con la base de datos y sus objetos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Implementar Clase de Conexión con la base de Datos&lt;/h2&gt;  &lt;p&gt;Lo primero es en nuestra clase colocar la palabra &lt;strong&gt;public&lt;/strong&gt; para que esta clase sea publica y la podamos utilizar.&lt;/p&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DBSQLMobileDA&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El primer método a desarrollar es el método Open, este método abre una conexión a la base de datos, además verifica si ya esta abierta la conexión no realiza la operación. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A esta clase debemos indicar al principio de esta los using que vamos a utilizar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlServerCe;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Lo primero que vamos a hacer es crear una propiedad para la Conexión pues es posible que necesitemos pasar la conexión de un método a otro.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que almacena el objeto de Conexion a la BD&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; SqlCeConnection Conexion { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Además debemos crear otra propiedad de tipo String para almacenar la ruta en la cual va a estar el archivo .sdf con la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt; Ruta en donde va a quedar la base de datos&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; String Ruta { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Esta sintaxis es para el Compact Framework 3.5, recuerden estas son propiedades auto implementadas del lenguaje C#, para Visual Basic.NET esto solo es posible con el Framework .NET 4.0.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Algo que debemos hacer es inicializar esta propiedad en el &lt;strong&gt;constructor&lt;/strong&gt; de la clase:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DBSQLMobileDA()&lt;br /&gt;        {&lt;br /&gt;            Conexion = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection();&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y ahora si nuestro método de conectarse a la base de datos:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Metodo que abre la conexion a la Base de datos&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Open()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="rem"&gt;// Si hay una conexion abierta la mantengo&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Conexion.State == System.Data.ConnectionState.Open)&lt;br /&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// Armo la cadena de conexion&lt;/span&gt;&lt;br /&gt;            Conexion.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source=&amp;quot;&lt;/span&gt; + Ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span class="rem"&gt;// Abro la conexion&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Conexion.Open();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En el código verificamos si ya la conexión esta abierta y salimos del método, si no está abierta, le asignamos la cadena de conexión al objeto de conexión y llamamos al método Open().&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En la propiedad &lt;strong&gt;Ruta&lt;/strong&gt;, vamos a tener la ruta del sistema de archivos en el cual esta el archivo de la base de datos, y de esa manera armamos la cadena de conexión.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Vamos a crear un método que es el que inicializa el objeto comando y es el que necesitamos para ejecutar todas las operaciones necesarias de la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Este método lo vamos a llamar CreateComando, para esto también necesitamos una propiedad de tipo SqlCeCommand que vamos a llamar Comando.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;La propiedad seria:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que devuelve un objeto SqlCeCommand&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; SqlCeCommand Commando { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y el código del método CreateComando es el siguiente:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Crea un Objeto SqlCeCommand para ser utilizado&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateComando()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                Commando = Conexion.CreateCommand();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Simplemente lo que hace este método es inicializar el objeto &lt;strong&gt;SqlCeCommand&lt;/strong&gt; y a través de él manejar las diferentes operaciones contra la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora vamos a crear un método que me permita leer o extraer datos de la base datos, nuestro método se llama &lt;strong&gt;ExecuteReader&lt;/strong&gt;, pues los datos nos los va a devolver en un &lt;strong&gt;IDataReader&lt;/strong&gt;, esto nos asegura que la lectura de los datos va a ser bastante rápida.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Lo primero es crear la propiedad de tipo IDataReader, para esto necesitamos también tener el using System.Data:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que Expone el DataReader en donde se encuentran los datos leidos&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; IDataReader DataReader;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y el código del método &lt;strong&gt;ExecuteReader&lt;/strong&gt; es el siguiente:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Ejecuta sentencias SQL en la BAse de datos SQL Mobile&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;tipoComando&amp;quot;&amp;gt;Un CommandType para saber que se hace con la instruccion&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;query&amp;quot;&amp;gt;La sentencia SQL a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;Un Datareader para ser recorrido&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; IDataReader ExecuteReader(CommandType tipoComando, String query)&lt;br /&gt;        {&lt;br /&gt;            DataReader = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;br /&gt;            Commando.Connection = Conexion;&lt;br /&gt;            Commando.CommandType = tipoComando;&lt;br /&gt;            Commando.CommandText = query;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                DataReader = Commando.ExecuteReader();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; DataReader;&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Este método recibe dos parámetros, uno es el tipo de comando a ejecutar, y el otro una cadena con la sentencia SQL a ejecutar, se le asigna al objeto Commando la Conexión, el tipo de comando y la sentencia a ejecutar, luego en bloque try.. catch de ejecuta la sentencia llamando al método &lt;strong&gt;ExecuteReader&lt;/strong&gt; del objeto SqlCeCommand.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El método devuelve un objeto IDataReader con los datos que devuelve al base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Por último tenemos el método &lt;strong&gt;ExecuteNonQuery&lt;/strong&gt; para ejecutar las sentencias SQL que afectan&amp;#160; los datos en la tabla de la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt; Ejecuta sentencias de INSERT, DELETE y UPDATE &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;tipoComando&amp;quot;&amp;gt;Tipo de comando a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;query&amp;quot;&amp;gt;Instruccion SQL a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;Un entero con el numero de registros Afectados&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Int32 ExecuteNonQuery(CommandType tipoComando, String query)&lt;br /&gt;        {&lt;br /&gt;            Commando.Connection = Conexion;&lt;br /&gt;            Commando.CommandType = tipoComando;&lt;br /&gt;            Commando.CommandText = query;&lt;br /&gt;            Int32 stReturn;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                stReturn = Commando.ExecuteNonQuery();&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; stReturn;&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El código completo de nuestra clase es el siguiente:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlServerCe;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; WMBDNNCapasDA&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;{&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DBSQLMobileDA&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; Propiedades&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que almacena el objeto de Conexion a la BD&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; SqlCeConnection Conexion { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt; Ruta en donde va a quedar la base de datos&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; String Ruta { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que devuelve un objeto SqlCeCommand&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; SqlCeCommand Commando { get; set; }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Propiedad que Expone el DataReader en donde se encuentran los datos leidos&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; IDataReader DataReader;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DBSQLMobileDA()&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Conexion = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            Commando = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeCommand();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Metodo que abre la conexion a la Base de datos&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Open()&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;// Si hay una conexion abierta la mantengo&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Conexion.State == System.Data.ConnectionState.Open)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;// Armo la cadena de conexion&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="rem"&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            Conexion.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source=&amp;quot;&lt;/span&gt; + Ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="rem"&gt;// Abro la conexion&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                Conexion.Open();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Crea un Objeto SqlCeCommand para ser utilizado&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateComando()&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;                Commando = Conexion.CreateCommand();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;Ejecuta sentencias SQL en la BAse de datos SQL Mobile&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;tipoComando&amp;quot;&amp;gt;Un CommandType para saber que se hace con la instruccion&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;query&amp;quot;&amp;gt;La sentencia SQL a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;Un Datareader para ser recorrido&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; IDataReader ExecuteReader(CommandType tipoComando, String query)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            DataReader = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Commando.Connection = Conexion;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            Commando.CommandType = tipoComando;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Commando.CommandText = query;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                DataReader = Commando.ExecuteReader();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; DataReader;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt; Ejecuta sentencias de INSERT, DELETE y UPDATE &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;tipoComando&amp;quot;&amp;gt;Tipo de comando a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;query&amp;quot;&amp;gt;Instruccion SQL a Ejecutar&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;Un entero con el numero de registros Afectados&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Int32 ExecuteNonQuery(CommandType tipoComando, String query)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            Commando.Connection = Conexion;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Commando.CommandType = tipoComando;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            Commando.CommandText = query;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Int32 stReturn;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                stReturn = Commando.ExecuteNonQuery();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException ex)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;                &lt;span class="kwrd"&gt;throw&lt;/span&gt; ex;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; stReturn;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Resumen&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En resumen :&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Esta clase que hemos creado solo se encarga y esta especializada en la conexión a la base de datos y de ejecutar las diferentes operaciones contra la base de datos, de esta manera aislamos en esta capa y específicamente en esta clase las diferentes operaciones contra la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Nuestra clase tiene los siguientes métodos:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Open&lt;/strong&gt;: que establece la conexión con la base de datos. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;CreateComando&lt;/strong&gt;: que inicializa el objeto SqlCeCommand para las diferentes operaciones a realizar. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;ExecuteReader&lt;/strong&gt;: que ejecuta una sentencia contra la base de datos y devuelve un conjunto de registros en un objeto IDataReader. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;ExecuteNonQuery&lt;/strong&gt;: que ejecuta sentencias contra la base de datos para afectar los datos.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Podemos incluir algunos otros métodos que consideremos necesarios, como por ejemplo para controlar una transacción, si definitivamente necesitamos devolver datos en un objeto DataTable pues también podemos crear un método que nos devuelva este tipo de objeto.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Si necesitamos una conexión a una base de datos diferente, crearemos una nueva clase para el manejo de esta y agregaremos la referencia necesaria para que esto funcione, los métodos deberían ser los mismos que hemos desarrollado en esta clase.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En el próximo artículo veremos como utilizar esta clase y esta capa con la capa de manejo de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Espero que haya sido lo suficientemente explicito en esta clase y si tienen preguntas no duden en colocarlas aquí en el blog para responderlas.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Enjoy develop!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Hasta la próxima!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-593876243396619627?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/593876243396619627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/593876243396619627'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/09/desarrollo-aplicacion-n-capas-para.html' title='Desarrollo Aplicación N-Capas para Windows Mobile ( II )'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/TIpExjkQ_NI/AAAAAAAACQQ/nQ_eG2gIWFs/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-6281185602205297726</id><published>2010-08-28T15:26:00.001-05:00</published><updated>2010-08-28T15:26:00.045-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Requisitos Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2005'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo por Capas'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Desarrollo Aplicación N-Capas para Windows Mobile ( I )</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; nuevamente, el título de este post me lo han pedido que lo explique muchas veces, me preguntan si es posible desarrollar una aplicación para dispositivos móviles por capas y la respuesta es Sí.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A continuación voy a explicar como es la arquitectura de una aplicación de N-Capas, al decir N-Capas, podemos pensar en 2, 3, 4, o más capas, ya depende de organicemos nuestro trabajo y lo que necesitamos desarrollar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En primera instancia un desarrollo con una arquitectura por capas tenemos que concientizarnos de partir las diferentes funcionalidades que deseemos realizar en nuestro desarrollo en varias partes y ubicarlos dentro de una de las capas que hayamos definido dentro de nuestra arquitectura.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Particularmente, yo me baso en el siguiente esquema para los desarrollos por capas de mis aplicaciones:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/THlw0XAWz6I/AAAAAAAACPc/G03WWKioBRQ/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/THlw1gVZR2I/AAAAAAAACPg/yLEfH9E_2ps/image_thumb%5B1%5D.png?imgmax=800" width="404" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Capa de Presentación&lt;/h3&gt;  &lt;p&gt;Como podemos observar de arriba hacia abajo tenemos una serie de capas, en donde la capa inicial es la capa de presentación o de interface de usuario, esta capa esta conformada por los formularios de la aplicación Windows o por las páginas .aspx o web forms de una aplicación ASP.NET. En cuanto al tema de las aplicaciones para dispositivos móviles nuestra capa de Presentación será también nuestra aplicación Windows Mobile.&lt;/p&gt;  &lt;p&gt;Esta capa hablando en términos de desarrollo con Visual Studio, es el proyecto de tipo Windows Application, o Web Application, o aplicación Windows para Windows Mobile. &lt;/p&gt;  &lt;p&gt;Para el caso de una aplicación que es un Web Service o un Servicio de Windows Communication Foundation (WCF), esta capa seria el servicio como tal que es quien expone al mundo los métodos a consumir o a utilizar por las aplicaciones que consuman dichos servicios.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Capa de Negocio&lt;/h3&gt;  &lt;p&gt;Esta capa es la segunda en la estructura de la imagen, en esta capa es donde debemos colocar el código de nuestra aplicación que se encargue de realizar las operaciones inherentes al negocio o tipo de aplicación que estemos desarrollando.&lt;/p&gt;  &lt;p&gt;Algunos se preguntarán, pero cuales son esas tareas del negocio? esto a veces es un poco subjetivo y algunos no alcanzamos a descubrir línea que nos permite saber que es lo que debe ir en esta capa.&lt;/p&gt;  &lt;p&gt;Bueno, vamos a tratar de aclarar este punto, en esta capa se definen las operaciones o cálculos que se necesiten realizar para las operaciones de nuestra aplicación.&lt;/p&gt;  &lt;p&gt;En esta capa se arman las interfaces para llamar los diferentes métodos que devuelven datos a nuestra aplicación, porque esta es la capa con al cual interactuaremos desde la capa de Presentación.&lt;/p&gt;  &lt;p&gt;Esto quiere decir que desde la presentación no estaremos en contacto directo con la capa que maneja los datos de nuestro repositorio de datos.&lt;/p&gt;  &lt;p&gt;Esta capa también es la encargada de solicitar los datos a la capa del manejo de los datos y los entrega a la capa de Presentación.&lt;/p&gt;  &lt;p&gt;Recuerden en esta capa si necesitamos realizar alguna operación como el calculo de un total, un promedio, etc., aquí es donde debemos realizar esa operación y devolverla a la capa de presentación.&lt;/p&gt;  &lt;p&gt;Espero que en el ejemplo esto lo pueda explicar mucho mejor y sea mas claro para todos. En nuestra solución de Visual Studio esta capa es un proyecto de tipo librería de clases que agrupa todas las clases necesarias.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Capa de Manejo de Datos&lt;/h3&gt;  &lt;p&gt;Esta es una de las capas mas importantes, esta capa es la encargada de la creación de los diferentes “querys” o consultas a la base de datos para obtener los datos que necesitamos en nuestra aplicación.&lt;/p&gt;  &lt;p&gt;Esta capa también es la encargada de convertir los datos que devuelve la capa que interactúa con nuestra base de datos, o sea un datatable, un datareader o un dataset, en una lista genérica o una colección de objetos de tipo entidad como veremos mas adelante en una de las capas ( la capa transversal).&lt;/p&gt;  &lt;p&gt;Esta capa esta representada por un proyecto de tipo librería de clases dentro de nuestra solución de Visual Studio.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Capa de Acceso a Datos&lt;/h3&gt;  &lt;p&gt;Esta capa es un proyecto de tipo librería de clases en nuestra solución de Visual Studio, en esta capa vamos a tener una clase que se conecte a la base de datos que vayamos a utilizar y se encarga de realizar todas las operaciones contra la base de datos seleccionada como repositorio de datos de nuestra solución.&lt;/p&gt;  &lt;p&gt;La importancia de esta capa radica en que si cambian el motor de base de datos el impacto en nuestra aplicación va a ser mínimo pues solo hay que modificar o corregir esta capa para el acceso y conexión a la nueva base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Capa de Infraestructura Transversal&lt;/h3&gt;  &lt;p&gt;En esta capa vamos a definir las clases de tipo entidad en la cual vamos a transportar los datos entre las diferentes capas de nuestra solución.&lt;/p&gt;  &lt;p&gt;Las clase de tipo entidad son una copia de la estructura de nuestras tablas de la base de datos a utilizar, o de acuerdo a las necesidades que tengamos.&lt;/p&gt;  &lt;p&gt;Por ejemplo los resultados que necesitamos para un reporte impreso por lo general son muy variables y toca crear una entidad única para ellos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno esto no es una ley, como dije antes todo depende de nuestro proyecto y de la manera que queramos hacer las cosas, muchas veces las primeras dos capas se unen y quedan en una sola, todo depende de cada uno de nosotros.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bueno por hoy, hasta aquí, pronto haremos un ejemplo de una aplicación usando esta metodología.&lt;/p&gt;  &lt;p&gt;Hasta la próxima!&lt;/p&gt;  &lt;p&gt;Enjoy develop!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-6281185602205297726?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6281185602205297726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6281185602205297726'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/08/desarrollo-aplicacion-n-capas-para.html' title='Desarrollo Aplicación N-Capas para Windows Mobile ( I )'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/THlw1gVZR2I/AAAAAAAACPg/yLEfH9E_2ps/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2910321277106005539</id><published>2010-08-18T16:45:00.001-05:00</published><updated>2010-08-18T16:45:57.124-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BogotaDotNet'/><title type='text'>{EVENTO} BogotaDotNet en BarCamp Bogota 2010</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; quiero &lt;a href="mailto:invitarl@s"&gt;invitarl@s&lt;/a&gt; al evento BarCamp 2010 en Bogotá el próximo sábado 21 de agosto desde las 9 AM en las instalaciones de la fundación universitaria Cafam en el barrio la Floresta.&lt;/p&gt;  &lt;p&gt;Los espero a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TGxUkUoL_TI/AAAAAAAACPU/YCWy64pGIno/s1600-h/afiche_barcamp-80%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="afiche_barcamp-80" border="0" alt="afiche_barcamp-80" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TGxUlL9tycI/AAAAAAAACPY/KkicALoJ0fU/afiche_barcamp-80_thumb%5B1%5D.jpg?imgmax=800" width="333" height="468" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para inscribirse lo pueden hacer en la siguiente dirección: &lt;a href="https://spreadsheets.google.com/viewform?formkey=dGVYckVnd0RqUUJNejJQbU5DdDdVeFE6MQ" target="_blank"&gt;Inscripción BarCamp 2010 Bogotá&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La comunidad BogotaDotNet estará presente en este evento con las siguientes conferencias:&lt;/p&gt;  &lt;p&gt;09:00 am:&amp;#160; Desarrollo para Windows Phone 7&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; - Roberto Alvarado&lt;/p&gt;  &lt;p&gt;09:30 am:&amp;#160; Entity Framework 4.0, beneficios como herramienta ORM&amp;#160; - Nelson Venegas&lt;/p&gt;  &lt;p&gt;10:00 am:&amp;#160; SQL Server 2008 R2 Express&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; - John Alexander Bulla&lt;/p&gt;  &lt;p&gt;10:30 am:&amp;#160; Parallel computing development&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; - Juan Carlos Ruiz&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Además hay mas conferencias hasta las 5 p.m. los esperamos!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2910321277106005539?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2910321277106005539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2910321277106005539'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/08/evento-bogotadotnet-en-barcamp-bogota.html' title='{EVENTO} BogotaDotNet en BarCamp Bogota 2010'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/TGxUlL9tycI/AAAAAAAACPY/KkicALoJ0fU/s72-c/afiche_barcamp-80_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-6587860856164611582</id><published>2010-08-02T11:09:00.002-05:00</published><updated>2010-08-02T11:13:33.015-05:00</updated><title type='text'>Operaciones CRUD Windows Mobile, SQL Mobile</title><content type='html'>Aquí les dejo el código de ejemplo del proyecto de las operaciones CRUD con ADO.NET en Windows Mobile con SQL Mobile en C#.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://cid-861554cc20aafddd.office.live.com/self.aspx/.Public/CRUDWMCS.rar"&gt;Proyecto con el ejemplo del Articulo &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Que lo disfruten!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-6587860856164611582?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6587860856164611582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6587860856164611582'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/08/operaciones-crud-windows-mobile-sql.html' title='Operaciones CRUD Windows Mobile, SQL Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5247826030129633609</id><published>2010-07-31T09:38:00.001-05:00</published><updated>2010-07-31T09:38:16.069-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2005'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='PocketPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='CF'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Operaciones CRUD con SQL Mobile y ADO.NET en Windows Mobile</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;, hoy quiero explicarles como utilizar ADO.NET en Windows Mobile contra una base de datos SQL Mobile.&lt;/p&gt;  &lt;p&gt;Este artículo va a ser un poco largo, pero quiero responder aquí muchas de las preguntas que me hacen en los foros donde participo: ¿Cómo creo una base de datos SQL Mobile, cómo inserto registros en esa base de datos, como elimino registros de esa base de datos, como edito o modifico la información, como muestro la información en una grilla?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A muchos les parecerá mucho mas fácil trabajar con el control enlazado a datos de Windows Mobile BindingSource, pero considero que no se tiene todo el control que uno debe tener con los datos con este control. Sin embargo como dice un refrán aquí en Colombia “&lt;strong&gt;Entre gustos no hay disgustos…&lt;/strong&gt;”, los que desean hacerlo lo utilizan y cuando una consulta hay que cambiarla se enfrentan a inconvenientes para poder crearla como se necesita. &lt;/p&gt;  &lt;p&gt;Estos son mis puntos de vista y todos pensamos y hacemos las cosas diferentes, así que no tomen esto como una regla en sus desarrollos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Este artículo va a tratar de utilizar todas las funciones necesarias de ADO.NET para Windows Mobile a partir del código.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Definición Estructura Tabla&lt;/h2&gt;  &lt;p&gt;Bueno, entonces empecemos con este tema, lo primero que vamos a hacer es definir una estructura de una tabla a la cual vamos a aplicar las operaciones del CRUD (Create, Remove, Update, Display) por sus siglas en inglés.&lt;/p&gt;  &lt;p&gt;Nuestra tabla es una tabla de contactos personales la cual va a contener las siguientes columnas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Id, entero, auto numérico y llave de la tabla &lt;/li&gt;    &lt;li&gt;Nombre, nvarchar de 150 caracteres de longitud &lt;/li&gt;    &lt;li&gt;Direccion, NVarchar de 150 caracteres de longitud &lt;/li&gt;    &lt;li&gt;Telefono, NVarchar de 10 caracteres de longitud &lt;/li&gt;    &lt;li&gt;Celular, Nvarchar de 10 caracteres de longitud &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Habiendo definido nuestra tabla o nuestras tablas, vamos a recordar como crear por código la base de datos en la PDA, y luego como aplicar los diferentes métodos de ADO.NET para el manejo de los datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Creación del Proyecto a desarrollar&lt;/h2&gt;  &lt;p&gt;Empecemos, abrimos nuestro ambiente de desarrollo Visual Studio 2008, para esto y seleccionamos crear un nuevo proyecto:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ06Im-MuI/AAAAAAAACE8/qqvSArpbEFc/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ07EUju-I/AAAAAAAACFA/L_5FyiJods0/image_thumb1.png?imgmax=800" width="217" height="306" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;No muestra la pantalla de seleccionar el tipo de proyecto a crear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ070fd1WI/AAAAAAAACFE/oRmWNoulQLA/s1600-h/image8.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ08oG0a9I/AAAAAAAACFI/fbjHNqlFHlc/image_thumb4.png?imgmax=800" width="577" height="418" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En esta pantalla seleccionamos el lenguaje sobre el cual vamos a trabajar, también el tipo de proyecto a desarrollar, como vemos en la imagen seleccionamos Smart Device, que es el tipo de proyecto para Windows Mobile.&lt;/p&gt;  &lt;p&gt;Además le asignamos un nombre al proyecto, pueden observar en la imagen que en las plantillas solo aparece una como “Proyecto de Smart Device”, en el siguiente paso vamos a seleccionar ya el tipo de proyecto dentro de esta plantilla.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Al presionar el botón Aceptar nos muestra la siguiente pantalla :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ09Dg-ZQI/AAAAAAAACFM/WPBm5lCWSWs/s1600-h/image13.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ0-Ot-mII/AAAAAAAACFQ/5ZcoLeK7N9I/image_thumb7.png?imgmax=800" width="560" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En la parte superior y esto solo es a partir de Visual Studio 2008, nos permite seleccionar la plataforma de destino ( Platform Target)&amp;#160; y la versión del .NET Compact Framework para el cual vamos a desarrollar. &lt;/p&gt;  &lt;p&gt;Luego de haber seleccionado estos datos vamos seleccionar el tipo de aplicación a desarrollar, como vamos a crear una aplicación para windows mobile, debemos seleccionar la plantilla de Aplicación de Dispositivo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ0-xXf5vI/AAAAAAAACFU/Ug2YUFxK-ZA/s1600-h/image17.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ0_X9t9jI/AAAAAAAACFY/q84uxi8VuAQ/image_thumb9.png?imgmax=800" width="571" height="162" /&gt;&lt;/a&gt;     &lt;br /&gt;De acuerdo a los diferentes SDK de Windows Mobile instalados en nuestro PC de desarrollo, esta lista puede tener las opciones que aparecen o menos, en mi caso tengo instalados los SDK de Windows Mobile versión 2003, 5 y 6 Professional y Standard (antes llamado smart phone). &lt;/p&gt;  &lt;p&gt;Vamos a seleccionar la plataforma Windows Mobile 6 Profesional SDK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ0_7_8_VI/AAAAAAAACFc/PgMcM0yt6qU/s1600-h/image21.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1As7LUxI/AAAAAAAACFg/ad8G-d4CkPc/image_thumb11.png?imgmax=800" width="553" height="146" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Para el caso de la versión del CF.NET sobre la cual vamos a desarrollar, vamos a seleccionar la versión 3.5, y le damos clic al botón de Aceptar de esta pantalla para que nos abra nuestro ambiente de desarrollo y el formulario para empezar a desarrollar nuestra aplicación.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1B-e9-LI/AAAAAAAACFk/O3637omqxe0/s1600-h/image25.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1Cp7v7WI/AAAAAAAACFo/bkbgA8Jy6d4/image_thumb13.png?imgmax=800" width="613" height="392" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como podemos apreciar en la imagen el formulario creado por default en su parte superior derecha tiene una equis “X”, esto significa que se va a minimizar el formulario al presionarla, no se va a cerrar la aplicación como deseamos, para esto vamos a ir al panel de propiedades y vamos a cambiar la propiedad MinimizeBox a False.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1C_c8tbI/AAAAAAAACFs/cl9MQ-At3Fk/s1600-h/image29.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1DY3yApI/AAAAAAAACFw/TOMNOqVeQb4/image_thumb15.png?imgmax=800" width="250" height="273" /&gt;&lt;/a&gt;     &lt;br /&gt;Con esto nuestro formulario muestra un botón de OK, que si permite cerrar la aplicación cuando hagamos clic sobre el.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1DqOLQhI/AAAAAAAACF0/agwEI7JrTxg/s1600-h/image33.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1EHS6UuI/AAAAAAAACF4/rtZP2k0lhV4/image_thumb17.png?imgmax=800" width="262" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Después de haber configurado nuestro formulario, lo primero que debemos hacer es adicionar a nuestra solución la referencia al espacio de nombres que maneja las bases de datos SQL Mobile, por defecto esta referencia no viene en los proyectos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1Ee3oclI/AAAAAAAACF8/hxslKhJhjaM/s1600-h/image36.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1FPnrhJI/AAAAAAAACGA/8n_7auMt1LE/image_thumb18.png?imgmax=800" width="244" height="235" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para adicionar la referencia hacemos clic derecho sobre “&lt;strong&gt;References&lt;/strong&gt;” y nos muestra la lista de todos los assemblies que podemos utilizar en nuestro desarollo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1Fe41ScI/AAAAAAAACGE/dAARzI73Akk/s1600-h/image39.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1GqmeN4I/AAAAAAAACGI/Q1-PtHtLXKU/image_thumb19.png?imgmax=800" width="244" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y ubicamos en la lista &lt;strong&gt;System.Data.SqlServerCe&lt;/strong&gt;, lo seleccionamos y presionamos el botón de Aceptar de la ventana:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1HKFxblI/AAAAAAAACGM/UFj05JKjrKk/s1600-h/image44.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1H-Gr6rI/AAAAAAAACGQ/2QUj7vhPpK4/image_thumb22.png?imgmax=800" width="543" height="441" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Con esto este Espacio de nombre ya queda incluido en las referencias:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1IBiQtVI/AAAAAAAACGU/dVZ4msiVSFA/s1600-h/image47.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1Iy-0ZhI/AAAAAAAACGY/TuSXnb9Cn3A/image_thumb23.png?imgmax=800" width="216" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hacemos doble clic sobre el formulario para que se abra la ventana de código en el evento load de la forma, aquí vamos a verificar que exista la base de datos .sdf, que es la extensión de los archivos de SQL Mobile. &lt;/p&gt;  &lt;p&gt;Para esto necesitamos incluir el using de &lt;strong&gt;System.IO&lt;/strong&gt; al principio de la clase que maneja el formulario, para poder hacer uso de la función que verifica si un archivo existe o no en el sistema de archivos de Windows Mobile. &lt;/p&gt;  &lt;p&gt;Además necesitamos los using de &lt;strong&gt;System.Configuration&lt;/strong&gt; y &lt;strong&gt;System.Reflection&lt;/strong&gt;, para obtener la ruta en la cual se encuentra el ejecutable de la aplciación y verificar que el archivo .sdf se encuentre en esa misma ruta.&lt;/p&gt;  &lt;p&gt;Por ultimo necesitamos el using de System.Data.SqlServerCe, para poder tener acceso al proveedor de datos y realizar las operaciones necesarias sobre la base de datos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Verificar si el archivo .sdf existe&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO; &lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration; &lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Reflection; &lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlServerCe;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; CRUDWMCS &lt;br /&gt;{ &lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Form1 : Form &lt;br /&gt;    { &lt;br /&gt;        &lt;span class="rem"&gt;// Obtengo por Reflexion la ruta completa del archivo .exe &lt;/span&gt;&lt;br /&gt;        String nombreExe = Assembly.GetExecutingAssembly().GetName().CodeBase; &lt;br /&gt;        String ruta = String.Empty;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Form1() &lt;br /&gt;        { &lt;br /&gt;            InitializeComponent(); &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Form1_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt;        { &lt;br /&gt;            &lt;span class="rem"&gt;// Obtengo la ruta del archivo .exe &lt;/span&gt;&lt;br /&gt;            ruta = nombreExe.Substring(0, nombreExe.LastIndexOf(&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;@&amp;quot;\&amp;quot;) + 1); &lt;br /&gt;            if (!File.Exists(ruta + &amp;quot;&lt;/span&gt;DemoBD.sdf&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;)) &lt;br /&gt;            { &lt;br /&gt;                // Instancio SqlCeENgine para crear la base de datos .sdf &lt;br /&gt;                SqlCeEngine engine = new SqlCeEngine(&amp;quot;&lt;/span&gt;Data Source= &lt;span class="str"&gt;&amp;quot; + ruta + &amp;quot;&lt;/span&gt;DemoBD.sdf;&amp;quot;););&lt;br /&gt;&lt;br /&gt;            } &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;Luego&amp;#160; de obtener la ruta del archivo .exe, en la variable ruta de tipo String, pregunto si el archivo no existe, haciendo uso de File.Exist, si esta condición es verdadera procedemos a crear la base de datos.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font size="4"&gt;Crear la base de datos:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Creamos el archivo de base de datos con estas instrucciones:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="rem"&gt;// Instancio SqlCeENgine para crear la base de datos .sdf &lt;/span&gt;&lt;br /&gt;SqlCeEngine engine = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeEngine(&lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;);); &lt;br /&gt;engine.CreateDatabase(); &lt;br /&gt;engine.Dispose();&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;Luego procedemos a crear la tabla que vamos a necesitar, para esto utilizando ADO.NET, abrimos una conexión a la base de datos, creamos un comando para ejecutar la instrucción de creación de la tabla en la base de datos y por ultimo cerramos la conexión a la base de datos.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A continuación como queda el código del evento Load de la forma en la cual se crea la base de datos y la tabla a utilizar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Form1_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;    &lt;span class="rem"&gt;// Obtengo la ruta del archivo .exe &lt;/span&gt;&lt;br /&gt;    ruta = nombreExe.Substring(0, nombreExe.LastIndexOf(&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;@&amp;quot;\&amp;quot;) + 1); &lt;br /&gt;    if (!File.Exists(ruta + &amp;quot;&lt;/span&gt;DemoBD.sdf&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;)) &lt;br /&gt;    { &lt;br /&gt;        // Instancio SqlCeEngine para crear la base de datos .sdf &lt;br /&gt;        SqlCeEngine engine = new SqlCeEngine(&amp;quot;&lt;/span&gt;Data Source= &lt;span class="str"&gt;&amp;quot; + ruta + &amp;quot;&lt;/span&gt;DemoBD.sdf;&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;        engine.CreateDatabase(); &lt;br /&gt;        engine.Dispose();&lt;br /&gt;&lt;br /&gt;        // Instancio la conexion a la base de datos &lt;br /&gt;        SqlCeConnection conn = new SqlCeConnection(); &lt;br /&gt;        StringBuilder sbQuery = new StringBuilder(); &lt;br /&gt;        SqlCeCommand cmd = new SqlCeCommand(); &lt;br /&gt;        try &lt;br /&gt;        { &lt;br /&gt;            // Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile &lt;br /&gt;            conn.ConnectionString = &amp;quot;&lt;/span&gt;Data Source= &lt;span class="str"&gt;&amp;quot; + ruta + &amp;quot;&lt;/span&gt;DemoBD.sdf;&lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;; &lt;br /&gt;            // Abro la conexion a la base de datos &lt;br /&gt;            conn.Open();&lt;br /&gt;&lt;br /&gt;            // Creo la sentencia SQL a utilizar &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;CREATE TABLE Contactos( &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    Id &lt;span class="kwrd"&gt;int&lt;/span&gt; IDENTITY(1,1) NOT NULL &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ,Nombre nvarchar(150) NOT NULL &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ,Direccion nvarchar(150) NOT NULL &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ,Telefono nvarchar(10) NOT NULL &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ,Celular nvarchar(10) NOT NULL &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    , CONSTRAINT CONTACTOS_PK PRIMARY KEY &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ( &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;      Id &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ) &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;); &lt;br /&gt;            sbQuery.Append(&amp;quot;&lt;/span&gt;    ) &lt;/font&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="str"&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;            // Configuro el objeto commando para ejecutar la sentencia SQL &lt;br /&gt;            cmd.CommandText = sbQuery.ToString(); &lt;br /&gt;            // Asigno la conexion al objeto commando &lt;br /&gt;            cmd.Connection = conn; &lt;br /&gt;            // Ejecuto la instruccion &lt;br /&gt;            cmd.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt;            conn.Close(); &lt;br /&gt;            conn.Dispose(); &lt;br /&gt;        } &lt;br /&gt;        catch (SqlCeException sqlEx) &lt;br /&gt;        { &lt;br /&gt;            MessageBox.Show(&amp;quot;&lt;/span&gt;Ha ocurrido una excepción:\r\n&lt;span class="str"&gt;&amp;quot; + sqlEx.Message, &amp;quot;&lt;/span&gt;Abriendo Base de Datos&amp;quot;); &lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt;; &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Si ejecutamos nuestra aplicación hasta este momento vamos a observar en el directorio el archivo de la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1JJpJVHI/AAAAAAAACGc/0g55Qu3fHHc/s1600-h/image50.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1JhTtVWI/AAAAAAAACGg/8dSfKgdT220/image_thumb24.png?imgmax=800" width="184" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1J3xRN5I/AAAAAAAACGk/j2exQiUZH38/s1600-h/image53.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1KDa-ouI/AAAAAAAACGo/5VxEt-AYH54/image_thumb25.png?imgmax=800" width="184" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1KtE8CtI/AAAAAAAACGs/89ko5RfUVeM/s1600-h/image56.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1K_E2iII/AAAAAAAACGw/tDef9xIhaCU/image_thumb26.png?imgmax=800" width="184" height="244" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1LVqVNlI/AAAAAAAACG0/mUMnHBuDeIE/s1600-h/image59.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1L5NoyoI/AAAAAAAACG4/PX2I52S4dd0/image_thumb27.png?imgmax=800" width="184" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En las imágenes anteriores podemos observar que la base de datos se creo de manera correcta al igual que la tabla.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Recapitulando un poco:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para crear la base de datos: se necesita el objeto SqlCeEngine de ADO.NET para SQL Mobile.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para crear la tabla por código: Se necesita:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;un objeto SqlCeConnection que establece y abre la conexión con la base de datos SQL Mobile. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;un objeto SqlCeCommand que permite ejecutar las sentencias SQL contra la base de datos utilizando el objeto SqlCeConnection creado en el paso anterior. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora que ya tenemos la base de datos con su tabla creada, vamos a crear una opción en el menú para adicionar registros a nuestra tabla, para esto vamos a adicionar al menú la opción Adicionar y vamos a crear un panel para la captura de los datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1Mq5B5FI/AAAAAAAACG8/Blw2jfGglQI/s1600-h/image64.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1NBYBWFI/AAAAAAAACHA/eywD2f-SrBM/image_thumb30.png?imgmax=800" width="231" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Además vamos a adicionar un Panel que nos servirá para simular una ventana con los datos a capturar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1NbzapJI/AAAAAAAACHE/gKbXw8AsMls/s1600-h/image67.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1Nw0qFUI/AAAAAAAACHI/ai38oRX7Wgw/image_thumb31.png?imgmax=800" width="215" height="244" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Dentro del panel vamos a colocar controles label y controles TextBox que nos permitan capturar los datos de diferentes datos de la tabla. Nuestro panel de captura va a quedar de al siguiente manera:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1OgAGtKI/AAAAAAAACHM/aae8ktVydi0/s1600-h/image71.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1Pb1FY1I/AAAAAAAACHQ/Dqas6vdsiU4/image_thumb33.png?imgmax=800" width="288" height="441" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En el evento click del botón grabar vamos a colocar toda la lógica de la grabación de los datos, a continuación el código del botón:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;strong&gt;&lt;font size="4"&gt;Adicionar Registro&lt;/font&gt;&lt;/strong&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;&lt;span class="rem"&gt;// Grabar los datos en la tabla &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnGrabar_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;    SqlCeConnection conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection(); &lt;br /&gt;    StringBuilder sbQuery = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder(); &lt;br /&gt;    SqlCeCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeCommand();&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt; &lt;br /&gt;    { &lt;br /&gt;        &lt;span class="rem"&gt;// Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile &lt;/span&gt;&lt;br /&gt;        conn.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;; &lt;br /&gt;        &lt;span class="rem"&gt;// Abro la conexion a la base de datos &lt;/span&gt;&lt;br /&gt;        conn.Open();&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// Creo la sentencia SQL a utilizar &lt;/span&gt;&lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;INSERT INTO Contactos ( &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;     Nombre &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Direccion  &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Telefono &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Celular &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot; ) VALUES ( &amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;  '&amp;quot;&lt;/span&gt; + txtNombre.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;  ,'&amp;quot;&lt;/span&gt; + txtDireccion.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;  ,'&amp;quot;&lt;/span&gt; + txtTelefono.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot;  ,'&amp;quot;&lt;/span&gt; + txtCelular.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;); &lt;br /&gt;        sbQuery.Append(&lt;span class="str"&gt;&amp;quot; )  &amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// Configuro el objeto commando para ejecutar la sentencia SQL &lt;/span&gt;&lt;br /&gt;        cmd.CommandText = sbQuery.ToString(); &lt;br /&gt;        &lt;span class="rem"&gt;// Asigno la conexion al objeto commando &lt;/span&gt;&lt;br /&gt;        cmd.Connection = conn; &lt;br /&gt;        &lt;span class="rem"&gt;// Ejecuto la instruccion &lt;/span&gt;&lt;br /&gt;        cmd.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt;        LimpiarCampos(); &lt;br /&gt;    } &lt;br /&gt;    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException sqlEx) &lt;br /&gt;    { &lt;br /&gt;        MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Ha ocurrido una excepción:\r\n&amp;quot;&lt;/span&gt; + sqlEx.Message, &lt;span class="str"&gt;&amp;quot;Grabando Datos&amp;quot;&lt;/span&gt;); &lt;br /&gt;    } &lt;br /&gt;    &lt;span class="kwrd"&gt;finally&lt;/span&gt; &lt;br /&gt;    { &lt;br /&gt;        conn.Close(); &lt;br /&gt;        conn.Dispose(); &lt;br /&gt;    } &lt;br /&gt;}&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;p&gt;&lt;font style="background-color: #cccccc"&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;hr /&gt;En este código utilizamos los objeto SqlCeConnection para establecer al conexión con la base de datos, SqlCeCommand para ejecutar la instrucción INSERT en la tabla y adicionar los datos del contacto, como siempre todo esto debe estar dentro de un bloque&lt;strong&gt; try… catch&lt;/strong&gt; para capturar las excepciones si llega a ocurrir alguna al momento de ejecutar el comando. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;br /&gt;El método LimpiarCampos() lo que hace es limpiar los controles textbox utilizados.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Editar o Modificar Datos&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para la edición de los datos, vamos a crear un nuevo Panel y dentro colocar los controles necesarios para poder realizar estas modificaciones al registro, además un campo para pedir el ID del registro y traer los datos y editarlos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;La pantalla de edición queda de esta manera:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1P8RsTNI/AAAAAAAACHU/H4OBGH0BpCo/s1600-h/image76.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1QojtRvI/AAAAAAAACHY/UfKuJN924To/image_thumb36.png?imgmax=800" width="302" height="450" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Buscar un Contacto&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El botón buscar ejecuta una sentencia SELECT contra la tabla de Contactos para ubicar el ID digitado, si no lo encuentra muestra un mensaje indicando esta situación, si lo encuentra rellena los controles con los valores obtenidos de la base de datos. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para realizar esta operación, abrimos la conexión ala base de datos a través de SqlCeConnect, y utilizando un SqlCeCommand ejecutamos una sentencia contra la base de datos, como esta sentencia a diferencia de las anteriores si devuelve un resultado, que será el registro que estamos buscando, utilizamos el método ExecuteReader del objeto Comando para esta operación.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En nuestro programa declaramos una variable de tipo IDataReader para que pueda recibir los datos y procesarlos de acuerdo a nuestras necesidades.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Una vez tenemos los datos en el DataReader los leemos y llenamos los controles textbox con sus correspondientes valores.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A continuación el código del botón Buscar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;        &lt;span class="rem"&gt;// Boton Buscar un registro de acuerdo al id&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnBuscar_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            SqlCeConnection conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection();&lt;br /&gt;            StringBuilder sbQuery = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;            SqlCeCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeCommand();&lt;br /&gt;            IDataReader dr;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile&lt;/span&gt;&lt;br /&gt;                conn.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;br /&gt;                &lt;span class="rem"&gt;// Abro la conexion a la base de datos&lt;/span&gt;&lt;br /&gt;                conn.Open();&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Creo la sentencia SQL a utilizar&lt;/span&gt;&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;SELECT Id &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Nombre &amp;quot;&lt;/span&gt; );&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Direccion  &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Telefono &amp;quot;&lt;/span&gt; );&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Celular &amp;quot;&lt;/span&gt; );&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;FROM Contactos  &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot; WHERE ID = &amp;quot;&lt;/span&gt; + txtID.Text);&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Configuro el objeto commando para ejecutar la sentencia SQL&lt;/span&gt;&lt;br /&gt;                cmd.CommandText = sbQuery.ToString();&lt;br /&gt;                &lt;span class="rem"&gt;// Asigno la conexion al objeto commando&lt;/span&gt;&lt;br /&gt;                cmd.Connection = conn;&lt;br /&gt;                &lt;span class="rem"&gt;// Ejecuto la instruccion&lt;/span&gt;&lt;br /&gt;                dr = cmd.ExecuteReader();&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;while&lt;/span&gt; (dr.Read())&lt;br /&gt;                {&lt;br /&gt;                    txtEditNombre.Text = dr[&lt;span class="str"&gt;&amp;quot;Nombre&amp;quot;&lt;/span&gt;].ToString();&lt;br /&gt;                    txtEditDireccion.Text = dr[&lt;span class="str"&gt;&amp;quot;Direccion&amp;quot;&lt;/span&gt;].ToString();&lt;br /&gt;                    txtEditTelefono.Text = dr[&lt;span class="str"&gt;&amp;quot;Telefono&amp;quot;&lt;/span&gt;].ToString();&lt;br /&gt;                    txtEditCelular.Text = dr[&lt;span class="str"&gt;&amp;quot;Celular&amp;quot;&lt;/span&gt;].ToString();&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="rem"&gt;// Cierro el DataReader&lt;/span&gt;&lt;br /&gt;                dr.Close();&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt;(txtEditNombre.Text == String.Empty)&lt;br /&gt;                    MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Registro no Existe, Verifique.&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Editar Contactos&amp;quot;&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException sqlEx)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Ha ocurrido una excepción:\r\n&amp;quot;&lt;/span&gt; + sqlEx.Message, &lt;span class="str"&gt;&amp;quot;Grabando Datos&amp;quot;&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Cierro la conexion&lt;/span&gt;&lt;br /&gt;                conn.Close();&lt;br /&gt;                conn.Dispose();&lt;br /&gt;            }&lt;br /&gt;        }&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;br /&gt;Ahora que ya podemos ubicar o buscar un registro dentro de nuestra tabla de contactos, podemos cambiar los diferentes datos del registro y grabar las modificaciones, para esto vamos a codificar el botón grabar del panel de Edición de los datos.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A continuación el código para grabar los datos modificados:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;        &lt;span class="rem"&gt;// Boton grabar los cambios en el registro&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnEditGrabar_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            SqlCeConnection conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection();&lt;br /&gt;            StringBuilder sbQuery = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;            SqlCeCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeCommand();&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile&lt;/span&gt;&lt;br /&gt;                conn.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;br /&gt;                &lt;span class="rem"&gt;// Abro la conexion a la base de datos&lt;/span&gt;&lt;br /&gt;                conn.Open();&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Creo la sentencia SQL a utilizar&lt;/span&gt;&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;UPDATE Contactos SET &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;     Nombre &amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;=  '&amp;quot;&lt;/span&gt; + txtNombre.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Direccion  &amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;=  '&amp;quot;&lt;/span&gt; + txtDireccion.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Telefono &amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;=  '&amp;quot;&lt;/span&gt; + txtTelefono.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Celular &amp;quot;&lt;/span&gt; + &lt;span class="str"&gt;&amp;quot;=  '&amp;quot;&lt;/span&gt; + txtCelular.Text + &lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot; WHERE ID = &amp;quot;&lt;/span&gt; + txtID.Text);&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Configuro el objeto commando para ejecutar la sentencia SQL&lt;/span&gt;&lt;br /&gt;                cmd.CommandText = sbQuery.ToString();&lt;br /&gt;                &lt;span class="rem"&gt;// Asigno la conexion al objeto commando&lt;/span&gt;&lt;br /&gt;                cmd.Connection = conn;&lt;br /&gt;                &lt;span class="rem"&gt;// Ejecuto la instruccion&lt;/span&gt;&lt;br /&gt;                cmd.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt;                LimpiarCamposEdit();&lt;br /&gt;&lt;br /&gt;                MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Registro Editado de manera Correcta&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Editar Contactos&amp;quot;&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException sqlEx)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Ha ocurrido una excepción:\r\n&amp;quot;&lt;/span&gt; + sqlEx.Message, &lt;span class="str"&gt;&amp;quot;Grabando Datos&amp;quot;&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                conn.Close();&lt;br /&gt;                conn.Dispose();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Como podemos apreciar en el código anterior, armamos un sentencia SQL UPDATE para modificar los datos de nuestra tabla, aquí una de las´partes más importantes es el WHERE, tengan muy presente que si hacemos una sentencia UPDATE sin un WHERE se aplicaran los cambios a todos los registros de la tabla, por esto es muy importante esta sentencia en un UPDATE.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Eliminar Registros de la Tabla&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para eliminar los registros, vamos al menú y creamos una nueva opción de Eliminar, esta opción va a llamar nuevamente al panel de edición, pues todo nos sirve,&amp;#160; el botón de buscar, la rutina que rellena los controles con al información guardada en la base de datos, el botón de cancelar o salir, únicamente vamos a crear un código que si se llama desde al opción Eliminar el texto del botón grabar cambia a “Eliminar” y se realizará la acción de eliminar el registro.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Al eliminar vamos a verificar que el campo de Nombre no este vacío, esto nos garantizará que no ocurra un error al intentar eliminar un registro sin verificarlo. A continuación el código de eliminar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt; &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// VERIFICO QUE HAYA CONSULTADO A ALGUIEN&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (txtEditNombre.Text == String.Empty)&lt;br /&gt;                {&lt;br /&gt;                    MessageBox.Show(&lt;span class="str"&gt;&amp;quot;No ha Seleccionado un Contacto para eliminar&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Eliminando Contactos&amp;quot;&lt;/span&gt;);&lt;br /&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Eliminar el registro de la Tabla de Contactos&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="rem"&gt;// Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile&lt;/span&gt;&lt;br /&gt;                    conn.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;br /&gt;                    &lt;span class="rem"&gt;// Abro la conexion a la base de datos&lt;/span&gt;&lt;br /&gt;                    conn.Open();&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// Creo la sentencia SQL a utilizar&lt;/span&gt;&lt;br /&gt;                    sbQuery.Append(&lt;span class="str"&gt;&amp;quot;DELETE FROM Contactos  &amp;quot;&lt;/span&gt;);&lt;br /&gt;                    sbQuery.Append(&lt;span class="str"&gt;&amp;quot; WHERE ID = &amp;quot;&lt;/span&gt; + txtID.Text);&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// Configuro el objeto commando para ejecutar la sentencia SQL&lt;/span&gt;&lt;br /&gt;                    cmd.CommandText = sbQuery.ToString();&lt;br /&gt;                    &lt;span class="rem"&gt;// Asigno la conexion al objeto commando&lt;/span&gt;&lt;br /&gt;                    cmd.Connection = conn;&lt;br /&gt;                    &lt;span class="rem"&gt;// Ejecuto la instruccion&lt;/span&gt;&lt;br /&gt;                    cmd.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt;                    LimpiarCamposEdit();&lt;br /&gt;&lt;br /&gt;                    MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Registro Eliminado de manera Correcta&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Eliminar Contactos&amp;quot;&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException sqlEx)&lt;br /&gt;                {&lt;br /&gt;                    MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Ha ocurrido una excepción:\r\n&amp;quot;&lt;/span&gt; + sqlEx.Message, &lt;span class="str"&gt;&amp;quot;Eliminando Datos&amp;quot;&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    conn.Close();&lt;br /&gt;                    conn.Dispose();&lt;br /&gt;                }&lt;br /&gt;            }&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Como se puede apreciar es el else del botón de Editar, pues recuerden que estamos utilizando la misma forma que en editar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&amp;#160;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Desplegar Datos en una Grilla&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Por último vamos a crear una nueva opción en el menú que nos permita listar todos los registros de la tabla para colocarlos dentro de un control ListView, que de acuerdo a las pruebas que yo he realizado es mucho mas rápido en Windows Mobile que un control datagrid, aquí nuevamente, les digo si necesita o prefieren utilizar un control datagrid lo pueden utilizar pues este si puede ser enlazado a datos (Bindable), esto queire decir que cuenta con una propiedad DataSource, mientras que el control ListView, no cuenta con esta propiedad.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para esto vamos a agregar un nuevo panel al formulario llamado panDisplay y cuya propiedad Visible la vamos a colocar a false igual que los otros, al cual le vamos a asociar un control ListView.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El control ListView lo vamos a configurar para que muestre una lista pues este control puede comportarse para mostrar los mismos datos de diferentes maneras. Para hacer esto, vamos a cambiar la propiedad View del control al valor Details, al hacer esto, aparece una barra de títulos en el control. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;También vamos a ubicar la propiedad FullRowSelect y la vamos a colocar a True.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El siguiente paso es configurar las diferentes columnas que va a mostrar el control, para esto vamos a ir a la propiedad Columns, como lo muestra la siguiente imagen:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1Q_yZBrI/AAAAAAAACHc/ZL1PSJUuJkc/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ1RWRic0I/AAAAAAAACHg/uYR6uMnrx_o/image_thumb.png?imgmax=800" width="206" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Esto nos muestra una ventana para configurar las diferentes columnas que queremos tenga nuestro control.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1RpFnE-I/AAAAAAAACHk/xTz9sbHmx6w/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1Senw7WI/AAAAAAAACHs/WZRE5Q2GjXc/image_thumb%5B2%5D.png?imgmax=800" width="589" height="433" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Utilizamos el botón Agregar para adicionar las columnas que queremos muestre nuestro control ListView.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1S1hBX3I/AAAAAAAACHw/ykjOHbrGa5Y/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TFQ1ToZq6_I/AAAAAAAACH0/ythOnikOyOE/image_thumb%5B4%5D.png?imgmax=800" width="631" height="464" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Como se puede apreciar en la imagen, por cada columna podemos cambiar las propiedades que aparecen a la derecha, las propiedades más importantes a cambiar son: Text, que indica el texto de esa columna dentro del control, y Width, que indica el ancho que va a tener esa columna para mostrar los datos, también podremos controlar el alineamiento que va a tener esa columna, por defecto será a la izquierda.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Nuestro formulario se verá de al siguiente forma:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/TFQ1UJX5SXI/AAAAAAAACH4/bfVSXrFxcTU/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TFQ1VZYhqWI/AAAAAAAACH8/AxzgdWgppL8/image_thumb%5B6%5D.png?imgmax=800" width="298" height="451" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Agregamos un botón de Cerrar para cerrar esta pantalla y regresar a la pantalla principal.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El código del ítem del menú que llama esta opción es el siguiente:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;        &lt;span class="rem"&gt;// Menu Mostrar la lista de Contactos en Grilla&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; menuItem6_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            panDisplay.Location = &lt;span class="kwrd"&gt;new&lt;/span&gt; Point(3, 3);&lt;br /&gt;            panDisplay.Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;            CargarDatosGrilla();&lt;br /&gt;        }&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El método CargarDatosGrilla, se encarga de llenar el control ListView con los datos que existan en la tabla de contactos.&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;A continuación el código para llenar el ListView con los datos de la tabla&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font style="background-color: #cccccc"&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Metodo que carga los datos de Contactos en al Grilla&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CargarDatosGrilla()&lt;br /&gt;        {&lt;br /&gt;            SqlCeConnection conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeConnection();&lt;br /&gt;            StringBuilder sbQuery = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;            SqlCeCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCeCommand();&lt;br /&gt;            IDataReader dr;&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Indico la cadena de conexion a utilizar para abrir la base de datos SQL Mobile&lt;/span&gt;&lt;br /&gt;                conn.ConnectionString = &lt;span class="str"&gt;&amp;quot;Data Source= &amp;quot;&lt;/span&gt; + ruta + &lt;span class="str"&gt;&amp;quot;DemoBD.sdf;&amp;quot;&lt;/span&gt;;&lt;br /&gt;                &lt;span class="rem"&gt;// Abro la conexion a la base de datos&lt;/span&gt;&lt;br /&gt;                conn.Open();&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Creo la sentencia SQL a utilizar&lt;/span&gt;&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;SELECT Id &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Nombre &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Direccion  &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Telefono &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;    ,Celular &amp;quot;&lt;/span&gt;);&lt;br /&gt;                sbQuery.Append(&lt;span class="str"&gt;&amp;quot;FROM Contactos  &amp;quot;&lt;/span&gt;);&lt;br /&gt;                &lt;span class="rem"&gt;// Configuro el objeto commando para ejecutar la sentencia SQL&lt;/span&gt;&lt;br /&gt;                cmd.CommandText = sbQuery.ToString();&lt;br /&gt;                &lt;span class="rem"&gt;// Asigno la conexion al objeto commando&lt;/span&gt;&lt;br /&gt;                cmd.Connection = conn;&lt;br /&gt;                &lt;span class="rem"&gt;// Ejecuto la instruccion&lt;/span&gt;&lt;br /&gt;                dr = cmd.ExecuteReader();&lt;br /&gt;                &lt;span class="rem"&gt;// Declaro un objeto ListViewItem, para cargar lso registros en el Control ListView&lt;/span&gt;&lt;br /&gt;                ListViewItem lvItem = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListViewItem();&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;// Limpio el control Listview, antes de empezar a llenarlo&lt;/span&gt;&lt;br /&gt;                listView1.Items.Clear();&lt;br /&gt;                &lt;span class="rem"&gt;// recorro el dataReader para leer todos los registros&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;while&lt;/span&gt; (dr.Read())&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="rem"&gt;// Inicializo el Control&lt;/span&gt;&lt;br /&gt;                    lvItem = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListViewItem();&lt;br /&gt;                    &lt;span class="rem"&gt;// Lleno los datos de la fila del control&lt;/span&gt;&lt;br /&gt;                    lvItem.Text = dr[&lt;span class="str"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt;].ToString();&lt;br /&gt;                    lvItem.SubItems.Add( dr[&lt;span class="str"&gt;&amp;quot;Nombre&amp;quot;&lt;/span&gt;].ToString());&lt;br /&gt;                    lvItem.SubItems.Add( dr[&lt;span class="str"&gt;&amp;quot;Direccion&amp;quot;&lt;/span&gt;].ToString());&lt;br /&gt;                    lvItem.SubItems.Add( dr[&lt;span class="str"&gt;&amp;quot;Telefono&amp;quot;&lt;/span&gt;].ToString());&lt;br /&gt;                    lvItem.SubItems.Add( dr[&lt;span class="str"&gt;&amp;quot;Celular&amp;quot;&lt;/span&gt;].ToString());&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;// Agrego la fila al control&lt;/span&gt;&lt;br /&gt;                    listView1.Items.Add(lvItem);&lt;br /&gt;                }&lt;br /&gt;                &lt;span class="rem"&gt;// Cierro el DataReader&lt;/span&gt;&lt;br /&gt;                dr.Close();&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SqlCeException sqlEx)&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(&lt;span class="str"&gt;&amp;quot;Ha ocurrido una excepción:\r\n&amp;quot;&lt;/span&gt; + sqlEx.Message, &lt;span class="str"&gt;&amp;quot;Grabando Datos&amp;quot;&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="rem"&gt;// Cierro la conexion&lt;/span&gt;&lt;br /&gt;                conn.Close();&lt;br /&gt;                conn.Dispose();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;  &lt;hr /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Bueno espero que con este artículo se aclaren muchas dudas al respecto de como hacer o utilizar ADO.NET en Windows Mobile con el Compact Framewok .NET.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En un próximo artículo explicare como utilizar la arquitectura de N-Capas en aplicaciones para Windows Mobile.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos y que lo disfruten!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5247826030129633609?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5247826030129633609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5247826030129633609'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/07/operaciones-crud-con-sql-mobile-y.html' title='Operaciones CRUD con SQL Mobile y ADO.NET en Windows Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_SSzr2Hx_9CQ/TFQ07EUju-I/AAAAAAAACFA/L_5FyiJods0/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2679166959698515863</id><published>2010-06-11T15:18:00.001-05:00</published><updated>2010-06-11T15:18:04.904-05:00</updated><title type='text'>Learning Tour 2010 – SQL Server 2008 R2</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/TBKZ9clNYGI/AAAAAAAAB3M/iqnhJhwmxmU/s1600-h/LEARNING%20TOUR3%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="LEARNING TOUR3" border="0" alt="LEARNING TOUR3" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/TBKZ-zQtKEI/AAAAAAAAB3Q/9FUx3kMJPKg/LEARNING%20TOUR3_thumb%5B2%5D.jpg?imgmax=800" width="567" height="669" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Inscripciones : &lt;a title="http://www.itpros-dc.com/regsummit" href="http://www.itpros-dc.com/regsummit"&gt;http://www.itpros-dc.com/regsummit&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:be3ecef2-4122-45fc-a000-2fb00f964e58" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/SQL+Server+2008+R2" rel="tag"&gt;SQL Server 2008 R2&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LinQ" rel="tag"&gt;LinQ&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Evento+SQL" rel="tag"&gt;Evento SQL&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2679166959698515863?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2679166959698515863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2679166959698515863'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/06/learning-tour-2010-sql-server-2008-r2.html' title='Learning Tour 2010 – SQL Server 2008 R2'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/TBKZ-zQtKEI/AAAAAAAAB3Q/9FUx3kMJPKg/s72-c/LEARNING%20TOUR3_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4319618978965818031</id><published>2010-04-23T08:16:00.001-05:00</published><updated>2010-04-23T08:16:41.781-05:00</updated><title type='text'>[Evento] SIlverLight 4 en acción, lo nuevo!</title><content type='html'>&lt;p&gt;Hola a todos! El próximo lunes 26 de Abril&amp;nbsp; nos acompañara Rodrigo Diaz Concha, MVP en SilverLight de México, para darnos un charla sobre las nuevas características de SilverLight 4 y algunos tips.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/S9GdsRYhNGI/AAAAAAAAB3A/ho9Vhp8irls/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/S9GduH-v9tI/AAAAAAAAB3E/02Bo9jRiTSg/image_thumb%5B1%5D.png?imgmax=800" width="592" height="443"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Registrese aqui: &lt;a title="http://www.bogotadotnet.org/conferencias/registro.aspx" href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;http://www.bogotadotnet.org/conferencias/registro.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Hasta la próxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4319618978965818031?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4319618978965818031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4319618978965818031'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2010/04/evento-silverlight-4-en-accion-lo-nuevo.html' title='[Evento] SIlverLight 4 en acción, lo nuevo!'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/S9GduH-v9tI/AAAAAAAAB3E/02Bo9jRiTSg/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4348498420906873791</id><published>2009-12-29T08:09:00.001-05:00</published><updated>2009-12-29T08:09:01.838-05:00</updated><title type='text'>[Anuncio] Respuesta de Microsoft  a Chrome OS</title><content type='html'>&lt;p&gt;Buenos dias a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;, hoy me encuentro con esta noticia de un nuevo sistema operativo que competirá con Chrome de Google y que estará basado en Windows Embbeded CE. &lt;/p&gt; &lt;p&gt;Aqui esta el link de noticiasdot.com con la noticia:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.noticiasdot.com/wp2/2009/12/28/bingos-la-alternativa-de-microsoft-a-chrome-os-de-google/" href="http://www.noticiasdot.com/wp2/2009/12/28/bingos-la-alternativa-de-microsoft-a-chrome-os-de-google/"&gt;http://www.noticiasdot.com/wp2/2009/12/28/bingos-la-alternativa-de-microsoft-a-chrome-os-de-google/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5b04b9a2-8e52-41c5-831b-4c22a8dc0bbd" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+CE" rel="tag"&gt;Windows CE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Chrome+OS" rel="tag"&gt;Chrome OS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Bing+OS" rel="tag"&gt;Bing OS&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4348498420906873791?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4348498420906873791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4348498420906873791'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/12/anuncio-respuesta-de-microsoft-chrome.html' title='[Anuncio] Respuesta de Microsoft  a Chrome OS'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-7168360624572398624</id><published>2009-11-25T09:38:00.001-05:00</published><updated>2009-11-25T09:38:45.757-05:00</updated><title type='text'>[TIP SQL] ¿Como obtener el último ID de una Tabla en SQL Server?</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hola!!!&lt;/p&gt; &lt;p&gt;Este es un tip que utilizo mucho cuando necesito saber el ultimo ID generado en una tabla con un campo Autonumerico.&lt;/p&gt; &lt;p&gt;Despues del INSERT lanzo la siguiente instruccion :&lt;/p&gt; &lt;p&gt;&lt;strong&gt;"SELECT IDENT_CURRENT('" &amp;amp; TableName &amp;amp; "')"&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;En TableName debe ir el nombre de la tabla de la base de datos encerrado entre comillas sencillas.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d74244fa-a661-443e-8e86-8fa3d2da245e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL" rel="tag"&gt;SQL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IDENTITY" rel="tag"&gt;IDENTITY&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ultimo+ID+Autonumerico" rel="tag"&gt;Ultimo ID Autonumerico&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-7168360624572398624?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7168360624572398624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7168360624572398624'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/11/tip-sql-como-obtener-el-ultimo-id-de.html' title='[TIP SQL] ¿Como obtener el último ID de una Tabla en SQL Server?'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2263285637976659077</id><published>2009-11-10T17:03:00.001-05:00</published><updated>2009-11-10T17:03:26.407-05:00</updated><title type='text'>[Noticia] Mono Tools for Visual Studio</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;Excelentes noticias de parte de Miguel de Icaza y del equipo de MONO!, acaba de sacar Mono Tools for Visual Studio.&lt;/p&gt; &lt;p&gt;Muy interesante las aplicaciones que muestra! hay que probarlas!&lt;/p&gt; &lt;p&gt;Felicitaciones al equipo de MONO!!!&lt;/p&gt; &lt;p&gt;Aqui esta el enlace al blog de Miguel de Icaza:&lt;/p&gt; &lt;p&gt;&lt;a title="http://tirania.org/blog/archive/2009/Nov-10.html" href="http://tirania.org/blog/archive/2009/Nov-10.html"&gt;http://tirania.org/blog/archive/2009/Nov-10.html&lt;/a&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:acc13a75-175d-4ebb-be77-41e51ed068fc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MONO" rel="tag"&gt;MONO&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Miguel+de+Icaza" rel="tag"&gt;Miguel de Icaza&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Desarrollo+.NET+Linux" rel="tag"&gt;Desarrollo .NET Linux&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Linux+.NET" rel="tag"&gt;Linux .NET&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2263285637976659077?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2263285637976659077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2263285637976659077'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/11/noticia-mono-tools-for-visual-studio.html' title='[Noticia] Mono Tools for Visual Studio'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-9188365748650747897</id><published>2009-11-09T14:26:00.001-05:00</published><updated>2009-11-09T14:26:28.714-05:00</updated><title type='text'>[EVENTO]Tu imaginación y tus ideas ponen el mundo digital en movimiento y lo transforman todos los días</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;&lt;/p&gt; &lt;p&gt;En nombre propio y de la comunidad de desarrolladores BogotaDotNET, los invito a este evento de Microsoft a los residentes en Bogotá.&lt;/p&gt; &lt;p&gt;Se llevara acabo el próximo Jueves 12 de Noviembre en el Hotel Cosmos – Calle 100 No. 21A-41 Bogotá, Colombia  &lt;p&gt;Los esperamos!!! &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;img title="image" border="0" alt="image" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/johnbulla/image_5F00_2E0D42AE.png" width="468" height="1450"&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-9188365748650747897?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9188365748650747897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/9188365748650747897'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/11/eventotu-imaginacion-y-tus-ideas-ponen.html' title='[EVENTO]Tu imaginación y tus ideas ponen el mundo digital en movimiento y lo transforman todos los días'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4877893306401090959</id><published>2009-10-09T08:34:00.001-05:00</published><updated>2009-10-09T08:34:59.675-05:00</updated><title type='text'>[Nota] Orgulloso de pertenecer al Equipo de 3Metas</title><content type='html'>&lt;p&gt;Hola a todos los que leen este blog.&lt;/p&gt; &lt;p&gt;En esta oportunidad solo quiero compartirles de una manera muy rápida y sencilla el orgullo de pertenecer a una compañia que a pesar de ser bastante nueva en el mercado ha demostrado y trabajado mucho por hacer un excelente trabajo en todos los proyectos en los cuales estamos involucrados.&lt;/p&gt; &lt;p&gt;Me siento orgulloso de contar y de participar en un equipo de trabajo como el que tenemos, en el cual todos dan el 300% y mucho más de lo esperado. &lt;/p&gt; &lt;p&gt;Todo lo anterior por la nominación de una de nuestras campañas como mejor sitio de internet en el 2009.&lt;/p&gt; &lt;p&gt;Aquí hay mas información al respecto:&lt;/p&gt; &lt;h5&gt;3Metas News: Nominados como mejor sitio de internet en Colombia en 2009 (&lt;a href="http://bit.ly/zMbPB"&gt;http://bit.ly/zMbPB&lt;/a&gt;)&lt;/h5&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Felicitaciones a todo el Equipo de 3Metas!!!!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fd33f402-530b-40c0-b745-c8c79fae7400" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/3Metas" rel="tag"&gt;3Metas&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Estrategia+Digital" rel="tag"&gt;Estrategia Digital&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Desarrollo+a+la+Medida" rel="tag"&gt;Desarrollo a la Medida&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Nuevas+Tecnolog%c3%adas" rel="tag"&gt;Nuevas Tecnolog&amp;#237;as&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4877893306401090959?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4877893306401090959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4877893306401090959'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/10/nota-orgulloso-de-pertenecer-al-equipo.html' title='[Nota] Orgulloso de pertenecer al Equipo de 3Metas'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1003112252956232308</id><published>2009-09-04T09:48:00.001-05:00</published><updated>2009-09-04T09:48:23.983-05:00</updated><title type='text'>[Agradecimiento] SilverLight como Plataforma de Desarrollo</title><content type='html'>&lt;p&gt;En nombre propio y en nombre de todos los que conformamos el Core y los líderes de la comunidad &lt;strong&gt;BogotaDotNET&lt;/strong&gt;, agradecemos a todos los asistentes a esta interesante charla.&lt;/p&gt; &lt;p&gt;Además nuestro mayor agradecimiento a &lt;strong&gt;Rodrigo Díaz Concha&lt;/strong&gt; por su amable colaboración para esta conferencia y en compartir con todos nosotros sus conocimientos sobre el tema.&lt;/p&gt; &lt;p&gt;Algunas fotos del Evento:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SqEohL6oXtI/AAAAAAAABbU/RidZw5eUkQc/s1600-h/DSC01347%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01347" border="0" alt="DSC01347" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEojXOMjYI/AAAAAAAABbY/2QDUksfMaBU/DSC01347_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SqEokCLEOZI/AAAAAAAABbc/YyPu96RpMIQ/s1600-h/DSC01351%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01351" border="0" alt="DSC01351" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SqEokVePcjI/AAAAAAAABbg/dEuIzA5tt0k/DSC01351_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SqEok9SkBTI/AAAAAAAABbk/XK3tVgk_p-k/s1600-h/DSC01362%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01362" border="0" alt="DSC01362" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEomWUQwYI/AAAAAAAABbo/4snsYRCF4hU/DSC01362_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SqEom5Lk_HI/AAAAAAAABbs/XOn_lfpxwC0/s1600-h/DSC01358%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01358" border="0" alt="DSC01358" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SqEonMyUIuI/AAAAAAAABbw/3mPAHRgMOYc/DSC01358_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SqEonvGBtYI/AAAAAAAABb0/Cx1Xob3S2Nc/s1600-h/DSC01357%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01357" border="0" alt="DSC01357" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEooIpFwYI/AAAAAAAABb4/i_j-8dYLF3Q/DSC01357_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SqEoohEO6jI/AAAAAAAABb8/JIeqirNstlA/s1600-h/DSC01376%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01376" border="0" alt="DSC01376" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEoo-2ekDI/AAAAAAAABcA/XYp_4k6Wjes/DSC01376_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;El equipo de dirección de la comunidad junto con Rodrigo:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SqEopTuxFpI/AAAAAAAABcE/zGA80jst-Ug/s1600-h/DSC01377%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01377" border="0" alt="DSC01377" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SqEoqgJdAYI/AAAAAAAABcI/U33yLP3pPzw/DSC01377_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SqEorCq7sJI/AAAAAAAABcM/1LzEsSFNK4A/s1600-h/DSC01378%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC01378" border="0" alt="DSC01378" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEorhpL-OI/AAAAAAAABcQ/A5EeyU6VuL8/DSC01378_thumb.jpg?imgmax=800" width="244" height="184"&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/11471302-1003112252956232308?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1003112252956232308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1003112252956232308'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/09/agradecimiento-silverlight-como.html' title='[Agradecimiento] SilverLight como Plataforma de Desarrollo'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/SqEojXOMjYI/AAAAAAAABbY/2QDUksfMaBU/s72-c/DSC01347_thumb.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8678449137383870052</id><published>2009-09-02T06:12:00.001-05:00</published><updated>2009-09-02T06:12:48.811-05:00</updated><title type='text'>Instalación de Servicios WCF en Servidor IIS 7</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hola a todos!!&lt;/p&gt; &lt;p&gt;En estos días he estado trabajando con servicios WCF, en mi caso los servicios están hospedados (Hosted) en IIS / en una aplicación ASP.NET, para lograr esto existe en ASP:NET un control o servicio WCF cuya extensión es .svc.&lt;/p&gt; &lt;p&gt;Al crear estos archivos y publicar el sitio ASP.NET para tener la disponibilidad de los servicios a través de IIS 7 me encontré con algunos inconvenientes los cuales los resolví aplicando los siguientes pasos.&lt;/p&gt; &lt;p&gt;1. Se crea un sitio web en IIS, se le asigna un puerto específico, en el caso de&amp;nbsp; este ejemplo es el puerto 81 el que utilizan los servicios WCF. Sin embargo podemos escoger cualquier puerto y verificar que este puerto este abierto en el firewall si los servicios van a estar expuestos a internet. &lt;p&gt;2. Se copian los archivos publicados de la solución de los servicios en una carpeta específica, que es la misma que se ha definido al momento de crear el sitio web en el IIS. &lt;p&gt;&lt;em&gt;3. &lt;/em&gt;Nos aseguramos que el namespace ServiceModel este activo y registrado en nuestro servidor IIS, para ello abrimos la consola de comandos en modo administrador y ejecutamos el siguiente comando: &lt;em&gt;&lt;b&gt;"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r –y&lt;/b&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt; &lt;p&gt;4. La &lt;i&gt;ejecución de este comando nos muestra unos resultados como aparece en la siguiente figura:&lt;/i&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sp5TEjzuTAI/AAAAAAAABac/IhCFaAnY3m4/s1600-h/clip_image002%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sp5TFMuPJkI/AAAAAAAABag/CwPmzOREMNI/clip_image002_thumb.jpg?imgmax=800" width="244" height="203"&gt;&lt;/a&gt; &lt;p&gt;5. Abrimos IIS 7 y seleccionamos el sitio correcto. Se revisan los Handler Mappings como se ve en la figura: &lt;p&gt;6. &lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sp5TFk9mwaI/AAAAAAAABak/EfbtLKMKITQ/s1600-h/clip_image004%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sp5TGDTirtI/AAAAAAAABao/kkgolDjayr8/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="466" height="281"&gt;&lt;/a&gt; &lt;p&gt;7. Doble clic sobre Handler Mapping, aparece la siguiente pantalla: &lt;p&gt;8. &lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sp5TG04xhfI/AAAAAAAABas/-ScSFDBVJk4/s1600-h/clip_image006%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sp5THVwRfPI/AAAAAAAABaw/0PdJphciffU/clip_image006_thumb%5B1%5D.jpg?imgmax=800" width="473" height="285"&gt;&lt;/a&gt; &lt;p&gt;9. En esta pantalla revisar si existen las entradas para la definición de los *.svc, ya que en nuestro caso los Hosting de los servicios WCF son en IIS con ASP.NET. &lt;p&gt;10. Para crear estos handlers hacemos clic derecho sobre la lista, nos muestra el siguiente menú: &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sp5THzlHQ1I/AAAAAAAABa0/M-jl4c4z-0Y/s1600-h/clip_image008%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sp5TIKKmQdI/AAAAAAAABa4/A2i40yul3DA/clip_image008_thumb.jpg?imgmax=800" width="195" height="244"&gt;&lt;/a&gt; &lt;p&gt;11. Seleccionamos la primera opción Add Managed Handler…, nos muestra la pantalla en la cual colocamos los datos a ingresar: &lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sp5TIuQxt9I/AAAAAAAABa8/4OwFYjIJ0co/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Sp5TJBdtSII/AAAAAAAABbA/CUGJOgEJRwo/clip_image010_thumb.jpg?imgmax=800" width="244" height="203"&gt;&lt;/a&gt; &lt;p&gt;12. Los valores a colocar para Request path: &lt;i&gt;&lt;u&gt;*.svc&lt;/u&gt;&lt;/i&gt;, Type: &lt;i&gt;&lt;u&gt;System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&lt;/u&gt;&lt;/i&gt;, Name: &lt;i&gt;&lt;u&gt;svc-Integrated&lt;/u&gt;&lt;/i&gt;. Las restricciones las dejamos por default. Este es el primer registro. Debemos colocar otros 2 registros. &lt;p&gt;13. Los valores a colocar para Request path: &lt;i&gt;&lt;u&gt;*.svc&lt;/u&gt;&lt;/i&gt;, Type: &lt;i&gt;&lt;u&gt;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll&lt;/u&gt;&lt;/i&gt;, Name: &lt;i&gt;&lt;u&gt;svc-ISAPI-2.0&lt;/u&gt;&lt;/i&gt;. Las restricciones las dejamos por default. Este es el segundo registro. &lt;p&gt;14. Los valores a colocar para Request path: &lt;i&gt;&lt;u&gt;*.svc&lt;/u&gt;&lt;/i&gt;, Type: &lt;i&gt;&lt;u&gt;%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll&lt;/u&gt;&lt;/i&gt;, Name: &lt;i&gt;&lt;u&gt;svc-ISAPI-2.0-64&lt;/u&gt;&lt;/i&gt;. Las restricciones las dejamos por default. Este es el tercer registro si es para un servidor de 64 bits en donde ejecutamos nuestro IIS. &lt;p&gt;15. Luego verificamos si nuestros servicios quedaron funcionando de manera correcta, en la pantalla siguiente: &lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sp5TJhTuNNI/AAAAAAAABbE/V40hWBYMLWA/s1600-h/clip_image012%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sp5TKO0rzMI/AAAAAAAABbI/HTsQq_8ccpE/clip_image012_thumb%5B2%5D.jpg?imgmax=800" width="513" height="309"&gt;&lt;/a&gt; &lt;p&gt;16. Seleccionamos un servicio, como el que se muestra en la figura, clic derecho y en el menú que aparece le damos Browse, lo cual nos abre una ventana del explorador de internet para verificar si nuestro servicio está funcionando de manera correcta. &lt;p&gt;17. El explorador de internet nos debe mostrar una pantalla como la siguiente: indicando que el servicio está funcionando correctamente.&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Sp5TK2uWggI/AAAAAAAABbM/1AK8qo-18ps/s1600-h/clip_image014%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Sp5TL7_S75I/AAAAAAAABbQ/1U3Iltro_z8/clip_image014_thumb%5B1%5D.jpg?imgmax=800" width="389" height="235"&gt;&lt;/a&gt; &lt;p&gt;18. El siguiente paso es corregir en el &lt;strong&gt;web.config&lt;/strong&gt; del sitio ASP.NET que hospeda los servicios WCF, las cadenas de conexión a las bases de datos que utilizamos para que nuestros servicios puedan funcionar de manera correcta. &lt;p&gt;En nuestro caso verificamos la sección ConnectionStrings del web.config y colocamos los valores correctos: &amp;lt;connectionStrings&amp;gt; &lt;p&gt;&amp;lt;add name="ConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=MibaseI;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" /&amp;gt; &lt;p&gt;&amp;lt;add name="ConnectNETDBII" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" /&amp;gt; &lt;p&gt;&amp;lt;add name="FaseIIConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" /&amp;gt; &lt;p&gt;&amp;lt;/connectionStrings&amp;gt; &lt;p&gt;19. El siguiente paso es ir a la solución que consume los servicios que estamos exponiendo en el IIS en nuestra solución ASP.NET a través de los archivos *.svc y colocar la dirección correcta de cada uno de los servicios en el app.config si es una aplicación Windows, o en el web.config si es una aplicación web. &lt;p&gt;Verificamos y cambiamos el endpoint de los Servicios WCF que estemos exponiendo en nuestra aplicación : &amp;lt;endpoint address="http://ralvarado:81/ServicioDemo1.svc" &lt;p&gt;binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServicioDemo1" &lt;p&gt;contract="ServicioDemo1Client.IServicioDemo1" &lt;p&gt;name="WSHttpBinding_IServicioDemo1"&amp;gt; &lt;p&gt;&amp;lt;identity&amp;gt; &lt;p&gt;&amp;lt;dns value="localhost" /&amp;gt; &lt;p&gt;&amp;lt;/identity&amp;gt; &lt;p&gt;&amp;lt;/endpoint&amp;gt; &lt;p&gt;20. Como podemos observar en el tag address=&lt;a href="http://ralvarado:81/ServicioDemo1.svc"&gt;http://ralvarado:81/ServicioDemo1.svc&lt;/a&gt;, hemos cambiado a ralvarado:81 que es el nombre del servidor y el puerto por donde definimos en el sitio que se va a exponer los servicios WCF. &lt;p&gt;21. Probar nuestra aplicación que consume los servicios para comprobar que todo esté funcionando como debe ser. &lt;p&gt;22. En nuestra aplicación que consume los servicios debemos también modificar el web.config para colocar la dirección correcta de los servicios publicados.. &lt;p&gt;&amp;nbsp; &lt;p&gt;Bueno espero que esto los ayude al momento de publicar los servicios WCF, que como dice un gran amigo “Servicios WCF 1 Hora de desarrollo 3 Horas Configurando”. &lt;p&gt;Hasta la próxima!!!  &lt;p&gt;Un Abrazo!&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:aee89afb-96e7-4abc-9456-b5e607bf64b6" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Servios+WCF" rel="tag"&gt;Servios WCF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Instalar+WCF+en+IIS" rel="tag"&gt;Instalar WCF en IIS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Publicar+Servicios+WCF+en+IIS+7" rel="tag"&gt;Publicar Servicios WCF en IIS 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS+7" rel="tag"&gt;IIS 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WCF" rel="tag"&gt;WCF&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8678449137383870052?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8678449137383870052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8678449137383870052'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/09/instalacion-de-servicios-wcf-en.html' title='Instalación de Servicios WCF en Servidor IIS 7'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sp5TFMuPJkI/AAAAAAAABag/CwPmzOREMNI/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1588966188308380232</id><published>2009-09-01T17:47:00.001-05:00</published><updated>2009-09-01T17:47:05.028-05:00</updated><title type='text'>[Curso]PROGRAMANDO A FONDO CON C#</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Una de las personas que sabe mucho sobre el tema, es MVP de Microsoft y con auspicio de la comunidad BogotaDotNET esta preparando este curso.&lt;/p&gt; &lt;p&gt;&lt;img alt="" src="http://www.bogotadotnet.org/getfile/ee5ab4b5-516b-4e31-be8b-dc7c3544e7db/MVP---C--670.aspx" width="670" height="503"&gt; &lt;p&gt;Para mas información &lt;a title="http://www.bogotadotnet.org/Cursos/Programando-a-fondo-con-C-.aspx" href="http://www.bogotadotnet.org/Cursos/Programando-a-fondo-con-C-.aspx"&gt;http://www.bogotadotnet.org/Cursos/Programando-a-fondo-con-C-.aspx&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/11471302-1588966188308380232?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1588966188308380232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1588966188308380232'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/09/cursoprogramando-fondo-con-c.html' title='[Curso]PROGRAMANDO A FONDO CON C#'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-3710917719638989830</id><published>2009-08-31T10:05:00.001-05:00</published><updated>2009-08-31T10:05:56.908-05:00</updated><title type='text'>[Evento]Silverlight como plataforma de Desarrollo</title><content type='html'>&lt;p&gt;&lt;b&gt;¡¡¡..ENTRADA GRATUITA...!!!&lt;/b&gt; &lt;h3&gt;&lt;a href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Spvmx-KUP6I/AAAAAAAABaM/ux_jKXwVypA/clip_image002%5B4%5D.jpg?imgmax=800" width="124" height="69"&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;En esta ocasión les tenemos una conferencia dictada por un &lt;b&gt;Microsoft MVP de ASP.Net&lt;/b&gt; el Señor. Rodrigo Díaz Concha quien es experto en desarrollo con Silverlight. &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SpvmyWNJ55I/AAAAAAAABaQ/vE7PodO0vKk/s1600-h/clip_image004%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Spvm0vTq6tI/AAAAAAAABaU/s69hVR7_rIQ/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="497" height="374"&gt;&lt;/a&gt; &lt;p&gt;Silverlight es una tecnología relativamente nueva en el mundo de las Aplicaciones Enriquecidas para Internet, la cual nos permite extender la funcionalidad de nuestras aplicaciones Web a través de un componente ligero, multi-plataforma y multi-navegador.  &lt;p&gt;En esta sesión podrás conocer cuáles son las características de la última versión de Silverlight que la hacen una excelente opción para construir este tipo de aplicaciones. Ven y conoce qué es Silverlight y cómo lo puedes utilizar como plataforma de desarrollo para aplicativos Web modernos. &lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;p&gt;&lt;b&gt;Fecha:&lt;/b&gt; Miércoles 2 de septiembre a las 18:30 (-5 GMT) &lt;p&gt;&lt;b&gt;Lugar: &lt;/b&gt;Auditorio Fundación Universitaria CAFAM &lt;p&gt;AK 68 N° 90-88 CAFAM Floresta, Bogotá - Colombia &lt;p&gt;&lt;b&gt;¡¡¡..ENTRADA GRATUITA...!!!&lt;/b&gt; &lt;p&gt;&lt;a href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;&lt;b&gt;&lt;a href="http://www.bogotadotnet.org/conferencias/registro.aspx"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Spvm1OE2bqI/AAAAAAAABaY/Wq53FHyLOiE/clip_image005%5B4%5D.jpg?imgmax=800" width="124" height="69"&gt;&lt;/a&gt;&lt;/b&gt;&lt;/a&gt; &lt;p&gt;Los Espero !!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-3710917719638989830?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3710917719638989830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/3710917719638989830'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/08/eventosilverlight-como-plataforma-de.html' title='[Evento]Silverlight como plataforma de Desarrollo'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/Spvmx-KUP6I/AAAAAAAABaM/ux_jKXwVypA/s72-c/clip_image002%5B4%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-1067350204751960257</id><published>2009-06-22T13:24:00.001-05:00</published><updated>2009-06-22T13:24:56.442-05:00</updated><title type='text'>Cómo conectarse a un Servidor SQL desde el Emulador de Windows Mobile</title><content type='html'>&lt;p&gt;Hola, nuevamente escribiendo … hoy haciendo referencia a un problema muy común entre los desarrolladores de Windows Mobile / Windows CE.&lt;/p&gt; &lt;p&gt;Al momento del desarrollo de una aplicación Windows Mobile que se comunique directamente a una base de datos de SQL Server. &lt;/p&gt; &lt;p&gt;Esto es básicamente configuración, luego ya vendría el tema de analizar y corregir la cadena de conexión utilizada a la base de datos.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bueno empecemos….&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Tenemos una aplicación Windows Mobile que se conecta de manera directa a un Servidor de bases de datos SQL Server, estamos probando desde el emulador pues no tenemos físicamente la PDA para realizar pruebas a través&amp;nbsp; de la red inalámbrica.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Aclaración&lt;/strong&gt;: Estos pasos funcionan tanto en VS2005 como en VS2008.&lt;/p&gt; &lt;p&gt;Lo primero que debemos hacer es activar una herramienta que se llama “&lt;strong&gt;Device Emulator Manager&lt;/strong&gt;”, esta herramienta nos permite administrar las diferentes conexiones tanto físicas como emuladores que dispongamos en nuestro entorno de desarrollo.&lt;/p&gt; &lt;p&gt;Esta herramienta la encontramos en el menú Tools de nuestro ambiente de desarrollo.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Sj_MH5kx2hI/AAAAAAAAA7I/j8S8l0BsYyU/s1600-h/image4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MJJLBcwI/AAAAAAAAA7M/kSGBi5RFZ6Y/image_thumb2.png?imgmax=800" width="539" height="445"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;En la imagen se puede apreciar que tengo abierto un proyecto y que voy al menú Tools, y aquí selecciono el ítem &lt;strong&gt;Device Emulator Manager.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Aparece una ventana con la lista de los diferentes emuladores y /o dispositivos que tenga instalados en mi ambiente de desarrollo:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MKXmQzwI/AAAAAAAAA7Q/pf9gbkK04vY/s1600-h/image9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_ML6t2J9I/AAAAAAAAA7U/UmpBboH01YI/image_thumb5.png?imgmax=800" width="546" height="467"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Seleccionamos el emulador a utilizar para nuestra aplicación, en este caso yo utilizo el emulador ”&lt;strong&gt;Windows Mobile 6 Professional Emulator&lt;/strong&gt;”. &lt;/p&gt; &lt;p&gt;Selecciono el menú &lt;strong&gt;Actions&lt;/strong&gt; , y aparece el siguiente menú:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MNG8falI/AAAAAAAAA7Y/OP-ACRPLPLk/s1600-h/image14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MObagfbI/AAAAAAAAA7c/5-zxGnUQhyU/image_thumb8.png?imgmax=800" width="549" height="469"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;De este menú selecciono la opción &lt;strong&gt;Connect&lt;/strong&gt; la cual si no esta abierto el emulador lo abre para establecer la conexión con el.&lt;/p&gt; &lt;p&gt;Al abrir y conectarse al emulador esta ventana cambia y nuestro emulador aparecerá con un icono en la parte izquierda como aparece en la siguiente imagen:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_MPmD8vaI/AAAAAAAAA7g/x3ckPjQdwk4/s1600-h/image28.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/Sj_MQ7G5sJI/AAAAAAAAA7k/4bCTz29q0LU/image_thumb14.png?imgmax=800" width="448" height="383"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Se preguntaran lo siguiente: ¿Si ya he abierto mi emulador ?, entonces simplemente al iniciar el Device Emulator Manager se actualizara la conexión.&lt;/p&gt; &lt;p&gt;En nuestra barra de tareas de Windows, podemos apreciar que el “Device Emulator Manager” se encuentra en ejecución, pues nos muestra el siguiente icono en la barra de tareas:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MRchorrI/AAAAAAAAA7o/77vX-DK7pGM/s1600-h/image32.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MRyT8AQI/AAAAAAAAA7s/q4fyuN14s6E/image_thumb16.png?imgmax=800" width="345" height="109"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Bueno una vez que ya nuestro emulador se encuentre conectado, nos falta 1 solo paso para poder conectarlo a la red y poder tener acceso a nuestro servidor de base de datos que se encuentra ubicado en nuestro PC de desarrollo o en algún otro PC de la red en la cual nos encontramos.&lt;/p&gt; &lt;p&gt;Para lograr esto, hacemos clic derecho sobre el nombre del emulador conectado, esta acción nos muestra un menú contextual como el siguiente:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_MTJXa0yI/AAAAAAAAA7w/uxW2F-3tCNU/s1600-h/image37.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MUXFeg3I/AAAAAAAAA70/XoKHyfUcv_8/image_thumb19.png?imgmax=800" width="532" height="455"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Lo que debemos hacer aquí es seleccionar la opción “&lt;strong&gt;Cradle&lt;/strong&gt;” con lo cual incluimos el emulador dentro de la red y ya podremos establecer la conexión con el servidor de SQL que necesitamos.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MV0V6yQI/AAAAAAAAA74/JMfSIVR5fTs/s1600-h/image49.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MXkc9N1I/AAAAAAAAA78/fzjMrEah3Sg/image_thumb25.png?imgmax=800" width="517" height="442"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al hacer clic en “&lt;strong&gt;Cradle&lt;/strong&gt;” , la imagen del emulador conectado cambia y lanza en mi caso &lt;strong&gt;Windows Mobile Device Center&lt;/strong&gt;, pues mi ambiente es Windows Vista, si estuvieran trabajando sobre Windows XP, se lanzaría el programa &lt;strong&gt;ActiveSync&lt;/strong&gt;. Esto lo apreciamos en la imagen anterior.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;En mi caso la pantalla de Windows Moble Device Center aparece como cuando tengo conectado un dispositivo físico en el PC:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_MZ9zbGyI/AAAAAAAAA8A/T0oucwCgDNg/s1600-h/image53.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MbTaqIkI/AAAAAAAAA8I/DK1I9rMRH1o/image_thumb27.png?imgmax=800" width="517" height="389"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Esto es lo que nos permite tener acceso al servidor de base de datos desde el emulador.&lt;/p&gt; &lt;p&gt;En este ejemplo tengo una base de datos SQL 2008 en mi servidor que es mi portátil, y estoy llamando a una aplicación que es la que observan en la imagen siguiente mostrando los datos de la tabla de contactos.&lt;/p&gt; &lt;p&gt;A continuación la pantalla de SQL Management Studio con la información de la tabla y sus registros&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_Mce4RNJI/AAAAAAAAA8M/9ErXAlGMJyE/s1600-h/image63.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sj_MdGRvEzI/AAAAAAAAA8Q/tIhA5MIkYbs/image_thumb33.png?imgmax=800" width="645" height="301"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;La imagen de la aplicacion que se ejecuta en el emulador en donde carga los datos de la tabla de contactos desde el servidor SQL Server 2008 de mi portátil:&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_MdbFJ-DI/AAAAAAAAA8U/CRO97KWTDq0/s1600-h/image57.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/Sj_Md21XRkI/AAAAAAAAA8Y/7NP1T2IUg7E/image_thumb29.png?imgmax=800" width="243" height="323"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Esta misma técnica funciona para probar los &lt;strong&gt;web services&lt;/strong&gt; que vamos a consumir desde una aplicación Windows Mobile.  &lt;p&gt;Espero que con esto se aclaren la manera de poder probar desde el emulador estas dos cosas que antes era muy complicado de hacerlo si no teníamos a la mano un dispositivo físico.&lt;/p&gt; &lt;p&gt;Hasta la próxima!!!&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bdd7f4a5-16d2-432c-b0d4-449bdd093d02" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Conectar+SQL+Server+con+Emulador" rel="tag"&gt;Conectar SQL Server con Emulador&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Emulador" rel="tag"&gt;Emulador&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Device+Emulator+Manager" rel="tag"&gt;Device Emulator Manager&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-1067350204751960257?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1067350204751960257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/1067350204751960257'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/06/como-conectarse-un-servidor-sql-desde.html' title='Cómo conectarse a un Servidor SQL desde el Emulador de Windows Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sj_MJJLBcwI/AAAAAAAAA7M/kSGBi5RFZ6Y/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2140810732369330177</id><published>2009-06-06T05:56:00.001-05:00</published><updated>2009-06-06T05:56:00.899-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>[Anuncio:] Windows Mobile 6.5 Developer Toolkit (DTK) disponible para descargar.</title><content type='html'>&lt;p&gt;Hola !&lt;/p&gt; &lt;p&gt;Este nuevo set de herramientas para desarrollo no es un SDK, trae un nuevo set en la API que permite a los desarrolladores tomar ventajas del nuevo framework&amp;nbsp; para gestión de “touch” de la pantalla.&lt;/p&gt; &lt;p&gt;&lt;br&gt;Debe ser utilizado en conjunto con Visual Studio 2008 y el Windows Mobile 6 SDK.&lt;/p&gt; &lt;p&gt;En cuanto a los emuladores les puedo adelantar que la versión &lt;strong&gt;Standard&lt;/strong&gt; de Windows Mobile 6.5 Developer Toolkit soporta pantallas QVGA, mientras que la versión &lt;strong&gt;Professional&lt;/strong&gt; soporta resoluciones para: QVGA, WQVGA, VGA y WVGA.&lt;/p&gt; &lt;p&gt;Para bajar el instalador de este SDK, pueden hacerlo desde la pagina de descarga de Microsoft: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e"&gt;Sitio oficial de Microsoft&lt;/a&gt; se puede descargar en los siguientes idiomas: Español, Ingles, Alemán, Italiano, Francés.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7ab96b61-7153-4052-84e1-749dfeca402e" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Windows+Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WM+SDK+6.5" rel="tag"&gt;WM SDK 6.5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+CE" rel="tag"&gt;Windows CE&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2140810732369330177?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/2140810732369330177/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=2140810732369330177' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2140810732369330177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2140810732369330177'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/06/anuncio-windows-mobile-65-developer.html' title='[Anuncio:] Windows Mobile 6.5 Developer Toolkit (DTK) disponible para descargar.'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2992724744456312112</id><published>2009-05-21T06:58:00.001-05:00</published><updated>2009-05-21T06:58:39.764-05:00</updated><title type='text'>[Evento]: Manejo de Datos para Windows Mobile</title><content type='html'>&lt;p&gt;Hola les comparto algunas fotos del evento del 20 de mayo 2009:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/ShVB1akDLII/AAAAAAAAA54/PVBrCeeTB70/s1600-h/DSC00962%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC00962" border="0" alt="DSC00962" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/ShVB2NYo6RI/AAAAAAAAA58/zx82JluW9U8/DSC00962_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/ShVB3JGx8-I/AAAAAAAAA6A/RYpWdAZ0hzM/s1600-h/DSC00958%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC00958" border="0" alt="DSC00958" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/ShVB30D-ilI/AAAAAAAAA6E/Eo3D73qrysw/DSC00958_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/ShVB5PoSaII/AAAAAAAAA6I/iq14FneBObM/s1600-h/DSC00967%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC00967" border="0" alt="DSC00967" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/ShVB5_FuG3I/AAAAAAAAA6M/22POgAyy46c/DSC00967_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/ShVB6zQNH4I/AAAAAAAAA6Q/Gf5ou-AM-aU/s1600-h/DSC00979%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="DSC00979" border="0" alt="DSC00979" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/ShVB7oEzClI/AAAAAAAAA6U/W4wai6EEKqk/DSC00979_thumb.jpg?imgmax=800" width="244" height="184"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;A los que asistieron presencialmente muchas gracias, a los que me acompañaron por live meeting tambien muchisimas gracias!&lt;/p&gt; &lt;p&gt;Espero que haya sido de provecho lo que les comparti en esta charla.&lt;/p&gt; &lt;p&gt;Hasta la proxima!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2992724744456312112?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/2992724744456312112/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=2992724744456312112' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2992724744456312112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2992724744456312112'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/05/evento-manejo-de-datos-para-windows.html' title='[Evento]: Manejo de Datos para Windows Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/ShVB2NYo6RI/AAAAAAAAA58/zx82JluW9U8/s72-c/DSC00962_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2843702863424510423</id><published>2009-05-14T13:28:00.001-05:00</published><updated>2009-05-14T13:28:36.937-05:00</updated><title type='text'>Conferencia: Manejo de Datos para Windows Mobile</title><content type='html'>&lt;p&gt;Hola, los invito el próximo miércoles 20 de mayo en la ciudad de Bogotá a la charla que voy a dar sobre los diferentes modos de manejar datos en dispositivos móviles con Windows Mobile y Compact Framework 3.5.&lt;/p&gt; &lt;p&gt;Esto como charla de la comunidad BogotaDotNET, visiten la pagina de la comunidad : &lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e6c96b04-4750-467b-b3c2-bd6e31ec5ea9" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/CF" rel="tag"&gt;CF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sql+Mobile" rel="tag"&gt;Sql Mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Compact+Framework" rel="tag"&gt;Compact Framework&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://www.bogotadotnet.org/"&gt;http://www.bogotadotnet.org/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/Sgxi0lUiImI/AAAAAAAAA5w/pTupuCG5QRk/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sgxi1PYW-fI/AAAAAAAAA50/yB88DdrcRvI/image_thumb%5B6%5D.png?imgmax=800" width="644" height="404"&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/11471302-2843702863424510423?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/2843702863424510423/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=2843702863424510423' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2843702863424510423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2843702863424510423'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/05/conferencia-manejo-de-datos-para.html' title='Conferencia: Manejo de Datos para Windows Mobile'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/Sgxi1PYW-fI/AAAAAAAAA50/yB88DdrcRvI/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-7989287452261675337</id><published>2009-04-29T13:43:00.001-05:00</published><updated>2009-04-29T13:43:59.080-05:00</updated><title type='text'>Tercera Sesión de Cursos BogotaDotNET</title><content type='html'>&lt;p&gt;Hola a todos!&lt;/p&gt; &lt;p&gt;En esta ocasión les informo que la tercera sesión de los cursos que esta dictando la comunidad BogotaDotNET, será el próximo viernes 1 de mayo a las 10 AM.&lt;/p&gt; &lt;p&gt;Yo soy quien dicta el curso &lt;strong&gt;Introducción a WCF&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Los Espero!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-7989287452261675337?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/7989287452261675337/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=7989287452261675337' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7989287452261675337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7989287452261675337'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/04/tercera-sesion-de-cursos-bogotadotnet.html' title='Tercera Sesión de Cursos BogotaDotNET'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2271008808746281589</id><published>2009-04-24T22:05:00.001-05:00</published><updated>2009-04-24T22:05:30.208-05:00</updated><title type='text'>Invitación Evento AZURE, Servicios en el Nube de Microsoft</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Un gran profesional y amigo: &lt;strong&gt;Juan Carlos Pelaéz&lt;/strong&gt; compartirá con nosotros sus conocimientos sobre Azure, la nueva plataforma de servicios en la nube de Microsoft. Aquí esta la invitación tanto para el webcast simultaneo como para la asistencia presencial (Bogotá-Colombia) de la charla.&lt;/p&gt; &lt;p&gt;Te invitamos a participar de nuestro &lt;b&gt;Workshop de Azure&lt;/b&gt; donde veremos qué es la plataforma de servicios Windows Azure (la propuesta de Microsoft para la computación en la Nube), explicaremos en detalle las razones de su construcción y el proceso evolutivo que llevó a MS a su construcción, también explicaremos por qué se le considera un sistema operativo (de red)&amp;nbsp; y cómo podemos hacer uso de sus componentes estructurales para la construcción de aplicaciones y servicios. &lt;p&gt;&lt;b&gt;MARTES 28 DE ABRIL, 6:30PM&lt;/b&gt; &lt;p&gt;&lt;b&gt;¡Regístrate Ya!&lt;/b&gt; &lt;p&gt;Entra en &lt;b&gt;&lt;a href="http://www.microsoftactiva.com/"&gt;www.microsoftactiva.com&lt;/a&gt;&lt;/b&gt;, ahí encontrarás todos los beneficios para desarrolladores &lt;p&gt;&amp;nbsp; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fd9e66b4-d548-481e-a038-0c8d44f60a77" class="wlWriterEditableSmartContent"&gt;Etiquetas de Technorati: &lt;a href="http://technorati.com/tags/Azure" rel="tag"&gt;Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Servicios+en+la+Nube" rel="tag"&gt;Servicios en la Nube&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel="tag"&gt;Cloud Computing&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-2271008808746281589?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/2271008808746281589/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=2271008808746281589' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2271008808746281589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2271008808746281589'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/04/invitacion-evento-azure-servicios-en-el.html' title='Invitación Evento AZURE, Servicios en el Nube de Microsoft'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5523880573428105494</id><published>2009-03-31T10:46:00.001-05:00</published><updated>2009-03-31T10:46:33.219-05:00</updated><title type='text'>Cursos BogotaDotNET 2009</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SdI60yYKAgI/AAAAAAAAA2A/wZ62vEHNFYY/s1600-h/Cursos2009%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Cursos2009" border="0" alt="Cursos2009" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SdI62FOLibI/AAAAAAAAA2E/t67rNE22pa8/Cursos2009_thumb%5B2%5D.jpg?imgmax=800" width="379" height="567"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.bogotadotnet.org/page/cursos2009.aspx"&gt;Registrarte en los Cursos&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/11471302-5523880573428105494?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/5523880573428105494/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=5523880573428105494' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5523880573428105494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5523880573428105494'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/03/cursos-bogotadotnet-2009.html' title='Cursos BogotaDotNET 2009'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/SdI62FOLibI/AAAAAAAAA2E/t67rNE22pa8/s72-c/Cursos2009_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5314829983832915354</id><published>2009-02-16T07:49:00.001-05:00</published><updated>2009-02-16T07:49:31.334-05:00</updated><title type='text'>Crear un proyecto Windows Smart Device</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hola, el día de hoy voy a explicar como podemos crear un proyecto para dispositivos móviles, en Visual Studio: Smart Device:&lt;/p&gt; &lt;p&gt;Iniciamos VS, y seleccionamos el lenguaje, aquí nos va aparecer la siguiente pantalla:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SZlgosiQfFI/AAAAAAAAApI/HY5rD7EyiQc/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="422" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SZlgpgxvruI/AAAAAAAAApM/6iy8TwKTHVI/image_thumb%5B4%5D.png?imgmax=800" width="584" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;En la parte izquierda seleccionamos el lenguaje con el cual vamos a trabajar, y dentro del lenguaje el tipo de proyecto a crear. Smart Device, en la parte derecha aparecen la plantilla del proyecto smart device, debemos dale un nombre al proyecto, esto esta resaltado en la etiqueta NAME de la parte inferior, por defecto el nombre de la solución es el mismo que el proyecto pero esto lo podemos cambiar, también resalte que podemos colocar este proyecto dentro del control de código seleccionando el check de la parte inferior derecha: Add to Source Cntrol. Y por ultimo en la parte superior derecha esta la lista de las diferentes versiones del framework con la que podemos trabajar. Al presionar el botón OK empezamos con la definición de nuestro proyecto.&lt;/p&gt; &lt;p&gt;La siguiente pantalla no permite seleccionar la versión del sistema operativo y SDK con el cual vamos a trabajar,a si como la versión del compact framework.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SZlgqM7-IKI/AAAAAAAAApQ/ojMA2lRiP_c/s1600-h/image%5B12%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="119" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlgq3_hJtI/AAAAAAAAApU/9S1FxEd5S38/image_thumb%5B6%5D.png?imgmax=800" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;El &lt;strong&gt;Target platform&lt;/strong&gt; son los diferentes SDK (Software Development Kit) instalados en nuestro PC de desarrollo, por defecto con VS2008 se instala el SDK para Windows Mobile 5, con VS2005, se instala por defecto el SDK para Pocket PC 2003.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlgri1hIcI/AAAAAAAAApY/JR3HyXgMv5A/s1600-h/image%5B18%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="455" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlgsvURLHI/AAAAAAAAApc/fs9JEfs0rzs/image_thumb%5B10%5D.png?imgmax=800" width="602" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;En la parte inferior podemos seleccionar el template o plantilla del tipo de aplicacion que vayamos a desarrollar. Seleccionamos el tipo de plantilla y hacemos clic en el boton OK de esta pantalla.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SZlgtTQE8VI/AAAAAAAAApg/MhGy8HHMxfs/s1600-h/image%5B24%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="356" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlguIQLrGI/AAAAAAAAApk/SyTP0qERqRw/image_thumb%5B14%5D.png?imgmax=800" width="648" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al darle clic al botón OK, ya nos aparece el ambiente de desarrollo para nuestra aplicación windows mobile.&lt;/p&gt; &lt;p&gt;Ya de acuerdo a lo que vaya a hacer nuestra aplicación vamos agregando tanto código como controles necesarios para armar los formularios y los datos a pedir.&lt;/p&gt; &lt;p&gt;Agreguemos un botón y le colocaremos el&amp;nbsp; mensaje “de Hola Mundo!”&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlgunxuM2I/AAAAAAAAApo/0JXDzWb6J-o/s1600-h/image%5B28%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="338" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlgvAI4ucI/AAAAAAAAAps/-DaeoTw8Njk/image_thumb%5B16%5D.png?imgmax=800" width="288" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlgwGSAB3I/AAAAAAAAApw/ubhrmJetTcA/s1600-h/image%5B34%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="283" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlgwv0BtYI/AAAAAAAAAp0/sCkXvs3DOKU/image_thumb%5B20%5D.png?imgmax=800" width="630" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Como se aprecia en la imagen hemos colocado un botón con el texto bienvenida que si observa en la parte derecha inferior la propiedad TEXT del botón tiene este texto.&lt;/p&gt; &lt;p&gt;Si damos doble clic sobre el botón nos lleva a la ventana de código del evento click del botón:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlgxJePUHI/AAAAAAAAAp4/MnBQHx6UvHc/s1600-h/image%5B38%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="94" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SZlgx1GX_bI/AAAAAAAAAp8/4CtcKxkq4Fc/image_thumb%5B22%5D.png?imgmax=800" width="655" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;A continuación el código para mostrar el mensaje de bienvenida:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlgyR0nYFI/AAAAAAAAAqA/CM6pdxfpmwg/s1600-h/image%5B42%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="115" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SZlgy7QuwqI/AAAAAAAAAqE/anktcScZnEk/image_thumb%5B24%5D.png?imgmax=800" width="651" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Observamos que tenemos el intellisense de todos los comandos y clases que escribamos en la ventana de codigo.&lt;/p&gt; &lt;p&gt;Para ejecutar nuestra aplicación hacemos clic en el botón de inicio o start Debugging como se muestra en la siguiente imagen:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlgzQyicuI/AAAAAAAAAqI/vjhU2RFvLx0/s1600-h/image%5B46%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="186" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SZlgzwGSvEI/AAAAAAAAAqM/3sHY6WmRjEc/image_thumb%5B26%5D.png?imgmax=800" width="374" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al hacerlo nos muestra la siguiente pantalla para seleccionar en donde vamos a ejecutar nuestra aplicación&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SZlg0Q6p-aI/AAAAAAAAAqQ/hTVDrRrkf5k/s1600-h/image%5B50%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="246" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SZlg1JjHOoI/AAAAAAAAAqU/wnp_aMNS6FQ/image_thumb%5B28%5D.png?imgmax=800" width="386" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Seleccionamos el Emulador y nos aparece lo siguiente:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SZlg1T6puZI/AAAAAAAAAqY/VqN3V4uD5Nc/s1600-h/image%5B53%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SZlg2UHzeRI/AAAAAAAAAqc/sULU181dbew/image_thumb%5B29%5D.png?imgmax=800" width="184" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Esta es la pantalla del emulador con nuestra aplicación ejecutándose.&lt;/p&gt; &lt;p&gt;En próximos post estaré explicando otros controles y la manera como podemos crear nuestra aplicación.&lt;/p&gt; &lt;p&gt;Hasta la próxima!!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5314829983832915354?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/5314829983832915354/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=5314829983832915354' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5314829983832915354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5314829983832915354'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/02/crear-un-proyecto-windows-smart-device.html' title='Crear un proyecto Windows Smart Device'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SSzr2Hx_9CQ/SZlgpgxvruI/AAAAAAAAApM/6iy8TwKTHVI/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-7569100518161383290</id><published>2009-01-24T11:58:00.001-05:00</published><updated>2009-01-24T11:58:13.444-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2003'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2005'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Reportes'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal Reports'/><title type='text'>Creación de Reportes con Crystal Reports en Visual Studio 2005/2008</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Este pequeño tutor de como crear un reporte en &lt;strong&gt;Crystal Reports&lt;/strong&gt; desde &lt;strong&gt;Visual Studio 2005/2008,&lt;/strong&gt; lo hago porque he recibido muchas consultas de como hacerlo de la mejor forma, quizás hiera algunas susceptibilidades, pero espero que entiendan que también hay otras maneras de hacer las cosas.&lt;/p&gt; &lt;p&gt;En primer lugar en este tutor les voy a indicar como crear el reporte de la manera mas larga, pero también, es la mejor manera para tener el control total sobre lo que queremos mostrar en el reporte.&lt;/p&gt; &lt;p&gt;La manera mas fácil de crear un reporte es agregar al proyecto un nuevo ítem de tipo reporte de &lt;strong&gt;Crystal Reports&lt;/strong&gt;, y conectarse&amp;nbsp; a la base de datos desde el explorador de servidores del Visual Studio, seleccionar las tablas y arrastrarlas sobre el diseñador del reporte. &lt;/p&gt; &lt;p&gt;Si, esta es la manera mas fácil, pero también la que mas problemas nos puede dar al momento de empezar a cambiar campos a mostrar o al tratar de agregar una condición o filtro a los datos que queremos mostrar en el reporte.&lt;/p&gt; &lt;p&gt;La anterior es una buena técnica, siempre y cuando el reporte sea sencillo y detectemos que no tendrá cambios.&lt;/p&gt; &lt;p&gt;A continuación describo la manera en yo creo mis reportes tanto para web como para windows. A muchos les parecerá mas larga pero les aseguro que no tendrán problemas en el futuro pues tienen todo controlado ustedes.&lt;/p&gt; &lt;p&gt;Voy a utilizar un proyecto Windows Forms y una base de datos Sql Server 2008, pero se van a dar cuenta que lo pueden hacer con cualquier tipo de base de datos.&lt;/p&gt; &lt;p&gt;No voy a entrar en detalles del tipo de conexión a la base de datos ni las instrucciones para traer los datos. &lt;/p&gt; &lt;p&gt;A continuación muestro la forma con los datos que vamos a utilizar para nuestro reporte:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SXtH-tHZTII/AAAAAAAAAlM/_SCA8nhfvUk/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="338" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtH_lW4BWI/AAAAAAAAAlQ/e10Q7Y2v9J0/image_thumb%5B2%5D.png?imgmax=800" width="615" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Bueno la idea de nuestro proyecto es que poder tener un reporte con estos datos, lo primero que vamos a hacer es agregar a nuestro proyecto un objeto dataset, que es el que nos va a servir para poder crear nuestro reporte en Crystal Reports.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIAuw2VUI/AAAAAAAAAlU/S3Y_bMBNW_Y/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="475" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIB9MpwcI/AAAAAAAAAlY/ZWnszAyKYq0/image_thumb%5B4%5D.png?imgmax=800" width="448" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Clic derecho en el nombre del proyecto, del menú seleccionamos la opción Add, y luego New Item… para que nos aparezca la siguiente pantalla y poder escoger el objeto a adicionar a nuestro proyecto.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIDM3MDlI/AAAAAAAAAlc/VwZ-GCgZq8E/s1600-h/image%5B12%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="393" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIErLzytI/AAAAAAAAAlg/nDEauKcWILo/image_thumb%5B6%5D.png?imgmax=800" width="648" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Escogemos adicionar un objeto dataset que nos servirá como fuente de datos para el reporte y poder crear nuestro reporte como queremos. Le damos un nombre a nuestro dataSet, por lo general yo lo llamo igual que el reporte con el prefijo ds, entonces nuestro dataset se va a llamar dsPersonas.xsd&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIFDXYjFI/AAAAAAAAAlk/TZiQtD26pac/s1600-h/image%5B16%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="257" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIGCPY0BI/AAAAAAAAAlo/SHETEDeTEfw/image_thumb%5B8%5D.png?imgmax=800" width="685" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al darle clic al boton Add nos muestra la ventana de diseño en la cual vamos a agregar un datatable con sus respectivos campos que son los que necesitamos para dibujar el reporte. Al estar aquí, damos clic derecho sobre la superficie para poder agregar el datatable :&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIGuWX7BI/AAAAAAAAAls/OSPQN-jpGug/s1600-h/image%5B20%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="259" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIHsu2MNI/AAAAAAAAAlw/dQjPHYm9DVA/image_thumb%5B10%5D.png?imgmax=800" width="468" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SXtIH1mw04I/AAAAAAAAAl0/NzY2wLmIxk0/s1600-h/image%5B24%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="131" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIIehtKSI/AAAAAAAAAl4/QoRZ0ope1NE/image_thumb%5B12%5D.png?imgmax=800" width="330" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Nos muestra el datatable creado, podemos cambiar el nombre que coloca por defecto, haciendo clic sobre el nombre y se coloca en modo de edicion para poder cambiarlo.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIIhAupwI/AAAAAAAAAl8/_-eEkXeVdnI/s1600-h/image%5B28%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="133" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIJFEhQvI/AAAAAAAAAmA/bpGlfwIaftc/image_thumb%5B14%5D.png?imgmax=800" width="302" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Para agregar los diferentes campos de nuestro datatable, seguimos los siguientes paso:&lt;/p&gt; &lt;p&gt;1. Clic derecho en el área de los campos del datatable y los vamos agregando.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIJulyXTI/AAAAAAAAAmE/RJm-gXK-a78/s1600-h/image%5B33%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="291" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIKX5A6_I/AAAAAAAAAmI/1sWVkTaBu3Q/image_thumb%5B17%5D.png?imgmax=800" width="398" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;2. al seleccionar Agregar Columna:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIK_gqItI/AAAAAAAAAmM/w_r5_v96MMk/s1600-h/image%5B37%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="83" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtILhOwJqI/AAAAAAAAAmQ/jhY0ybwHXA0/image_thumb%5B19%5D.png?imgmax=800" width="219" border="0"&gt;&lt;/a&gt; nos permite colocarle el nombre a la columna, este nombre &lt;strong&gt;DEBE&lt;/strong&gt; ser igual al nombre que vamos a devolver en nuestra consulta SQL a la Base de datos.&lt;/p&gt; &lt;p&gt;3. &lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIMcrAGCI/AAAAAAAAAmU/6DqlimTB4SU/s1600-h/image%5B45%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="316" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtINb0JIKI/AAAAAAAAAmY/l8aoPpo66zA/image_thumb%5B23%5D.png?imgmax=800" width="260" border="0"&gt;&lt;/a&gt; En la ventana de propiedades de la columna que estamos agregando, podemos asignar el tipo de campo y su longitud en caso de ser una cadena ( String) y que sea requerido. Mi &lt;strong&gt;recomendación&lt;/strong&gt; es que se apeguen a los mismos tipos de datos que están definidos en la base de datos.&lt;/p&gt; &lt;p&gt;4. En proceso de agregar los campos necesarios para el reporte:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIOrK07SI/AAAAAAAAAmc/e5CulGFEV2M/s1600-h/image%5B51%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="456" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIPhYuFiI/AAAAAAAAAmg/FLthaKIWa30/image_thumb%5B27%5D.png?imgmax=800" width="392" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Si me preguntan si es se pueden agregar campos que no se van a utilizar en el reporte, la respuesta es SI, porque es posible que ya tengamos la consulta realizada que nos sirve para nuestro&amp;nbsp; reporte y solo es crearlo a partir de la consulta que&amp;nbsp; ya existe, y como la consulta nos devuelve datos que no vamos a colocar ene l reporte, de todas formas tenemos que crear esos campos en nuestro datatable.&lt;/p&gt; &lt;p&gt;5. Aqui esta nuestro datatable completo para empezar a generar nuestro reporte:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIPxlHmnI/AAAAAAAAAmk/ga6pyFjQ9R4/s1600-h/image%5B56%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="492" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIQqQexoI/AAAAAAAAAmo/Wye6fnUouJk/image_thumb%5B30%5D.png?imgmax=800" width="230" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Quizás me pensaran: “es mucho trabajo” pero piensen en esto, este sistema si mas tarde necesitan agregar un nuevo campo es simplemente venir agregar el campo y actualizar la fuente de datos del reporte para tener acceso a ese nuevo campo que acabamos de crear, por el otro método, eso no es tan fácil, es mejor agregar el campo y volver a crear el reporte. Aclaración: “yo, particularmente, no he sabido, o no he logrado como hacerlo cuando lo intente”.&lt;/p&gt; &lt;p&gt;6. Creamos el reporte en crystal reports, nuevamente clic derecho en el nombre del proyecto, Add, New Item..,&amp;nbsp; en la ventana que aparece, seleccionamos Reporting y escogemos el tipo de reporte Crystal Report:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIRpqPNxI/AAAAAAAAAms/TFOMiInOUoA/s1600-h/image%5B60%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="424" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIShUmQ8I/AAAAAAAAAmw/8xT2RKfVcdw/image_thumb%5B32%5D.png?imgmax=800" width="695" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Asignamos un nombre al reporte que se guarda con la extensión .rpt, y clic al botón Add para crear el reporte en nuestro proyecto.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtITcOL1fI/AAAAAAAAAm4/xKFu4T34Yco/s1600-h/image%5B64%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="362" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIUe3c0sI/AAAAAAAAAm8/vrG_KTtkiMw/image_thumb%5B34%5D.png?imgmax=800" width="764" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Aparece la siguiente pantalla para seleccionar el tipo de reporte a crear, en la parte izquierda señalado en el circulo rojo aparece una nueva barra de herramientas con la cual vamos a trabajar al adicionar los campos al reporte, en la parte derecha, he resaltado en el circulo rojo que se agregan al proyecto de manera automática las referencias necesarias para que funcionen los reporte de Crystal Reports en nuestro proyecto.&lt;/p&gt; &lt;p&gt;De la ventana, seleccionamos la segunda opción, crear un reporte en blanco “&lt;strong&gt;As a Blank Report&lt;/strong&gt;”&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIVHVkpAI/AAAAAAAAAnA/hR1nNDlIICU/s1600-h/image%5B72%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="374" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIV0yDEsI/AAAAAAAAAnE/fapE91bZH2g/image_thumb%5B38%5D.png?imgmax=800" width="842" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al darle clic al boton OK de la pantalla anterior nos muestra el reporte en blanco como aparece en la imagen anterior. &lt;/p&gt; &lt;p&gt;La sección de &lt;strong&gt;Report Header,&lt;/strong&gt; colocaremos lo que queremos que aparezca solo en la primera hoja del reporte.&lt;/p&gt; &lt;p&gt;En la sección&amp;nbsp; &lt;strong&gt;Page Header,&lt;/strong&gt; colocaremos los que queremos se muestre en la cabecera de todas las paginas del reporte, aquí colocaremos los títulos de las columnas, por ejemplo.&lt;/p&gt; &lt;p&gt;En la sección &lt;strong&gt;Details&lt;/strong&gt;, colocaremos el detalle de las columnas del reporte &lt;/p&gt; &lt;p&gt;La sección Report Footer, es la contraparte de la del &lt;strong&gt;Page Header&lt;/strong&gt;, aquí podríamos colocar los números de pagina del reporte, por ejemplo.&lt;/p&gt; &lt;p&gt;La sección &lt;strong&gt;Page Footer&lt;/strong&gt; es la contraparte de &lt;strong&gt;Report header&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Ya teniendo claro esto, lo siguiente es seleccionar la fuente de datos de nuestro reporte, aquí es donde entra a jugar el dataset que creamos en pasos anteriores, pues no necesitamos tener la conexión a la base de datos abierta para diseñar nuestro reporte.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIWcN0WuI/AAAAAAAAAnI/OLdZqll2D7s/s1600-h/image%5B76%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="356" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIXR8X0NI/AAAAAAAAAnM/ia-oRH2RJ6c/image_thumb%5B40%5D.png?imgmax=800" width="526" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Damos Clic derecho en el Field Explorer en la entrada Database Field, al aparecer el menú contextual de la imagen seleccionamos Database Expert… para ir a seleccionar nuestra fuente de datos.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIYiAQLDI/AAAAAAAAAnQ/hZwJbbAX3CI/s1600-h/image%5B80%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="481" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIZl1SNbI/AAAAAAAAAnU/-XK7zyBBx20/image_thumb%5B42%5D.png?imgmax=800" width="563" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;En esta ventana, expandimos Project Data, luego ADO.NET DataSets, aquí nos van a aparecer todos los dataset que tengamos creados en nuestro proyecto, en nuestro caso solo aparece &lt;strong&gt;dsPersonas&lt;/strong&gt;, que es el que hemos creado en pasos anteriores.&lt;/p&gt; &lt;p&gt;Seleccionamos el datatable&amp;nbsp; y damos clic en el botón &lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIZ7PBmpI/AAAAAAAAAnY/kU0CmO7wFZY/s1600-h/image%5B83%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="35" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIaufifVI/AAAAAAAAAnc/23c5dWly1Qs/image_thumb%5B43%5D.png?imgmax=800" width="56" border="0"&gt;&lt;/a&gt;&amp;nbsp; para pasar los datos a la parte derecha de la ventana en la cual va a exponer los campos del datable para poder incluirlos en nuestro reporte.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIbmQ4NZI/AAAAAAAAAng/5iYQW507Wj8/s1600-h/image%5B87%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="464" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIcm5mcxI/AAAAAAAAAnk/MYsq1w6iQf0/image_thumb%5B45%5D.png?imgmax=800" width="545" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;Hacemos clic en el botón OK para empezar a diseñar nuestro reporte. Al hacer esto, ya contamos con los campos del dataset en el Field Explorer:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIeMGWGbI/AAAAAAAAAno/i3_qKyM7r1k/s1600-h/image%5B91%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="461" alt="image" src="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIe4JvPrI/AAAAAAAAAns/Mrfy8e8Org0/image_thumb%5B47%5D.png?imgmax=800" width="213" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Ahora simplemente es arrastrar los campos al área del reporte y colocarlos de la manera como deseamos se vea el reporte.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIf3w6jrI/AAAAAAAAAnw/AYlheLSY4Wo/s1600-h/image%5B96%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="525" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIhCnVUgI/AAAAAAAAAn0/ghyoHzeVPSM/image_thumb%5B50%5D.png?imgmax=800" width="676" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Seleccionamos la &lt;strong&gt;Toolbox&lt;/strong&gt; (barra de herramientas de crystal) y de allí escogemos el control &lt;strong&gt;text object&lt;/strong&gt; y lo arrastramos a la sección de &lt;strong&gt;page&lt;/strong&gt; &lt;strong&gt;header&lt;/strong&gt; para colocar el titulo del reporte allí, en la imagen están seleccionados en círculos rojos todos los controles mencionados.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIiMt0lAI/AAAAAAAAAn4/xJygKp44nXs/s1600-h/image%5B104%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="293" alt="image" src="http://lh5.ggpht.com/_SSzr2Hx_9CQ/SXtIjIpxGzI/AAAAAAAAAn8/14EYqdOwyL8/image_thumb%5B54%5D.png?imgmax=800" width="726" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Al arrastrar un campo del datatable y soltarlo en la sección de detalle de manera automática coloca un control de texto para el titulo del control que acabamos de arrastrar.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIkcWJjMI/AAAAAAAAAoA/0srUo-TRuvo/s1600-h/image%5B108%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="202" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIlL7wFII/AAAAAAAAAoE/ZW17V8gMG_o/image_thumb%5B56%5D.png?imgmax=800" width="278" border="0"&gt;&lt;/a&gt; Para corregir el texto del titulo, lo seleccionamos, le damos clic derecho al control y escogemos del menú la opción “&lt;strong&gt;Edit Text Object&lt;/strong&gt;”, lo que nos permite cambiar el texto del titulo.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtIl3rjuNI/AAAAAAAAAoI/hZ6w4Uw7LCA/s1600-h/image%5B113%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="227" alt="image" src="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtIm2FJ82I/AAAAAAAAAoM/VKfthsnpjSQ/image_thumb%5B59%5D.png?imgmax=800" width="688" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;La imagen nos muestra como queda nuestro reporte, no es el alcance de este tutor, indicar como colocar los diferentes atributos de presentación grafica del reporte.&lt;/p&gt; &lt;p&gt;En nuestro formulario windows (web forms) o en nuestro formulario web (web forms) agregamos un control CrystalReportViewwer , el cual nos servirá para mostrar nuestro reporte en pantalla y poder imprimirlo o exportarlo a algún formato como PDF o Excel.&lt;/p&gt; &lt;p&gt;En el boton Imprimir de nuestro formulario, el codigo que voy a colocar para ir a la base de datos, realizar la consulta de los datos, colocarlos en un datatable y este datatable pasarlo a la propiedad datasource del reporte. &lt;/p&gt; &lt;p&gt;A continuacion el codigo del boton imprimir:&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="821" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="819"&gt; &lt;p&gt;Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oCnn As New OleDbConnection&amp;nbsp; ‘ Objeto de conexion a la base de datos&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim daDatos As New OleDbDataAdapter ‘ Objeto Adaptador para leer datos de la Base de datos&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim cmdExec As New OleDbCommand ‘ objeto comando para ejecutar sentencias sql&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim dtDatos As New DataTable ‘ datatable para recibir los datos de la base de datos&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sbQuery As New StringBuilder ‘ StringBuilder para armar cadenas&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oCnn.ConnectionString = "Provider=SQLNCLI10;Server=ralvarado;Database=MiBD;Uid=sa; Pwd=XXX;"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oCnn.Open()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExec = oCnn.CreateCommand&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExec.Connection = oCnn  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("SELECT Consecutivo&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,IdentificacionPersona&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,TipoPersona&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Grupo&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,PrimerNombre&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,PrimerApellido&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,SegundoApellido&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Sexo&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Profesion&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Direccion1&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Direccion2&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,TelFijo1&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,TelFijo2&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,TelMovil&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,PaginaWeb&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,ZonaPostal&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Fax&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Email1&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,Email2&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,FechaNacimiento&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbQuery.Append("&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Persona&amp;nbsp;&amp;nbsp; ")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExec.CommandText = sbQuery.ToString  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daDatos = New OleDbDataAdapter(cmdExec)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daDatos.Fill(dtDatos)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Asigno el reporte &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CrReport.Load(Application.StartupPath &amp;amp; "\crPersonas.rpt")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CrReport.SetDataSource(dtDatos)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CrystalReportViewer1.ReportSource = CrReport  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show("excepcion: " &amp;amp; ex.Message, "Mostrando Reporte")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Observen que al llenar los datos en dtDatos, simplemente debo asignarle este objeto al Reporte en su método &lt;strong&gt;SetDataSource&lt;/strong&gt;. Con esto puede ser cualquier base de datos, siempre y cuando los datos correspondan a la estructura del dataset creado como fuente de datos del reporte.&lt;/p&gt; &lt;p&gt;Si en algún momento nuestro reporte cambia que hay que agregarle un nuevo campo, simplemente vamos a nuestro dataset y le agregamos el campo, luego vamos al reporte y lo abrimos y verificamos nuestra fuente de datos para que nuestro nuevo campo aparezca en al lista, luego es simplemente incluirlo en el reporte.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_SSzr2Hx_9CQ/SXtInjg60SI/AAAAAAAAAoQ/kLpt3fc8ckQ/s1600-h/image%5B117%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="335" alt="image" src="http://lh3.ggpht.com/_SSzr2Hx_9CQ/SXtIox6wylI/AAAAAAAAAoU/-omGfG_qr5M/image_thumb%5B61%5D.png?imgmax=800" width="328" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Bueno espero haber sido claro en como crear un reporte con Crystal Report y les aseguro que no van a tener problemas al momento de modificaciones en el reporte.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hasta la próxima!!!!!!.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-7569100518161383290?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/7569100518161383290/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=7569100518161383290' title='155 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7569100518161383290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/7569100518161383290'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/01/creacin-de-reportes-con-crystal-reports.html' title='Creación de Reportes con Crystal Reports en Visual Studio 2005/2008'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_SSzr2Hx_9CQ/SXtH_lW4BWI/AAAAAAAAAlQ/e10Q7Y2v9J0/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>155</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5878727859668351552</id><published>2009-01-12T07:54:00.006-05:00</published><updated>2009-01-12T08:31:27.854-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Requisitos Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2005'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2008'/><category scheme='http://www.blogger.com/atom/ns#' term='WinCE'/><category scheme='http://www.blogger.com/atom/ns#' term='PocketPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Compact Framework'/><title type='text'>Requisitos para el Desarrollo de SmartDevices en Compact Framework</title><content type='html'>Hola a todos,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hace mucho tiempo que no escribia, pero voy a retomar el tema ya que en el foro en donde participo hay muchas preguntas al respecto y en el foro a veces no se explica de la mejor forma, solo lo estrictamente que se pregunta.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bueno, lo que voy a tratar en esta entrada son los requisitos para iniciar el desarrollo de aplicaciones para smartdevices (dispositivos inteligentes) o para la plataforma Windows Mobile, o Windows CE.NET como es conocida por muchos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Tener conocimientos y bases de programacion, esto es saber que es una variable, los ambitos de estas (publicas, privadas, etc.). Programacion orientada a objetos, saber o tener la teoria de lo que es una clase, un objeto y todo lo que involucra la &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;POO&lt;/span&gt; (Programacion Orientada a Objetos, OOP en ingles [Object Oriented Programming]).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Tener bases o algunos conocimientos en alguno de los lenguajes de programacion para el nicho sobre el cual vamos a trabajar, en este caso sobre Windows Mobile. Estos lenguaje pueden ser: Visual Basic .NET, C Sharp (C#), o Visual C++ .NET, tambien existe el Embedded Visual C++ 4.0 ( la ultima version de esta herramienta gratis de MS que conozco, no estoy enterado si existe una nueva version).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. La herramienta de desarrollo a utilizar, en mi caso, yo utilizo y me voy a centrar en la mayoria de los ejemplos en &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Visual Studio 2005 / 2008&lt;/span&gt;, esto implica que vamos a utilizar el Compact Framework .NET version 2.0 / 3.5.  Existe un IDE gratis para el desarrollo en plataforma .NET es muy bueno tambien, se llama &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;S&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;harp Develop&lt;/span&gt;, en la nueva version para el framework 3.5 ya existen plantillas para aplicaciones SmartDevices, sin embargo yo aun no lo manejo, cuando ya tenga la experiencia de hacerlo, escribire un post con mi experiencia al respecto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Para Visual Studio 2005 podemos desarrollar con la version Standar de VS2005 aplicaciones SmartDevices, pero, para Visual Studio 2008, para poder desarrollar para SmartDevices necesitamos como minimo la version professional.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Se necesita el conjunto de herramientas necesarias para la plataforma SmarDevice (pocket PC o windows CE), estas herramientas son las denominadas Windows Mobile SDK (Software Development Kit), al instalar la herramienta de desarrollo Visual Studio 2005 se instala de manera automatica el &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Windows Mobile SDK 2003&lt;/span&gt;, y en la pagina de Microsoft encontraremos las versiones de acuerdo a las versiones de los diferentes sistemas operativos Windows Mobile para el cual vamos a desarrollar.  Si nuestro IDE es VS2008, entonces el SDK que se instala de manera automatica es el &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Windows Mobile SDK 5&lt;/span&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. La instalacion del (os) SDK nos permite tener acceso a los Emuladores en los cuales podemos probar nuestras aplicaciones sin necesidad de tener fisicamente un dispositivo (PDA: Personal Data Assitant), ademas de todas las dll, espacios de nombre y assemblys necesarios y requeridos para el desarrollo y funcionamiento de nuestras aplicaciones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. El SDK, dependiendo de la version, tambien nos provee de un motor de base de datos Gratuito que suministra tambien Microsoft, este motor de base de datos se llama &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SQL Server Mobile&lt;/span&gt;, esta base de datos tambien se instala de manera automatica en la instalacion del SDK. Tenemos que tener en cuenta que en la plataforma &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Compact Framework .NET&lt;/span&gt; ya no se soportan las bases de datos de tipo &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Pocket Acces&lt;/span&gt;s o simplemente Access, en la version de compact framework 1.1 aparecio una dll de pago en la cual se podian utilizar bases de datos pocket access desde la plataforma .NET pero esto no ha continuado en las versiones 2.0 y 3.5. No tengo conocimiento de si esta libreria funciona para CF 2.0/3.5.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bueno por hoy hasta aqui les dejo informacion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En proximas opiortunidades continuare con esta seria de post sobre el desarrollo en compact framework.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hasta la proxima!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-5878727859668351552?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/5878727859668351552/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=5878727859668351552' title='9 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5878727859668351552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5878727859668351552'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2009/01/requisitos-para-el-desarrollo-de.html' title='Requisitos para el Desarrollo de SmartDevices en Compact Framework'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-6651360708534030167</id><published>2007-09-05T21:47:00.003-05:00</published><updated>2008-12-17T11:24:09.051-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS2003'/><title type='text'>Simular un Datagrid Editable en Compact Framework .NET</title><content type='html'>&lt;p&gt;Bueno en primer lugar el proyecto es un proyecto Smart Device Application y dejamos la forma que por defecto coloca Visual Studio.&lt;/p&gt;&lt;p&gt;Agrego un control DataGrid, un TextBox y un control Button, este control button sera invisible, lo pueden cambiar por una funcion o un procedimeinto, yo lo deje asi, pues parti d eun ejemplo con esxte control.&lt;/p&gt;&lt;p&gt;El control TextBox tambien esta invisible. &lt;/p&gt;&lt;p&gt;El evento Load de la forma lo que hago basicamente es llenar el control DataGrid con un dataTable creado en tiempo de ejecucion, con 10 filas ( de la cero a la diez) y cuatro columnas (de la cero a la tres). &lt;/p&gt;&lt;p&gt;Cada celda de la Grilla se llena con un texto generado tambein dentro del evento load.&lt;/p&gt;&lt;p&gt;Al hacer clic sobre una celda del Datagrid se genera o dispara el evento CurrentCellChanged, en este evento se muestra el textbox y se llena con el valor que se encuentre en la celda seleccionada. Lo mas importante aqui es que tambien se le asignan las dimensiones que tiene la celda al control textbox y se lo coloca en la posicion correcta, la linea de codigo que hace esto es:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;.TextBox1.Bounds = dgList.GetCellBounds(dgList.CurrentRowIndex, dgList.CurrentCell.ColumnNumber)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Me&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Luego de esto, se coloca el control textBox en visible = true para mostrarlo.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;En el evento GotFocus del control TextBox, se selecciona el texto que contenga con el metodo .SelectAll(). &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Utilizo tambien el evento KeyPress del textbox para verificar si se presiono ENTER, si es asi, llamo al procedimiento Button1_Click , que como dije antes puede ser una funcion o un procedimiento, y oculto el control textbox.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;El procedimiento Button_Click, lo que hace es actualizar la celda seleccionada con el valor del textbox.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Por ultimo en el evento GotFocus del Datagrid, verifico si el control textbox esta visible, si es asi, le asigno el Foco al control. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Lo unico que faltaria agregarle seria el control de la posicion del textbox al hacer un desplazamiento con la barra de desplazamiento. Pero eso sera otro dia.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;El archivo del proyecto lo pueden encontrar en los archivos en el albun "DataGrid Editable".&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Saludos y espero que lo disfruten!!!!.&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/11471302-6651360708534030167?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/6651360708534030167/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=6651360708534030167' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6651360708534030167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/6651360708534030167'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/simular-un-datagrid-editable-en-compact.html' title='Simular un Datagrid Editable en Compact Framework .NET'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5952694184882501222</id><published>2007-09-05T21:47:00.001-05:00</published><updated>2007-09-05T21:47:28.464-05:00</updated><title type='text'>Conexion a una base de Datos SQLCE</title><content type='html'>&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="font-size:85%;"&gt; oCnn &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;New&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeConnection&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="font-size:85%;"&gt; oDR &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeDataReader&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Try&lt;/span&gt;&lt;span style="font-size:85%;color:#008000;"&gt;     'Crear un Objeto SqlCeCommand para enviar una sentencia SELECT a la Base de Datos&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="font-size:85%;"&gt; oCmd &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeCommand = oCnn.CreateCommand()&lt;br /&gt;    oCmd.CommandType = CommandType.Text&lt;br /&gt;    oCmd.CommandText = "SELECT * FROM Productos "&lt;br /&gt;    &lt;span style="color:#009900;"&gt;' Ejecuto la sentencia y la guardo en el DataReader&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;    oDR = oCmd.ExecuteReader()&lt;br /&gt;&lt;span style="color:#009900;"&gt;     ' Verifico que tenga Datos el DataReader&lt;/span&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;If&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Not&lt;/span&gt;&lt;span style="font-size:85%;"&gt; oDR.Read &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Then&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size:85%;"&gt;MessageBox.Show("No hay Dtaos que Mostrar", "Mi Aplicacion")&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Exit&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Sub&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;If&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Catch&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ex &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeException&lt;br /&gt;     &lt;span style="color:#009900;"&gt;' Muestro un Mensaje con lso Datos de la excepcion&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;    MessageBox.Show(ex.Message.ToString &amp; vbCrLf &amp;amp; ex.Source.ToString &amp; vbCrLf &amp;amp; _&lt;br /&gt;                                   ex.NativeError.ToString, "Mi Aplicacion")&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Finally&lt;br /&gt;   &lt;span style="color:#009900;"&gt;' Cierro el Objeto SqlCeConnection&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;oCnn.Close()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Try&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Hay que colocar la direccion exacta de la Base de Datos para que la encuentre.&lt;br /&gt;&lt;br /&gt;D&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;espues que tenemos los Datos en el objeto DataReader podemos verlos en un DataGrid, simplemente tenemos que asigna a la propiedad DataSource del DataGrid el objeto DataReader.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Colocamos todo dentro de un Try ... catch para controlar cualquier execepcion que se produzca y nuestro programa no se cancele. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Para este ejemplo, a la base de datos le coloco un password de alli que en la cadena de conexion aparece PAssword, si no lo utilizan simplemente no lo colocan en la cadena de conexion. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;En este caso, si deseamos que este objeto sea la fuente de un DataGrid, entonces debemos hacer la propiedad .DataSource del DataGrid = a dsCETmp.Tables(0).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Espero que esto los ayude en su experiencioa con SQL CE y .NET&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;     oCnn.ConnectionString = "Data Source="  &amp; "My Documents" &amp;amp; _&lt;br /&gt;                    "BasePPC.sdf; " &amp; " Password=" &amp;amp; "XXXX2005;"&lt;br /&gt;&lt;span style="color:#009900;"&gt;     ' Abro la conexion con la Base de Datos&lt;/span&gt;&lt;br /&gt;    oCnn.Open()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;Primero debemos crear las variables u objetos para el manejo de la Conexion y un Objeto DataReader para manejar o recibir los datos de la Base de Datos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Otra forma es utilizar un Objeto DataSet como contenedor de datos, para esto necesitamos un objeto DataAdapter:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;&lt;span style="color:#009900;"&gt;' Definimos el Objeto DataAdapter&lt;/span&gt;&lt;br /&gt;Dim&lt;/span&gt;&lt;span style="font-size:85%;"&gt; daCETmp &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeDataAdapter&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;' Asignamos el Objeto Conexion y el Query al DataAdapter&lt;/span&gt;&lt;br /&gt;daCETmp = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;New&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SqlCeDataAdapter("SELECT * FROM Productos ", oCnn)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#009900;"&gt;&lt;br /&gt;' Llenamos el onbjeto DataSet con el metodo Fill del DataAdapter&lt;/span&gt;&lt;br /&gt;daCETmp.Fill(dsCETmp, "Productos")&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;Saludos&lt;/span&gt;&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/11471302-5952694184882501222?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/5952694184882501222/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=5952694184882501222' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5952694184882501222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5952694184882501222'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/conexion-una-base-de-datos-sqlce.html' title='Conexion a una base de Datos SQLCE'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-8804540100080320944</id><published>2007-09-05T21:45:00.000-05:00</published><updated>2007-09-05T21:46:24.352-05:00</updated><title type='text'>Pantalla Completa CF.NET</title><content type='html'>&lt;p&gt;Pantalla Completa CF.NET&lt;/p&gt;&lt;p&gt;Debemos modificar algunas propiedades del Form:&lt;/p&gt;&lt;p&gt;FormBorderStyle = None&lt;br /&gt;Size = 240, 320&lt;br /&gt;WindowsState = Normal&lt;br /&gt;ControlBox = False&lt;br /&gt;Maximeize = False&lt;br /&gt;Minimize = False&lt;/p&gt;&lt;p&gt;Los Imports a utilizar en el modulo en donde se coloquen las declaraciones son los siguientes:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;System.Runtime.InteropServices&lt;/p&gt;&lt;p&gt;Añadir las siguientes declaraciones en un modulo:&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Añadir este evento de la forma al codigo:&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Private&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Form1_Activated(&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; sender &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Object&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; e &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System.EventArgs) &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Handles&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;MyBase&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.Activated&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#008000;"&gt;    ' ---------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#008000;"&gt;    ' Esto para FullScreen&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;    Me&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.Capture = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;True&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;    Dim&lt;/span&gt;&lt;span style="font-size:85%;"&gt; hWnd &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; IntPtr = GetCapture()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;    Me&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.Capture = &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;False&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    SHFullScreen(hWnd, 2)&lt;br /&gt;   SetWindowPos(hWnd, IntPtr.Zero, 0, 0, 240, 320, 4)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;End&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#008000;"&gt;'API Declarations to FullScreen&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Declare&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Function&lt;/span&gt;&lt;span style="font-size:85%;"&gt; GetCapture &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Lib&lt;/span&gt;&lt;span style="font-size:85%;"&gt; "coredll.dll" () &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; IntPtr&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Declare&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Function&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SHFullScreen &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Lib&lt;/span&gt;&lt;span style="font-size:85%;"&gt; "aygshell.dll" (&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; hWnd &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; IntPtr, &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; state &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Boolean&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Declare&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Function&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SetWindowPos &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Lib&lt;/span&gt;&lt;span style="font-size:85%;"&gt; "coredll.dll" (&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; hWnd &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; IntPtr, _&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;      ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; hWndInsertAfter &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; IntPtr, &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; x &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, _&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;      ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; y &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; cx &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; cy &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, _&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;      ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; flags &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;As&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;Boolean&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-8804540100080320944?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/8804540100080320944/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=8804540100080320944' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8804540100080320944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/8804540100080320944'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/pantalla-completa-cfnet.html' title='Pantalla Completa CF.NET'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-2067351309942592682</id><published>2007-09-05T21:44:00.000-05:00</published><updated>2007-09-05T21:45:33.127-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Carga'/><category scheme='http://www.blogger.com/atom/ns#' term='r Imagen'/><category scheme='http://www.blogger.com/atom/ns#' term='PictureBox'/><category scheme='http://www.blogger.com/atom/ns#' term='CF'/><title type='text'>Cargar Imagen en PictureBox por codigo</title><content type='html'>&lt;p&gt;Creamos una funcion a la cual le pasamos la ruta y el nombre de la imagen que queremos cargar en el Control.&lt;/p&gt;&lt;p&gt;&lt;span style="color:#0000ff;"&gt;Public &lt;span style="font-size:85%;"&gt;Shared &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; LoadImage(&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; imageName &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;As &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;As&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Bitmap&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;       Return &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Bitmap(imageName)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;End &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;Function&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;Para Cargar la imagen en el control, utilizamos la funcion de esta forma:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;picLogo.Image = LoadImage(sRuta &amp; "" &amp;amp; sLogoNameFile)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;En donde sRuta es una variable de tipo string en donde esta la ruta y en sLogoNameFile el nombre del archivo grafico, puede ser .bmp, .jpg o .gif.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;Tambien puedes hacerlo directamente de esta forma:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#000000;"&gt;picLogo.Image = new System.Drawing.Bitmap(sRuta &amp; "" &amp;amp; sLogoNameFile)&lt;/span&gt;&lt;/span&gt;&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/11471302-2067351309942592682?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/2067351309942592682/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=2067351309942592682' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2067351309942592682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/2067351309942592682'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/cargar-imagen-en-picturebox-por-codigo.html' title='Cargar Imagen en PictureBox por codigo'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5637800926764834391</id><published>2007-09-05T21:43:00.001-05:00</published><updated>2007-09-05T21:43:55.440-05:00</updated><title type='text'>Reloj Indicando que se esta ejecutando un proceso</title><content type='html'>&lt;p&gt;Simplemente antes de empezar nuestro proceso colocamos lo siguiente:&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Cursor.Current = Cursors.WaitCursor  'Activar el Reloj&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;.... nuestro proceso y al finalizar &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;Cursor.Current = Cursors.Default&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;Eso es todo!&lt;/span&gt;&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/11471302-5637800926764834391?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/5637800926764834391/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=5637800926764834391' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5637800926764834391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/5637800926764834391'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/reloj-indicando-que-se-esta-ejecutando.html' title='Reloj Indicando que se esta ejecutando un proceso'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4869132576965711647</id><published>2007-09-05T21:41:00.000-05:00</published><updated>2007-09-05T21:43:02.571-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Compact frameqork'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.NET PrevInstance / Instancia Previa'/><title type='text'>VB.NET PrevInstance / Instancia Previa</title><content type='html'>&lt;p&gt;En Windows Mobile 2003 una aplicacion puede ejecutarse varias veces, no como en las versiones de los sistemas operativos anteriores en los cuales el mismo sistema operativo trae al frente la aplicacion que se esta ejecutando. &lt;/p&gt;&lt;p&gt;Se utilizan dos API y unas lineas de codigo en el metodo Main de la forma, ya que este metodo se ejecuta antes de Cargar o crear la forma.&lt;/p&gt;&lt;p&gt;Las decalraciones API son las siguientes:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' Funciones del API&lt;/span&gt;&lt;br /&gt;&lt;system&gt;&lt;span style="font-size:85%;"&gt;&lt;system.runtime.interopservices.dllimport("coredll.dll", _=""&gt;&lt;br /&gt;     EntryPoint:="SetForegroundWindow")&gt;&lt;/system.runtime.interopservices.dllimport("coredll.dll",&gt;&lt;/span&gt; _&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Shared&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Function&lt;/span&gt; SetForegroundWindow( _&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ByVal&lt;/span&gt; hWnd &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; IntPtr) &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Boolean&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;system&gt;&lt;span style="font-size:85%;"&gt;&lt;system.runtime.interopservices.dllimport("coredll.dll", _=""&gt;&lt;br /&gt;     EntryPoint:="FindWindow")&gt;&lt;/system.runtime.interopservices.dllimport("coredll.dll",&gt;&lt;/span&gt; _&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Shared&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Function&lt;/span&gt; FindWindow( _&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ByVal&lt;/span&gt; lpClassName &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;String&lt;/span&gt;, _&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ByVal&lt;/span&gt; lpWindowName &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;String&lt;/span&gt;) &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; IntPtr&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El metodo Main quedaria asi:&lt;/system&gt;&lt;/system&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' El Sub Main &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Shared&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Sub&lt;/span&gt; Main()&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim&lt;/span&gt; nWnd &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; IntPtr&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Dim&lt;/span&gt; ceroIntPtr &lt;span style="color: rgb(0, 0, 255);"&gt;As&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;New&lt;/span&gt; IntPtr(0)&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;' Texto de la Forma &lt;/span&gt;&lt;br /&gt;nWnd = FindWindow(&lt;span style="color: rgb(0, 0, 255);"&gt;Nothing&lt;/span&gt;, "Form1")&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;If&lt;/span&gt; nWnd.Equals(ceroIntPtr) &lt;span style="color: rgb(0, 0, 255);"&gt;Then&lt;/span&gt;&lt;br /&gt;Application.Run(&lt;span style="color: rgb(0, 0, 255);"&gt;New&lt;/span&gt; fNotas())&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;Else&lt;/span&gt;&lt;br /&gt;SetForegroundWindow(nWnd)&lt;br /&gt;Application.Exit()&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;End&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En donde "Form1" es el titulo de la forma (la propiedad .Text de la forma).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4869132576965711647?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/4869132576965711647/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=4869132576965711647' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4869132576965711647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4869132576965711647'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/vbnet-previnstance-instancia-previa.html' title='VB.NET PrevInstance / Instancia Previa'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-4610197771519141015</id><published>2007-09-05T21:36:00.000-05:00</published><updated>2007-09-05T21:37:18.240-05:00</updated><title type='text'>Tutor Embedded Visual Basic - Capitulo 10</title><content type='html'>&lt;h1 style="" align="right"&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;&lt;em&gt;Por: Roberto Alvarado&lt;/em&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=""&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;Capitulo 10 &lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Para comenzar un pequeño truco, hemos estado utilizando imágenes para simular botones gráficos y para los botones de la barra de herramientas, estos gráficos son archivos en formato bmp de 256 colores, la razón de este formato es que el control PictureBox e Image solo pueden mostrar imágenes de estas características, si deseamos mostrar imágenes de mayor resolución o incluso en formato jpg o gif, debemos utilizar otros controles, uno muy bueno es el control &lt;b&gt;S309PictureBox, &lt;/b&gt;además de mostrar las imágenes en esas resoluciones, es &lt;b&gt;gratis&lt;/b&gt;, este control lo podemos conseguir en esta dirección: &lt;a href="http://nsbasic.com/S309/"&gt;http://nsbasic.com/S309/&lt;/a&gt; . En una entrega posterior lo utilizaremos y trataremos de explorar todas las posibilidades de este control.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;El truco para que al compilar la aplicación nos copie las imágenes al directorio en donde esta la aplicación es este:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;No vamos al menú &lt;b&gt;Project&lt;/b&gt;, aquí escogemos la opción &lt;b&gt;Add File..., &lt;/b&gt;y en este cuadro de dialogo buscamos nuestro archivo de imagen en formato bmp, y antes de hacer clic en el botón &lt;b&gt;Aceptar&lt;/b&gt;, hacemos clic en &lt;b&gt;Add As Related Document&lt;/b&gt;, que se encuentra en la parte inferior izquierda del cuadro de dialogo, con esto aparece en la ventana de Project, una nueva carpeta llamada &lt;b&gt;Related Documents&lt;/b&gt; y allí van a estar todos nuestros archivos bmp.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;img style="" alt="" src="http://www.programacion.com/blogs/72_vbcodigopocketpc/get/Entrega10-01.jpg" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Aquí apreciamos la pantalla &lt;b&gt;Add File&lt;/b&gt; del menu &lt;b&gt;Project&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;A continuación tenemos la pantalla del Explorador del Proyectos en la cual aparecen todos los archivos de imágenes relacionados en la carpeta “&lt;b&gt;Related Documents&lt;/b&gt;”.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;img style="" alt="" src="http://www.programacion.com/blogs/72_vbcodigopocketpc/get/Entrega10-02.jpg" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Bueno vamos a darle un poco de “Vida” a nuestra aplicación al momento de entrar a ella, vamos a hacerlo clocando un grafico en la pantalla, el cual se ocultara al momento de escoger alguna de las opciones del menú. Para esto vamos a colocar un nuevo control PictureBox, este control se va a llamar PictureBox5, las dimensiones del control son la altura o &lt;b&gt;Height = 3135 y el ancho o Width = 2805&lt;/b&gt;. Lo pueden colocar en cualquier parte de la forma cuidando que no quede dentro de alguno de los frames que ya hemos utilizado. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Además vamos a darle un poco de vida agregando color al fondo de la forma, esto lo hacemos en la propiedad &lt;b&gt;Backcolor&lt;/b&gt; de la forma, cuando hacemos clic sobre la flechita nos muestra una cuadro de dialogo para que escojamos el color del fondo, aparecen dos pestañas, pinchamos en la pestaña que dice “&lt;b&gt;Palette&lt;/b&gt;” y escogemos de los amarillos el primer color de arriba hacia abajo. De esta forma le damos color de fondo a nuestra Aplicación, de esta manera podemos cambiar el color de fondo de los controles que lo permitan. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Ahora en el evento Load de la forma vamos a agregar lo siguiente : &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;'Muestro la Imagen de entrada&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;PictureBox5.Top = 420&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;PictureBox5.Left = 390&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;PictureBox5.Picture = App.Path &amp; "Logo.bmp"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;PictureBox5.Visible = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Con esto colocamos en posición el PictureBox y le asignamos el archivo de imagen para que lo muestre en la pantalla.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;A continuación podemos observar como se apreciara la pantalla principal de nuestra aplicación.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;img style="" alt="" src="http://www.programacion.com/blogs/72_vbcodigopocketpc/get/Entrega10-03.jpg" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Ahora como esta imagen la hemos colocado después de haber creado los frames, si mostramos un frame va a aparecer detrás de la imagen, entonces eso no lo queremos... queremos y necesitamos que los frames ya creados aparezcan delante de la imagen, para esto se utiliza la propiedad &lt;b&gt;Zorder&lt;/b&gt;, con esta propiedad le decimos que queremos que el objeto este en el orden cero (0) o sea delante de todo lo que haya en la pantalla.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyText" style=""&gt;&lt;span style="font-size:85%;"&gt;Entonces para que se orienten mejor les pongo el código del MenuBar en el evento MenuClick Completo y las líneas que he adicionado las voy a colocar en color rojo&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub MenuBar1_MenuClick(ByVal Item As MenuBarLib.Item)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Dim i As Long&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Select Case Item.Key&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;Case "mnuTabTareas"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h2 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'TAREAS&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraTareas.Top = 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraTareas.Left = 30&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraTareas.Visible = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: red; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: red; font-family: Verdana;"&gt;fraTareas.ZOrder 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarMenu mnuAccion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;'Abro el recordset&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Open "Tareas", cnn, adOpenDynamic, adLockOptimistic&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Case "mnuTabClientes"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'CLIENTES&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Top = 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Left = 30&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Visible = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: red; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.ZOrder 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarMenu mnuAccion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;'Abro el recordset&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Open "Clientes", cnn, adOpenDynamic, adLockOptimistic&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuTabApp"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;'APLICACIONES&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.Top = 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.Left = 30&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;           &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;fraAplicaciones.Visible = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; color: red; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.ZOrder 0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarMenu mnuAccion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'Abro el recordset con la tabla Aplicaciones&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Open "Aplicaciones", cnn, adOpenDynamic, adLockOptimistic&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuNuevo"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'NUEVO&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarGuardar mnuAccion, mnuTablas&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;xNuevo = 1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;If fraClientes.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;'Limpio los textbox&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text1.Enabled = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;For i = 0 To Me.Controls.Count - 1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;                   &lt;/span&gt;If Mid(Me.Controls(i).Name, 1, 4) = "Text" Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Me.Controls(i).Text = ""&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                    &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;Next i&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraAplicaciones.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text8.Enabled = True&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text8.Text = ""&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text9.Text = ""&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;DesactivoNavega&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuEditar"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'EDITAR&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;xNuevo = 2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraClientes.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;                &lt;/span&gt;'El ID no puede Modificarse&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Text1.Enabled = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;DesactivoNavega&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuborrar"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;'BORRAR&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;Dim Resp&lt;span style=""&gt;        &lt;/span&gt;As Long&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Resp = MsgBox("Esta seguro de ELiminar este registro?", vbApplicationModal + vbCritical + vbYesNo, "Eliminando Registros...")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;If Resp = vbYes Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Delete&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveFirst&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;MuestraRegistro&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuCancelar"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;'CANCELAR&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;         &lt;/span&gt;desActivoGuardar mnuAccion, mnuTablas&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivoNavega&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuGuardar"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'GUARDAR, GRABAR O SALVAR&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;If xNuevo = 1 Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.AddNew&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraClientes.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Fields("IdCliente") = Text1.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Nombre") = Text2.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Direccion") = Text3.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Telefonos") = Text4.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Celular") = Text5.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;rs.Fields("Fax") = Text6.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("ValorHora") = Text7.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraAplicaciones.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("IdApp") = Text8.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Aplicacion") = Text9.Text&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Update&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;desActivoGuardar mnuAccion, mnuTablas&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivoNavega&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuCerrar"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;'CERRAR LA OPCION ACTUAL&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;rs.Close&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraTareas.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;fraTareas.Visible = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraClientes.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;fraClientes.Visible = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;If fraAplicaciones.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;                &lt;/span&gt;fraAplicaciones.Visible = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Select&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;End Sub&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Además he hecho algunas correcciones para que no salgan mensajes de error cuando hacemos clic en los botones de navegación, y la tabla esta vacía.&lt;span style=""&gt;  &lt;/span&gt;El código es el siguiente: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub MenuBar1_ButtonClick(ByVal Button As MenuBarLib.MenuBarButton)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Select Case Button.Key&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnInicio"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If Not rs.EOF And Not rs.BOF Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveFirst&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnPrevio"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If Not rs.EOF And Not rs.BOF Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MovePrevious&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;If rs.BOF Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                    &lt;/span&gt;rs.MoveFirst&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                    &lt;/span&gt;MsgBox "Es el PRIMER Registro", vbApplicationModal + vbOKOnly, "Consultando..."&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnSigte"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If Not rs.EOF And Not rs.BOF Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveNext&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;If rs.EOF Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;rs.MoveLast&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;                    &lt;/span&gt;MsgBox "Es el ULTIMO Registro", vbApplicationModal + vbOKOnly, "Consultando..."&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnFin"&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If Not rs.EOF And Not rs.BOF Then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveLast&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Select&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;MuestraRegistro&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;End Sub&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Lo que esta en rojo indica lo nuevo, he colocado esta pregunta ya que cuando una tabla la abrimos y esta vacía tanto el fin de archivo (EOF), como el principio de archivo (BOF) son verdaderos. De esta manera no sale un error si presionan cualquiera de los botones y no hay datos en la tabla aun.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Al igual la rutina en donde mostramos el registro quedara con la pregunta y se vera de la siguiente manera:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Sub MuestraRegistro()&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;If Not rs.EOF And Not rs.BOF Then&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;If fraClientes.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text1.Text = rs.Fields("IdCliente")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text2.Text = rs.Fields("Nombre")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text3.Text = rs.Fields("Direccion")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text4.Text = rs.Fields("Telefonos")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text5.Text = rs.Fields("Celular")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text6.Text = rs.Fields("Fax")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text7.Text = rs.Fields("ValorHora")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;If fraAplicaciones.Visible Then&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text8.Text = rs.Fields("IdApp")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text9.Text = rs.Fields("Aplicacion")&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End If&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h3 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;End If&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;End Sub&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Las líneas en rojo son la pregunta que incluyo para que no salga error cuando la tabla este vacía.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;En la Opción de &lt;b&gt;Aplicaciones&lt;/b&gt;&lt;span style=""&gt;  &lt;/span&gt;vamos a hacer lo siguiente: cuando nos coloquemos en el campo &lt;b&gt;Id Aplicación&lt;/b&gt;, que aparezca el teclado y cuando dejemos el campo &lt;b&gt;Aplicación&lt;/b&gt; que desaparezca.&lt;span style=""&gt;  &lt;/span&gt;Para esto vamos a utilizar el evento &lt;b&gt;GotFocus&lt;/b&gt; del control&lt;span style=""&gt;  &lt;/span&gt;&lt;b&gt;Text8&lt;/b&gt; y el evento &lt;b&gt;LostFocus&lt;/b&gt; del control Text9.&lt;span style=""&gt;  &lt;/span&gt;También para que halla uniformidad, convertimos las letras a mayúsculas. Veamos como queda el código:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub Text8_GotFocus()&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Me.SIPVisible = True&lt;span style=""&gt;      &lt;/span&gt;‘Esta instrucción Muestra el teclado del PPC&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;End Sub&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub Text8_LostFocus()&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Text8.Text = UCase(Text8.Text)&lt;span style=""&gt;        &lt;/span&gt;'Convierte a Mayusculas&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h2 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;End Sub&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub Text9_LostFocus()&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Text9.Text = UCase(Text9.Text)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Me.SIPVisible = False&lt;span style=""&gt;    &lt;/span&gt;‘Esta instrucción Oculta el teclado del PPC&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;End Sub&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Muy bien prueben eso... funciona muy bien cierto? Que les parece, un poco de facilidad y automaticidad para el usuario. O.K. para que desaparezca el teclado cuando estemos en &lt;b&gt;Text9&lt;/b&gt;, o sea cuando pedimos el nombre de la aplicación, lo que debemos hacer es presionar la tecla &lt;b&gt;Tab&lt;/b&gt; en el teclado para que el TextBox pierda el Foco y se oculte el teclado.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoBodyText" style=""&gt;&lt;span style="font-size:85%;"&gt;Bueno y ahora para terminar vamos a darle a nuestra pantalla o nuestro frame de Aplicaciones la apariencia de una verdadera ventana de Pocket PC, así como aparecen las ventanas Child en un formulario MDI cuando hacemos programas en VB para el PC.&lt;span style=""&gt;  &lt;/span&gt;Como podemos simular la barra de títulos y la X para cerrar la ventana?&lt;span style=""&gt;  &lt;/span&gt;Bueno van a ver que es MUY SENCILLO.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Esto Lo vamos a hacer con dos controles Label para esto vamos a crear dos controles label y los vamos a colocar en la parte superior del Frame cubriendo el titulo que teníamos. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;El label que vamos a crear para simular la barra de títulos lo vamos a llamar &lt;b&gt;lblTitApp&lt;/b&gt; y sus propiedades son las siguientes :&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LblTitApp.BackColor&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; = &amp;H00FF0000&amp;amp;&lt;span style=""&gt;  &lt;/span&gt;Este es el color Azul de la barra de títulos, ustedes pueden colocar el que deseen&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LblTitApp.Caption&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; = “Aplicaciones”&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LblTitApp.Font&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; = Tahoma,&lt;span style=""&gt;  &lt;/span&gt;Size = 9, Bold = True, Esto es dejamos la misma fuente, pero le colocamos tamaño 9 y en negrita.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LblTitApp.ForeColor&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; = &amp;H00FFFFFF&amp;amp; Este es el color Blanco, o sea, las letras van a ser de color blanco sobre fondo azul.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;LblTitApp.Width&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; = 3255&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;LblTitApp.Height&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; = 255&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Junto a este label vamos a crea otro label con las mismas características que el anterior, a este label lo vamos a llamar &lt;b&gt;lblAppExit&lt;/b&gt;, las propiedades que vamos a cambiar son las siguientes:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;LblAppExit.Alingment&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; = 1 vbRightJustify&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;LblAppExit.Caption&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; = “X”&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LblAppExit.Width&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; = 195&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;De esta manera simulamos la barra de títulos de una ventana y su botón de cerrar. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Ahora vamos a ponerle el código al botón cerrar (X) de la ventana, o sea&lt;span style=""&gt;  &lt;/span&gt;al label &lt;b&gt;lblAppExit&lt;/b&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Private Sub lblAppExit_Click()&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;rs.Close&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;fraAplicaciones.Visible = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt;Me.SIPVisible = False&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;h2 style=""&gt;&lt;span lang="EN-GB"&gt;&lt;span style="font-size:85%;"&gt;End Sub&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-GB"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Nuestra pantalla de diseño se vera de esta manera:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;img style="" alt="" src="http://www.programacion.com/blogs/72_vbcodigopocketpc/get/Entrega10-04.jpg" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Y nuestra aplicación se vera de esta manera en el PPC cuando escojamos la opción de Aplicaciones:&lt;/span&gt;&lt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11471302-4610197771519141015?l=vbcodigopocketpc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcodigopocketpc.blogspot.com/feeds/4610197771519141015/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11471302&amp;postID=4610197771519141015' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4610197771519141015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11471302/posts/default/4610197771519141015'/><link rel='alternate' type='text/html' href='http://vbcodigopocketpc.blogspot.com/2007/09/tutor-embedded-visual-basic-capitulo-10.html' title='Tutor Embedded Visual Basic - Capitulo 10'/><author><name>Roberto Alvarado</name><uri>http://www.blogger.com/profile/17867270464540705556</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://3.bp.blogspot.com/_SSzr2Hx_9CQ/THxGEiDm4fI/AAAAAAAACPk/n16fJ4G1vM4/S220/Barcamp2010-201008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11471302.post-5208841019248514816</id><published>2007-09-05T21:35:00.000-05:00</published><updated>2007-09-05T21:36:09.603-05:00</updated><title type='text'>Tutor Embedded Visual Basic - Capitulo 9</title><content type='html'>&lt;h2 align="right"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:100%;"&gt;&lt;em&gt;Por: Roberto Alvarado&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:100%;"&gt;Capitulo 9&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;En este capitulo vamos a terminar la captura de los datos de la opción Aplicaciones. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Para empezar vamos a modificar la sección del menú en donde escogemos un nuevo registro para configurar la pantalla y los campos de &lt;b&gt;Aplicaciones, &lt;/b&gt;vamos a agregar el siguiente fragmento de código : &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="EN-US"&gt;If fraAplicaciones.Visible Then &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text8.Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text8.Text = "" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;Text9.Text = "" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;End If &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;En la opción de Grabar, agregamos el código correspondiente a la Tabla Aplicaciones y modificamos algo el código anterior, a continuación mostramos el código para esta opción: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;If fraClientes.Visible Then &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("IdCliente") = Text1.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Nombre") = Text2.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Direccion") = Text3.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Telefonos") = Text4.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Celular") = Text5.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Fax") = Text6.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("ValorHora") = Text7.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;If fraAplicaciones.Visible Then &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("IdApp") = Text8.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Fields("Aplicacion") = Text9.Text &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-indent: 36pt;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Rs.Update &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Note que el Update lo colocamos al final y colocamos dentro de una instrucción &lt;b&gt;if&lt;/b&gt; los datos para clientes y los datos para las Aplicaciones. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Vamos a trasladar la instanciación del objeto recordset rs al evento Load de la forma, lo eliminamos de la opción Nuevo de Clientes y lo colocamos en el evento Load de la forma . Entonces el código para los menús de Clientes y Aplicaciones quedaría de la siguiente manera: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "mnuTabClientes" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;'CLIENTES &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Top = 0 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Left = 30 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraClientes.Visible = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarMenu mnuAccion &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;'Abro el recordset &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;rs.Open "Clientes", cnn, adOpenDynamic, adLockOptimistic &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Case "mnuTabApp" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;'APLICACIONES &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.Top = 0 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.Left = 30 &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;fraAplicaciones.Visible = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;ActivarMenu mnuAccion &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;'Abro el recordset con la tabla Aplicaciones &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.Open "Aplicaciones", cnn, adOpenDynamic, adLockOptimistic &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Muy bien... ha llegado la hora de colocarle código a los botones de navegación que tenemos, entonces nos vamos al procedimiento &lt;b&gt;MenuBar1_ButtonClick&lt;/b&gt; y colocamos el siguiente código: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Private Sub MenuBar1_ButtonClick(ByVal Button As MenuBarLib.MenuBarButton) &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;Select Case Button.Key &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnInicio" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.MoveFirst &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnPrevio" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.MovePrevious &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;If rs.BOF Then &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveFirst &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;MsgBox "Es el PRIMER Registro", vbApplicationModal + vbOKOnly, "Consultando..." &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;End If &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnSigte" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.MoveNext &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;If rs.EOF Then &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;rs.MoveLast &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;                &lt;/span&gt;MsgBox "Es el ULTIMO Registro", vbApplicationModal + vbOKOnly, "Consultando..." &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;End If &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;Case "btnFin" &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;rs.MoveLast &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Select &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;MuestraRegistros &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;End Sub &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Para poder acceder a este evento del control MenuBar, nos colocamos en el evento MenuClick del control y en la parte superior derecha de la ventana de edición, en donde aparece el nombre del evento que estamos editando, hacemos clic sobre la flecha que aparece en la parte derecha del nombre del evento, y de la lista que aparece escogemos el evento ButtonClick. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Con este código si presionamos el botón Primero nos colocamos en el primer registro del recordset, si lo hacemos en el botón anterior, nos movemos un registro atrás, si presionamos siguiente, nos desplazamos al siguiente registro y si le decimos ultimo, nos vamos al ultimo registro del recordet.&lt;span style=""&gt;  &lt;/span&gt;Cada vez que nos movamos vamos actualizando los datos en la pantalla dependiendo de que opción tengamos escogida. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Muy bien debemos tener cuidado cuando estemos editando o creando un nuevo registro para desactivar los botones, ya que si los dejamos activos en estos momentos podemos tener errores al momento de guardar la información. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Vamos a crear dos procedimientos, uno para desactivar los botones y otro para activarlos nuevamente, aquí esta el código de estos dos procedimientos: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Sub DesactivoNavega() &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(4).Enabled = False &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(5).Enabled = False &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(6).Enabled = False &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(7).Enabled = False &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;End Sub &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Sub ActivoNavega() &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(4).Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(5).Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(6).Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;MenuBar1.Controls.Item(7).Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;End Sub &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;El procedimiento &lt;b&gt;DesactivoNavega&lt;/b&gt; lo vamos a utilizar en la opción &lt;b&gt;Nuevo&lt;/b&gt; y &lt;b&gt;Editar&lt;/b&gt;, el procedimiento &lt;b&gt;ActivoNavega&lt;/b&gt; lo vamos a utilizar en las opciones &lt;b&gt;Guardar&lt;/b&gt; y &lt;b&gt;Cancelar&lt;/b&gt; del menú. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Si ya han probado la opción Cancelar del menú &lt;b&gt;Acción&lt;/b&gt;, se habrán dado cuenta que esta mal cuando retorna el menú, el error se soluciona colocando estas líneas de la siguiente forma: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;mnuAccion.Items("mnuCerrar").Enabled = True &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;mnuAccion.Items("mnuCancelar").Enabled = False &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Coloquemos este procedimiento: &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Private Sub Text8_LostFocus() &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;Text8.Text = UCase(Text8.Text) &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1&gt;&lt;span style="font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;End Sub &lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;Con esto convertimos a mayúsculas cuando el textbox pierda el foco. Así estamos seguro que el Id de la aplicación siempre va a estar en mayúscula. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;Ahora hagamos la opción de borrado para estas dos opciones que están activas en este momento. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Case "mnuborrar" &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;'BORRAR &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;Dim Resp&lt;span style=""&gt;        &lt;/span&gt;As Long &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;Resp = MsgBox("Esta seguro de ELiminar este registro?", vbApplicationModal + vbCritical + vbYesNo, "Eliminando Registros...") &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;If Resp = vbYes Then &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.Delete &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;rs.MoveFirst &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;MuestraRegistro &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1&gt;&lt;span style="font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;Ese seria el código para borrar registros de la tabla.&lt;span style=""&gt;  &lt;/span&gt;La misma rutina nos sirve para todas las tablas, dependiendo de la complejidad de su aplicación así será de compleja su rutina de borrado. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;La rutina &lt;b&gt;MuestraRegistro&lt;/b&gt; será esta: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="ES-MX"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;Sub MuestraRegistro() &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;If fraClientes.Visible Then &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;Text1.Text = rs.Fields("IdCliente") &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt
