Pues si quieren probar la versión RC de Windows 7, ya pueden descargarlo desde aquí, esta versión caducará todavía en junio del 2010, así que a probarlo, pero teniendo cuidado de las recomendaciones.
Temas de interés para desarrolladores y profesionales TI
miércoles, 6 de mayo de 2009
sábado, 10 de enero de 2009
Windows 7 Beta para todos los interesado
Para todos los interesados en probar Windows 7, ya pueden descargarlo para realizar pruebas, apúrense que solo serán 2,5 millones de descargas y luego será bloqueado, pueden bajarlo de aquí
viernes, 19 de diciembre de 2008
Probando Ubuntu 8.10 Intrepid
Espero que todo salga bien y en un par de semanas les estaré contano mis experiencias, alegrías y desilusiones de este nuevo sistema operativo (nuevo para mí) y haber que cosas buenas me salga de todo esto.
martes, 28 de octubre de 2008
Microsoft da a conocer su Plataforma de Servicios Windows® Azure™ que aprovecha el desarrollo de la nube
La arquitectura y el entorno Windows® Azure™ dará a los desarrolladores capacidades integrales de diseño, desarrollo e implementación a través de aplicaciones y servicios con el uso de herramientas y tecnologías familiares
Microsoft presenta el prototipo del sistema operativo para aplicaciones basadas en web en el que está trabajando la compañía, que se espera que esté disponible en 2010.
Aquí les dejo el link a la nota de prensa
Página oficial de Windows Azure
lunes, 14 de julio de 2008
Procedimientos Almacenados en Access y Vb2005
Bien, sé que el título no es el mas adecuado para este artículo, porque como todos sabemos MS Access, no soporta los Procedimientos Almacenados como SQL Server, pero podemos hacer algunas "cositas parecidas", claro que bastante limitadas, como puede ser el caso de agregar, actualizar, eliminar y consultar registros en las tablas. Sé que muchos dirán que en estos tiempos podemos usar SQL Express, pero hay quienes aún prefieren usar MS Access y sus motivos deben tener.
Ahora, si estamos haciendo una aplicación en capas, pues verán que si lo hacemos como les mostraré, no encontrarán mucha diferencia ni demasiado trabajo al momento de pasarse a un motor como SQL Server, pues trataremos en lo posible que la codificación sea casi idéntica como si estuviéramos usando SQL Server, y de esta manera, al cambiar de motor, solamente cambiaríamos en nuestra capa de acceso a datos la cadena de conexión y un par de líneas mas y no soplarnos toda la codificación como normalmente sería usando access.
Bueno para no aburrirlos mas acá va un par de pantallazos de la "aplicación" de ejemplo, debo aclarles que no soy un experto en estas materia, así que espero encuentre de su agrado lo que voy a compartir con todos ustedes y espero sus críticas constructivas que siempre son bienvenidas y bueno, las destructivas también. jejejeje.
Este el formulario bastante sencillo solamente para efectos de prueba de inserción y consultar datos por motivos de tiempo, la idea es ver los procedimientos y no el formulario.
El código del Botón Aceptar que es donde inserto los registros
Private Sub BtnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click
If MessageBox.Show("¿Seguro de Grabar los Datos ?", "Responda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
Try
Dim Cone As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Pruebas\Pruebas.mdb;Persist security info=false")
Dim Comando As New OleDbCommand
With Comando
Cone.Open()
.CommandText = "PA_Agrega_Clientes"
.CommandType = CommandType.StoredProcedure
.Connection = Cone
.Parameters.Add("@Codigo", OleDbType.Char, 10).Value = Me.TxtCodigo.Text
.Parameters.Add("@Nombre", OleDbType.VarChar, 50).Value = Me.TxtNombre.Text
.Parameters.Add("@Direccion", OleDbType.VarChar, 50).Value = Me.TxtDireccion.Text
End With
Dim Bien As Integer = Comando.ExecuteNonQuery
If Bien = 0 Then
Throw New Exception("Falló la operacion de inserción")
End If
Comando.Dispose()
Cone.Close()
Cone.Dispose()
MessageBox.Show("Datos Ingresados con éxito", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Else
MessageBox.Show("Operacion cancelada por el usuario", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Alli está el código bastante sencillo con eso estamos insertando los registros (3) de lo cual solo quería comentarles este par de lineas:
.CommandText = "PA_Agrega_Clientes"
.CommandType = CommandType.StoredProcedure
el "PA_Agrega_Cliente", como se podrán dar cuenta vendría a ser el nombre de nuestro procedimiento almacenado, y el CommandType=CommandType.StoreProcedure, lo estoy dejando como si realmente se tratara de un procedimiento almacenado y no como CommandText que es lo normal que hacemos en access, y después los parámetros lo pasamos tan igual que como si fuera en SQL Server.
Ahora en la Base de datos (Access) tengo estos 4 Procedimientos, que no son otra cosa que consultas de accion, de las cuales tambien les haré ver el código que contiene.
Estos son mis "Procedimientos" con los cuales estoy trabajando, ahora el código no es nada extraño como verán en la siguiente imagen.
Eso es todo, solo falta el código de como devuelvo los datos al Datagridview (Botón buscar)
Private Sub BtnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBuscar.Click
Try
Dim Cone As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Pruebas\Pruebas.mdb;Persist security info=false")
Dim DBComando As New OleDbCommand
Cone.Open()
If Me.TxtCodigo.Text <> "" Then
With DBComando
.CommandText = "PA_BuscarCliente_X_Codigo"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@Codigo", OleDbType.VarChar, 10).Value = Me.TxtCodigo.Text
.Connection = Cone
End With
ElseIf Me.TxtNombre.Text <> "" Then
With DBComando
.CommandText = "PA_BuscarCliente_X_Nombre"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@Nombre", OleDbType.VarChar, 50).Value = Me.TxtNombre.Text
.Connection = Cone
End With
End If
Dim Adaptador As New OleDbDataAdapter(DBComando)
Dim oCliente As New Cliente.ClientesDataTable
Adaptador.Fill(oCliente)
Cone.Dispose()
Me.DtgLista.DataSource = oCliente
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
Ese es el resultado de ejecutar el botón buscar, si se fijan estoy usando un esquema (XSD) de la tabla clientes que usé para el ejemplo y con eso es súper fácil como dije al principio si están haciendo su aplicación en capas no tendrán casi nada de trabajo al cambiar a un motor como SQL Server.
Espero les sirva de algo y las disculpas del caso por si encuentran algo de malo, mi excusa será el tiempo, jajajajaja.
Saludos
miércoles, 18 de junio de 2008
Reseteando temporalmente Impresora Canon
Bien, como dice el título, algunas veces (muchas) nos hemos encontrado en apuros porque teníamos que imprimir algún documento con suma urgencia en nuestra querida impresora Canon, y de pronto nos encontramos con que no podemos hacerlo y solamente obtenemos como respuesta un bendito mensaje que dice : "depósito de desecho de tinta lleno".
¿Que hacer ante esta situación?, tiramos la impresora y nos compramos otra?, llamamos a un técnico cada vez que nos sale el bendito mensaje?, pues hay una manera de evitarnos ese bendito mensaje y poder imprimir nuestros documentos sin problemas, claro que la solución es temporal, pero nos saca de apuros además debemos aclarar que esto se aplica a los modelos IP-1200, 1500 y 1600, en otros modelos no sé si funcionará o no sé si tendrán este problema, también aclarar que estos problemas se han presentado en los casos que los recargan manualmente los cartuchos utilizando jeringas y cosas así, usando cartuchos originales al menos no he visto ese problema, en fín vamos a los pasos que es lo que nos interesa.
Pasos:
-
Apagar la impresora y desconectarlo, tanto el cable de poder como el cable que conecta al computador.
-
Presionar el botón de Encendido, sin dejar de presionar conectamos el cable de poder.
-
Sin dejar de presionar el botón de encendido presionar el segundo botón (leed).
-
Sin dejar de presionar el botón de encendido, soltar el segundo botón(leed).
-
Sin dejar de presionar el botón de encendido, presionar nuevamente el segundo botón (leed), y finalmente soltamos ambos botones al mismo tiempo.
Hecho esto ya podemos utilizar la impresora nuevamente, por supuesto como ya dije líneas arriba, esta es una solución temporal, ya que es posible que siempre que encendamos nuestra impresora será necesario realizar todo este procedimiento.
Buscando en internet, tambíen encontré un artículo llamado Extender el tiempo de vida de nuestro impresor Canon, que me parece muy bueno, espero lo disfruten.
martes, 10 de junio de 2008
INVITACION A FORMAR PARTE DE TECHNET
http://www.microsoft.com/latam/technet/welcome/
"En 2007 compartiste con nosotros tu preocupación por tres cuestiones fundamentales para tu desempeño profesional: el manejo de la seguridad, la calidad de los sistemas de IT y la simplificación de los esquemas de licenciamiento para que sean más adecuados a tus necesidades.
Gracias a tus comentarios tenemos una agenda de trabajo llena de desafíos y proyectos para mejorar nuestra oferta. Contamos con gran cantidad de recursos y tecnologías nuevas para compartir con nuestra comunidad,
y estamos en constante desarrollo para satisfacer tus intereses.
Conócelas: ¡TechNet es tu comunidad!"
Aqui encontrarás info sobre
- Centro de Formación de Technet (capacitación para ItPros)
- Microsoft Virtual Academy (MVA)
- Profesional Cinco Estrellas (PCE)
- Newsletters (boletines).