sábado, 27 de diciembre de 2008

Botones con CSS .NET

Tanto las aplicaciones que se hacen con controles HTML como con controles .NET se pueden manipular su interfaz gráfica utilizando CSS.


Lo ideal es que si vas a desarrollar una interfaz gráfica no dejes las definiciones de estilos, colores, letras en el archivo donde declaras los controles. Por ejemplo, si tienes una página que se llama index.aspx, y en ella declaras botones, campos de textos y otros controles, tengas tambien un archivo de estilos que podria ser estilos.css donde defines el color de fondo, tipos de letras, etc.


Cuando hablamos de controles HTML es posible definir en el archivo CSS los elementos por ejemplo: body, table, input, etc. Sin tener que intervenir en el archivo que define los controles indicando a que clase corresponde. En .Net en algunos casos es necesario indicarle al control que estilo le corresponde con el atributo CssClass



<html>
<head>
<title></title>
<link href="estilo.css" type="text/css" rel="stylesheet">
</head>
<body>

<form runat="server">
<asp:Button id="b1" Text="Submit" runat="server" CssClass="boton" />
</form>
</body>
</html>


estilo.css

.boton{
background-color:#c2c2c2;
border-left:1px solid #FFFFFF;
border-right:1px solid #FFFFFF;
color:#515151;
font-family:arial,helvetica,sans-serif;
font-size:14px;
text-align:center;
vertical-align:middle;
height: 40px;
width: 150px;
}

sábado, 20 de diciembre de 2008

Links de PHP

Concatenar en PHP
http://www.bufoland.cl/cursoweb/php/concatenando.php

Salto de linea en PHP
http://www.tutores.org/?codigo=1153&Salto-de-linea-




Libro, Aprende a Programar en PHP YA!

Apuntes sobre Javascript

Comentarios en Javascript:
http://www.htmlpoint.com/javascript/corso/js_07.htm

Operadores de javascript
http://www.vitaminaweb.com/javascript/tutorial/operadores.php

Validar Rut de Chile

Encontre esta página super util con codigos en distintos lenguages para validar el Rut de Chile

http://j.gs/Ocx 

espero les sirva...

sábado, 29 de noviembre de 2008

GridView no carga los datos desde un IList

 
Posted by Picasa


Estoy trantando de mostrar un resultado en un GridView obtenidos con Nhibernate desde una Base SQL 2005 Express y solo me aparecen las columnas como: Lenght, LongLength, Rank, IsReadOnly, IsFixedSize, IsSynchronized. Cuando hago la consulta a una sola tabla me funciona pero cuando trato de hacer un Inner Join o consultar las dos tablas me muestra las columnas antes mencionadas.

La consulta que hago es la siguiente:

public IList getContactos()
{
ISession session =
NHibernateSessionFactory.GetCurrentSession();

IQuery query = session.CreateQuery("from Contacto as c , Persona as p where c.Id_Per=p.Id_Per");
return query.List();

}

Para luego mostrar los datos en el GridView de la siguiente manera:

private void setContactos() {
Contacto cCon = new Contacto();

gdvContactos.DataSource=cCon.getContactos();
gdvContactos.DataBind();
}

Los mapeos son:

Contacto

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="crmos.Bo.Contacto, crmos.Bo" table="Contacto">
<id name="Id_Con" type="Int32" unsaved-value="null">
<column name="Id_Con" length="4" sql-type="int" not-null="true" unique="true" index="PK_Contacto"/>
<generator class="native" />
</id>
<property name="Id_Per" type="Int32">
<column name="Id_Per" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Cti" type="Int32">
<column name="Id_Cti" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Fecha_Con" type="DateTime" access="property" >
<column name="Fecha_Con" sql-type="datetime" />
</property>
<property name="Observacion_Con" type="String" access="property">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="property">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="property">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>

<many-to-one name="Persona" class="crmos.Bo.Persona, crmos.Bo">
<column name="Id_Per" length="4" sql-type="int" not-null="false"/>
</many-to-one>

<bag name="Contactos" inverse="true" lazy="true" cascade="all-delete-orphan">
<key column="Id_Per"/>
<one-to-many class="crmos.Bo.Persona, crmos.Bo"/>
</bag>

</class>
</hibernate-mapping>

Persona

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

