¡Por fin algo que yo sabía que era así, ahora tiene un fundamento científico!. ¡A tomar sin culpa señores! :D . Y cuando nos vengan a criticar, les leemos las bases científicas por las que estamos disfrutando nuestra rubia bien helada.

¡Salud!

Vía El Blog de Manu llegué a este video que me hizo recordar mis épocas de Zork y El Hobbit en mi Commodore 64... snif, snif...





Saludos.

Hace poco mostré mi último gadget (Logitech MX518). Ahora, aunque no son los últimos es el turno de mis “gadgets” favoritos.


En Casa


Mi Microsoft Office Keyboard es simplemente fantástico. Combinado con el navegador Opera y el Total Commander hace que el roedor se convierta casi en un adorno en el escritorio.



Todas las teclas son programables y a pesar de que parece un poco grande es extremadamente cómodo incluso cuando me alejo del escritorio y lo apoyo sobre mis piernas.


Cuando utilizo la “navegación a dos manos” junto con el mouse, las teclas para pasar de una aplicación a otra son indispensables.


Además, en la época en la que lo compré, no había la variedad de teclados y precios que hay ahora y por el precio este es un teclado excelente.


En el trabajo


Todavía no se muy bien como lo logré pero en mi trabajo conseguí que me compraran un espectacular Logitech Elite.



Este teclado también es completamente programable pero tiene un par de ventajas sobre el de Microsoft (sin desmerecerlo teniendo en cuenta la diferencia precio). En primer lugar la posición de las manos y el tacto de las teclas es tremendamente cómodo. Y en segundo lugar los controles multimedia en la parte superior son excelentes. De la misma forma que el MS Office, navegar a dos manos es extremadamente cómodo gracias a la rueda para cambiar de aplicaciones y la tecla para volver atrás.


Concluciones


En definitiva, si bien hay cosas para las que no queda otra opción que usar el roedor, casi el 90% del tiempo uso el teclado tanto para navegar (usando Opera) como para trabajar usando todos los atajos de teclado que puedo recordar.


Mi próximo teclado


En cuanto pueda, por lo menos para usar la PC de mi casa, voy a intentar comprar el teclado de mis sueños, el Logitech G15 Gaming Keyboard


  


Saludos.

No tenía idea de que era un meme hasta que Geekotic me pasó uno.


Asi que ahi voy. Uno de los últimos gadgets que compré es un mouse Logitech MX518 óptico de 7 botones más la rueda.


Click para agrandar


Todos los botones son configurables y la sensibilidad se puede configurar de a 50 DPI y se pueden tener hasta 5 configuraciones seleccionables y además se puede configurar una sensibilidad para cada juego o programa. Hasta que compré este ratón usaba casi exclusivamente el teclado, un Microsoft Office Keyboard, pero ahora la cosa cambió y cada vez me veo más con la mano sobre el roedor.


No tengo a quién pasarle el meme así que si alguien quiere tomar la posta puede dejarme un comentario simplemente diciendo “Sigo yo” o algo así y el link a su blog.


Saludos

El test se puede hacer en Doolwind’s Game Coding Site


Your programmer personality type is:


DHSC


You’re a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.


You like coding at a High level.
The world is made up of objects and components, you should create your programs in the same way.


You work best in a Solo situation.
The best way to program is by yourself. There’s no communication problems, you know every part of the code allowing you to write the best programs possible.


You are a Conservative programmer.
The less code you write, the less chance there is of it containing a bug. You write short and to the point code that gets the job done efficiently.



Sip, creo que soy así. Lo que no se es si es bueno o malo

El Framework de .Net incluye una forma muy completa de dar formato a cadenas de caracteres a través del método Format de la clase String.

El método recibe una cadena especial llamada “cadena de formato” que describe en detalle como queremos que se vea la cadena de caracteres que queremos mostrar.

Por ejemplo:


Dim strCadena1 As String
Dim strCadena2 As = “cadenas”
Dim strCadena3 As = “VB.Net”
strCadena1 = String.Format(”Formateo de {0} en {1}”, _
strCadena2, strCadena3)


Este ejemplo produce tres cadenas y las une mediante el método String.Format. En este caso el método reemplaza {0} y {1} por las variables que le pasamos como parámetros. El resultado será la cadena: “Formateo de cadenas en VB.Net”.

El método String.Format acepta parámetros de cualquier tipo.

