140 likes | 250 Views
Usage of VFP code in the back-end of Silverswitch applications. Venelina Jordanova Venelina@VandU.eu. Uwe Habermann Uwe@VandU.eu. VFP COM server. Can be used in any Silverlight application Browser At the client side OOB with elevated trust At the server side At the client side
E N D
Usage of VFP code in the back-end of Silverswitchapplications VenelinaJordanova Venelina@VandU.eu Uwe Habermann Uwe@VandU.eu
VFP COM server • Can be used in any Silverlight application • Browser • At the client side • OOB with elevated trust • At the server side • At the client side • Silverlight client executes method in VFP COM server
VFP COM server • Execution of FXP • Execution of APP • Advantages: • COM server need not be re-registered • IIS need not be restarted
VFP COM server • Data access • Cursoradapter • VFP database • SQL database • All ODBC data sources • MySQL • Oracle • DB2 • … • Set-up database to use
VFP COM server • Business logic • Everything, but nothing visible(no user interface)
VFP COM server • DEFINE CLASS COMTastrade AS SESSION OLEPUBLIC • Build as “Multi-threaded COM server (dll)” • VFP9.exe must be started with Administrator rights explicitly!
VFP COM server DEFINE CLASS COMTastrade AS SESSION OLEPUBLIC PROCEDURE GetCustomers() USE Customer IN 0 SHARED CURSORTOXML("Customer", "lcXML", 1, 2, 0, "1") USE IN Customer RETURN lcXML
Use VFP COM serverattheserverside • “early binding” in Visual Studio • COM server must work at development time • Reference to COM server must be added to the server project
Call a VFP function private void xpgfPageFramePage1cmdProper_Click( object sender, RoutedEventArgs e) { VfxSystemDomainContext context = new VfxSystemDomainContext(); EventHandler handler = new EventHandler(ExecuteVFPCommand_Completed); var ExecuteVFPCommand = context.ExecuteCommandService("proper", xpgfPageFramePage1txtCustomername.Text.ToString(), VfxAppObject.CurrentConnectionInfo.ClientName); ExecuteVFPCommand.Completed += handler; }
Call a VFP function void ExecuteVFPCommand_Completed( object sender, EventArgs e) { var result = sender as InvokeOperation<string>; VfxCommandServiceResultBase ValueResult = (VfxCommandServiceResultBase)VfxSerializer. DeserializeObject<VfxCommandServiceResultBase> (result.Value); lblResult.Text = ValueResult.CommandServiceInfo.result; }
Action Button • Progammatical call of COM server method, procedure or new instanceof an object from the client side • Call from Button • Demo
Action Button • Pass multiple parameters • Pass data as parameter
Thankyouverymuchandhavefunwith Silverlight Venelina & Uwe