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
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.
miércoles, 10 de junio de 2009
Operaciones Básicas sobre datos con ADO.NET 2.0 Parte I de III
Este post, se refiere a las operaciones con los datos dentro de una base de datos, un repositorio muy común, y la manera es algo distinta cuando se trata de otros repositorios, como archivos de texto, xml, etc.
Bien, las operaciones sobre una base de datos consiste en el acrónimo 'CRUD' (en inglés Create, Read, Update and Delete), que es lo mismo que Crear o Insertar, Leer, Actualizar y Eliminar los datos, vamos a hacer estas operaciones en ADO.NET 2.0 (ADO [Access Data Object]: Acceso a Datos) con Visual Studio 2005, pero es válido para Visual Studio 2008.
Antes de empezar a explicar el acceso a datos, tengo que mencionar que para entender más un poquito de esto, asumo que tienen conocimientos sobre bases de datos, creación de tablas, relaciones y consultas, ya que el objetivo de este post es sobre el acceso a los datos, y no sobre la creación de ellos, espero poner un post sobre bases de datos.
Existen 2 maneras de conectarse a la base de datos para hacer las operaciones sobre alguna tabla:
- Modo conectado: consiste en tener una conexión abierta siempre al servidor de BD, y de ahí estar leyendo los datos para mostrarlos al usuario. Esta forma tiene sus ventajas, los datos están actualizados siempre, mejor manejo de concurrencia, etc. Se utiliza cuando se desea mantener siempre los datos mas recientes en el cliente.
- Modo desconectado: consiste en hacer las operaciones con los datos cada vez que el cliente lo necesita. Sus ventajas son que sólo ocupamos conexiones y el ancho de banda cada vez que necesitemos hacer una consulta sobre la base de datos, y de ahí trabajamos con una copia local de los datos en nuestro sistema, podemos desconectarnos del servidor temporalmente y modificar los datos y así cuando necesitemos actualizarlos, volvemos a hacer las consultas pertinentes en la base de datos.
Bien, las operaciones sobre la base de datos como sabrán son:
- Select, para hacer una consulta de los datos.
- Insert, para Ingresar los registros en una tabla base de datos.
- Update, para Actualizar los registos en la tabla.
- Delete, para Borrar los registros en la tabla.
Éstas son las operaciones 'CRUD' en una base de datos.
martes, 2 de junio de 2009
Una nueva forma de aprender .NET y obtener beneficios por ello
Este programa te va llevando de la mano con muchos recursos como artículos, codecast, slidecast, laboratorios en línea, etc. de acuerdo al curso que te hayas inscrito, y además, cuando lo terminas, puedes obtener un reconocimiento de graduación y premios (como vouchers de descuento).
Los cursos son los siguientes:
- Migrando de ASP a ASP.NET
- Migrando de PHP a ASP.NET
- Desarrollo Web con ASP.NET
- Desarrollo de Aplicaciones Windows Mobile 6
- SharePoint para Desarrolladores Parte 1
- SharePoint para Desarrolladores Parte 2
- Visual Studio 2008
- Desarrollador Básico (VS2005)
- Desarrollador Java: Aprende .NET
- Desarrollador VB 6: Aprende VB 2005
- Desarrollador VS 2002/2003: Aprende VS2005
Se los recomiendo!!!
viernes, 29 de mayo de 2009
Corrección de la caducación de Windows 7
La versión Windows 7 Beta
Se empezará a apagar cada 2 horas a partir de: 1 de Julio de 2009
Expira: 1 de Agosto de 2009
La versión Windows 7 RC (Release Candidate)
Se empezará a apagar cada 2 horas a partir de: 1 de Marzo de 2010
Expira: 1 de Junio de 2010
miércoles, 27 de mayo de 2009
Dónde y Cómo aprendo .NET
- Estudiantes:
DCE Desarrollador 5 Estrellas: Programa de certificación en el cual vas aprendiendo por etapas, y obteniendo estrellas aprobando los distintos exámenes divididos por módulos.
MVA Microsoft Virtual Academy: Universidad Virtual de Tecnologías de Microsoft, muy bueno y obtienes grandes beneficios, puedes estudiar a tu ritmo en las distintas carreras y cursos opcionales que ofrece.
VS2008 and NET Framework 3.5 Training Kit: Ideal si lo que quieres es empezar a programar con ejemplos, demos, laboratorios virtuales.
Nota: está en inglés.
Microsoft Student Pass: Programa para aprender en línea, diseñado para los estudiantes. Muy recomendado si lo que quieres es tener bien definidos los conceptos buscando alguna certificación.
Microsoft Net Cell 2.0: Este programa busca formar grupos en las universidades para fomentar el uso y aprendizaje de la tecnología .NET, necesitas compañeros, un líder, y un maestro asesor de tu escuela.
- Desarrolladores:
MSDN Microsoft Developer Network: Este es sitio oficial de soporte de los productos de Desarrollo de Microsoft. Aqui encuentras ayuda de las librerías, clases, videos de ejemplo, webcast, etc. sobre productos de desarrollo .NET, Web, Windows, Empresarial, para Office, para Juegos, etc.
Microsoft Connect: El sitio que Microsoft llama 'El punto de conexión entre usted y Microsoft'. Me parece un sitio muy interesante, ya que te ofrece recursos gratuitos (como iconos, imágenes, controles, librerías, etc.), además de que puedes hacer preguntas a los desarrolladores de Microsoft o algun otro, el objetivo es brindar soporte o también darlo si conoces un cierto problema y sabes como solucionarlo.
ASP.NET: Sitio oficial de la tecnología ASP.NET, encuentras webcast sobre AJAX, ASP.NET MVC, JQuery, etc.
Net Protector: Dale una mayor protección y seguridad a tus librerías y aplicaciones, con este programa, te enseñan cómo debes hacerlo.
Open XML: Conceptos, herramientas y ejemplos de esta novedosa tecnología para que puedas desarrollar e incluírla en tus desarrollos.
- Emprendedores:
IT Pro Momentum: Si lo que quieres es probar y aprender las nuevas tecnologías Microsoft, recibir soporte técnico gratuito y poder ofertar tu proyecto, este es el programa que te conviene.
Microsoft BizSpark: Si tienes o formas parte de una empresa que está en fase de inicio y además utiliza como base las TI, este programa te puede ayudar, ya que te ofrece software y soporte técnico que necesites, todo esto gratis!!.
jueves, 7 de mayo de 2009
Recorrido de todos los controles en un Form C# y VB.NET
El recorrido de controles, se puede hacer de 2 maneras:
1. Recorriendo de manera Iterativa los controles de un control. En esta forma, sólo podemos recorrer los controles hijos de un control padre, por ejemplo, si tenemos un Form, y queremos aplicar este recorrido, entonces unicamente se recorrerá todos los controles que estén directamente agregados en el formulario y no dentro de otro control, es decir, si tenemos 3 controles dentro del Form: 1 Label, 1 GroupBox y 1 Button, pero el Label se encuentra dentro del Group Box, al hacer este recorrido, no afectará al Label, sino solo al Button y al GroupBox.
Suponiendo que tenemos este formulario, en este tipo de recorrido, cuando queramos recorrer todos los controles que tenemos en el Form1, solo recorreremos a GroupBox1 y a Button1.
2. Recorriendo de manera Recursiva TODOS los controles de un control. En esta forma se podrán recorrer todos y cada uno de los controles que esten dentro de un control padre, aún cuando algunos controles estén dentro de otro y éste a su vez de otro (esto se conoce como controles anidados), mientras formen parte del mismo control padre que establecemos, se hará dicho recorrido. Ésta es la mejor manera de hacerlo, cuando se trate de recorrer de manera DINÁMICA, es decir, cuando no se conoce ni dónde, ni cuántos controles vamos a recorrer. Cuando conozcamos su ubicación, o su tamaño, y sabemos que NO VA A CAMBIAR en el transcurso de vida de nuestra aplicación, entonces no conviene hacer un recorrido Recursivo de todos, sino almacenarlos en una colección y ahí hacer el recorrido, este tipo de recorrido es sobre una colección de elementos, en la cual conocemos su tamaño (esto lo explicaré mas adelante).
Código:
1. Recorriendo de manera Iterativa
- C#
foreach(Control contHijo in control.Controls){
//Aqui va la lógica de lo queramos hacer, en mi ejemplo, voy a pintar de color azul el fondo de todos los controles
contHijo.BackColor = Color.Blue;
}
- VB.NET
For Each contHijo As Control In control.Controls
'Aqui va la lógica de lo queramos hacer, en mi ejemplo, voy a pintar de color azul el fondo de todos los controles
contHijo.BackColor = Color.Blue
Next
2. Recorriendo de manera Recursiva
- C#
//Recorremos con un ciclo for each cada control que hay en la colección Controls
foreach(Control contHijo in control.Controls){
//Preguntamos si el control tiene uno o mas controles dentro del mismo con la propiedad 'HasChildren'
//Si el control tiene 1 o más controles, entonces llamamos al procedimiento de forma recursiva, para que siga recorriendo los demás controles
if (contHijo.HasChildren) this.RecControles(contHijo);
//Aqui va la lógica de lo queramos hacer, en mi ejemplo, voy a pintar de color azul el fondo de todos los controles
contHijo.BackColor = Color.Blue;
}
}
- VB.NET
'Recorremos con un ciclo for each cada control que hay en la colección Controls
For Each contHijo As Control In control.Controls
'Preguntamos si el control tiene uno o mas controles dentro de l mismo con la propiedad 'HasChildren'
'Si el control tiene 1 o más controles, entonces llamamos al procedimiento de forma recursiva, para que siga
'recorriendo los demás controles
If contHijo.HasChildren Then Me.RecControles(contHijo)
'Aqui va la lógica de lo queramos hacer, en mi ejemplo, voy a pintar de color azul el fondo de todos los controles
contHijo.BackColor = Color.Blue
Next
End Sub
Como se dan cuenta, en el recorrido de forma recursiva, se debe hacer uso de un procedimiento que haga el recorrido (de ahí su nombre, una función [o procedimiento] que se llama a sí misma, mientras que de manera iterativa lo puedes utilizar en tu código de función o procedimiento sin necesidad de declarar otra función alterna.
Ahora bien, esto lo hace de maravilla, y está bien hacerlo cuando NO conozcamos el tamaño ni la ubicación de los controles, ya que como ven, el recorrido pasa por TODOS los controles de un cierto control, pero... y qué pasa si sólo necesito los controles 'Button' que se encuentran en un formulario que, de antemano, sé que no voy a agregar otros controles, pues entonces lo que conviene es que realices una colección de esos botones y hagas el recorrido UNICAMENTE en esos controles. La colección la puedes hacer en un Array, en un objeto Collection, etc.