Presentation on theme: "The Next Generation OpenEdge® IDE"— Presentation transcript:
1The Next Generation OpenEdge® IDE OpenEdge® ArchitectThe Next Generation OpenEdge® IDETomáš KučeraPrincipal Solution Engineer / EMEA Power Team
2> whoamiTKUStarted with Progress Software Czech Republic – Dec 19, 19942 Technical Support (1996 at ETSC)Since Dec 1996 – Consultant, Presales, Trainer, Project ManagerCurrently – GFS Mgmt responsibilities for Cze&Pol, Member of the EMEA Power Team – primary responsibility for SANDProduct Areas: OpenEdge, Sonic, some Apama and ActionalContact: Skype: tomas_kucera
3Agenda What is OpenEdge Architect Adopting OpenEdge Architect What‘s new in OpenEdge Architect 10.1B
4What is OpenEdge Architect OpenEdge Architect is anIntegrated Development Environment (IDE)for building service oriented businessapplications (SOBA).OpenEdge Architect providesan open, intuitive and extensible toolset that enhances OpenEdge developer productivity
6What is OpenEdge Architect Available ToolsDB NavigatorEditorDebuggerTools for Business LogicAppBuilder IntegratorMeta Catalog
7What is OpenEdge Architect Key ConceptsWorkspacesProjectsPerspectivesViews
8OpenEdge Architect - Workspaces Personal area that containsProjects, folders and filesConfiguration settingsPreferencesCan use multiple workspaces e.g.Different releasesDifferent environments like development, testing, deploymentExport / Import preferences between workspacesProject directory does not have to sit under the workspace directory
9OpenEdge Architect - Projects Live in a workspaceContain folders and files for resource organizationExample of projectsWeb projectBusiness services projectWhat is a projectExamples of projectsChange the graphics Make the project bigger
10OpenEdge Architect - Perspectives Defines initial set and layout of viewsProvides a set of functionality aimed at accomplishing a specific type of taskRole basedA Perspective is a group of views arranged in a layoutEach perspective is fully customizableThe goal of a perspective is to provide a set of views arranged in a particular way to help the user in accomplishing a task as efficient as possible.Examples: - OpenEdge Editor Perspective- DB Navigator Perspective- OpenEdge AppBuilder Perspective
11OpenEdge Architect - Views Allows a developer to view or interact with a specific informationThe type of interactions a developer is allowed to perform depends upon the specific functionality of the view
12Benefits of using OpenEdge Architect Setup once, easy to shareProvide SCM tools integrationEasy to switch between different environmentsPROPATH settingsDatabase connectionsBuild settings
14Agenda What is OpenEdge Architect What‘s new in OpenEdge Architect 10.1BAdopting OpenEdge Architect
15OpenEdge Architect 10.1B General Enhancements 64-bit Support SummaryGeneral Enhancements64-bit SupportCheat SheetsRemoval of Linked Resources DirectoryCustomizationSource Directory SupportDB Connection UnificationDebugger FrameworkObject-oriented ExtensionsDynamics run from OpenEdge ArchitectThe enhancement section covers general and miscellaneous changes that have been made to OpenEdge Architect for 10.1B. This are changes that are important, but not large enough from a training perspective to warrant there own section.
16Eclipse VersionsOpenEdge Architect ships with the Eclipse 3.2 platformOther versions of Eclipse are not supported with OpenEdge Architect 10.1BOpenEdge 10.1A used Eclipse version Once you open a workspace that was at version with Eclipse 3.2, which is the version of Eclipse in 10.1B1B, it can no longer be opened with EclipseWarning: Once you open a workspace with Eclipse 3.2 it can no longer be opened with Eclipse 3.1.1
17Some of the benefits going to Eclipse 3.2 Cheat SheetsSee OpenEdge Architect Cheat Sheets in this sessionProblems view enhancedExample grouping by severityPreference - Limit visible items per-groupHere uses default of first 100Description can be hiddenGroup bySeverityToggle for DescriptionShow 100 of 222
18Changed Directory Structure Directory structure changed to allow OpenEdge specific plug-ins to be included into a customers own Eclipse installationEclipse installation can point to the sub-directory that contains the Architect plug-insWe only support the installation that ships with OpenEdgeIf a customer use their own Eclipse install and encounters a problem they will need to reproduce the problem using the OpenEdge installation of EclipseHaving Architect plug-ins in their own sub-directory, separate from the version of Eclipse that installs with OpenEdge, makes it easier for customer that prefer to use their own install of Eclipse.Note that when installing OpenEdge, Eclipse will still be installed when OpenEdge Architect is installed, even if the customer plans to use their own version of Eclipse.
19OpenEdge Architect Installation Directory Structure Changes OpenEdge Architect features/plug-ins now in their own sub-directoryDLC\oeide\architect10.1A mixed with standard Eclipse10.1BNew
20Change in Editor Functionality Works like include file support in 10.1AHover on name of RUN shows location if availableProject name and relative pathElse Path if in ProPathLocation of internal procedureMouse Double-click opens and positions to RUN item if availableFor 10.1B Hover help display for RUN statements showing the project name and project relative path to files, external procedures, provided the file name can be found in the ProPath. The format is consistent with the 10.1A include file behavior. The project name is displayed followed by the project relative path if the program file exists within a project. If the program cannot be found, then a “File not found” message is displayed.Double-clicking the mouse in the editor on the name of a program in a RUN statement opens that file in a the editor if the file can be found. If it cannot be found, then there is no effect.This same functionality has also been added for internal procedures referenced in RUN statements. The hover message will display the name of the internal procedure. If the internal procedure is in an external file then the location of the file is displayed followed by the name of the internal procedure.Double-clicking the mouse on the name of an internal procedure will open move the cursor to the start of the internal procedure. If the internal procedure is in an external file referenced by the current file, then the external file will be opened, and the cursor positioned to the internal procedure.Internal Procedure<Project name> and External Procedure
21Run <program>Selecting drop down run list now shows the name of the program that will be Runlocal.p, selected in editor, and shown on Run menu option
22Outline View Option added to expand include content into outline view Option allows ABL code to open faster in the editor by not automatically expanding/analyzing include contentPrior to 10.1B includes were always expandedFor 10.1B expands when file is modified or when button ‘Expand Include file contents…’ is selected
23Cheat Sheets Brief summary of steps to complete tasks Links allowing quick access to more informationSupplements standard documentationUtilizes new functionality in Eclipse for Cheat SheetsFuture releases may…Automate task stepsImplement interactive tutorialsThe goal of Cheat Sheets in OpenEdge Architect is to guide users through a series of complex tasks. They make it easier to use the toolset, thus lowering the barriers to adopting OpenEdge Architect. OpenEdge Architect utilizes new Cheat Sheet functionality that was added to Eclipse.The standard documentation that comes with OpenEdge Architect provides complete information on all of the functionality that makes up the product. The value Cheat Sheets is that they put this same information in a set short summary of steps that allow users to complete defined tasks. In other words, Cheat Sheets supplement the current documentation. Links are provided in many areas of the Cheat Sheets to allow users to jump to the location in Architect that provides complete documentation topics covered.Cheat Sheets do this by:Providing a brief summary of the steps to complete tasksProviding quick and easy access to more information in the current documentationAutomating the steps involved in completing a task (launching tools, changing perspectives etc…)Implementing interactive tutorialsHowever, Cheat Sheet functionality for Architect will be delivered incrementally. In the 10.1B release, the Cheat Sheets will not have automation or interactive tutorials. For 10.1B Architect provides task summaries and the linking to OpenEdge help. Subsequent releases of OpenEdge Architect may have automation or interactive tutorials.
24Cheat Sheets Topics in 10.1B To select OpenEdge cheat sheets open the Cheat Sheet Selection dialog by selecting Cheat Sheets from the workbench help menu.The following OpenEdge cheat sheets are available for 10.1B:Using ABL Annotations —Creating OpenEdge Database Connection Profiles —Creating SQL Connection Profiles —Troubleshooting JDBC driver — shows how to check the configuration parameters for the default OpenEdge driver.JDBC Driver Configuration — summarizes driver configuration.OpenEdge Projects — summarizes how to create an OE Architect project and add resources.Access from workbench menu: Help Cheat Sheets…
25Cheat SheetsCheat sheets simplify the use of tools by guiding the user through a series of complex tasks to achieve an overall goalNewOptionsOff of the Workspace Help menu are two new options. One of those allows Cheat Sheets to be selected. The other option, although it is not the focus of this slide, is new way to select Keyword Help.Selecting Cheat Sheets from the help menu pops up a list of categories that have Cheat Sheets defined for them. Select the OpenEdge category to see the available Cheat Sheets that are specific to OpenEdge.The screen shot above provides an example of a Cheat Sheet, showing Configuring JDBC Drivers.
26CustomizationGoal - Provide an easy way to customize some parts of the OpenEdge Architect development environmentAllows users to:Add actions to a menu or toolbarFor example to call an ABL programSpecify a template for creating a fileFor example when creating a new ABL programSpecify a template that overrides an OpenEdge Architect templateIn 10.1A OpenEdge Architect does not provide any means by which an ABL user can customize the functionality of the menu entries or the templates used for generating code. The only method available in 10.1A is for a user to write an Eclipse Platform based plug-in, which requires skills in Eclipse and Java development.The goal of customization is to add features that make customizing the menus and template functionality within OpenEdge Architect easier for ABL developers.Customization functionality in 10.1B allows a users to:Add actions to a menu or toolbar that calls an ABL developer’s programSpecify a new template that can be used to create a new file (i.e. creating a new ABL program)Specify a template that overrides an existing template that already exists within OpenEdge ArchitectABL developers will not be required to know java to use any of the Customization functionality.Non-goals:To provide a complete customization tool. A tool is already written in the form of the Eclipse Plug-in Development Environment (or PDE). The PDE provides a complete set of tools for creating Eclipse platform plug-ins that can be used with OpenEdge Architect.Provide a means to create new template files.Internals: The customization editor works by modifying the plugin.xml file for the new plug-in that supports Customization. The plugin.xml file is the standard file that is used by all Eclipse Platform plug-ins that contribute features to the user interface. The new plug-in is named com.openedge.pdt.extensibility.user. This plug-in ships as part of OpenEdge Architect, but does not initially contribute any functionality to the UI for OE Architect. The OpenEdge Architect user uses the customization editor to modify the plugin.xml file. ABL developers are not required to know the details of the plugin.xml file itself or its location. The customization editor presents the user with a simplified interface that requires only what is required to modify the supported features, or tool bars, menus, and templates. All customizations that ABL developers create using the customization editor are contributed to the OpenEdge Editor perspective.Developers do not need to know Java
27Customization Editor Used to customize the OpenEdge Editor Perspective Editor selectable fromWorkbench menuThe new Customization Editor will be the primary way for developers to customize OpenEdge Architect. The editor’s main goal will be to make it easy for the user to add supported functionality to certain areas of the product.However, this editor will not prevent a user from writing their own Eclipse platform plug-in, should users want to make changes that are not supported by the Customization editor.The Editor is can be opened by selecting it from the workbench menu OpenEdge > Customization Editor.The Customization Editor provides users with the ability to extend there OpenEdge Architect environments easily. However, keep in mind that the users must have defined their own ABL tools and/or templates to make use of these features.Customizations that ABL developers create to OpenEdge Architect are contributed to the OpenEdge Editor perspective.
28CustomizationXUsed to add ABL based tools to the OpenEdge Architect menu and toolbarYUsed to add ABL based tools to the context menu of the OpenEdge EditorZUsed to add a new templateQUsed to override an existing template with a customized templateMenu/Toolbar Entries: The customization editor allows ABL developers to define a new menu or toolbar entry, that when chosen, runs an ABL program. The ABL program needs to be provided by the user. If the user chooses to put their new entry on the menu, the new menu entry is displayed as part of a new menu that contains only the menu entries created by an ABL developer. The name of the menu can be set within the editor. This menu will become part of the OpenEdge Editor perspective. If the user chooses to add their program to the toolbar, then a new toolbar group will be created and all of the user’s menu entries will be grouped together within that toolbar group.Editor Context Menu: The editor also allows ABL developers to add their program to the context menu for the OpenEdge Editor in the same manner as adding the program to the main OpenEdge Architect menu or toolbar. The user’s programs should be added to a specific submenu of the context menu in order to avoid over populating the context menu. As it stands right now, there are currently 23 menu and submenu entries on the context menu. Any more on the primary level of the context menu would probably be too many, especially if the user had more than a couple of program entries.New Templates: The customization editor provides a means for a user to specify a template that will be used as the basis for a new file wizard. The new file wizard prompts the user for a few pieces of information such as the file name and then uses the template specified by the user to generate the code. The customization editor uses this information to create a new file wizard entry in the plugin.xml file. The wizard entry appears on the File New menu of OpenEdge Architect.Template Overrides: The editor presents the user with a list of templates that can be overridden. The user will specify the new template file to be used. When the wizard that uses that template is run, the wizard generates code using the overridden template instead of the default OpenEdge Architect template.
29Menus and Toolbars Menus and Toolbars can call ABL programsDefined launch configurationsMenus allow accelerator keys to be specifiedABL programs can be set to run either persistent or non-persistentEntries disabled ifOpenEdge project context is not availableOpenEdge runtime is not availableThe user can choose a launch configuration to start instead of a program to run. The user can choose among the list of predefined launch configurations. This allows them to place a specific launch configuration on the menu or toolbar. Whenever the menu or toolbar entry is selected, the specified launch configuration is run.When defining a menu the user can specify a key binding (accelerator key) that allows the user to run the program without needing to navigate to the menu selection.The user can define whether the program should be run persistently or non-persistently.The OpenEdge runtime that the programs run in is defined by the current selection context. If an editor is in focus and is currently open against a file that is part of an OpenEdge project, and the OpenEdge runtime for that project is available, then the program is allowed to run. If the resources view is in focus and the first resource that is selected is from an OpenEdge project, and the runtime for the OpenEdge project is available, then the program is allowed to run. If any other editor or view is selected, then there is no available OpenEdge runtime context, and the program entry on the menu and/or toolbar is disabled.To execute ABL programs requires a running OpenEdge runtime. The option to run a program is disabled when there is no context in which to run. For example, if there are no projects available within OpenEdge Architect then the program cannot be run, so the individual entries are disabled.For an entry to call an ABL program that is placed on the OpenEdge editor’s context menu, the program entry will be enabled if the editor is open against a file from an OpenEdge project, and the OpenEdge runtime is available.
30Templates (New and Overrides) Editing existing templates requires some knowledge of template formatHow to do this is not provided in OpenEdge documentationStarting point is the white paper:OpenEdge Architect™ Working with Custom TemplatesWriting new templates requires users knowledgeable in using JET and its associated technologiesStarting point:The customization editor makes it much easier for users to override or add new templates that are going to be used in the OpenEdge Architect environment. However, modifying and creating templates requires knowledge that is beyond the scope of what is supported by PSC and the documentation that is provided by OpenEdge. Users will need to go to other sources such as the eclipse website.A whitepaper is provided by Progress to help users get started on how to customize templates.The title of the white paper is OpenEdge Architect™ Working with Custom Templates.A good place to start at the eclipse website is with the two tutorials on how to use JET:
31Sharing Customizations Customizations are saved in the plug-in com.openedge.pdt.extensibility.userTo share plug-ins copy this plug-in from the plug-in directory where the customizations were created (the source) to the plug-in directory of another users plug-in directory (the target)Copy the com.openedge.pdt.extensibility.user plug-in from/to directory C:\Progress\OpenEdge\oeide\architect\eclipse###
32Removing All Customizations To remove all customizations do one of the following:Select remove for each customizationReplace plug-in com.openedge.pdt.extensibility.user with the original installation version of this plug-in
33Passing EventsOptions exist to allow the capture and response to certain ABL eventsAllows ABL developers to customize their development environmentsArchitect publishes events to the associated OpenEdge runtime for a projectSee 10.1B documentation for more detailsOne of the options that is available is to allow the user to capture and respond to events from ABL when certain actions are performed within OpenEdge Architect.In OpenEdge Studio, when an ABL developer uses the AppBuilder or Procedure Editor for development a number of operations the user performs are trapped and sent to a program called _adeevnt.p. These events are related to file events such as file open, file close, and file save. There are also events for AppBuilder startup and shutdown as well as others.A similar mechanism has been implemented in OpenEdge Architect so that ABL developers can customize their development environment. OpenEdge Architect publishes events within the OpenEdge runtime for a project if it is available. Certain actions in the AppBuilder can be cancelled by the return code of the _adeevent.p. Canceling an action in OpenEdge Architect is not possible.These actions may not be fired in the OpenEdge runtime if the runtime is in a state where it cannot receive the event. An example would be a user opening or closing a file while running the debugger. Because of the single-threaded nature of the OpenEdge runtime, IDE events cannot be run without the risk of interfering with a running process.Published events:File OpenFile CloseBefore file saveAfter file saveBefore file compileAfter file compileBefore runAfter runIDE Project StartupIDE Project ShutdownBefore debugAfter debugThese events are published using the PUBLISH () function within the OpenEdge ABL. The published events will pass the project name, event name, and the full file name as appropriate. Only a single published event will be defined. This one event will contain the name of the event as one of the parameters that is passed to any subscribers.Using OpenEdge Studio within OpenEdge Architect results in both the AppBuilder events being fired through _adeevnt.p as well as the published events from Architect. For developers that need to use the events within Architect it is recommended that they use the events published from OpenEdge Architect instead of the OpenEdge Studio events where possible.When OpenEdge Architect starts the OpenEdge runtime for a particular project, a file called _idestartup.p is searched for and executed if it exists within the ProPath of the project’s runtime. This file is called as the last part of initializing the OpenEdge runtime. The _idestartup.p hook is provided as a mechanism for ABL developers to start any programs needed within their environment. ABL developers are now able to subscribe to the published events from within their applications or using the _idestartup.p procedure.
34Equating Events OpenEdge Studio OpenEdge Architect New Before-Open Open-fileBefore-CloseCloseClose-fileBefore-SaveBefore-saveSaveAfter-saveBefore-CompileBefore-compileCompileAfter-compileBefore-RunBefore-runRunAfter-runBefore-DebugBefore-debugDebugAfter-debugBefore-Check-SyntaxCheck-SyntaxBefore-Check-Syntax-PartialCheck-Syntax-PartialStartupProject-startupShutdownProject-shutdownThe table shows both the OpenEdge Studio events and the OpenEdge Architect events and their approximate corollary.
36Agenda What is OpenEdge Architect What‘s new in OpenEdge Architect 10.1BAdopting OpenEdge Architect
37Adopting OpenEdge Architect Where to startApplication CodeSingle Project in OpenEdge Architect
38Adopting OpenEdge Architect Maybe it‘s time to break up ... the codeConsiderations:Packaging and deploymentWorking on multiple releasesExamplesBy application modules e.g. order processingBy server and clientBy OpenEdge Reference Architecture layersBy different client types e.g. GUI, WebBy technology e.g. ABL and Java™ projectsAny combination of above…How do I make my application modular?What are the dependencies among my application
39Adopting OpenEdge Architect Leveraging the project environmentApplication CodeMultiple ProjectsServerChuiGUICommonutilitiesPropath outside of projectDependency structure
40Headline – Arial 32 pt. Text – Arial 28 pt. Subtitle Goes Here - Arial Italic 24 pt.Text – Arial 28 pt.
41Two-line Headline Arial 32 pt. Subtitle Goes Here - Arial Italic 24 pt.Text – Arial 28 pt.