Dim strCadena1 As String = “vale”
Dim dblNumero As Double = 25.32
Dim strCadena2 As String = String.Format( _
“El libro {0} ${1}”, strCadena1, dblNumero)

El resultado es: ”El libro vale $25.32″.

Formateo de parámetros numéricos

Veamos el siguiente ejemplo:

Dim pi As Double = Math.PI * 1000
Dim strCadena1 As String = String.Format( _
“PI= {0:c}, {0:F5}, {0:e4}”, pi)

Este fragmento de código produce el siguiente resultado:

“PI= $3,141.59, 3141.59265, 3.1416e+003″

Para entender el significado de los códigos de las cadenas de formato veamos la siguiente tabla:

Especificador Descripción Ejemplo Resultado
C, c Moneda {0:c} $31,415.90
D, d Decimal {0:d} 31415
E, e Científica {0:e3} 3.142e+004
F, f Fixed-point {0:f3} 3.142e+004
G, g General {0:g} 31415.9
N, n Número {0:n} 31415.9
X, x Hexadecimal {0:x} 7AB7


Todos los especificadores aceptan números de punto flotante excepto el decimal y el hexadecimal que sólo aceptan enteros.

En una entrada posterior vamos a ver como dar formato a fechas y horas.

Saludos

Creo que toda mi vida he convivido con tipos que son expertos consumados en  estas técnicas.


¿De que hablo?. Pasen y lean.


Saludos.

Los Creadores del BASICUno de los puntos fuertes de VB.Net, que en realidad es uno de los puntos fuertes de todas las versiones de BASIC desde la primera creada en 1963 en el Dartmouth College, es el manejo de strings. La cantidad de funciones de VB.Net para su manipulación es enorme. Es cierto que al compartir el framework C# y otros lenguajes basados en .Net tienen métodos similares. Pero muchos que pueden llegar a ser completamente nuevos para un programador que viene de C o C++, son viejos conocidos de los programadores que venimos de VB o anteriores.


He aquí la primera parte de un pequeño resumen de las principales funciones y métodos de manipulación de strings en VB.Net.


Declarar e inicializar un string


Hay dos formas de hacerlo:


Dim s As String
s = “Esta es una cadena de caracteres”


o bien:


Dim s As String = “Esta es una cadena de caracteres”


Concatenar strings


En VB.Net, a combinar dos strings se le llama concatenar. Se pueden usar los símbolos & o +.


Dim s1 As String = “VB”
Dim s2 As String = “.Net”
Dim s3 As String = s1 & s2


Esto produce como resultado en s3 “VB.Net”.


Convertir Strings


Para convertir un valor numérico a una cadena tenemos el método ToString:


Dim i As Integer = 37
Dim s As String = i.ToString()


Además cuando un valor numérico es usado en una concatenación, VB.Net lo convierte automáticamente:


Dim s As String = “El valor de i es ” & i


Otras funciones útiles


Entra las funciones más útiles, que sobreviven de las primeras versiones de BASIC, tenemos:


