Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/10/2015, 08:10
X_fran
 
Fecha de Ingreso: octubre-2007
Mensajes: 273
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: Mejorar performance de la UI en WinForm

agleiva
Me han sido de ayuda sus puntos de vista.

Lo primero que hice fue actualizar la .sln a NetFramework 4.5. Tengo en mi poder el VisualStudio2012 Ultimate. Por cierto una aclaración: Yo resido en Cuba, se me hace muy difícil obtener herramientas, de hecho acceder a internet es un calvario, pero bueno, intento resolver.
Continuo: al actualizar a NTFX 4.5, tengo dos situaciones: en el IDE no encuentro el objeto ReportDocument por ningun lado, objetos .rdlc si pero de eso desconozco, se trabajar con ReportDocuments a través del CrystalReport que viene integrado en VisualStudio, pero esta verison no me da la posibilidad de crear un Reporte desde un DataSet, tendría que intentar conseguir una versión de CrystalReport completa.

Estoy mirando que VisualStudio 2012, me dio a entender que hay que crear un proyecto nuevo solo para los Reportes, sin embargo, la solucion que tengo contiene 5 proyectos Winforms diferentes, ademas de las ClassLibraries de Negocio y Acceso a Datos; el hecho es que los ReportDocuments están dispersados junto con sus DataSet tipados en cada uno de los proyectos WinForm. Ahora, cuando intento abrir un Reporte de los que contiene el fichero, el VisualStudio o no entiende la versión de estos o yo no tengo idea, porque lo que me muestra son binarios, que se yo.

Lo otro, las clases Entities y Mappers, las crearon con una herramienta llamada Cooperator Framework, recordar que en la época de NetFramework 2.0 no existia LINQ ni nada eso, creo NHibernate sip ero no se por qué no lo emplearon. Googleando un poco la encontré, pero no creo exista una actualizacion para NetFramework 4.5, como para en caso que necesite regenerar las clases Entities. de todos modos si no se pudiera, tendre que inventar, porque creo que reescribir la capa de acceso a datos: no me parece.

Anh, otra cosa: ya probé con el componente BackgroundWorker, y creo mejoré la carga de uno de los módulos (un userControl completo) de manera asíncrona.
Agegué otro componente de estos al formulario de login y también se nota el cambio, siempre informando al usuario de alguna manera que se está ejecutando una operación (yo trato de hacer similitudes al uso de Ajax en la programaciñon web, que esa es la que domino un poco, jejeje).

Mi duda: tendría que crear componentes BacgroundWorkers distintos para cada una de las cargas de los módulos??.

leyendo un poco la documentación del componente explica que es la manera más simple de no tener que lidiar con Threads, delegados y eventos, de eso no se mucho pero bueno: intento aprender. Aunque al final todo pinta que es a lo que debo recurrir.