Entradas

Lista de objetos a DataTables

A partir del post anterior me han preguntado como convertir una lista de cualquier tipo a un DataTable.  Aquí les dejo el código que yo utilizo


private static DataTable ConvertToDataTable(IList data) { PropertyDescriptorCollection properties = TypeDescriptor.GetProperties( typeof( T ) ); DataTable table = new DataTable(); foreach (PropertyDescriptor prop in properties) table.Columns.Add( prop.Name, Nullable.GetUnderlyingType( prop.PropertyType ) ?? prop.PropertyType ); foreach (T item in data) { DataRow row = table.NewRow(); foreach (PropertyDescriptor prop in properties) row[ prop.Name ] = prop.GetValue( item ) ?? DBNull.Value; table.Rows.Add( row ); } return table; }

Saludos
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Volcando millones de registros a Sql Server con Microsoft .Net - SQlBulkCopy

Imagen
Estos días un cliente nos pidió desarrollar una interfaz entre él y un proveedor, el cual le enviaría todos sus artículos para el los pueda usar. La integración seria bajo archivos xml con mucha - pero mucha - información.

Bien, yo ya tenia listo el desarrollo y me toco probarlo y solicitamos que nos envíen datos de prueba, para sorpresa mía enviaron cerca de 2 millones de artículos en total, a lo cual yo dije  esto debe ser una prueba de stress y que no ocurría en la realidad, pero lamentablemente era un caso real y esta carga se realizaría varias veces en el año.

Me dispongo  a probar y para sorpresa mía el proceso se demoraría mas de 24 horas en procesar los 2MM de registros, donde el cuello de botella es principalmente la base de datos (según mis cálculos  mas  de 36), lo cual es realmente impresentable.

Después de la frustración  de saber que lo que había desarrollado no servia para prácticamente nada, decidí implementar hilos y tareas con Parallel.ForEach lo cual redujo el tiem…

Como validar un XML con un archivo XSD y c#

La verdad es que es muy fácil validar un xml con un xsd, y de esa forma ahorrar horas y horas de revisión manual/visual si cumple con toda la estructura.

Aquí el código





using System; using System.Xml.Linq; using System.Xml.Schema; namespace ValidaXml { class Program { static void Main(string[] args) { Console.WriteLine("validando input.xml con input.xsd"); var schemas = new XmlSchemaSet(); schemas.Add("", "input.xsd"); Console.WriteLine("Validando..."); var custOrdDoc = XDocument.Load("input.xml"); var errors = false; custOrdDoc.Validate(schemas, (o, e) => { Console.WriteLine("{0}", e.Message); errors = true; }); Console.WriteLine("archivo {0}", errors ? "No cumple con la validacion" : "…

Como saber que versión de Jquery tenemos

Muchas veces me he preguntado que versión de JQuery tengo en mis proyectos (despues de mucho tiempo uno se olvida de cual bajo)  bueno la forma  es bastante sencilla es simplemente con una una instrucción que la puedes llamar de Firebug o simplemente con un alert.


$.fn.jquery; o jQuery.fn.jquery; y retornará un string con la versión en mi caso -->""1.11.0"
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Tooltip controls winform

al parecer en winform agregarle un tooltip a un control no están trivial como setearle una propiedad. Para realizar esto existe un objeto tooltip y uno debe indicarle a que elemento aplica. var toolTip1 = new ToolTip(); toolTip1.SetToolTip(myControl.Control, "Presione doble click para ver información detallada");

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

cambiar colores de fondo de un formulario MDI

Yo he desarrollado muy poco para aplicaciones de escritorio,  pero me llego un requerimiento de cambiar un color  de fondo de un formalario MDI, un formulario MDI es un formalario madre donde se pueden lanzar otros formalarios como hijos, donde estos se pueden mover solamente en el formulario MDI madre.


Sin mayores detalles aquí esta código para poder cambiar el color de fondo de un MDI, ya que no es simplemente cambiarle la propiedad forecolor al formulario.


foreach (Control control in this.Controls) { MdiClient client = control as MdiClient; if (!(client == null)) { client.BackColor = System.Drawing.SystemColors.GradientInactiveCaption; break; } }

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Aplicación y Aplicativo

Cada dia es mas comun escuchar de aplicativo para referirse a un programa informatico,  esto puede sonar bastante cool, pero la verdad es que no lo es. El termino "aplicativo"  no existe en informatica, la palabra correcta para referirse a un programa informatica es "Aplicacion".

Las definiciones segun la real academedia española son;


Aplicación (informatica): Programa preparado para una utilización específica, como el pago de nóminas, formación de un banco de términos léxicos, etc.Aplicativo: Que sirve para aplicar algo.
y ustedes van a seguir usando aplicativo en vez de aplicación
Links:
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicativo http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicaci%F3n


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com