Len(s) : Devuelve la longuitud de un string.
Mid(s,j,i) : Devuelve un substring de s de i caracteres a partir de la posición j inclusive. Tambien se puede usar para reemplazar una posición determinada en uns string haciendo Mid(s,3,1) = “*”. Esta sentencia pone un * en la posición 3 del string.
Replace(s,”*”,”#”) : Reemplaza en todo el string los * por #.
Instr(s,s2) : Busca la primer ocurrencia de s2 dentro de s y devuelve un entero con su posición. Opcionalmente se puede usar Instr(i,s,s2) donde i es un entero que indica a partir de que posición dentro del string se empieza la búsqueda. Si no encuentra nada devuelve 0.  


En la segunda parte veremos el poderoso método Format de la clase String para formatear strings, valores numéricos y fechas.


Saludos.

Aquellos que venimos tirando del carro desde VB 6.0 o antes, en algún momemto extrañamos la propiedad Path del objeto App. Para los nostálgicos, aquí va una función que puede reemplazara a App.Path:

 

Function App_Path() As String
Return System.Appdomain.Currentdomain.Basedirectory
End Function

Podemos usarla fácilmente, por ejemplo, para abrir un archivo de texto en nuestra aplicación:


stLector = filArchivo.OpenText(App_Path & “miapp/archivo.txt”)
While stLector.Peek -1
strLine = stLector.ReadLine()
End While

Saludos.

Este blog se llama The Software Garden en un humilde intento de homenaje a Dan Bricklin, el creador de la planilla de cálculo VisiCalc.

En un primer  momento pensé en hacer una mini biografía de él, pero me parece más intersante recopilar algunas de sus mejores frases y comentarios con respecto a la programación y a las computadoras. Estas frases, entre otras, son las que influyeron tanto para que me dedicara a ser programador el resto de mi vida.


Para mí, la parte más importante de un programa es el trazado de las estructuras de datos.



Estamos obligando a los ususarios a que hagan cada vez más parte de la programación, pero ellos no lo saben.



…los usuarios reales trabajan en forma muy diferente que los programadores…



Lo siguiente que hice fue meterme en el primer intento de tratamiento de textos de DEC. Tuve que microcodificar a un nivel muy bajo, y de hecho escribí la primera versión de microcódigo para una máquina que tenía 512 bytes de memoria.



En Digital estaba trabajando normalmente desde las once de la mañana hasta la una de la madrugada. Usaba pantalones vaqueros rotos, la barba hasta aquí y el pelo hasta la mitad de la espalda.



Hice un prototipo [del VisiCalc] en BASIC [en un Apple II] en la primavera de 1978.



…si uno está produciendo programas para uso comercial y quiere que las cosas tengan salida, no puede ser muy dogmático en relación con el trabajo; nada de “yo sólo programo en lengueje de alto nivel” o de ”los verdaderos programadores sólo usan ensambladores”. Uno hace simplemente cualquier cosa que sea adecuada para la situación que se trate.



Suficiente por ahora :) . Más adelante habrá más Dan Bricklin y algunas frase imperdibles de otros grandes como Gary Kildall (CP/M), Jeff Raskin (Macintosh), C. Wayne Ratliff (dBASE), Bill Gates (Microsoft) y muchos más.


Saludos.

El Desarrollador del Jardín del Software


Es tarde aunque no se que tan tarde. La luz del sol hace horas que ya no entra por la ventana. La luz más fuerte en la habitación es la del monitor. Los litros de café son interminables e incontables. Gracias a dios que ya no fumo. El único sonido que se escucha es el golpeteo de la teclas y el sonido de ciencia ficción de los servidores. Debería estar en casa hace horas… pero el deseo de ver estas líneas inentendibles para tantos transformarse en algo útil para muchos es más fuerte. Ver ese código fuente prolijo y estructurado en el que algunos hasta ven algo de arte transformarse en el monitor en la idea que hace meses quizás tenemos dando vueltas en nuestra mente. La ansiedad de ver crecer el programa desde una semilla y transformarse en una planta floreciente en nuestro Jardín de Software, es incontenible. El placer de haber encontrado la solución a ese problema que nadie más encontró o lograr esos 30 segundos menos en la ejecución de esa función es imposible de describir con palabras. Quizás mañana pueda dormir un poco ya con mi consciencia más tranquila. O quizás no, quizás dentro de unas horas caiga en la cuenta que esa rutina casi perfecta en realidad puede ser perfecta. De todas formas una vez que el sol comienza a entrar por la ventana ya no puedo dormir. Creo que voy a ir a preparar más café mientras pienso en estas estructuras de datos…


Saludos, Net Developer

El avance del freeware es incontenible, de hecho yo utilizo muchos programas de este tipo que no tienen nada que envidiarle a las versiones comerciales. Los sitios que visito frecuentemente buscando novedades son:


Snapfiles Freeware: uno de los más completos, todo organizado en categorías y para todos los gustos. Excelente.


Tech Support Alert - The 46 Best-ever Freeware Utilities: A diferencia del anterior, el autor de este sitio evalúa los programas y elige 3 o 4 de cada categoría que su gusto son los mejores.


The Simple Dollar - 30 Essential Pieces Of Free (and Open) Software for Windows: Este en realidad es un post de un blog en el que se mencionan las 30 mejores aplicaciones Open Source que reemplazan a alguna versión comercial de un programa para Windows. Cualquier PC equipada con estas treinta aplicaciones es 100% productiva como cualquiera de cualquier empresa que usa software pago.


Saludos.

Aunque nos resistimos a reconocerlo, jamás vamos a deshacernos de ellos. De una forma u otra casi siempre necesitamos usar un archivo de texto en nuestras aplicaciones.


En ASP.Net para leer y escribir archivos de texto plano debemos incluir el espacio de nombres System.IO y utilizaremos Streams y el objeto File.


En particular los métodos más útiles del objeto File son:




  • CreateText (<NombreArchivo>)



  • AppendText (<NombreArchivo>)



  • OpenText (<NombreArchivo>)




