team developer 6 0 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Team Developer 6.0 PowerPoint Presentation
Download Presentation
Team Developer 6.0

Team Developer 6.0

228 Views Download Presentation
Download Presentation

Team Developer 6.0

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Team Developer 6.0 Migrating Existing Applications to Team Developer 6.0 .NET

  2. Agenda • Team Developer 6.0 products and upgrade path • New .Net Build Target options • Architectural overview • New Team Developer IL Compiler • Debugging • Migrating Existing Applications to .Net • External Calls, ActiveX, COM Servers, DB Connectivity • How to use .NET WPF Controls • How to create and use .Net classes • How to deploy TD .NET apps

  3. Team Developer 6.0 Products TD 1.x – 5.1 Applications TD 5.2 Applications New Add-On Product Upgrade TD 6.0 Win32 TD 6.0 .NET Win32 Build Targets .NET Build Targets Win32 Build Targets • New Tab Control • New Outlook Control • New Tree Control • New Toolbar • Quick Mail SMTP • True Color Icons & Images .NET WPF Desktop .NET WPF Browser .NET Class Library .NET SAL Library .NET Web Service Win32 Application .NET App Win32

  4. New .NET Build Target Options • .Net WPF Desktop • .Net WPF Browser • .Net Class Library • .NET SAL Library

  5. Architectural Overview • All compiled code pure .Net, assembled from generated IL • New .NET class libraries, based on proven Sabertooth libraries • New debugger, based on Microsoft’s .NET debugger library

  6. TD .Net Database Connectivity Backward Compatible DB Connectivity • Database access continues to simply work • Using existing sql.ini • SQLBase, Oracle, SQL Server, Sybase, ODBC and OLE DB • TD automatically maps to appropriate .NET Data Provider regardless whether OLE DB or native router has been used on Win32

  7. DBPipe .NET WPF Browser Centralized DB Access • New DBPipe allows multiple clients to share one database connection • Server component uses Microsoft’s scalable .NET Windows Communication Foundation (WPF) technology • Database access on server only • Easy client deployment without client database driver setup

  8. TD 6.0 DBPipe IIS Site Hosts XBAP downloads Hosts DBPipe Server Hosts database client Database server SQLBase Oracle SQL Server Etc.

  9. New .Net Compiler and Debugger Team Developer 6.0 IDE NEW TD IL Debugger NEW Team Developer IL Compiler Compiled Assembly WPF XAML Class Library .NET SAL Library Web Service Desktop Browser TD .NET Class Libraries ActiveX COM 3.0 – 3.5 .NET Framework DB Access, Controls, Types Windows Common Libraries

  10. New TD IL Compiler • Brand new compiler, developed in C# • All existing language keywords and statement types supported • Same SAL data types continued to be used • Support for windows classes and multiple inheritance

  11. New TD IL Compiler Seamless Experience • New compiler and debugger fully integrated into existing TD IDE • Performance equal to or faster than existing win32 compiler • No change to TD IDE • All warnings and errors displayed using existing Output window

  12. Debugging • If a .Net build target selected, the new .Net Debugger engine is launched • Most features of existing win32 debugger supported • Step into, over, and out • Setting breakpoints • Examining variable values • Evaluating expressions

  13. What has changed since DevCon 2009 • A lot more .NET power! • External Calls supported (Win32 DLL from .NET) • Except struct parameters • ActiveX and COM Server consumption works unchanged on .NET • .NET WPF Controls support • .NET SAL Libraries including GUI (DynaLib APDs) • Extensive migration help • Migration report • Define tasks, task report • .NET Web Services moved to TD 6.1

  14. Team Developer 6.0 .NETStep by Step Migration Guide

  15. Migrating Existing Applications to TD .Net Step 0 • Is your app on TD 5.x? • Yes, go ahead with Step 1 • No, migrate app to TD 6.0 Win32 first, same as migrate to TD 5.2 (Unicode etc.)

  16. Migrating Existing Applications to TD .Net Step 1 • Set the desired .NET build target • .Net WPF Desktop • .Net WPF Browser • .NET Class Library • .NET SAL Library

  17. Migrating Existing Applications to TD .Net Step 2 • Run the V 6.0 Upgrade Report • Work through high level task list • Then run report again for details • Read/print generated report for effort estimation and instructions

  18. Migrating Existing Applications to TD .Net Step 2.1 • Compile the application and use new „Convert to Task“ feature to comment code that needs to change • Use „Find Tasks“ from edit menu to work on task list

  19. Demo Upgrade Report and Task Management

  20. Migrating Existing Applications to TD .Net Step 3 • Remove Table Window Split features • For example replace with second table window • Replace VT controls with new TD controls • Outline list box -> Tree Control • QuickTabs to new Tab Control • Use QuickTab2Tab conversion tool

  21. Converting QuickTabs to new .NET Tab Control • QTAB2TAB.EXE • FIRST, always make a backup of all your code! • Now run v6 utility QTAB2TAB.EXE on your appl. • The utility makes these changes: • Pagelist.apl is removed • Qcktabs.apl is replaced with new qtab2tab.apl • v6 qtab2tab.apl declares these classes: • Tab Bar Class: cTabControl • General Window Class: cTabControlParent • cTabBarXX classes for Dialog Boxes & Form Windows

  22. Visual Toolchest Migration • Supported Stand-Alone functions

  23. Visual Toolchest Migration • Supported visual classes • cMeter

  24. Migrating Existing Applications to TD .Net Step 4 • Examine External Functions Parameters and Return Values • OK if not using struct‘s or window handles • If using struct‘s • Change DLL or • Change to call .Net class method instead, using the .Net Explorer • If using window handles • Replace with TD technology • Other limitations • No LPNumber, LPParam, Hsqlhandle, Harray • No calling of SAL Win32 libraries

  25. Supported with External Calls • Numeric: • INT • FLOAT • LONG • SHORT • WORD • USHORT • UINT •  String: • LPCWSTR • LPWSTR • LPVOID • LPSTR • LPCSTR • Boolean: • BOOL

  26. Migrating Existing Applications to TD .Net Step 5 • DynaLibs • Replace with .NET SAL Library • Move dynalib to .NET SAL Library including GUI elements • Compile dynalibs to .NET SAL Library • Creates new SAL symbol file .axl • In the main application remove the include of the APD • Include the new symbol file of the .NET SAL Library

  27. New SAL Library Symbol File

  28. Migrating Existing Applications to TD .Net Step 6 • Custom Controls (not ActiveX) • Not supported on .Net • Option 1 • Replace with similar .Net WPF control • Option 2 • Rewrite using TD control

  29. Migrating Existing Applications to TD .Net Step 7 • Compile Application • Replace all unsupported calls, the compiler reports • Shouldn‘t be a lot at this time

  30. QuickObjects Limitations • QuickObjects are not supported on .NET • QuickGraphs are supported on .NET • QuickTabs can be converted to new Tab Control using QuickTab2Tab app • QuickReports are not supported

  31. Language Support and Limitations • Restrictions (usage throws compiler error) • No loose usage of numeric types. Sql Handles, Window Handles, File Handles may not be used as number variables, or have their values assigned to each other • No DDE • Only a small subset of low-level window messages (WM_*) supported

  32. Enhancing .NET Apps with WPF Controls • Leverage modern and very rich .NET WPF controls • Use free or commercial third party WPF controls or self written WPF controls in TD .NET apps • Replace Win 32 Custom Controls and ActiveX Controls with .NET WPF Controls

  33. WPF Control Samples (not part of TD)

  34. More WPF Controls...

  35. Enhancing .NET Apps with WPF Controls • Very cool and rich controls available • • • • • •

  36. Using .NET WPF Controls • Place WPF Control onto TD window • Add xaml snippet to properties • Call any control methods • Set/Get any control properties • Trap any control events

  37. Use TD Built-In Gauges • Use any of these to display numeric values • RadialGauge • LinearGauge • RangeGauge • FlatRangeGauge • FlatLinearRangeGauge

  38. Demo ActiveX to .NET WPF Control • Demo using WPF controls

  39. Demo • .NET Office Integration

  40. Language Support and Limitations • Restrictions (usage throws compiler error) • No multiple inheritance of controls from 2 different form classes • No renaming of controls/columns which are inherited from a parent class • No overriding functions based on return type

  41. Calling .Net from Team Developer • Brand new for Team Developer 6.0, the ability to call .Net assemblies from within SAL code using either the Win32 compiler, or the new .Net compiler • Approach similar to ActiveX Wizard and Web Services wizard • New .Net Wizard allows user to select an assembly to call from SAL

  42. Calling .Net from Team Developer

  43. Calling .Net from Team Developer Choose GAC or Assembly Choose Assembly from GAC Choose Classes to include and output path Apl and axl created using Assembly name

  44. Calling .Net from Team Developer Sample .NET APL

  45. Calling .Net from Team Developer • Limitations • No support for handling the events of the external assembly • No support for calling methods or properties using “generics” datatypes

  46. Team Developer 6.0 .NET WPF Applications • Latest technolgy .NET WPF apps supported (Desktop and Browser) • GUI definition and code separated • XAML files describe UI • XAML fully customizable • Team Developer 6.0 includes customized XAML editor

  47. Customizing generated XAML • Team Developer comes with customized XAML editor (based on kaxaml) • XAML editor launchable from Team Developer IDE

  48. Customizing generated XAML • Custom XAML is created in .xaml\<app_name>\window.xaml • Customized XAML will be picked up by compiler and used instead of default • Form outline items will have new XAML context menu with options to view default XAML, or create custom XAML

  49. Customizing generated XAML

  50. Customizing generated XAML • App.xaml and window_main.xaml file may be edited to enable application-wide changes • Applying custom themes to all forms • Applying custom styles to certain controls