Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft Visual Foxpro - .NET Novedades Ana María Bisbé | Danysoft
Mar 23, 2016
Haciendo visible el camino a .NETIV Encuentro de programadores Microsoft & Danysoft
Visual Foxpro - .NETNovedades Ana María Bisbé | Danysoft
Agenda del día09:00 - 11:00 Novedades Visual FoxPro 9.0
Datos Entorno de Desarrollo Interactivo (IDE) Lenguaje
11:00 - 11:30 Café11:30 - 13:00 Interoperabilidad VFP - .NET
¿VFP o .NET? la perspectiva correcta .NET y sus beneficios para desarrolladores VFP VFP y sus beneficios para desarrolladores .NET POO en VFP y .NET Herencia en VFP y .NET Métodos, propiedades y campos en VFP y .NET Ejemplos de Interoperabilidad
13:00 Conclusiones
Novedades Visual FoxPro 9.0
Datos Entorno de Desarrollo Interactivo (IDE) Lenguaje
Visual FoxPro es un lenguaje centrado en datos, orientado a objetos que ofrece a los desarrolladores un conjunto de herramientas robustas para la creación de aplicaciones de bases de datos, desde escritorios, cliente servidor o la web. –
Ken Levy
Product Manager MS VS
¿Por qué Visual FoxPro?Porque está en todas partes, es poderoso, es rápido de aprender, es económico. Porque tiene integrado mucho de lo necesario para escribir, depurar y mantener aplicaciones de escritorio, multicapa, de Internet, COM y Servicios web, y lo que le falta lo puede consumir o está disponible en herramientas de terceros.Es capaz de correr en hardware económico, de menor tecnología, utilizar código heredado y aún así seguir haciendo todo lo que se espera que haga un lenguaje moderno.
”Aun cuando nunca más fuese a escribir otra aplicación en VFP, siempre estará instalado en mi máquina”.-
David T. Anderson
Objetivos del FoxTeam para la Versión 9.0
Basarse en las sugerencias de los usuarios y Listas de deseos (Wish list) Mantener compatibilidad hacia atrás Mejoras en el lenguaje, nuevas funciones: ICASE(), CAST(), CLEAR ERROR, SYS(2910) Nuevos tipos de datos: VarChar, VarBinary, y BLOB Añadir nuevas características de interfaz a los usuarios finales: Autocomplementar en textbox, IntelliSense en aplicaciones, modificación protegida de informes. Mejorar la productividad del desarrollador: MemberData, panel Explorador de Datos en Panel de tareas Mejoras significativas en el Generador de informes: múltiples bandas de detalle, protección, extensibilidad Nueva clase base ReportListener Nuevos diseñadores de propiedades: Anchor y MemberData Mayor conectividad con XML y SQL Server
Visual FoxPro 9.0 en Castellano Se realizó la traducción al castellano del IDE y la Ayuda de VFP 8.0 por un equipo internacional Ya se traduce el IDE de la versión 9.0. En breve se convocará a los desarrolladores para la traducción de la ayuda de VFP 9.0
Datos (I) Nuevos tipos de datos: VarChar, Varbinary y Blob Nuevo tipo de índice Binary Mejoras XML
• XML anidados• Soporte a esquemas XSD de diferentes formatos• Soporte a nuevos tipos de datos – nuevas propiedades MAPVARCHAR y MAPVARBINARY Mejoras SQL
• Menos restricciones• Subconsultas anidadas• Subconsultas en cláusula FROM, lista de campos y UPDATE• Nuevo resultado en TOP n• Mejoras de optimización• Mostrar resultado de optimización • SELECT desde tablas almacenadas en buffer – cláusula WITH (buffering .T.)
Datos (II) Mejoras CursorAdapter
Transacciones sobre tablas libres y cursores funciones MAKETRANSACTABLE(), ISTRANSACTABLE()
• Refrescar datos desde CursorAdapter – método RecordRefresh• Valores predeterminados para CURSORFILL – propiedades UseCursorSchema, NoData• Deshabilitar transacciones automáticas – propiedad UseTransactions• Valores restringidos y predeterminados – claúsula CHECK• Aumento del tamaño para valor de propiedad
Entorno de Desarrollo Interactivo (IDE) Diseñador de clases y formularios Administrador de proyectos Ventanas de código Panel de Tareas Diseñador de informes
Diseñador de clases y formularios Cambios en opciones de menú y títulos de ventanas de ventanas Posibilidad de acoplar (Dock) ventanas de usuarios Ventana Propiedades Nueva propiedad MemberData
Propiedad Anchor Mostrar elementos gráficos Autocompletar en cuadros de texto
• Control de capitalización• Control de Ficha Propiedades• Generador de MemberData
Administrador de proyectos Modificar librerías de clases VCX Obtener log de errores de generación Arrastre de archivos al Administrador de proyectos
Administrador del Panel de Tareas (Task Pane) Nuevos ejemplos Solution Nuevas fichas en el panel Administrador de Entorno Nuevo panel Explorador de datos
Ventanas de código IntelliSense dentro de comandos WITH… ENDWITH, FOR EACH …. ENDFOR Compilación inmediata Imprimir texto seleccionado Copiar código con formato Mejoras en el cuadro de diálogo Buscar
Diseñador de Informes (I) Protege todo el trabajo invertido. No modifica la estructura actual del archivo FRX. Mejora el interfaz de usuario:
• se eliminaron muchos de los cuadros de diálogos aislados y se unificaron en la nueva ventana Propiedades de informe, • fueron rediseñadas las ventanas Propiedades de campo y Banda• cambios en el cuadro de diálogo Generador de expresiones• nuevo cuadro de diálogo Selección múltiple Proporciona nuevas posibilidades
Es soportada la depuración en Informes
• Protección – MODIFY REPORT nombreInforme PROTECTED• encabezados en tiempo de diseño, • manipulación de DataEnviroment, • múltiples bandas de detalle
Diseñador de Informes (II)Extensibilidad Antes de VFP 9.0
Nuevo Motor de informes
Diseñador de Informes (III)Extensibilidad Nueva clase ReportListener oListener = CREATEOBJECT("ReportListener")
oListener.ListenerType = 1
REPORT FORM <name> <clauses> OBJECT oListener Nuevas variables del sistema
Mejoras en las capacidades en tiempo de ejecución
• _REPORTBUILDER • _REPORTPREVIEW • _REPORTOUTPUT
• Posibilitar más tipos de salidas además de pantalla e impresora - HTML - XML - Imagen
Lenguaje ICASE() antes: IIF(1+1=2, "Se cumple la primera”, IIF(1+1=3,"Se cumple la segunda",“Ninguna"))
ahora: ICASE(1+1=2,"Se cumple la primera",1+1=3,"Se cumple la segunda","Ninguna”) CAST() Mejoras en STREXTRACT()
Conclusiones Visual FoxPro 9.0 es una versión estable, que incorpora funcionalidades nunca antes vistas como el nuevo Generador de Informes, con la salida asistida por objetos y la posibilidad de trabajar con archivos XML anidados y subconsultas anidadas. Los nuevos tipos de datos y el soporte de nombres largos de campos, hacen a Visual FoxPro cada vez más compatible al resto de herramientas para tratamiento de datos. El IDE continúa en constante evolución, buscando elevar cada vez más la productividad de los de los desarrolladores. LA ventana Propiedades, la nueva propiedad _memberdata, los generadores de propiedades y el panel Entorno de datos, son evidentes ejemplos de ello. El archivo de Ayuda ha sido mejorado y complementado en muchos aspectos. Es fuente inagotable de conocimientos y material de lectura altamente recomendada.
Interoperabilidad VFP - .NET ¿VFP o .NET? la perspectiva correcta .NET y sus beneficios para desarrolladores VFP VFP y sus beneficios para desarrolladores .NET Programación Orientada a Objetos en VFP y .NET Herencia en VFP y .NET Ejemplos de Interoperabilidad Conclusiones
¿VFP o .NET? la perspectiva correcta VFP una herramienta madura .NET una tecnología exitosa La perspectiva correcta ¿Estará VFP en .Net?
.NET y sus beneficios para desarrolladores VFP Muchas clases en .NET Aprender la tecnología .NET y aplicarla en VFP Adopción de buenas prácticas de programación
VFP y sus beneficios para desarrolladores .NET Conocimiento de OOP desde VFP Reproducir la forma en que trabaja desde VFP
POO en VFP y .NET En VFP convive la programación procedural con la OOP
LOCAL loObjectloObject = CREATEOBJECT("TestClass")? loObject.GetCurrentDate()
DEFINE CLASS TestClass AS CUSTOMFUNCTION GetCurrentDate()RETURN "La fecha es: " + TRANSFORM(DATE())ENDFUNCENDDEFINE
En .NET todo es objetoConsole.Writeline(“La fecha es: “+ Datetime.Today.ToString))
POO en VFP y .NET (II) Definición de clases
VFP VB.NET C#.NETDEFINE CLASS TestClass AS CustomENDDEFINE
Public Class TestClassEnd Class
public class TestClass{ } public class TestClass{ }
Public Class TestClass Inherits ObjectEnd Class
public class TestClass : Object { }
POO en VFP y .NET (III) Escritura estrictamente tipada En VFP es posible cometer estos erroresLOCAL oFormoForm = CreateObject("Form")oForm = CreateObject("TestClass")oForm.Show() En .NET NO es posibleDim oForm as FormoForm = New Form
En VFP NO es posible crear este acceso directoLOCAL oForm = CreateObject(“Form”) En VB.NETDim oForm AS New Form En C#.NETForm oForm = new Form()
POO en VFP y .NET (IV) Espacios de nombres (namespaces) En VFP las clases se almacenan en bibliotecas.VCXs.PRGsUn .EXE o .DLL puede almacenar varias bibliotecas de clases En .NET las clases se almacenan en namespacesUn .EXE o .DLL puede almacenar varios namespaces
En .NET los namespaces forman parte del nombre de la clase Public NameSpace MyNamespacePublic Clss TestClassEndClassEnd NameSpace
Herencia en VFP y .NET
VFP VB.NETDEFINE CLASS Contacto AS Custom FUNCTION DameNombre() AS String RETURN “Ana” ENDFUNCENDDEFINE
DEFINE CLASS Cliente AS Contacto FUNCTION ClienteValido() AS Boolean RETURN .T. ENDFUNCENDDEFINE
Public Class Contacto Public Function DameNombre() As String Return “Ana” End FunctionEnd Class
Public class Cliente Inherits Contacto Public Function ClienteValido() AS Boolean Return True End FunctionEnd Class
Herencia en VFP y .NET (II)
VFP VB.NETLOCAL oContacto as ObjectoContacto = CreateObject(“Contact”)oContacto.DameNombre()
LOCAL oCliente as ObjectoCliente = CreateObject(“Cliente”)oCliente.DameNombre()oCliente.ClienteValido()
Dim oContacto As New ClienteoContacto.DameNombre()
Dim oCliente As New ClienteoCliente.DameNombreCompleto()oCliente.ClienteValido()
Dim oCliente As Contacto = New Cliente()oCliente.DameNombre()
Herencia en VFP y .NET (III) En VFP se puede sobreescribir los métodos. En .NET no se puede sobreescribir un método. Hay que incluir la palabra clave Overrides para VB.NET u Override para C#.NET en la instancia actual y Overridable en la clase base En VFP DODEFAULT() ejecuta el código de la clase padre En VB.NET – MyBase.DameNombre() En C#.NET – base.DameNombre() En VFP se construye el objeto al ocurrir el evento INIT() En .NET existen constructores: En VB.NET son métodos New, En C#.NET se nombran igual que la clase padre.
Ejemplos de Interoperabilidad Consumir datos VFP en .NET Consumir componentes COM VFP desde .NET Exponer desde .NET objetos VFP como Servicios WEB Consumir Servicios Webs .NET desde VFP
Conclusiones Visual FoxPro es una herramienta de programación de aplicaciones que se encuentra en constante perfeccionamiento. Visual FoxPro incluyó la capacidad de trabajar con XML en su versión 7.0. haciendo así posible publicar y consumir Servicios Webs. Versiones posteriores han mejorado sus prestaciones. .NET es una herramienta estable y actual que brinda un conjunto de clases y capacidad integrada de gran utilidad para los desarrolladores. La mejor perspectiva es sin dudas: “Aprovechar lo mejor de ambos mundos”.
Más información DANYSOFT
Información, artículos técnicos, www.danysoft.comServicios Profesionales, [email protected], utilidades, licencias y libros: www.danyshop.com , [email protected]
Foxhttp://www.gotdotnet.com/team/vfp/ http://www.utmag.com/Spanish/Index.asp http://msdn.microsoft.com/vfoxpro/ http://www.eps-cs.com/VFPConversion/foxtofox.aspx http://www.pinpub.com/ME2/default.asp http://foxproadvisor.com/
Gracias por su asistencia, para +información contacten conDanysoft en el 902 123146 ó en [email protected]