Entradas

Mostrando entradas de mayo, 2011

Importando librerias de .net en Ironpython

IronPython es python corriendo sobre .net, como tambien existe Jython que es sobre la jvm. La gracia de estas estos es usar toda la comodidad de un lenguaje extremadamente simple de escribir, leer y usar las librerias de .net o java por ejemplo. Para utilizar las librerias de .net primero se debe importar Common Language Runtime , y luego importar la libreria de .net que queramos usar. Por ejemplo para realizar unas consultas la base de datos y recorrer el resultado seria tan simplo como import clr clr.AddReference('System.Data') from System.Data import connection = SqlClient.SqlConnection("server=localhost,1433;uid=myuser;pwd=mypass;database=mydatabase;") query ="select * from person"; command = connection.CreateCommand() command.Connection = connection command.CommandText = query command.CommandType = CommandType.Text connection.Open() reader = command.ExecuteReader() while reader.Read(): print (reader["name"]) reader.Close() connection

Caso practico por que usar una Interfaz

a causa del post anterior Cannot serialize member 'Objects' of type 'System.Collections.Generic.IList`1.... varios me preguntaron por que usar Ilist y no List directamente. Bueno aquí un pequeño y muy cotidiano ejemplo, que sirve para entender las gracias de las interfaces. Supongamos que tenemos 2 clases una llamada "auto" y otra "camion" y ambas tienen un numero de patente. y en algún reporte o pantalla solo tenemos que listar solo la Patente seria de la siguiente forma. public interface IPatentable { String Patente { set; get; } } public class Auto:IPatentable { public String Patente { set; get; } public Int32 CantidadDePuertas { set; get; } } public class Camion:IPatentable { public String Patente { set; get; } public Int64 Peso { set; get; } } y después en un objeto Dao , para rescatar los datos desde algún origen, ya sea base de datos, webservice, etc.: public IList<IPatentable> GetPAtentes() { var auto1 = new Aut

Cannot serialize member 'Objects' of type 'System.Collections.Generic.IList`1....

Hoy me he encontrado con este problema, trantado de serializar un objeto a xml, por alguna razón no se pueden serializar objetos que contengan atributos Ilist. La foma de la que estaba trantando es la siguiente [Serializable] public class Person{ public Person (){ Address = new list<Address>(); } public String Name{set;get;} public IList<Address> Address {set;get;} public void ToXml() { var serializer = new XmlSerializer(typeof(Voucher)); var writer = new XmlTextWriter(Console.Out); serializer.Serialize(writer, this); } } y obviamente ejecuto esto desde un test unitario como el que sigue: [Test] public void TestForPersonToXml() { var person = new person(); Person.NAme = "victor Hugo Saavedra"; var Add = new Address(); add.street = "Alameda"; add.number = "1234"; Person.Address.add(add) person.ToXml(); } Pero al momento de ejecutar el test me da el

Mis nuevos avatar

Imagen
Mis nuevas imagenes, tanto para twitter google talk. las cuales las genere con http://www.pocoyize.com/online/ pero la version para iphone -- Atte. Victor Hugo Saavedra http://vhspiceros.blogspot.com

DbAdapter Timeout

Hace un tiempo tuve que implementar un desarrollo en particular, que hoy en dia se esta dejando de funcionar por un maldito timeOut, ya que este se conecta a una base de datos que se encuentra en Europa. Ademas se debe usar una conexión "SQLOLEDB" si es en produccion ya que el servidor es muy antiguo. primero implemente una regla no muy bonita pero funciona de maravilla. public static DbDataAdapter GetDataAdapter(string query, String connectionString) { if (connectionString.Contains("SQLOLEDB")) return new OleDbDataAdapter(query, connectionString); return new SqlDataAdapter(query, connectionString); } De esta forma se puede determinar si crear un SqlDataAdapter o un OLEDBadapter. ¿por que adapter y no comandos y conexiones? principalmente como es un servidor remoto, el adapter solito maneja la conexión y nos permite pasar a un dataset. La implementacion seria : var adapter = ConnectionStringClass.GetDataAdapter(&quo