Porting a Swing Application to the NetBeans Platform Anton Epple

Slides:



Advertisements
Similar presentations
Castafiore platform Consists or intend to consist of 1.Advanced Web framework 2.Advanced Graph database 3.Designer studio (something like visual basic)
Advertisements

CTS2 DEVELOPMENT FRAMEWORK CTS2 Overview. Schedule What is it? Why a framework? What does this do for me? Plugins Implementations available now CTS2 Compliance.
NetBeans Platform Compared with Eclipse Rich Client PLatform Kai Tödter, Siemens AG Geertjan Wielenga, Sun Microsystem ID# ????
Apache Struts Technology
Lessons learnt developing a NetBeans PDF viewer plugin in JavaFX Ernest Duodu Sylwia Kedzia.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
NetBeans IDE Tal Maoz Na’ama Zahavi.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
Development of mobile applications using PhoneGap and HTML 5
NetBeans IDE Vishnuvardhan.M Dept. of Computer Science - SSBN.
Build a CMS Website. The topics this chapter covers are: What is CMS ? What you can do with CMS The benefits and disadvantages of using a content management.
Struts 2.0 an Overview ( )
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Written by Liron Blecher
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Benefits of Using AllFusion ERwin and Advantage Gen in the Same Project Lifecycle Steve Smith Jumar Solutions 28 th March 2007.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Spring Overview, Application demo -Midhila Paineni 09/23/2011 Spring Overview, Application demo9/8/20151.
Microsoft Dynamics Snap Michael McClary ISV Developer Evangelist Microsoft Corporation.
XIP™ – the eXtensible Imaging Platform A rapid application development and deployment platform Lawrence Tarbox, Ph.D. September, 2010.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
JakeShop A complete application for online commerce by Jake Feasel.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Creating Modular CRUD Desktop Applications Jiri Rechtacek Geertjan Wielenga.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
NetBeans Platform Petr Suchomel David Šimonek Miloš Kleint Sun Microsystems.
The Visual Library API Anton Epple
Maven & NetBeans Platform. Agenda ● Maven NetBeans Platform Project Types ● Three NetBeans RCP project types ● Differences with Ant project types ● All.
Using NetBeans IDE for Desktop Development Geertjan Wielenga
Introduction to the NetBeans Platform Certified Training Course Geertjan Wielenga Sun Microsystems.
Slide 1. What's New in NetBeans IDE 7.1 Name Title.
Swing OSGi Modular Desktop Application Framework Jaroslav Tulach, Oracle Anton Epple, Eppleton.
A First NetBeans Platform Application David Šimonek Sun Microsystems.
The Visual Library API Anton Epple
Getting Started with the NetBeans Platform. Extending NetBeans Possibilities > single module > suite of modules > standalone application > like a suite.
1 NetBeans New and Cool Sun Microsystems, Inc.. 2 Goal of the Talk Learn how NetBeans IDE can help you become more productive Learn about the new features.
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
NetBeans Platform intro Emilian Bold. What's it about ? ● Contains usual desktop application items: – Window management – Menu & tool bar management –
NetBeans Rich Client Platform Alex Kotchnev Software Developer Commerce Technologies Inc. Alex Kotchnev Software Developer Commerce Technologies Inc.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
An Introduction to the Window System. Agenda ● Problem statement ● Solution ● Demos: ● Creating a TopComponent ● Porting a Swing Application ● API Overview.
System FileSystem Everything is a Stream. What is it? General registry of configuration data.
Visual Web & AJAX with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Hello NetBeans Platform
The Holmes Platform and Applications
Progress Apama Fundamentals
Recap Modules: dependency management, revisioning, information hiding
Geertjan Wielenga
Understanding SOAP and REST calls The types of web service requests
New Features in NetBeans Platform 6.5.
Geertjan Wielenga This presentation introduces Swing Application Framework and Beans Binding JSRs. These are two new JSRs.
Productivity Tools Extensions to NetBeans IDE that make life easier
Migrating Oracle Forms Using Oracle Application Express
ADOPTION OF ECLIPSE RCP TO BUILD RICH GUI FOR THE SPACE DOMAIN
Building my on-line store
NetBeans Plugin Development Workshop
Modern web applications
Talend Open Studio (TOS)
Lecture 1: Multi-tier Architecture Overview
Computer Based Adaptive Testing
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
NIEM Tool Strategy Next Steps for Movement
Introduction to ASP.NET Parts 1 & 2
.Net for Test and Measurement
Presentation transcript:

Porting a Swing Application to the NetBeans Platform Anton Epple

Agenda Some examples of former “plain Swing” Apps Our experience porting a former Swing Application A generic process for porting an existing Swing Application to NetBeans Platform

Examples of ported Applications 1.Sepix CRM (Aljoscha Rittner) 2.Instant JChem (Tim Dudgeon, Petr Hamerik) 3.Blue Marine (Fabrizio Giudicci) 4.ChipInspector

Examples of ported Applications CRM System

Examples of ported Applications Demo

Examples of ported Applications InstantJChem

ChipInspector: Starting Point Based on own Framework: > Weblauncher > XML based configuration > Update Manager > Download Manager > Proxy Handling > Options/Settings > JavaHelp > Docking > WebBrowser Component

Why (NetBeans) RCP Less framework maintenance Generic features for free (Update Manager, docking...) Less boilerplate code Application Lifecycle Management Standardized look & feel Modular structure ( Dependency Management, Versioning )

ChipInspector Demo Anwendungsbeispiele ChipInspector

Common Pitfalls Some features are hard to remove (Example “Web Browser” in Options Panel) Some settings are difficult to change (Example SecurityManager) ClassLoader hierarchy problematic with some libraries (Spring, JasperReports) Some things are harder to do (Obfuscation...)

Extras that made life easier You can exclude stuff from standard Java (Example JAX-WS) -> More control over environment You can use ServiceLoader like functionality in java < 1.6 SystemFileSystem for storing your data You can easily create distributions (Zip Distro, Webstart, OpenInstaller, Os X Application)

Generic Process - Conversion 1.Third-party Libraries -> Library wrapper 2.Swing Panel -> TopComponent 3.Action -> CallableSystemAction, CallbackSystemAction... 4.Adjust Menus -> Layer (SystemFileSystem) 5.Dialogs, Wizards -> Dialogs API 6.Beans -> Node Wrappers 7.Synchronizing Views / Selection -> Lookup

Demo Porting a simple Swing application to the NetBeans Platform

Generic Process (cont.) 9.Options, settings -> Options API 10.Libraries/features/packages -> modules 11.Extension Points -> META-INF/services, Lookup, SystemFileSystem 12.JavaHelp -> Help System Integration 13.Branding -> Resource Bundles 14.Mimetypes -> Datasystem API 15.Add IDE stuff: Project Tree, Web Browser, Database Explorer...

Summary First steps are simple, then there's a steep learning curve. NetBeans really helped reducing boilerplate code The real gain from porting comes from adapting NetBeans architecture

Hints Well written applications are easy to port To make sure your application remains portable: > Separate UI code from Business Logic code > Minimize dependencies > Know the APIs your application depends on (and their dependencies...) > Use wizards, don't depend on them > Make sure you still understand your application

Resources Tutorial for getting started: Blue Marine developers experience: XING Group

Questions & Answers