<class name="crmos.Bo.Persona, crmos.Bo" table="Persona">
<id name="Id_Per" type="Int32" unsaved-value="null">
<column name="Id_Per" length="4" sql-type="int" not-null="true" unique="true" index="PK_Persona"/>
<generator class="native" />
</id>
<property name="Nombres_Per" type="String">
<column name="Nombres_Per" length="50" sql-type="varchar" not-null="false"/>
</property>
<property name="ApellidoPaterno_Per" type="String">
<column name="ApellidoPaterno_Per" length="15" sql-type="varchar" not-null="false"/>
</property>
<property name="ApellidoMaterno_Per" type="String">
<column name="ApellidoMaterno_Per" length="15" sql-type="varchar" not-null="false"/>
</property>
<property name="Email_Per" type="String">
<column name="Email_Per" length="100" sql-type="varchar" not-null="false"/>
</property>


<bag name="Contactos" inverse="true" lazy="true" cascade="all-delete-orphan">
<key column="Id_Per"/>
<one-to-many class="crmos.Bo.Contacto, crmos.Bo"/>
</bag>
</class>
</hibernate-mapping>

Ya me estoy dando por vencido, asi que solicitaré ayuda en los foros de NHibernate y postearé la solución. O si alguien ya ha pasado por esta ....

El código completo del proyecto se puede descargar desde:
http://code.google.com/p/crmos/downloads/list

viernes, 21 de noviembre de 2008

Compiler Error CS0542

Como si fuera poco (el inicio en NHibernate ha sido empinado) me aparecio este error en la clase Contacto del CRMOS. Por un lado NHibernate dice lo siguiente:

Could not find a getter for property 'Contacto' in class 'crmos.Bo.Contacto

Lo cual significa que tengo que agregar las siguientes lineas de código a Contacto.cs:

protected Contacto _contacto;
public virtual Contacto Contacto
{
get { return _contacto; }
set { _contacto = value; }
}

Por otro lado al compilar las clases el compilador de .Net dice:

'Contacto': los nombres de los miembros no pueden coincidir con sus tipos envolventes (CS0542) - C:\Inetpub\wwwroot\crmos.Bo\Contacto.cs:52,26

En los foros mientras unos dicen que las herramientas de Microsoft tienen errores otros dicen que se debe saber trabajar con Indexers. OK manos a la obra ¿Como se trabaja con Indexers?

Nota: Este post queda abierto hasta que lo solucione y lo postee la solución si alguien quiere ayudar, bienvenido....

jueves, 13 de noviembre de 2008

Intersquash - Optimiza tu blog para el IPhone

Si bien es cierto puedes navegar gran cantidad de sitios en relativa comodidad desde el IPhone, creo que lo ideal es navegar sitios adaptados especificamente para el dispositivo. Navegar es mas comodo en estos casos.

Ya hay iniciativas para crear sitios adaptados como librerias y este sitio Intersquash que genera a partir de el rss de tu sitio o blog una versión para el iphone. Probé ingresando los rss de mi otro sitio hecho con Wordpress y la página principal se creo sin problemas pero al hacer click e ir al enlace este aparecia cortado y los enlaces como texto plano. Lógico, porque el rss esta cortado y los enlaces como texto plano. Lo que me hace pensar que generar una versión para el IPhone desde el rss no es viable. Y hacerlo con un css desde la fuente original de datos es lo mas aconsejable.

Otra iniciativa que va un poco en esta dirección es iUI que es una librería que entre otras cosas sirve para crear menus de navegación. He realizado pruebas con esta librería las cuales posteare con un poco mas de tiempo.

martes, 11 de noviembre de 2008

QR Codes en IPhone

Los QR Codes son super conocidos y utilizados en Japón. Se trata de un sistema para almacenar información en una matriz de puntos o un código de barras bidimensional.

Los usos practicos son por ejemplo, la administración de inventarios.

Lo que es revolucionario es que estos codigos se pueden leer desde dispositivos moviles. Y debido a esto se han integrado nuevos usos como son, una tarjeta de presentación con QR de forma que no sea necesario estar digitando uno a uno los datos de la persona, entre otros.

Mas información en Wikipedia.

Estos codigos se pueden leer desde el IPhone con programas como DataMatrix (Free) y 2D Sense (Free).

Tambien quisiera dejar un link a una red social en torno a esta tecnología:
http://2dcode.ning.com/

En la práctica

Instale el programa 2d Sense en mi iphone.
Luego genere un código que contiene un link al sitio www.marcosdonoso.cl en la página: http://omarabid.com/barcode/index.php
luego desde el programa 2D Sense le saque una foto al código (en la pantalla del notebook). Y el Safari lanzo una solicitud de conexión a www.marcosdonoso.cl, lo cual acepte.