que se utilizan para crear un archivo, agregar datos al final y abrirlo para leerlo respectivamente.


Leer un archivo


Para leer un archivo debemos asociar un StreamReader al mismo usando el método OpenText() de la siguiente forma:


Dim Lector as StreamReader = File.OpenText(”C:\datos.txt”)


Una vez que tenemos nuestro StreamReader usaremos para leer el archivo los siguientes métodos:




  • ReadLine()



  • ReadToEnd()




Ambos métodos devuelven un tipo string. El método ReadLine() devuelve todos los caracteres hasta encontrar un fin de línea. ReadToEnd() devuelve un string conteniendo todo el archivo.


Una vez que terminamos con el archivo, hay que cerrarlo usando el método Close() del Stream.


Escribir un archivo


Los métodos CreateText() y AppendText() del objeto File devuelven un StreamWriter asociado al archivo que queremos escribir.


Los métodos para escribir en el archivo son:




  • Write (<string que queremos escribir>)



  • WriteLine (<string que queremos escribir>)




La diferencia entre ambos métodos es que WriteLine() inserta un fin de linea al final del string que estamos escribirendo en el archivo.


Aquí va un pequeño ejemplo para escribir y leer el contenido de un archivo de texto.


Archivo Default.aspx.vb


Option Explicit On
Imports System.IO


Partial Class _Default Inherits System.Web.UI.Page


  Protected Sub Button1_Click(ByVal sender As Object,  _ 
                    ByVal e As System.EventArgs) 
                    Handles Button1.Click
    ‘Abre un archivo para escritura.
    Dim objEscritor As StreamWriter objEscritor = _
                                  File.AppendText(”C:\salida.txt”)  
    ‘Escribe en el archivo el contenido del TextBox.
    objEscritor.Write(TextBox1.Text) 
  
    ‘Cierra el archivo.
    objEscritor.Close()
  End Sub


  Protected Sub Button2_Click(ByVal sender As Object, _ 
                          ByVal e As System.EventArgs) 
                          Handles Button2.Click
    ‘Abre el Archivo para lectura.
    Dim objLector As StreamReader objLector = _ 
                                    File.OpenText(”C:\salida.txt”)
    ‘Lee el contenido y lo vuelca al TextBox 
    TextBox1.Text = “”
    TextBox1.Text = objLector.ReadToEnd()
    ‘Cierra el archivo.
    objLector.Close()
  End Sub
End Class


Archivo Default.aspx.

<%@ Page Language=”VB” AutoEventWireup=”false”
     CodeFile=”Default.aspx.vb” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
   “
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”
http://www.w3.org/1999/xhtml”>
<head runat=”server”>
  <title>Escribir/Leer archivos</title>
</head>
<body>
  <form id=”form1″ runat=”server”> 
    <div>
      <asp:TextBox ID=”TextBox1″ runat=”server”
         BorderStyle=”Ridge” Height=”133px” 
         TextMode=”MultiLine” Width=”317px”>
      </asp:TextBox>
      <br /> <br />
      <asp:Button ID=”Button1″ runat=”server” 
               Height=”25px” Text=”Escribir”
               Width=”75px” /> 
      <asp:Button ID=”Button2″ runat=”server”
               Height=”25px” Text=”Leer”
               Width=”75px” />
    </div>
  </form>
</body>
</html>


En otra entrada usaremos otros métodos y Server.MapPath para controlar exactamente dónde guardamos el archivo o de dónde lo leemos.¡A tener en cuenta! Es posible que el ejemplo de un error de autorización al intentar escribir el archivo. Esto se debe a que la cuenta de usuario ASPNET debe tener los permisos apropiados sobre la carpeta donde queremos guardar nuestro archivo.


Saludos.

Como desarrollador de aplicaciones web, en general solo tengo que lidiar con IE y en particular con IE6. Pero de todas formas siempre trato de probar los desarrollos con los principales navegadores del mercado para asegurarme que la aplicación se ve y funciona bien sin importar el navegador con el que se ingrese.


A esta altura todos sabemos cuales son estos navegadores, pero de todas formas aquí van los que yo uso:



