Migrando a C#

03/09/2008 - 12:16 por Heberto Villavicencio | Informe spam
Saludos, soy otro foxero mas que esta tratando de migrar a C#. Necesito ir
migrando una aplicacion bastante grande escrita en VFP a C# pero antes de
empezar a tirar codigo quisiera tener claro como debo hacer algunas cosas
que desconozco en C#

1.- En el sistema en cuestion se utilizan muchos conceptos configurables, lo
que le permite al usuario diseñar sus propios conceptos con sus respectivas
formulas, en foxpro despues de la respectiva validacion de la formula es tan
sencillo como hacer mResultado = Evaluate(mFormula), hay en C# algun
equivalente a esto o un evaluador o analizador de expresiones???. No
quisiera tener que volver a mis tiempo de pascal donde habia que tirar 1000
lineas de codigo y romperse el casco con recursividad para evaluar algo como
( (850 / 2) * ( (7+3) * 50 / 100) / 30) por ejemplo

2.- Con respecto a los reportes entiendo que deberia usar crystal report,
que tal es el funcionamiento de esto en C#, particularmente pienso que
mientras menos herramientas de terceros utilice en el sistema pues mejor.
Como es la parte de impresion nativa de C#

3.- Entiendo que necesariamente tengo que trabajar contra un motor de base
de datos. En este caso como se manejan cursores locales, es decir despues
que haga el select y me traigo un cursor local como se trabaja con en en el
equipo (En VFP despues de select manejaba el cursor como una tabla mas DBF
local en la maquina)

4.- El sistema maneja varios modulos donde se puede compilar codigo sobre la
marcha y ejecutarlo, esto ha permitido a nivel de soporte solucionar muchos
requerimientos de los usuarios sin necesidad de modificar el nucleo del
sistema. Esto en VFP era tan sencillo como hacer un COMPILE y luego un DO
(en su forma mas sencilla claro). Cuando le pregunte a una persona que
trabaja en Microsoft me dijo que lo unico que tenia era que cambiar los
"paradigmas" de programacion pero ciertamente esta es una facilidad
primordial en mi sistema y no es aceptable eliminar esta capacidad en
futuras versiones. Ahora bien que puede ofrecerme C# para ayudarme a
solucionar esto, he escuchado algo de reflection pero no se realmente que
es, en resumen, hay alguna forma de compilar codigo nativo de C# desde un
ejecutable y ejecutar dicho codigo? (o por lo menos interpretarlo)

Muchas gracias por sus comentarios
 

Leer las respuestas

#1 Alfredo Novoa
03/09/2008 - 13:29 | Informe spam
Hola Herberto,

El Wed, 3 Sep 2008 06:16:10 -0400, Heberto Villavicencio escribió:

1.- En el sistema en cuestion se utilizan muchos conceptos configurables, lo
que le permite al usuario diseñar sus propios conceptos con sus respectivas
formulas, en foxpro despues de la respectiva validacion de la formula es tan
sencillo como hacer mResultado = Evaluate(mFormula), hay en C# algun
equivalente a esto o un evaluador o analizador de expresiones???.



No viene ninguno de serie, pero si buscas un poco encontrarás montones de
evaluadores de expresiones y muchas formas de resolver eso.

Por ejemplo:

http://www.codeplex.com/Flee

3.- Entiendo que necesariamente tengo que trabajar contra un motor de base
de datos. En este caso como se manejan cursores locales, es decir despues
que haga el select y me traigo un cursor local como se trabaja con en en el
equipo (En VFP despues de select manejaba el cursor como una tabla mas DBF
local en la maquina)



En C# los cursores locales esos se llaman DataReader, y son
unidireccionales y de solo lectura.

4.- El sistema maneja varios modulos donde se puede compilar codigo sobre la
marcha y ejecutarlo, esto ha permitido a nivel de soporte solucionar muchos
requerimientos de los usuarios sin necesidad de modificar el nucleo del
sistema. Esto en VFP era tan sencillo como hacer un COMPILE y luego un DO
(en su forma mas sencilla claro).



Aquí puedes utilizar archivos DLL para los módulos. Y también puedes
generar código CIL sobre la marcha y ejecutarlo. También existen lenguajes
script para .NET que puedes integrar en tus aplicaciones y hay unas nuevas
bibliotecas para facilitar la creación de lenguajes dinámicos que se llaman
Dynamic Language Runtime (DLR).

Cuando le pregunte a una persona que
trabaja en Microsoft me dijo que lo unico que tenia era que cambiar los
"paradigmas" de programacion



Pues menuda chorrada te ha dicho.

futuras versiones. Ahora bien que puede ofrecerme C# para ayudarme a
solucionar esto,



Creo que el mayor problema es que C# te ofrece montones de formas
diferentes de solucionarlo y hay que estudiar bastante para encontrar la
mejor.

he escuchado algo de reflection pero no se realmente que
es



http://es.wikipedia.org/wiki/Reflexi%C3%B3n_(inform%C3%A1tica)

, en resumen, hay alguna forma de compilar codigo nativo de C# desde un
ejecutable y ejecutar dicho codigo? (o por lo menos interpretarlo)



Puedes distribuir el compilador de C# con tus aplicaciones y utilizarlo
para crear ejecutables o archivos DLL.


Saludos
Alfredo

Preguntas similares