--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Por lo que decis carina me estoy imaginando que estas enviando y recibiendo archivos por medio de remoting, a medida que recibis al archivo procesas o no los registros quiza metiendole algo de logica del negocio y persistis objetos en base de datos. O recibis a todo el archivo, procesas y mandas a la db.
Es asi? Esto es en tiempo real o pueden ser procesos batch que procesan a los archivos? Porque no manejar la transferencia de datos con un sftp y despues vas procesando a los archivos a medida que llegan, o alguna otra solucion mas sencilla. Con muy poco trabajo podrias tener algo implementado para empezar a medir y laburar en el refactor hasta llegar a una solucion que rinda. Tenes libertad de proponer el diseño vos?
Mi experiencia aislada con remoting es que hace años trabaje en un proyecto que transferiamos entre dos puntos gran volumen de objetos muy livianos y era mas que performante. Hoy yo lo encararia con wcf si fuera el caso. Visual studio 2008 y tener que trabajar derecho con ado.net creo que no seria un problema. De hecho creo que lograrias mejorea resultados en cuanto al rendimiento respecto a linqtosql o entityframework, vas a tener la posibilidad de controlar vos como hablas con la base de datos, prestale atencion a la concurrencia y manejo de error. Hace años estos problemas se resolvian sin todo el tooling y apis que hay hoy asi que seria cuestion de buscarle la vuelta.
Podes contar un poco mas de que se trata esto o como seria un caso de negocio?
AF
En realidad no veo mucha relación entre la versión del visual studio con el proceso de archivos. Básicamente lo que necesitas es hacer un servicio que este escuchando los directorios y una vez que pongan los archivos procesarlos. Ahora bien, el tema de procesar grandes cantidades de información es un tema interesante porque, lo más seguro que está pasando con el sistema que tienen actual es que carga el archivo en memoria y ahí es donde el rendimiento se pierde.
Habría que ver bien los requerimientos pero lo más practico es abrir el archivo u procesarlo línea por línea o por bloques, de esa manera garantiza que no se monte el archivo completo más bien lo hacen interactivo.
Otro método es tomar el archivo y pasarlo a una tabla de SQLServer y de ahí procesarlo o también puedes usar algo de (SQL BULK INSERT)
Si pudieras usar .NET 4.0 investiga (System.IO.MemoryMappedFiles)
http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx
También puedes ver algo de (System.IO.TextReader.ReadBlock)
http://msdn.microsoft.com/en-us/library/system.io.textreader.readblock.aspx
Lo anterior es si el tiempo de procesamiento no es crítico, si necesitan procesar con mucha velocidad si hay que ver un poco más sobre procesos múltiples, eso es un poco más complicado pero igual se puede hacer.
Saludos Jorge Eldis
Exacto, esa es una posibilidad, habría que analizar el escenario para ver si es conveniente o no usar este método, por mi experiencia, funciona bien. Como te comentaba en el mensaje anterior todo depende de los requerimientos que están necesitando en el proceso del archivo. Si sigues teniendo problemas no dudes en escribir a ver cómo le damos la vuelta a eso.
Jorge Eldis