Opera: de lejos, en mi opinión, el mejor navegador de todos. Como desarrollador es especialmente útil en el monitero de los valores de “cookies”, visualización de hojas de estilo (CSS) y temas de seguridad. Además si estamos desarrollando una aplicación para dispositivos móviles (celulares, PDAs) tiene una opción para “simular pantalla pequeña” que nos permite ver como queda el sitio en una pantalla de dimenciones reducidas. Ademas, y esto ya es muy personal, se puede navegar el 90% de las página sólo con el teclado, sin tocar el mouse. Y cuando voy y vengo del editor de código fuente al nevegador una y otra vez, esta característica es muy importante para mi.


Firefox: Otro navegador excelente para desarrollar aplicaciones debido a la enorme cantidad de extensiones para ver “cookies”, “hojas de estilo”, “código html”, etc… De hecho, hay una clasificación especial en la página de descarga de extenciones que agrupa las relacionadas con el desarrollo. No es mi elección principal pero sin dudas de no tener Opera a mano no tengo problemas en usar Firefox.


Avant Borwser: Cuando necesito IE, si puedo instalar otro navegador en la PC, el Avant Browser es un reemplazo excelente. Usa el motor de IE pero tiene todas las ventajas de los otros navegadores como pestañas, bloqueo de “pop ups”, eliminación de rastros de navegación, etc… Si soportara plugins o extensiones (como IE7) sería perfecto.


IE7: Es la respuesta de MS a los navegadores de la competencia. Además de características de uso y seguridad, también agrega el uso de “add-ons“. De la misma forma que con las extensiones de Firefox, hay una categoría en particular destinada a los add-ons para desarrolladores. El problema con IE7 es que en algunas configuraciones de PC trae algunos problemas de inestabilidad o drivers que dejan de funcionar. Lo mejor es esperar un poco para instalarlo.


Como ven la oferta es variada y como desrrolladores tenemos la obligación de probar nuestras aplicaciones en todos los navegadores.


Saludos.

Muchas veces me ha tocado no sólo desarrollar una aplicación sino escribir la documentación para el usuario final y para la gente de sistemas que eventualmente tenga que mantener ese desarrollo. A lo largo de los años he llegado a algunas conclusiones que expongo a continuación.

Tipos de Documentación


Es importante diferenciar claramente entre los distintos tipos de documentos encargados de describir una aplicación ya que los objetivos de cada uno son muy diferentes.


La documentación para el desarrollador que describe desde un punto de vista técnico el funcionamiento de la aplicación. Por otro lado está la documentación para el usuario, que describe cómo se utiliza la aplicación. Estas son las dos áreas de documentación más importantes.


En algunas ocaciones se crean otro tipo de documentos que de alguna forma estén relacionados con la aplicación como, por ejemplo, documentación especial para operadores de centros de cómputos, administradores de redes o de bases de datos.


La documentación para el desarrollador


En estos documentos predomina un lenguaje técnico y está dirigida a programadores, analistas de sistemas.


Esta documentación debe cumplir, entre otros, los siguientes objetivos:




  • Proporcionar una descripción cabal de la función, la estructura y la forma de trabajo de cada módulo de la aplicación.




  • Describir la organización del programa a partir de sus módulos componentes.




  • En la industria informática, la mayor parte de las grandes aplicaciones se escriben en equipo, y la documentación debe permitir a cada integrante del equipo comprender el funcionamiento aún de los módulos en los que no está involucrado.




  • Aportar a cualquiera que no haya participado en el proyecto desde el inicio, incorporarse en cualquier momento al mismo y tener información suficiente para entenderlo y modificarlo.




  • Contribuir a la evaluación de la aplicación y a la determinación de si cumple los objetivos para la que se creó.




Redactar un documento de estas características no es fácil. Algunas sugerencias para facilitar la escritura pueden ser:




  • Antes de empezar a escribir la documentación es conveniente tomarse un tiempo para pensar en la estructura que tendrá la misma en general y cada documento en particular.




  • Al estructurar un documento es importante separar claramente “qué hace” un programa o módulo de “cómo lo hace”.




  • Aunque la documentación debe ser completa y abarcar todos los aspectos del desarrollo, en ocaciones el exceso de detalle puede ser desconcertante. Es conveniente tener en cuenta que el máximo nivel de detalle son las propias líneas de código de cada programa. Un programa bien diseñado y escrito en los actuales lenguajes de alto nivel como VB.Net o C# y con comentarios suficientes dentro del código, constituye en cierta forma su propia documentación. Dicho de otra forma, el programa describe su estructura y su forma de trabajo.




  • Estos documentos van dirigidos a una audiencia experta y no hay problemas en utilizar términos técnicos y dar algunas cosa por sabidas. Sin embargo la extrema utilización del lenguaje técnico sirve muchas veces para cubrir la extrema pobreza del español de quien esta escribiendo el documento. No hay ninguna excusa para que la documentación sea escrita en un lenguaje simple y un estilo claro y conciso.