El codigo generado es este:

lunes, 10 de noviembre de 2008

Nueva entrega de CRMOS

Este blog por si se habran dado cuenta es medio desordenado. La finalidad es que es como un taller, donde voy colocando rapidamente mi experiencia en los desarrollos que estoy realizando. Por eso no me aplico mucho a que la redacción quede perfecta. Lo que me importa es que si coloco un tip o la solución de un error esto pueda ser fácilmente ententido y aplicado por ustedes quienes me visitan. Sino, pueden dejar un comentario para mejorar el post, cosa que haré.

El motivo de este post es comunicar que he dejado una nueva versión del código fuente de CRMOS, en http://code.google.com/p/crmos/downloads/list el archivo a descargar tiene que ser crmos_20081110.rar, el numero indica la fecha 10/11/2008.

Esta entrega le falta mucho,  por lo que si tienes ganas de participar en un proyecto Open Soure te dejo extendida la invitación  a participar. Solo tienes que enviar un e-mail, o registrarte en www.elforo.cl y hacer tus consultas y sugerencias sobre el proyecto. 

domingo, 9 de noviembre de 2008

could not resolve property: Id_Per

En NHibernate lo que manda a grandes rasgos es el maping y si ocurre este error es probable que la propiedad por la que ocurre el error no esta en el mapping, por ejemplo:

En el archivo con error falta la propiedad Id_Per.

Archivo con error:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="crmos.Bo.Contacto, crmos.Bo" table="Contacto">
<id name="Id_Con" type="Int32" unsaved-value="null">
<column name="Id_Con" length="4" sql-type="int" not-null="true" unique="true" index="PK_Contacto"/>
<generator class="native" />
</id>
<property name="Id_Cti" type="Int32">
<column name="Id_Cti" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Fecha_Con" type="DateTime" access="property" >
<column name="Fecha_Con" sql-type="datetime" />
</property>
<property name="Observacion_Con" type="String" access="property">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="property">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="property">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>

</class>
</hibernate-mapping>

Archivo correcto
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="crmos.Bo.Contacto, crmos.Bo" table="Contacto">
<id name="Id_Con" type="Int32" unsaved-value="null">
<column name="Id_Con" length="4" sql-type="int" not-null="true" unique="true" index="PK_Contacto"/>
<generator class="native" />
</id>
<property name="Id_Per" type="Int32">
<column name="Id_Per" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Cti" type="Int32">
<column name="Id_Cti" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Fecha_Con" type="DateTime" access="property" >
<column name="Fecha_Con" sql-type="datetime" />
</property>
<property name="Observacion_Con" type="String" access="property">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="property">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="property">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>

</class>
</hibernate-mapping>

Could not find field 'Fecha_Con' in class 'crmos.Bo.Contacto'

Tube este error en el proyecto CRMOS y solucione cambiando  la propiedad access de field a property.

Código con error:
&lt:property name="Fecha_Con" type="DateTime" access="field" >
<column name="Fecha_Con" sql-type="datetime" />
</property>

Corregido
&lt:property name="Fecha_Con" type="DateTime" access="field" >
<column name="Fecha_Con" sql-type="datetime" />
</property>

Could not find a getter for property

Estube con este error n días hasta que descubrí cual era la razón. ¿De que estamos hablando? Del proyecto CRMOS con NHibernate. Tengo una clase que es Contacto:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="crmos.Bo.Contacto, crmos.Bo" table="Contacto">
<id name="Id" type="Int32" unsaved-value="null">
<column name="Id_Con" length="4" sql-type="int" not-null="true" unique="true" index="PK_Contacto"/>
<generator class="native" />
</id>
<property name="Id_Cti" type="Int32">
<column name="Id_Cti" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Fecha_Con" type="DateTime" access="field" >
<column name="Fecha_Con" length="8" sql-type="datetime" not-null="false"/>
</property>
<property name="Observacion_Con" type="String" access="field">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="field">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="field">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>
    
</class>
</hibernate-mapping>

y la clase que estaba implementando tenia campos como:
xId_Con, xId_Cti, etc. Ejemplo:

