viernes, 23 de abril de 2010
Del infinito al mas alla!!!
martes, 6 de abril de 2010
Lanzamiento Visual Studio 2010
Si eres desarrollador, y utilizas Visual Studio, estarás muy contento de que por fin tendremos el Visual Studio 2010.
Microsoft, anunció que el lanzamiento en México es el 22 de Abril. Sin embargo, para las comunidades de México, lo tendremos un poco antes!!!!., así que si no te quieres perder este gran evento, consulta tu ciudad mas cercana y registrate a este evento.... (clic aqui para ver el mapa)
Lo mejor es que es el evento estará en la Ciudad de Chilpancingo!!!!
(Registrate en la página de la comunidad!!)
¿Quieres más?, pues bien, puedes participar, en lo que mas te gusta... "Desarrollar", en el concurso "Tu vida en código", en el cual puedes ganar una Lenovo Think Pad W700ds de doble pantalla, consulta las bases!!!
martes, 2 de marzo de 2010
Impresión en .NET
- Código (archivo1 y archivo 2) donde encontrarán las demos que hice en la plática (algunas ya mejoradas, jeje).
- Presentación de Power Point donde encontrarán la presentación, así como los link's a los recursos para poder imprimir (incluye link a Reporting Services).

miércoles, 6 de enero de 2010
Windows 7 'God Mode'
- Crear una carpeta y llamarla asi:
'GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}'
Cambiará su icono, y se verá mas o menos así (como si fuera otra particion):
Como puedes ver, están todos los tipos de controles para hacer y deshacer configuraciones, servicios y tareas en un sólo lugar.
Por último... gracias a Ina Fried por este descubrimiento...
sábado, 21 de noviembre de 2009
C# desde cero - Primera Sesion para Descargar
http://cid-c4b2574a51c8f3c2.skydrive.live.com/browse.aspx/Curso%20C%5E3%20desde%20cero?lc=2058
En cada sesión subiré el video y la presentacion en formato Power Point, así como los códigos fuentes de los ejemplos que vayamos haciendo...
Nota: Estaré subiendo a esa misma carpeta, las demas sesiones del curso, conforme vayamos avanzando..
Y recuerden que si aun no se han inscrito, pueden mandar un correo a 'soporte@dotnetguerrero.net' con el Asunto: 'inscripcion al curso C# online', y en el cuerpo del mensaje su nombre y su lugar de residencia, aun estan a tiempo, solo hemos hecho 1 de las 14 sesiones que dura el curso.
viernes, 13 de noviembre de 2009
Curso de 'C# desde cero' online
Nuestro primer gran evento es este Curso de 'C# desde cero', y les explico como va la cosa...
Cuando andamos queriendo aprender a programar, buscamos siempre una plataforma, o buscamos la mejor, y la que mejor nos convenga y convenza, si tu eres de los que quiere hacer programas, pero se encuentra con... qué sigue aquí?, cómo hago esto?, o bien vienes de una tecnología como Java, pues a veces no encuentras cómo funcionan las cosas con .NET.
Este curso servirá para aprender .NET de una manera algo nativa.. con C#, en este curso trataremos de enseñar cómo funciona .NET, así como las operaciones básicas que se pueden hacer en C#, al estilo de C++ y de Java.
Esto quiere decir que veremos estruturas, arreglos, ciclos, clases y objetos, sobrecarga, herencia, polimorfismo, etc., casi todo aquello que te enseñan en la universidad, pero con C++ (en mi caso Borland c++), pues vamos a ver todo eso pero con C#.
Esto es un punto de partida, despues estarás interesados en aprender mas... ADO.NET, ASP.NET, WinForms, WCF, WPF, etc., y claro que estaremos ahí para llevarte junto con otras comunidades, el mejor contenido de aprendizaje.
Sin más les digo que pueden registrarse online, enviando un correo a 'soporte@dotnetguerrero.net' con su nombre y su lugar de residencia, y nosotros le enviaremos los datos para poder acceder a este curso.
El curso iniciará el 17 de Noviembre a las 17:00 hrs. (-6 GTM hora de México), se impartirán los días Martes y Jueves con 14 sesiones, a lo largo de 7 semanas, cada sesión durará 1 hora y media aproximadamente.
miércoles, 28 de octubre de 2009
El error del IVA en programas de computo
Bueno, y se preguntarán, a qué viene al caso en un blog de programación...
Pues bien, publico esto porque recientemente nuestros queridos representantes políticos (estoy siendo sarcástico) estan por aprobar una ley de ingresos en México, que entre otras cosas pretende aumentar el porcentaje del 15, al 16% del IVA (y 3% al sector comunicaciones, etc.), aun en estos momentos, no se aprueba dicha ley, pero no se van a tardar mucho (creo yo).
En fin, el contenido total y los detalles específicos no estarán a discusión en este post.
El punto es que muchos programas de cómputo circulando por el país (puntos de ventas para abarrotes, centros comerciales, zapaterías, boutique's, ferreterías, farmacias, así como sistemas para restaurants, hoteles, bares, discotecas, etc., etc.) deben haber implementado un sistema que considerara los productos o servicios que graban iva (la gran mayoría), para poder determinar en una factura, cuáles productos son lo que se les aplica el iva y por qué cantidad.
He aqui el problema, si tu como yo, hiciste por ejemplo un pequeño 'sistemita', de punto de venta o similar, aplicaste invariablemente el cálculo de dicho impuesto, la pregunta aquí es... ¿Cómo?
Podría ser que en el producto o servicio hayas puesto un campo 'IVA' de tipo boleano, especificando si el producto graba o no el IVA, o si tal vez pusiste un campo 'ValorIVA', donde especificaste el porcentaje del IVA (en la gran mayoría llevaría 15, por su puesto), o si simplemente omitiste el punto.
De cualquier manera tengo 2 noticias:
1. Tendrás que actualizar el sistema si es que se aprueba dicha ley, modificando el código para aquellos que pensaron que nunca pasaría eso jeje (como el error del milenio, no creyeron que algunas computadoras llegaran al 2000), o bien, si pensaste acertadamente, solo tendras que cambiar algun archivo de configuracion (o cualquier forma dinpamica de hacerlo sin tocar el código fuente) sin tener que compilar y distribuir nuevamente el software.
2. Noticias buenas para los desarrolladores, y es que la gran mayoría cobrarán por dicha modificación a las organizaciones cliente que fueron las que compraron el sistema, o ya sea que tengan algun convenio o contrato, pues lo harán conforme lo establecido, pero la gran mayoría, les aseguro que costará un dinero mas a los bolsillos de empresarios (que al final, decae en los costos a los consumidores finales, como yo, jeje).
Espero y esto sirva para que de ahora en adelante, siempre pensemos en cambio..., en la mágina frase.. que pasaría si... (les aseguro que aplicando dicho cuestionamiento a cada módulo de su sistema, podrán obtener una mas clara vision y poder así preparar a su software para el futuro)
Me despido, dejando algunos links de interes:
Ley del Impuesto al IVA Vigente
Leyes Federales Vigentes
Noticias: Aprobacion de Ley de Ingresos en la Camara de Diputados
domingo, 18 de octubre de 2009
Qué es Windows Server 2008 Foundation
Con esta frase quiero iniciar este post para dar a conocer (si es que aun no se habían enterado) de una propuesta de Microsoft, junto con otras compañías fabricantes, para ofertar inovación tecnológica a la Pequeña y Mediana Empresa (PYME) a un bajo costo (comparado con otras versiones) su Sistema Operativo de Servidor... Me enteré de esto gracias a un evento que realizó una importante empresa de venta de equipo de cómputo aquí en mi ciudad Chilpancingo, Gro., MEX, ya que en una conferencia del equipo de HP (del cual escuché la frase del pincipio) presentaron sus servidores (también baratos) y dieron a conocer este SO...
Windows Server 2008 Foundation 2008 R2
Este Sistema Operativo esta pensado para las PYME's y sólo está disponible en algunos países (inicialmente 40, incluyendo a México por supuesto) y su costo es realmente bajo. El objetivo primordial es llegar a esas empresas pequeñas que necesiten una solución viable a sus necesidades a un bajo costo, y por supuesto sin perder la funcionalidad de un SO de Servidor, claro está que tiene algunas restricciones, entre las que destacan:
- Sólo esta disponible a través de los fabricantes de equipos originales (OEM), esto quiere decir, que sólo en ciertas marcas de servidores:
- El SO soporta únicamente 1 sólo procesador.
- Unicamente trabaja con procesadores de 64 bits.
- No soporta Virtualización.
- Tiene un límite máximo de 15 cuentas de usuario.
- Sólamente puede conectarse en la raíz del dominio y no para crear dominios secundarios.
- El dominio no puede tener relaciones de confianza con otro dominio.
Para más información, les paso la página oficial de Windows Server 2008 Foundation:
http://www.microsoft.com/windowsserver2008/en/us/foundation-es-ww.aspx
Ah y no sin antes hacer el comercial, jeje... Existen en stock varios servidores HP con este SO, por si alguien quiere comprobar el precio... no dude en contactarme: kyoriorochi@hotmail.com (hay facturacion, todo es legal!, es aquí en Guerrero..), de cualquier manera, espero y este post les sirva para conocer que hay opciones, y que hay que aprovechar cuando hay crisis, es una oportunidad, así hay que verlo...
miércoles, 30 de septiembre de 2009
El 7 de Octubre comienza.. LA NUEVA EFICIENCIA...

Licencias Microsoft gratis para desarrollo
Microsoft venía ofreciendo soporte desde hace ya algun tiempo a pequeñas empresas (o emprendedores) a quienes se les conoce como 'StartUp' de manera gratuita durante algun tiempo a través del programa --BizPark--, el cual ya había posteado sobre el en mi blog 'donde y como aprendo .net'.
Sin embargo, ahora Microsoft le da mas realce, al anuciarlo como 'Un programa que provee Software, Soporte y Visibilidad para Emprendedores de Software', y también al promoverlo con licencias gratuitas para desarrollo.
Cabe destacar que este programa es para desarrolladores independientes o empresas pequeñas que se dediquen al desarrollo, pues el programa ofrece de manera gratuita las siguientes licencias:
- Todo el software incluido es equivalente a un Microsoft® Visual Studio® Team System Team Suite (VSTS) con suscripción a MSDN® Premium. Además, VSTS Team Foundation Server (Standard Edition) está disponible para ser utilizado por todo el equipo de desarrollo.
- Expression® Studio Versión 2
- Los derechos de uso de producción para hospedar una solución “Software-plus-Services” (desarrollada durante la participación en el programa BizSpark en cualquier plataforma) en Internet, en relación a las versiones más recientes de productos de Microsoft, incluidos:
- Microsoft Windows Server® (todas las ediciones hasta Enterprise, inclusive)
- Microsoft SQL Server® (todas las ediciones)
- Microsoft Office SharePoint® Portal Server
- Microsoft BizTalk® Server
- Microsoft System Center para la administración de operaciones del servidor de hosting.
- Además de las ofertas de programas principales, las Startups de BizSpark pueden reunir las condiciones para otras ofertas de Microsoft, como Virtual Earth
Las Startups también pueden trabajar con un Hosting Partner de BizSpark para ofrecer su solución Software-plus-Services usando los productos de servidores de Microsoft más recientes. Para obtener los detalles específicos sobre las ofertas de tecnología y los escenarios de hosting, consulte el Manual del programa Microsoft BizSpark para Startups (apéndice A y apéndice B).
Los requisitos:
- Haber participado activamente en el desarrollo de un producto o servicio basado en un software que constituirá un elemento principal de su actual o futuro negocio.
- Ser de propiedad privada.
- Estar en el negocio menos de 3 años en el momento de la inscripción.
- Tener menos de US $1 millón en ingresos anuales.
Así que ni hablar, no hay que perder esta oportunidad que ofrece Microsoft, aquí el sitio de Microsoft Bizpark. No sin antes mencionarles, que si desean soporte para insfraestructura, existe el programa ITPro-Momentum, que se dedica a ofertar licencias a programas pilotos, tales como Windows Server, Hyper-V, SQL Server, Windows 7, Dynamic CRM, etc.
martes, 29 de septiembre de 2009
DotNetGuerrero.. Creando una nueva comunidad de .NET
Con el unico objetivo de dar a conocer las tecnologías que microsoft nos pone a disposicion para realizar diversas tareas como la de programar, diseñar, modelar, etc. y también para compartir los conocimientos con los demás, nace para todos una nueva comunidad de .net para los guerrerenses...
DotNetGuerrero.net es la nueva comunidad de desarrolladores en el estado de guerrero, México, que pretende enseñar a las personas que deseen aprender y compartir conocimientos de tecnologías microsoft, tales como .Net Framework y sus lenguajes, VB.NET, C#, etc., así como SQL Server, Silverlight, Expression, Windows Server, etc., etc.
Esta comunidad de desarrollo .NET es fundada por un grupo de alumnos egresados del ITCH, con el fin de compartir sus conocimientos con los estudiantes y profesionales allegados a tecnologías Microsoft.
Muy pronto tendremos eventos en el ITCH, UAG y demás universidades de Chilpancingo Guerrero, para mantenerte en contacto, no dudes en visitar la página, ahí encontraras los eventos y recursos que compartimos con gusto con todos.
No sin antes agradecer a Miguel Muñoz, MVP de la comunidad .NET de Puebla, quien nos ha brindado todo el apoyo, así como también a todos los que de una u otra manera harán que este proyecto sea una realidad, espero por el bien del software y de esta comunidad un guerrerense (un tanto olvidada) que este sea un buen proyecto.
Nota: estaremos actualizando constantemente nuestra página, sean pacientes por favor, jeje.
lunes, 31 de agosto de 2009
Quiero hacer un videojuego...
Es un lenguaje visual de programación hecho específicamente para creadores de juegos. Está diseñado para ser accesibles para niños y 'disfrutable' para cualquiera. El entorno de programación corre en XBox.
Características:
- Lenguaje de alto nivel que incorpora características de tiempo real: colisión, color, visión.
- Utiliza el control del Xbox360 para la entrada (no requiere teclado)
- Corre en Xbox 360 y PC.
- Editor de terreno interactivo.
- Constructor de caminos y puentes.
- Editor de terreno: crea mundo de forma y tamaño arbitrario.
- 20 personajes diferentes con capacidades diferentes.
Es un software educativo que enseña a los estudiantes programación en un entorno 3D. Alice es un innovador entorno de programación 3D que hace fácil crear una animación para contar una historia, jugando un juego interactivo, o un video para compartir en la web. Alice es una herramienta de enseñanza para el cálculo de introducción. Utiliza gráficos en 3D y un 'arrastrar y soltar' para facilitar una experiencia en programación en primer lugar y que sea más atractiva y menos frustrante.
Scratch es un nuevo lenguaje de programación que hace fácil crear tus propias historias interactivas, animaciones, juegos, música y arte - y compartir sus creaciones en la web. Scratch está diseñado para ayudar a los jóvenes (de 8 años en adelante) a desarrollar habilidades de aprendizaje del siglo 21. A medida que crean y comparten proyectos de Scratch, los jóvenes aprenden importantes ideas matemáticas y computacionales, mientras que también aprenden a pensar creativamente, razonar de forma sistemática, y trabajar en colaboración.
También es un software educativo, cuyo objetivo es facilitar el uso de sistemas de simulacion para la creacion de multimedia.
Es la próxima generación de software de modelado y simulación. Si bien esta versión se mantiene fiel a la premisa de StarLogo como una herramienta para crear y entender las simulaciones de sistemas complejos, también trae consigo varios avances
domingo, 16 de agosto de 2009
Gana un XBOX 360 con Duelo de Maestros IT

sábado, 15 de agosto de 2009
Mi experiencia en Windows 7
Desde su lanzamiento, y gracias a la subscripción technet plus que tengo, descargué la versión RTM de Windows 7, ya que soy 'early adopter', pero tengo que confesar que no toque la Beta, por cuestiones de tiempo, sin embargo ahora instalado y todo ya trabajo en Windows 7 RTM y aquí mi escasa experiencia es estos días.....Si desean saber las cosas 'nuevas' y cómo se ve el Windows 7, ps al menos mi experiencia como usuario la calificaría como 'satisfactoria', después de que no me gustó mucho el Windows Vista (mas que nada por su lentitud), el Windows 7 es mas rápido que su antecesor, también (y es obvio) que en cuanto más cosas tengas activadas, pues menor será el rendimiento de tu S.O.
Lo que me gustó:
- Además de interfaces Ribbon para aplicaciones como WordPad y Paint:

Además de que existe el llamado 'Modo Windows XP' (XP Mode) incluído para compatibilidad con aplicaciones antiguas y además facilitar la migración a Windows 7.
Lo malo....
Tiene que haber algo malo chicos!!!!, jaja, bueno los peros que yo le encontré es en cuanto a dispositivos se refiere, la verdad con la multifuncional Lexmark si pude descargar el controlador para imprimir, pero aun no puedo escanear, jeje, bueno seguiré intentando..., lo otro, pues es que cuando la prendo no se conecta automáticamente con internet, supongo que por problemas de IP, lo que se resuelve con 'Troubleshoot problems' del 'Network and Sharing Center', cosa que también sirve como lo esperaba, sin tanta espera y sin tanto rollo.
En general, lo puedo calificar como 'bueno y aceptable', lo estoy corriendo en una máquina x64 con 1024 GB RAM y un Intel Core 2 Duo, y tengo instalados: Office Ultimate 2007, Visual Studio 2008 SP1, SQL Server 2008 EE, Microsoft Expression 3 y algunas otras cosillas más, y me va de maravilla, no se tarda mucho en prender (como el vista) y su asistente para detectar problemas y advertencias, llamado 'Action Center' (el cual ya había probado en Windows Server 2008 RC), si me funciona para lo que fue creado.
jueves, 6 de agosto de 2009
Windows 7 RTM disponible
Windows 7 RTM ya está disponible para subscriptores MSDN en este link:
http://msdn.microsoft.com/es-mx/subscriptions/default.aspx
y para Profesionales de TI suscritos de TechNet, el siguiente link:
https://technet.microsoft.com/es-mx/subscriptions/default.aspx
Que esperas!!!, descargalo y pruebalo...
lunes, 27 de julio de 2009
Métodos de Extensión en Visual Studio 2008
Un ejemplo común en la escuela es el clásico... 'De un arreglo de números enteros, decir cuáles son pares', y es típico que tenemos que hacer una función que me diga si es par o no, y mandar a llamar en un ciclo que recorra número por número...
Y me cuestionaba si se podía hacer algo como:
int[10] arrayNumeros;
arrayNumeros[0] = 4;
...
arrayNumeros[9]=62;
int[] arrayPares = arrayNumeros.Pares();
Quería hacer lo que está en color azul, que mandara a llamar a una función Pares y me regresara todos los pares en la función 'Pares', sin que tuviera que llamarla así:
int[] arrayPares = Pares(arrayNumeros);
Lo primero que se me vino a la cabeza es utilizar la Herencia, pero imagínense heredar de una clase solo para poder implementar un método.
Pues bien, la respuesta es que sí se puede hacer sin herencia en Visual Studio 2008 (con cualquiera de los lenguajes .NET, como C# o VB.NET), y el nombre de esta característica es 'Métodos de Extensión'.
Los métodos de extensión, son, como su nombre lo indica, métodos que se agregan a los tipos existentes en el .NET Framework o cualquiera que nosotros hayamos creado con cualquier lenguaje .NET, SIN NECESIDAD de hacer uso de la herencia para poder 'añadirle' alguna función o procedimiento (estos métodos se manejan de manera especial, pero se invocan como si se tratase de un método propio del tipo al que extendemos).
Lo explicaré utilizando el lenguaje C# (para mejor similitud con el añejo C++)
Primero, se define una clase estática donde estarán todas los métodos 'agregados' o extendidos, sin anidar esta clase con alguna otra.
por ejemplo:
namespace PruebaPares{
public static class Extensiones{
}
}
Después, se define el método o función que 'extienda' al tipo de: 'arreglos de enteros' (en nuestro caso), para esto el método también tiene que ser estático (Shared en VB.NET) y el primer parámetro debe ser el tipo del que se va a extender, en nuestro caso será un arreglo de enteros ( int[] ):
namespace PruebaPares{
public static class Extensiones{
public static int[] Pares(this int[] arreglo){
}
}
}
Observe que el tipo que devuelve es un arreglo de enteros con los resultados, es decir, con los números que son pares.
Voy a implementar este método utilizando LINQ, una tecnología, la cual merece un post (varios diría yo..) aparte:
namespace PruebaPares{
public static class Extensiones{
public static int[] Pares(this int[] arreglo){
IEnumerable
where (p % 2) == 0
select p;
return resul.ToArray
}
}
Lo que hace esa consulta en LINQ es recorrer el arreglo y buscar los elementos que cumplen la condición en la cláusula 'WHERE', para quienes conozcan algo de SQL, verán esta sintaxis muy parecida. Bueno, después que filtra los resultados, lo convertimos en un arreglo de enteros y lo retornamos, así pues, un ejemplo para utilizar este método, y llamarlo de manera 'decente' sería así:
class Program
{
static void Main(string[] args){
int[] arrayEnteros = new int[]{2,3,4,5,7,8,9};
Console.WriteLine("Numeros pares");
foreach (int x in arrayEnteros.Pares()) {
System.Console.WriteLine("Numero :" + x);
}
System.Console.ReadLine();
}
}
jueves, 9 de julio de 2009
Aprende a Programar con Small Basic
miércoles, 1 de julio de 2009
Seis errores comunes en entrevistas con los clientes
- "Necesito un sistema que...."
- "Quiero una página que maneje...."
- "Quiero imprimir directamente..."
- "Quiero tener un inventario de...."
- "Necesito controlar a...."
- "Y.. como cuánto me costará?..."
sábado, 27 de junio de 2009
Operaciones Básicas sobre datos con ADO.NET 2.0 Parte III de III
- DbConnection: Representa una conexión a una fuente (o base) de datos.
- DbCommand: Representa un procedimiento almacenado en la base de datos o una instrucción SQL.
- DbDataAdapter: Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar un System.Data.DataSet y actualizar una base de datos.
Dim sqlConexion As New SqlClient.SqlConnection("Data Source=localhost\SQLEXPRESS;Initial Catalog=alumnos;Integrated Security=True")
'Creamos el adaptador de datos que nos servir para realizar las operaciones
'a la base de datos, utilizando algunos comandos, le pasamos como parámetro la sentencia
'SQL para seleccionar todos los registros y la conexión que se utilizar
Dim sqlAdaptador As New SqlClient.SqlDataAdapter("SELECT idAlumno, nombre, telefono, fechaNac FROM alumnos", sqlConexion)
'Podemos establecer las demás operaciones con los datos a través de las propiedades:
'InsertCommand (de tipo SqlCommand) que nos sirve para Agregar registros a la BD
sqlAdaptador.InsertCommand = New SqlClient.SqlCommand("INSERT INTO alumnos VALUES (nombre=@nombre, telefono=@telefono, fechaNac=@fechaNac)")
'Agregamos los parámetros, para evitar inyecciones sobre las sentencias SQL
'Como observación: (los parámetros en SQLServer y Access se escriben con la '@' al inicio)
'y por ejemplo en MySQL deben empezar con el smbolo '?'
sqlAdaptador.InsertCommand.Parameters.Add("@nombre", SqlDbType.NVarChar, 35)
sqlAdaptador.InsertCommand.Parameters.Add("@telefono", SqlDbType.VarChar, 12)
sqlAdaptador.InsertCommand.Parameters.Add("@fechaNac", SqlDbType.DateTime)
sqlAdaptador.UpdateCommand = New SqlClient.SqlCommand("UPDATE alumnos SET (nombre=@nombre, telefono=@telefono, fechaNac=@fechaNac) WHERE idAlumno=@idAlumno")
'Agregamos los parámetros, para evitar inyecciones sobre las sentencias SQL
sqlAdaptador.UpdateCommand.Parameters.Add("@nombre", SqlDbType.NVarChar, 35)
sqlAdaptador.UpdateCommand.Parameters.Add("@telefono", SqlDbType.VarChar, 12)
sqlAdaptador.UpdateCommand.Parameters.Add("@fechaNac", SqlDbType.DateTime)
sqlAdaptador.UpdateCommand.Parameters.Add("@idAlumno", SqlDbType.Int)
sqlAdaptador.DeleteCommand = New SqlClient.SqlCommand("DELETE FROM alumnos WHERE idAlumno=@idAlumno")
sqlAdaptador.DeleteCommand.Parameters.Add("@idAlumno", SqlDbType.Int)
'ahora ya tenemos nuestro adaptador listo para utilizarse con los mtodos, Fill y Update
sqlAdaptador.Fill(alumnosDS)
'podemos hacer las operaciones pertinentes sobre los datos en el DataSet 'alumnosds', va el post 2
'finalmente actualizamos esos cambios en la base de datos con un solo método que se encarga de hacer
'las operaciones necesarias (insertar, actualizar o eliminar)
sqlAdaptador.Update(alumnosDS)
lunes, 15 de junio de 2009
Operaciones Básicas sobre datos con ADO.NET 2.0 Parte II de III
.NET ofrece un conjunto de clases que nos sirven para crear objetos que nos permitan llenar los datos provenientes de un origen de datos (un servidor de base de datos o un archivo de bd, como Access, SQL Server, Oracle, MySQL, etc.), leer estos datos (y poder presentárselos al usuario), actualizar estos datos (añadiendo nuevos registros, borrando y modificando algunos otros, y regresar los datos al origen para que se actualicen todos estos cambios. Las clases mas importantes y significativas pertenecen al espacio de nombres System.Data, y son las siguientes:
DataSet: Es la clase mas importante en el entorno de ADO.NET 2.0, contiene una representación de los datos en memoria, en él se almacenan tablas (y éstos a su vez registros) y las relaciones que hay entre ellas. Los objetos 'DataSet' son utilizados independientemente del manejador de base de datos, es decir NO son exclusivos de SQL Server, por ejemplo, ni de ningun otro manejador, así también lo podemos utilizar sin necesidad de un proveedor. Podríamos definir al DataSet, como una copia de los datos que han sido consultados en un proveedor de datos.
Esta clase DataSet, la podemos utilizar para crear conjuntos de datos con una estructura previamente definida, como si fuera una base de datos, con tipos de datos tipados, relaciones entre tablas, etc, mediante la herencia, a este tipo de clases se le conoce como DataSet tipados.
Ejemplo:
'objeto DataSet 'genérico'
Dim alumnosDS as DataSet = new DataSet()
'objeto DataSet 'tipado' (la clase AlumnoDS hereda de DataSet) con tipos predefinidos
Dim alumnosDS as AlumnoDS = new AlumnoDS()
DataTable: Esta clase representa a una Tabla en memoria, para que podamos hacer operaciones con ella y sus datos, y, siempre está contenida dentro de un DataSet, con ninguna o con otras tablas.
Ejemplo:
'En este caso, hemos declarado una tabla 'genérica', es decir, puede contener
'cualquier tipo de datos cuando se crea.
Dim tablaAlumnos as DataTable = new DataTable()
'Añadimos mediante código sus columnas...
tablaAlumnos.Columns.Add("nombre",GetType(String))
tablaAlumnos.Columns.Add("telefono",GetType(String))
tablaAlumnos.Columns.Add("fechaNac",GetType(DateTime))
'Nota: cuando se crea una tabla a partir de un dataset tipado, no es necesario (ni
'recomendable, a menos que sea muy necesario) agregar, eliminar y modificar sus columnas,
'ya que puede haber problemas si es que intentamos actualizar en un origen de datos.
DataRow: Representa un registro en memoria, y comúnmente la utilizamos cuando queremos obtener un registro de una tabla, o cuando ingresamos uno nuevo.
Ejemplo:
'Con esta instrucción, la tabla 'crea' un nuevo registro según su estructura
Dim nuevoReg as DataRow = tablaAlumnos.NewRow()
'una vez creado, podemos asignarle los valores que el usuario introdujo (por ejemplo)
nuevoReg("nombre") = "Su nombre"
nuevoReg("telefono") = "XXXX"
nuevoReg("fechaNac") = new DateTime(1990,1,1)
'y luego lo introducimos a su tabla que lo creo
tablaAlumnos.Rows.Add(nuevoReg)
Nota: ya que estamos tratando con el modelo 'desconectado', debemos tener en cuenta que los datos no están actualizados al 100% con el proveedor de datos, es decir no son persistentes.