Dependiendo de la naturaleza de la aplicación que se está documentando, se pueden incluir diagramas de flujo, de estructuras de datos, de objetos, etc… Pero estos diagramas no deben reemplazar a los documentos sino apoyarlos y aclararlos.


Documentación para el usuario


Esta información contiene las instrucciones necesarias para utilizar la aplicación desarrollada. Va dirigida a los usuarios que, en general y a pesar de lo que muchos creen, tienen un conocimiento limitado en el uso de las computadoras y las aplicaciones.


La documentación para el usuario es mucho más dificil de escribir que la dirigida al desarrollador. Hay que evitar al máximo el lenguaje técnico y hacer uso intensivo de imágenes y diagramas, ya que el usuario es más reacio a leer documentos largos y muy verborrágicos.


La forma que adopte esta documentación depende en gran medida del tipo de aplicación que se esté documentando. Lo ideal es presentarla en papel y en algún tipo de formato electrónico para cubrir todas las opciones.


Algunos objetivos que deben cumplir estos documentos son:




  • Informar al usuario de forma clara y sin que quede ninguna duda de las capacidades de la aplicación.




  • Proporcionar instrucciones detalladas paso a paso sobre cada una de las funciones que se pueden realizar con la aplicación.




  • Explicar claramente el significado de cada mensaje que pueda aparece y las acciones a seguir ante cada uno, en especial con los mensajes de error.




  • Señalar claramente como solucionar los errores no sólo dentro de la aplicación sino externos a ella, que pudieran influir en su funcionamiento.




  • Separar “qué hace” cada módulo de la aplicación de “como lo hace”.




  • Explicar en un glosario todos los términos técnicos que no fue posible evitar usar.




  • Redactar de forma clara, en un español sencillo y hacer uso intensivo de diagramas, capturas de pantalla y ejemplos.




Conclusiones


La documentación para el desarrollador describe a nivel técnico el funcionamiento de la aplicación, su estructura, la relación entre sus diferentes módulos y como funciona cada uno en detalle. Uno de sus principales objetivos es que cualquier desarrollador o profesional de sistemas pueda comprender y mantener la aplicación aunque no haya participado en el desarrollo de ella desde el principio.


La documentación para el usuario contiene las instrucciones necesarias para la utilización de la aplicación. Informa las posibilidades de esta y describe paso a paso el uso de cada módulo. Una de las funciones más importantes es describir detalladamente las acciones a seguir ante cualquier error que pueda presentarse. Debe estar escrita en un lenguaje simple y claro y debe adaptarse a la capacidad y conocimiento del usuario medio a la que se dirige.


Saludos.

El archivo web.config de una aplicación ASP.Net es extremadamente importante. Si bien podemos modificarlo manualmente con cualquier editor de texto, los más conveniente es hacerlo con la Herramienta Administración de sitios Web a la que se accede desde el menú Sitio Web, opción Configuración de ASP.Net de Visual Studio 2005.

Saludos.

El .Net Framework expone la interface IDBConnection que se implementa en las versiones 1.x por las clases SqlConnection, OleDbConnection, OdbcConnection y OracleConnection y en la 2.0 por DBConnection.
Estas clases establecen sus parámetros de conexión a bases de datos a través de la propiedad ConnectionString que se forma por una cadena en la que se especifican los valores de los parámetros necesarios para cada servidor.
Algunos de estos parámetros son obligatorios, mientras que otros toman valores predeterminados si no se especifican.
A continuación vemos algunos de los parámetros de la cadena de conexión más utilizados:


Application Name: nombre de la aplicación que intenta conectarse al servidor. En general no se utiliza pero es muy útil si estamos examinando la actividad que se lleva a cabo en el servidor de bases de datos para identificar que aplicaciones están conectadas.

Connection Timeout: son los segundos durante los cuales la aplicación intenta conectarse al servidor. Si no lo logra genera un error. El valor predeterminado es de 15 segundos.

Data Source: es el servidor al que queremos conectarnos. Si usamos SQL Server podemos indicar el nombre o la dirección IP del servidor. En el caso de usar bases de datos basadas en archivos, como Access por ejemplo, indicamos la ubicación del archivo: “C:\datos\base.mdb”.

