Wednesday, February 22, 2006

[NET]Pensando en upgrade!

Hace unas semanas empezamos con un upgrade VB6/VB2005, se encontraron varias cosas que resultan interesantes de comentar, ademas de algunas otras que he encontrado a raiz de una investigacion pro upgrade VB6/2005, MsAccess / SQL2005, Siempre se termina aprendiendo algo mas!.

Aquí algunas cosas que se tenian que hacer...
- Redefinir la metodologia de acceso a datos.
- Orientar a objetos el nuevo proyecto
- Encontrar controles similares a los usados
- Respetar los estandares de navegabilidad / mensajes presentados

Lo que se hizo (se sigue haciendo y creo que deberiamos hacer para posteriores eventos), en ese orden.
- Revisar las fuentes
- Identificar los metodos de acceso a datos (full ADO 2.x)
- Realizar un inventario de objetos / controles especiales.
- Identificar las consultas / procedimientos usados de acuerdo a funcionalidad CRUD de cada formulario / objeto (CRUD: Create / Read / Update / Delete)
- Redefinir la arquitectura de Acceso a Datos, se optó en el uso de un modelo desconectado, ademas del uso de la clase SQLHelper, se tenia en mente usar el DAAB, pero en primera instancia se ha obviado ese tema.
- Redefinir los estandares de codificacion / variables / objetos / controles /etc
- Reducir al minimo el uso de programacion estrucuturada (la idea es tener todo en base a OO)
- Refactorización de métodos.

Base de Datos
En buena cantidad de casos se recomienda reusar el procedimiento almacenado e intentar reducir la complejidad asociada a cada evento / procedimiento (hacer mas con menos, o mas con menos, cuando sea conveniente para el entendimiento, y abogue por un mejor mantenimiento de código).

Ademas, como ya se tiene realizado un inventario de las sentencias CRUD por cada objeto, se puede tener conocimiento de cuantas sentencias SQL incrustadas en el codigo, tienen que ser migradas a procedimientos almacenados.

Si se tienen bases de datos Access, las consultas deberian ser convertidas a vistas, aprovechando el indexamiento de las mismas (desde SQL2000).

Si se busca un mayor refinamiento, se deberian revisar y optimizar las funciones y procedmientos usados (si se tratara de una BD SQL)

Interface de Usuario
En lo que respecta a wizards de upgrade, no recomiendo el que viene con el Visual Studio, antes pensaba que quizá serviría para el diseño de interfaces, pero en algunos casos puede ser mas trabajoso el reacomodo de controles, les recomiendo hagan la prueba de pasar un proyecto VB6 pequeño, sobre todo si tiene controles tab, o grids o controles especiales.

Hay muchas cosas mas, como por ejemplo.
Revisión de:
- Manuales de usuario
- Procesos involucrados
- Integración de procesos.

Pero mientras más información se revise, mas grande será el proyecto, pasando a ser proyecto de desarrollo, ya no de upgrade. Es cuestion entonces de definir bien cosas como tiempo / dinero / personas.

Say no more.

Jersson
PD:
1. Imagino que bajo el mismo esquema el tiempo seria un poco mayor si se hablara de pasar a C#.
2. No estoy mencionando los casos de exito en migraciones / upgrade, aun estoy en proceso de revision!!!

3 comments:

Jersson said...

Algo que olvide mencionar con los estandares de nombres,
si se realiza una mayor revision del mismo, o se implanta uno (debido a que no estaba implementado), eso incrementa el tiempo,
como dije unas lineas antes, mientras mas meticuloso se sea, mas tiempo!

Saludos.
J.

Jose Luis :Setup said...

bueno saludos,
bueno solo tengo una consulta se puede desarrollar tecnologia .net en una Mac


bueno yo tengo una powerbook G4,
128 video
ram 256 ddr2 bus 400
cpu powerpc 1.33 Ghz

esa es mi duda ya que yo soy desarrollador web en php.

y queria usar algo de asp ya que me an dicho que para validad es muy sencillo.

buno siempre yo valido en java script.

Jersson said...

holas, VS en una mac, no tengo mucha informacion al respecto, estab revisando las especificaciones, y te pide minimo un winXP.
Lo que he visto es que hay VirtualPC para MAC, alli se le puede instalar un Sistema Operativo Virtual y sobre este tener el visual studio.. es lo que se me ocurre como primera solución.
Por cierto, eso consume bastante memoria (>256)

Saludos