public virtual int xId_Con{ 
 get {return Id_Con;} set {Id_Con=value;}}

 public virtual int xId_Per{ 
 get {return xId_Per;} set {xId_Per=value;}}
 public virtual int Id_Cti{ 
 get {return Id_Cti;} set {Id_Cti=value;}}
 public virtual DateTime xFecha_Con{ 
 get {return Fecha_Con;} set {Fecha_Con=value;}}
 public virtual string xObservacion_Con{ 
 get {return Observacion_Con;} set {Observacion_Con=value;}}
 public virtual int xEstado_Est{ 
 get {return Estado_Est;} set {Estado_Est=value;}}
 public virtual int xId_Ven{ 
 get {return Id_Ven;} set {Id_Ven=value;}} 


La solución es que si tengo mapeada una propieda Id_Con, Id_Per, etc. Esos es lo que tiene que estar en la clase. Ejemplo (el siguiente código es correcto)

public virtual int Id_Con{ 
 get {return xId_Con;} set {xId_Con=value;}}

 public virtual int Id_Per{ 
 get {return xId_Per;} set {xId_Per=value;}}
 public virtual int Id_Cti{ 
 get {return xId_Cti;} set {xId_Cti=value;}}
 public virtual DateTime Fecha_Con{ 
 get {return xFecha_Con;} set {xFecha_Con=value;}}
 public virtual string Observacion_Con{ 
 get {return xObservacion_Con;} set {xObservacion_Con=value;}}
 public virtual int Estado_Est{ 
 get {return xEstado_Est;} set {xEstado_Est=value;}}
 public virtual int Id_Ven{ 
 get {return xId_Ven;} set {xId_Ven=value;}}

sábado, 8 de noviembre de 2008

de MS SQL 2005 a MS SQL 2000

Probablemente mas de alguno ha intentado migrar una base de datos de SQL 2005 a la versión 2000 a travez de un script del asistente para secuencia de comandos del Magament Studio. Bueno,  lo siguiente es que cuando intentas correr el script en SQL 2000 te da errores.

Para exportar correctamente es posible indicar al asistente de SQL 2005 la versión.
El flujo es:
Seleccionar Base de datos -> 
Elegir opciones de secuencia de comandos, en esta ventana debes buscar la linea Secuencia de comando para versión del servidor y elijes SQL Server 2000.

Error '3622' en tiempo de ejecución:

Siguiendo con el proyectito retro de migrar una aplicación VB6 y Access a SQL. Intente conectarme  a la misma base pero en SQL 2005 Express y me aparecio el siguiente error:

Error '3622' en tiempo de ejecución:

Debe usar la opción dbSeeChanges con OpenRecordset al tener 
acceso a una tabla de SQLServer que tenga una columna IDENTITY.

El cual solucione agregando lo siguiente cuando abro el recordset:

Set rsTmp=gdbCurrentDB.OpenRecordset(rName,dbOpenDynaset, dbSeeChanges)

funciono perfectamente.
La solución la obtuve en el siguiente link:

jueves, 30 de octubre de 2008

Pentaho

Pentaho es una suite de BI (Bussines Inteligence) que es resultado de la union de varios proyectos entre estos (Kettle, Jfree, mondrian, weeka). Es una solución Open Source.

Página de Pentaho
www.pentaho.com

Página en sourceforge
http://sourceforge.net/projects/pentaho/

Foro explicativo
http://forums.pentaho.org/archive/index.php/t-55333.html

lunes, 27 de octubre de 2008

Recursos para aprender GIMP

Cuando se trata de edición de imágenes me gusta utilizar Photoshop y Fireworks. ¿Pero cual es el unico problema que tienen estas herramientas (O mejor dicho barrera)?. Es que debes pagar por las licencias, lo cual creo que no es problema para una empresa, pero si lo tuyo no es la edición de imagenes comercial tal vez no te convenga comprar las licencias de estos softwares. Pero si hay una alternativa libre a estos gigantes, se trata de GIMP un editor de código abierto que puedes descargar libremente. Hasta ahora no le he visto ninguna falencia con respecto a los que mencionaba al principio, es mas lo encuentro bastante poderoso, para ayudarse en hacer maquetas Web, botones, fondos, etc.

Lo primero es descargarlo:
http://www.gimp.org/

Y comenzar por esta excelente página:
http://gimp-tutorials.net/home

Tambien he encontrado este libro (en Inglés) on line:
http://gimp-savvy.com/BOOK/

viernes, 24 de octubre de 2008

SQL Server Migration Assistant for Access

SQL Server Migration Assistant for Access, es una herramienta de Microsoft que permite migrar bases de datos Access a SQL 2005. La descarga es gratuita, solo hay que registrarse y bajar un archivo de licencia.