Initial Catalog: también puede llamarse Database e indica a la base de datos dentro de un servidor a la que nos estamos conectando.

Integrated Security: también Trusted Connection. Con un valor “true” le indica al servidor que confíe en el esquema de seguridad del sistema operativo. Con “false” hay que indicar luego un usario y contraseña habilitado para conectarse a la base de datos en cuestión.

Usr ID: perfil de usuario válido para conectarse al servidor y a la base de datos.

Password: contraseña del usuario.

Workstation ID: Al igual que “Application Name” es útil para relevar la actividad del servidor.

Provider: se utiliza en general con OLEDB e indica el controlador a utilizar, por ejemplo “Microsoft.Jet.OLEDB.4.0″.

DSN: se utiliza con ODBC para hacer referencia a las conecciones ODBC generadas con la aplicación del sistema operativo utilizada al efecto.

Driver: similar a “Provider” para ODBC.

Estos son los parámetros más usados en general y aquí un ejemplo de cadena de conección:


strConeccion = “Password=1ax56Vz;User ID=consulta;” & _
“Initial Catalog=Northwind;Data Source=SQLServer01″


Una completa referencia sobre cadenas de conexión se puede encontrar en ConnectionStrings.Com.

Saludos.

Apenas volví de mis vacaciones me encontré en el apuro de hacer rápidamente un programa que perimitiera a un usuario importar y exportar al mismo tiempo determinada información desde y hacia el sistema corporativo de la empresa. Al ser una aplicación para usuarios finales y no gente de sistemas, pensé en una interface tipo “asistente”. En .Net 1.x tendría que haber hecho variás páginas permitiendo seleccionar opciones y pasar a la siguiente. Pero en .Net 2.0 tenemos el control Wizard que permite programar una aplicación del tipo “asistente” en muy poco tiempo. El control tiene una sintáxis muy sencilla pero muy potente permitiendo controlar varios aspectos. Aquí describo sólo los que utilicé en mi aplicación:


<asp:Wizard ID=”Wizard1″ runat=”server”
     Height=”200px” Width=”400px”
     DisplaySideBar=”false”
     HeaderText=”Título del Asistente”
     HeaderStyle-Font-Size=”Large”
     ActiveStepIndex=”0″
     BorderStyle=”Double”
     BorderColor=”Blue” BorderWidth=”3px”>
  <asp:WizardStep ID=”WizardStep0″ runat=”server” 
       Title=”Inicio de Proceso” StepType=”Start”>
      <b>Inicio de Proceso</b> <br /><br />
  </asp:WizardStep>
  <asp:WizardStep ID=”WizardStep1″ runat=”server”
       Title=”Segundo Paso” StepType=”Step”
      AllowReturn=”false”>
     <b>Segundo Paso</b> <br /><br />
     <asp:Label ID=”Label1″ runat=”server”>
     </asp:Label>
     <br/><br/>
  </asp:WizardStep>
  <asp:WizardStep ID=”WizardStep4″ runat=”server”
        Title=”Finalización del Proceso”
        StepType=”Finish” AllowReturn=”true”>
        <b>Fin del Proceso</b>
        <br/><br/>
  </asp:WizardStep>
  </WizardSteps>
</asp:Wizard>


Algunas propiedades para destacar son: DisplaySideBar: “true” muestra una barra lateral con todos los pasos del asistente, permitiendo sleccionar cualquiera de ellos. Un valor “false” oculta esta barra. StepType: indica que tipo de “paso” corresponde para cada uno de los que componen el asistente. Con el valor “auto”, el control decide el tipo de paso de acuerdo a su posición dentro del asistente. El valor “start” indica que es el primer paso del asistente y “finish” que es el último paso. Los pasos intermedios se indican con “step”. AllowReturn: “false” hace que el asistente no permita que se vuelva al paso anterior. Entre los tags <asp:WizardStep> y </asp:WizardStep> podemos agregar todos los controles que necesitemos para llevar a cabo la función de cada paso. Luego el código correspondiente a cada paso se escribe generalmente en el evento ActiveStepChanged, que se declara de la siguiente manera:


Protected Sub Wizard1_ActiveStepChanged (ByVal sender As Object, _ 
                   ByVal e As  System.EventArgs) Handles  
                   Wizard1.ActiveStepChanged 
  ‘———————————–
  ‘ Código para procesar cada paso del
  ‘ asistente.  
  ‘———————————– 
End Sub


El proceso se puede hacer identificando cuál es el paso activo y actuando en consecuencia con una estructura del tipo Select Case:


