Luego de varios meses de inactividad, este blog vive nuevamente....
chachannnnnn
martes, 2 de octubre de 2007
lunes, 12 de marzo de 2007
Problemillas con proyecto SVN
En estos dias me encuentro finiquitando un proyecto para ACA (Academia de Ciencias Aeronauticas) de la UTFSM. El proyecto consiste en crear un repositorio para documentos. Opté por utilizar SubVersion para este objetivo ya que me parece la herramienta indicada para manejar versiones de documentos. Además el cliente TortoiseSVN permite lanzar automáticamente la herramienta de control de cambios de MS Word para comparar versiones de un archivo, que es lo que más me pidieron en la ACA.
Me pidieron que el miercoles les haga una presentacion de la utilizacion del sistema con TortoiseSVN para finalizar con el proyecto y bueno.... Hoy vine a la U a verificar la correctitud del sistema y CHANANAAAAAAAAAAA
NO FUNCIONABA NADA!!!!!!!!....
partir casi desde cero con el sistema....
basicamente me tope con dos problemas....
El primero fue un fantasma que movio las rutas de los archivos de usuarios y autorizacion para los repositorios (nadie fue jajajaja) por lo que no tomo mucho tiempo el arreglarlo...
El segundo fue un cacho( en buen chileno). No dejaba hacer commit de nada en el repositorio. Bueno luego de googlear y SUBgooglear (termino utilizado desde hoy para visitar las paginas que google esconde y que muchas veces (como mi caso de hoy) son de utilidad) encontre la respuesta....
El problema radica que el laboratorio de computacion ahora utiliza un proxy, por lo que estaban bloqueados ciertos accesos de SVN (MKACTIVITY por ejemplo). La solucion la encontre en:
http://wiki.dreamhost.com/index.php?title=Talk:Subversion&redirect=no#Subversion_access_troubles
donde explican como resolver este problema (una simple linea y listo).
Ahora a hacer la clase de capacitacion y a cobrar los morlacos.
Me pidieron que el miercoles les haga una presentacion de la utilizacion del sistema con TortoiseSVN para finalizar con el proyecto y bueno.... Hoy vine a la U a verificar la correctitud del sistema y CHANANAAAAAAAAAAA
NO FUNCIONABA NADA!!!!!!!!....
partir casi desde cero con el sistema....
basicamente me tope con dos problemas....
El primero fue un fantasma que movio las rutas de los archivos de usuarios y autorizacion para los repositorios (nadie fue jajajaja) por lo que no tomo mucho tiempo el arreglarlo...
El segundo fue un cacho( en buen chileno). No dejaba hacer commit de nada en el repositorio. Bueno luego de googlear y SUBgooglear (termino utilizado desde hoy para visitar las paginas que google esconde y que muchas veces (como mi caso de hoy) son de utilidad) encontre la respuesta....
El problema radica que el laboratorio de computacion ahora utiliza un proxy, por lo que estaban bloqueados ciertos accesos de SVN (MKACTIVITY por ejemplo). La solucion la encontre en:
http://wiki.dreamhost.com/index.php?title=Talk:Subversion&redirect=no#Subversion_access_troubles
donde explican como resolver este problema (una simple linea y listo).
Ahora a hacer la clase de capacitacion y a cobrar los morlacos.
martes, 27 de febrero de 2007
La sentencia Using
La mayoría de los programas escritos en C# contienen al menos, aunque no es requisito, una sentencia using.
Sabemos que con esta sentencia utilizamos un namespace determinado y con esto acortamos notoriamente los nombres de las clases y tipos que utilizaremos en nuestro código.
La manera de utilizar la sentencia using para importar un namespace es la siguiente.
using MiNamespace1;
using MiNamespace2;
Con esto se importan todas las classes de los namespaces referenciados.
¿Que pasa si tanto MiNamespace1 como MiNamespace2 contienen una clase llamada MiClase?
Esto crearía un conflicto de nombres, ya que el compilador no sabría a qué clase nos referimos cuando utilizamos MiClase (si a MiNamespace1.MiClase o MiNamespace2.MiClase).
Para solucionar este conflicto es posible crear un alias para cada espacio de nombres importado. Podemos definir un alias para el using de la siguiente manera.
using Alias = MiNamespace1;
De esta manera ahora para referirnos a MiNamespace1.MiClase lo hacemos como Alias.MiClase (el ejemplo no es el mejor
para notar lo útil que puede ser esta sentencia, pero imaginate que tengas que utilizar namespaces como los siguientes).
using Alias1 = Empresa.Departamento.Proyecto.Modulo1;
using Alias2 = Empresa.Departamento.Proyecto.Modulo2;
Aquí sí que acorta notoriamente la codificación de los nombres de las clases.
*************************************
Pero si creias que la sentencia using se utiliza únicamente para importar namespaces estas muy equivocado.
Tambien tiene la función de definir bloques que utilizan un recurso determinado. Un recurso es una clase que implementa
la interfaz IDisposable, es decir, contiene un método para definir cuando el recurso ya no está siendo utilizado.
El Bloque using tiene como finalidad utilizar un recurso definido durante el alcance del bloque y
luego liberar el recurso llamando al método Dispose().
El siguiente es un ejemplo práctico de un bloque using.
using (Recurso r = new Recurso())
{
// utilización de recurso r.
}
Lo cual es equivalente a lo siguiente:
Recurso r = new Recurso(); // u otra asignacion.
try {
// utilización de recurso r.
}
finally
{
// Liberación del recurso -> r.Dispose();
r.Dispose();
}
Claro, existe una diferencia entre utilizar un bloque using y un bloque try/finally. En el primero el recurso
utilizado es sólo de lectura, mientras que es modificable en un bloque try/finally.
Es posible, también, definir varias instancias de un mismo recurso al inicializar un bloque using, de la siguiente manera:
using(Recurso r1=X, r2=Y, r3=Z){
...
}
Sentencia que es equivalente a:
using(Recurso r1=x ){
using(Recurso r2=Y){
using(Recurso r3=Z){
...
}
}
}
y a:
try
{
Recurso r1=X, r2=Y, r3=Z;
...
}
finally
{
r1.Dispose();
r2.Dispose();
r3.Dispose();
}
Aplicaciones para esta sentencia son, por ejemplo, conexiones a bases de datos, creacion de una lista de objetos, entre otras.
Sabemos que con esta sentencia utilizamos un namespace determinado y con esto acortamos notoriamente los nombres de las clases y tipos que utilizaremos en nuestro código.
La manera de utilizar la sentencia using para importar un namespace es la siguiente.
using MiNamespace1;
using MiNamespace2;
Con esto se importan todas las classes de los namespaces referenciados.
¿Que pasa si tanto MiNamespace1 como MiNamespace2 contienen una clase llamada MiClase?
Esto crearía un conflicto de nombres, ya que el compilador no sabría a qué clase nos referimos cuando utilizamos MiClase (si a MiNamespace1.MiClase o MiNamespace2.MiClase).
Para solucionar este conflicto es posible crear un alias para cada espacio de nombres importado. Podemos definir un alias para el using de la siguiente manera.
using Alias = MiNamespace1;
De esta manera ahora para referirnos a MiNamespace1.MiClase lo hacemos como Alias.MiClase (el ejemplo no es el mejor
para notar lo útil que puede ser esta sentencia, pero imaginate que tengas que utilizar namespaces como los siguientes).
using Alias1 = Empresa.Departamento.Proyecto.Modulo1;
using Alias2 = Empresa.Departamento.Proyecto.Modulo2;
Aquí sí que acorta notoriamente la codificación de los nombres de las clases.
*************************************
Pero si creias que la sentencia using se utiliza únicamente para importar namespaces estas muy equivocado.
Tambien tiene la función de definir bloques que utilizan un recurso determinado. Un recurso es una clase que implementa
la interfaz IDisposable, es decir, contiene un método para definir cuando el recurso ya no está siendo utilizado.
El Bloque using tiene como finalidad utilizar un recurso definido durante el alcance del bloque y
luego liberar el recurso llamando al método Dispose().
El siguiente es un ejemplo práctico de un bloque using.
using (Recurso r = new Recurso())
{
// utilización de recurso r.
}
Lo cual es equivalente a lo siguiente:
Recurso r = new Recurso(); // u otra asignacion.
try {
// utilización de recurso r.
}
finally
{
// Liberación del recurso -> r.Dispose();
r.Dispose();
}
Claro, existe una diferencia entre utilizar un bloque using y un bloque try/finally. En el primero el recurso
utilizado es sólo de lectura, mientras que es modificable en un bloque try/finally.
Es posible, también, definir varias instancias de un mismo recurso al inicializar un bloque using, de la siguiente manera:
using(Recurso r1=X, r2=Y, r3=Z){
...
}
Sentencia que es equivalente a:
using(Recurso r1=x ){
using(Recurso r2=Y){
using(Recurso r3=Z){
...
}
}
}
y a:
try
{
Recurso r1=X, r2=Y, r3=Z;
...
}
finally
{
r1.Dispose();
r2.Dispose();
r3.Dispose();
}
Aplicaciones para esta sentencia son, por ejemplo, conexiones a bases de datos, creacion de una lista de objetos, entre otras.
lunes, 26 de febrero de 2007
Code Snippets
La utilizacion de Code Snippets es una practica que disminuye notoriamente los tiempos de codificación de proyectos, sobre todo con muchas acciones repetitivas a lo largo del código.
El siguiente artículo presenta una manera sencilla de crear tus propios Code Snippets y añadirlos a Visual Studio 2005.
El artículo lo puedes encontrar aqui
El siguiente artículo presenta una manera sencilla de crear tus propios Code Snippets y añadirlos a Visual Studio 2005.
El artículo lo puedes encontrar aqui
Etiquetas:
Artículos,
Microsoft,
Programacion General,
Visual Studio 2005
sábado, 24 de febrero de 2007
Reflexión con C#
Reflexión es la capacidad de algunos lenguajes de acceder a su estructura mediante su metadata. Los lenguajes de .NEt Framework 2.0 proveen esta funcionalidad mediante el assembly System.Reflection.
Utilizando reflexión podemos consultar por los tipos contenidos en un assembly, sus miembros, propiedades y métodos, asi como sus permisos de acceso, entre otras características.
Este pequeño artículo muestra ejemplos de cómo utilizar reflexión con C#.
El artículo se encuentra aqui
Utilizando reflexión podemos consultar por los tipos contenidos en un assembly, sus miembros, propiedades y métodos, asi como sus permisos de acceso, entre otras características.
Este pequeño artículo muestra ejemplos de cómo utilizar reflexión con C#.
El artículo se encuentra aqui
martes, 13 de febrero de 2007
Tipos de datos Nullables.
Una de las novedades del .Net Framework 2.0 son los tipos de datos Nullables.
Este nuevo tipo de datos permite asignar valores nulos a tipos de datos por valor (ValueType), cosa que no era posible antes de la creación de este tipo de datos.
El siguiente artículo es una ayuda a la utilización de los tipos Nullables.
Lo pueden encontrar aqui
Este nuevo tipo de datos permite asignar valores nulos a tipos de datos por valor (ValueType), cosa que no era posible antes de la creación de este tipo de datos.
El siguiente artículo es una ayuda a la utilización de los tipos Nullables.
Lo pueden encontrar aqui
Etiquetas:
Artículos,
Microsoft,
Programacion General
Concurso Microsoft Expression
Este Post es para invitarlos a probar el nuevo Microsoft Expression, una
herramienta orientada a sacar el mayor provecho a WPF (Windows
Presentation Foundation) que es la nueva apuesta de Microsoft en el
área gráfica.
La invitación es también para participar en un concurso a nivel
latinoamericano para desarrolladores y diseñadores que quieran
sacarle provecho a esta herramienta que nos presenta Microsoft.
Los premios van desde reproductores Zune para los 10 finalistas hasta
un viaje a Las Vegas (para participar en un evento de Microsoft para
diseñadores) + U$1,000
¿Quiénes pueden participar?
Diseñadores y desarrolladores web con residencia en Latinoamerica.
¿Cuáles son los requisitos?
Leer y aceptar los términos y condiciones del concurso que se
encuentran en el sitio web: www.expressionawardslatam2007.com
¿Cómo participo?
Visite el Sitio Web www.expressionawardslatam2007.com y complete la
forma de registro.
¿Quiénes integran el jurado?
El Jurado estará integrado por 10 reconocidos diseñadores Web
latinoamericanos, visite el sitio www.expressionawardslatam2007.com
para conocerlos.
¿Cuándo puedo inscribir mis trabajos?
Ya mismo puedes inscribir tus trabajos y serán recibidos hasta Marzo
del 2007.
Mas informaciones en el sitio oficial del concurso.
www.expressionawardslatam2007.com
Saludos
herramienta orientada a sacar el mayor provecho a WPF (Windows
Presentation Foundation) que es la nueva apuesta de Microsoft en el
área gráfica.
La invitación es también para participar en un concurso a nivel
latinoamericano para desarrolladores y diseñadores que quieran
sacarle provecho a esta herramienta que nos presenta Microsoft.
Los premios van desde reproductores Zune para los 10 finalistas hasta
un viaje a Las Vegas (para participar en un evento de Microsoft para
diseñadores) + U$1,000
¿Quiénes pueden participar?
Diseñadores y desarrolladores web con residencia en Latinoamerica.
¿Cuáles son los requisitos?
Leer y aceptar los términos y condiciones del concurso que se
encuentran en el sitio web: www.expressionawardslatam2007.com
¿Cómo participo?
Visite el Sitio Web www.expressionawardslatam2007.com y complete la
forma de registro.
¿Quiénes integran el jurado?
El Jurado estará integrado por 10 reconocidos diseñadores Web
latinoamericanos, visite el sitio www.expressionawardslatam2007.com
para conocerlos.
¿Cuándo puedo inscribir mis trabajos?
Ya mismo puedes inscribir tus trabajos y serán recibidos hasta Marzo
del 2007.
Mas informaciones en el sitio oficial del concurso.
www.expressionawardslatam2007.com
Saludos
Suscribirse a:
Entradas (Atom)