La interfaz de la aplicación es bastante intuitiva. Vamos a ver que digo despues de probarla mas exhaustivamente.

http://www.microsoft.com/downloads/details.aspx?familyid=D842F8B4-C914-4AC7-B2F3-D25FFF4E24FB&displaylang=en

martes, 21 de octubre de 2008

in expected: p

La tarea pendiente es: Solucionar el siguiente error en el proyecto CRMOS.

in expected: p [select c.Id_Con, c.Id_Per, p.Nombres_Per , p.ApellidoPaterno_Per, c.Id_Cti, c.Fecha_Con, c.Observacion_Con, c.Estado_Est, c.Id_Ven
from crmos.Bo.Contacto c
inner join Persona p
on c.Id_Per=p.Id_Per
order by c.Id_Con desc]

Update 29/10/2008
Ahora tengo este otro error:

outer or full join must be followed by path expression [select c.Id_Con, c.Id_Per, p.Nombres_Per , p.ApellidoPaterno_Per, c.Id_Cti, c.Fecha_Con, c.Observacion_Con, c.Estado_Est, c.Id_Ven from crmos.Bo.Contacto as c inner join crmos.Bo.Persona as p on c.Id_Per=p.Id_Per order by c.Id_Con desc]

Creo que lo que provoca este error es el uso de INNER JOIN, por lo que reemplaze esta consulta que usa INNER JOIN 

select c.Id_Con, c.Id_Per, p.Nombres_Per , p.ApellidoPaterno_Per, c.Id_Cti, c.Fecha_Con, c.Observacion_Con, c.Estado_Est, c.Id_Ven 
from Contacto as c 
inner join Persona as p on c.Id_Per=p.Id_Per order by c.Id_Con desc

por esta consulta:

select c.Id_Con, c.Id_Per, p.Nombres_Per , p.ApellidoPaterno_Per, c.Id_Cti, c.Fecha_Con, c.Observacion_Con, c.Estado_Est, c.Id_Ven from Contacto as c , Persona as p where c.Id_Per=p.Id_Per order by c.Id_Con desc


Exportar consulta SQL a Excel

Deja de copiar y pegar los resultados de tus consultas de SQL a Excel, genera directamente el archivo desde SQL ejecutando
este script en el Query Analyser

EXEC sp_makewebtask
@outputfile = '\\lugarenlared\D\archivo.xls',
@query = 'select * from Tabla',
@colheaders =1,
@lastupdated=0,
@resultstitle='Informe en Excel'

Nube de tags en blogger

Una de las cosas que le estaba hechando de menos a blogger era una nube de tags. Pero la encontré en este sitio, resulto super simple de implementar. Les dejo el link:

http://tensaiweb.info/blog/herramientas/nube-de-tags-para-blogger/

domingo, 19 de octubre de 2008

Como publicar código fuente en blogger

Los programadores que mantenemos algun blog, tenemos la dificultad de postear código fuente en los blog. ¿Porque? Porque el navegador interpreta como que corresponde a codigo de la página, de modo que trata de ejecutar el código y no mostrarlo. Para Wordpress y otros software de blogs, existen extensiones, ¿pero como hacer postear código en blogger?

Fácil reemplazar los caracteres <> por los que se muestran en la imagen y tal como se muestra en el link donde encontre la solución.


http://blogtacoras.blogspot.com/2007/05/como-publicar-codigo-en-los-post.html

sábado, 18 de octubre de 2008

Error al crear el control

Como se estarán dando cuenta, me estoy poniendo prolífico en el posteo en base a los errores que surgen al desarrollar en Net e NHibernate. Asi que les dejo la solución para este error que es un tanto básico, pero que igual a mas de alguien le puede tomar un tiempo.

Error al crear el control - UpdatePanel1El tipo 'System.Web.UI.UpdatePanel' no tiene ninguna propiedad pública cuyo nombre sea 'GridView'.

El error se produce si colocas un GridView dentro de un UpdatePanel arrastrando y soltando.

<asp:updatepanel id="UpdatePanel1" runat="server">
<asp:gridview id="GridView1" runat="server">
</asp:gridview>
</asp:updatepanel>

Lo correcto es agregar antes de colocar el GridView

<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<asp:gridview id="GridView1" runat="server">
</asp:gridview>
</contenttemplate>
</asp:updatepanel>
</contenttemplate>