Select Case Wizard1.ActiveStepIndex
  Case 0
    ‘Instrucciones necesarias 
    ‘para procesar el primer paso
  Case 1
    ‘Instrucciones necesarias
    ‘para procesar el segundo paso
    Label1.Text = “Segundo paso.”
  Case 3
    ‘Instrucciones necesarias
    ‘para procesar el último paso
End Select


Como puede verse el control es muy simple de usar, muy flexible y ofrece muchísimas posibilidades para simplificar las interfaces de usuario del tipo “asistente”.


Saludos.

Aún cuando sólo me llevase 15 o 20 minutos la preparación de un programa… eso no era suficientemente rápido.

 

Dan Bricklin

No es la idea de este blog ir atrás de las novedades. Pero este video demostrando la interface de usuario del nuevo iPhone de Apple me parece demasiado bueno para no ponerlo aquí (aunque ya está en todos los sitios imaginables), vean y disfruten.


Saludos.

Además de los frameworks y los SDK, podemos bajar varios programas para desarrolar con tecnologías .Net.

.Net 1.1

Web Matrix: Entorno de desarrollo que incluye un servidor web local para probar los desarrollos por ejemplo para los que usan Windows XP Home que no permite instalar IIS. Una desventaja puede ser que el servidor local tiene ciertas limitaciones, por ejemplo en la implementación de esquemas de seguridad.

MSDE (MS Desktop Engine): Es una versión gratuita de SQL 2000 que no incluye el Administrador Corporativo, el Administrador de Consultas ni la documentación y los ejemplos. Todo debe hacerse con herramientas de terceros o con la utilidad de línea de comandos osql. En Snapfiles Freeware pueden encontrar algunos programas para reemplazar lo que le falta al MSDE.

.Net 2.0

Visual Web Developer 2005 Express (en Español): Un entorno de desarrollo gratuito mucho más completo y profesional que Web Matrix. También incluye un servidor web local aunque se puede usar el servidor web Cassini.

SQL Server 2005 Express (en Español): Es una versión gratuita pero muy completa y potente del SQL Server 2005. Además se puede descargar la documentación y los ejemplos.

Como ven es posible trabajar con lo último de la tecnología .Net con recursos totalmente gratuitos y de excelente calidad.

Para Pensar

Nadie puede hacerte sentir inferior sin tu propio consentimiento.

 

Eleanor Roosevelt



Saludos

La última versión de .Net es la 3.0 (Framework Redistribuible - Paquete SDK en Inglés), pero aún no es del todo estable. Lo mejor para empezar es usar directamente el framework 2.0 o incluso el 1.1 si lo van a usar de forma local en una máquina no muy potente. En principio no hace falta ningún entorno de desarrollo o base de datos en particular. Se puede usar el block de notas o el PSPad - es el que yo uso :D - para escribir código y, si tienen Office, el Access para bases de datos o XML.


DESCARGAS


.Net Framework 2.0



.Net Framework 1.1



En 1986, hace 21 años, leí (y aún sigo leyéndolo) un libro que marcó mi vida y lo que sería mi profesión. El libro es “Programadores en acción (Programmers at work)” de Susan Lammers. Es un libro de entrevistas a los más “conocidos” programadores de aquella época. La lista es impresionante: Charles Simonyi, Gary Kildall, Bill Gates, Bob Frankston y muchos otros. Pero el que más me impresionó fué Dan Bricklin y sus conceptos de software artesanal y formar una “jardín de software” donde los programas “crecieran” como las plantas. Por eso, en homenaje a él y sus ideas, este blog se llama Software Garden. Espero que si se entera lo tome como lo que és, un homenaje, y no me quiera hacer un juicio… ;)

 


Saludos.

Este es otro blog (y van…) dedicado a ASP.Net,VB.Net, SQL Server, XML, Seguridad, Tecnología e Internet. No es un blog para expertos ni está escrito por un experto. Aquí simplemente cuento mis propios problemas y las soluciones que encuentro día a día como desarrollador ASP.Net. Espero que a alguien en algún lugar le sirva mi experiencia.


Saludos

Entradas más recientes Página Principal

Sobre Mi...

Mi foto
Capital Federal, Buenos Aires, Argentina
Desarrollador .Net

Los Mitos de FireFox

Firefox Myths

Descargar IE7

Archivo

Unite al Jardin

StatCounter

Technorati

IBSN

IBSN: Internet Blog Serial Number 1999-26-10-02