Dependency cycle detected, cannot build!

Desarrollando en SharpDevelop, me ocurrio este error:
Dependency cycle detected, cannot build! , al compilar un proyecto que incluia unas referencias.

Por ejemplo, el proyecto se llama crmos.dao y en las referencias tambien tenia una dll (crmos.dao.dll) declarada, lo cual provocaba el error. Una vez que quite la referencia (a sí misma) se soluciono el problema.

Les dejo un link en inglés desde donde obtube la solución a ese problema:
http://community.sharpdevelop.net/forums/t/5246.aspx

NHibernate.QueryException: unexpected token:

Me estoy reconciliando con los libros y la comunidad NHibernate. De hecho estoy avanzando mas rápido en el desarrollo con este framework. Me he encontrado con algunos errores los cuales en la medida de lo posible quiero documentar (las soluciones) por que es lo mas probable que en el futuro vuelvan a ocurrir, y por supuesto le sirvan a alguien. El error: NHibernate.QueryException: unexpected token: ... , me ocurrio en el siguiente trozo de código:

public IList getContactos()
{
nhsesion cSes = new nhsesion();
ISession session = cSes.OpenSession();

IQuery query = session.CreateQuery("from Contacto as cont order by cont.Id_Con asc");
return query.List();

}

¿El error porque ocurría? Porque estaba mal configurado el namespaces en al archivo de mapeo. Y la solución por supuesto fue corregir esa situación en el archivo de mapeo que en mi caso era Contacto.hbm.xml en la linea que indica el nombre y el namespaces de la clase:

class name="crmos_consola.Contacto, crmos_consola" lazy="false"


viernes, 10 de octubre de 2008

Curva de aprendizaje

Ayer hacia referencia a un concepto que es la curva de aprendizaje, no se porque motivo le comente a mi señora ese concepto. A lo cual puso sus reparos, ya que curva de aprendizaje segun ella, despues de un proceso de enseñanza mide resultados (según lo que entendí). Para mi la curva de aprendizaje es el nivel de dificultad que tiene alguna materia. No nos pusimos de acuerdo, asi que quedamos en que ibamos a consultar Wikipedia (lo cual no hicimos por olvido).

Hasta que al final cuando me acorde lo hice y me senti estafado. ¿A quien le copie ese disparate? ¿Cuantas veces he utilizado mal el término?
¿Aparte de el post anterior? Bueno a cualquiera le pasa. Aunque me queda la sensación de que tan equivocado no estoy y algo tiene quer ver (es un hecho). Y si es que se le da una vuelta hasta se justifica utilizarlo como lo estaba utilizando. Aunque la definición correcta es esta:

Una Curva de aprendizaje describe el grado de éxito obtenido durante el aprendizaje en el transcurso del tiempo. Es un diagrama en que el eje horizontal representa el tiempo transcurrido y el eje vertical el número de éxitos alcanzados en ese tiempo.

http://es.wikipedia.org/wiki/Curva_de_aprendizaje

Seria bueno un feedback de los lectores...

jueves, 9 de octubre de 2008

NHibernate - La curva de aprendizaje

NHibernate (a todo esto es un software de persistencia que que independiza tu aplicación del motor de datos). Me tiene bien a mal traer, no lo puedo dominar aún.
Y hay una serie de situaciones que hacen cuesta arriba el aprendizaje. Para enumerar algunos:

Los ejemplos que se encuentran estan en una versión anterior, la cual tiene diferencias importantes con la ultima (que es la que interesa usar).
En un grupo de noticia en el cual hice una consulta me mando al foro, por newbie, donde ustedes ya saben estan los ejemplos añejos. Que recuerde el unico ejemplo que hecho funcionar ha sido uno que baje de esta página:
http://metodologiasdesistemas.blogspot.com

Y me falta hacer los descargos sobre el libro NHibernate in Action, que es una cosa insipida. ¿A quien le han encargado un sistema en linea de comandos ultimamente? Si alguien responde si, le recomiendo el libro.

Espero que llegue el minuto en que me reconcilie con el mundo NHibernate con sus libros, sus foros, grupos, comunidad, y eso de pie a un post en mi lado politicamente correcto de la web. Pero por lo pronto me desahogo en este espacio que es mi lado B.

Update 18/10/2008
A unos días de hacer mis descargos, puedo decir que ha ido mejor de hecho ya estoy trabajando con el framework. Y en todo esto me ha servido bastante el libro NHibernate in Action.