Mais conteúdo relacionado Semelhante a Improving Domino Designer ICON UK (20) Improving Domino Designer ICON UK1. © Kathy Brown, Julian Robichaux
Improving Your
Domino Designer
Experience
Julian Robichaux :: panagenda
Kathy Brown :: PSC Group
2. © Kathy Brown, Julian Robichaux
Who We Are
Julian Robichaux
panagenda
nsftools.com
@jrobichaux
Kathy Brown
PSC Group LLC
runningnotes.net
@runningkathy
3. © Kathy Brown, Julian Robichaux
The Goals of this Session
Understand how Eclipse and DDE work together
especially by using helpful things that “come for free” with Eclipse
Avoid breaking things
and learn how to fix them when they break
Work more efficiently
Some information will be old hat, some (hopefully)
will be brand new
4. © Kathy Brown, Julian Robichaux
Domino Designer in Eclipse
“DDE” to you and me
Is it in, on, with, or next to Eclipse?
perhaps we should say “wrapped inside of”
But I thought Eclipse was just an IDE!
How can it do all this “wrapping” stuff?
5. © Kathy Brown, Julian Robichaux
An Informal History of Eclipse
Began life as an IBM project to replace the VisualAge IDE
VisualAge had compilers for C, C++, Smalltalk, Java, Cobol, and several
other languages
Eclipse developed as a platform (written in Java) that could:
run on multiple operating systems
allow development for many different languages & content types
provide (but not require) a GUI
use plugins for extensibility
6. © Kathy Brown, Julian Robichaux
“The Eclipse platform itself is a
sort of universal tool platform -
it is an IDE for anything and
nothing in particular.”
http://www.eclipse.org/platform/overview.php
7. © Kathy Brown, Julian Robichaux
A Very Abbreviated Timeline
1999: Development of Eclipse begins at IBM
2001: Eclipse 1.0 released, eclipse.org created
2002: Eclipse 2.0 released
2004: Eclipse Foundation formed, Eclipse 3.0 released under the
new Eclipse Public License
2004-2013: New Eclipse “simultaneous release” every
year; 3.x through 2011; 4.x starting in 2012
9. © Kathy Brown, Julian Robichaux
Why Are You Telling Me This?
Things to understand:
Eclipse has a long, rich history completely outside of Domino
Many (most?) of the “new” DDE things are actually “old” Eclipse things
Name overlaps (view, navigator, workspace, etc.)
Two completely separate JVMs
When you mix two very different (and established) technologies
like this, things are bound to be confusing or... difficult
11. © Kathy Brown, Julian Robichaux
Considerations: Fresh Install
A well defragged hard drive
Disable virus scan on entire Notes directory if possible,
NSF and JAR files in Notes directory at minimum
Disable the Windows Search/Index service
Don’t use an encrypted portion of your disc
Disable Aero on Windows 7
12. © Kathy Brown, Julian Robichaux
Considerations: VMWare
Fixed size page file, 1.5 to 2 times your RAM
Defrag first, then restart and fix the page size
Turn off things that poll
CD auto-play, Bluetooth, shared or mapped drives
Defrag+compact regularly (or use a fixed size VM)
Keep your VMWare Tools (drivers) updated
14. © Kathy Brown, Julian Robichaux
Install Tips
If you’re using VMWare, take a snapshot
Install EVERYTHING (check all the boxes, even if you don’t
think you’ll use Sametime, Connections, etc.)
Don’t get clever with your install paths
Reboot when you’re done, then delete the temp folder
If you’re using VMWare, take another snapshot
15. © Kathy Brown, Julian Robichaux
Upgrade Tips
Install over the old copy, or nuke it and start over?
Always better to nuke (uninstall first, then reboot and delete -- don’t just
delete) and start fresh*
If you can’t, at least consider deleting or renaming the framework and
the dataworkspace.config folders first (gets rid of old JAR files)
Resist the urge to do the trick where you rename the old
directory so you can have multiple versions of the client on
your workstation
*Spin your chair 3 times clockwise while throwing salt over your LEFT shoulder
16. © Kathy Brown, Julian Robichaux
Upgrade Tips
“Install Interrupted” and other errors
Often caused by incomplete or
improper uninstall of previous
client version (registry entries
pointing to files that no longer
exist, etc.)
Use the IBM “NICE” tool
http://www-01.ibm.com/support/docview.wss?uid=swg21459714
17. © Kathy Brown, Julian Robichaux
Reinstalling
Best bet is to uninstall, use the NICE tool, then reinstall
Also reinstall/repair options if
you re-run the installer
Command line option:
setup.exe /v"REINSTALLMODE=vamus REINSTALL=ALL"
18. © Kathy Brown, Julian Robichaux
JVM Memory Settings
http://www-01.ibm.com/support/
docview.wss?uid=swg21617708
make sure Xms is smaller
than Xmx, for garbage
collection purposes
you might have issues with
Xmx larger than 1024
NOTE: these settings can
get reset after a FixPack
install
19. © Kathy Brown, Julian Robichaux
Understanding Eclipse
Configuration
20. © Kathy Brown, Julian Robichaux
Perspectives and Views
What are they?
Perspectives are layouts of Views
Think of a painter’s palette
Views are panels or tabs with the tools you need
Think of the colors on the palette
21. © Kathy Brown, Julian Robichaux
Perspectives and Views
Perspective
View
22. © Kathy Brown, Julian Robichaux
Perspectives
Default perspectives:
Debug, Domino Designer, Forms/
Views, Java, Java Browsing, Javascript,
and XPages
23. © Kathy Brown, Julian Robichaux
More Perspectives
Each perspective has Views, menu items, and toolbars needed
for that focus
For example: the navigator in the Domino Designer perspective has
Frameset and Pages, the one in the XPages perspective does not
24. © Kathy Brown, Julian Robichaux
Customizing Perspectives
Menu option “Customize Perspective...”
Add or remove Eclipse views
Add or remove Menu and Toolbar items
25. © Kathy Brown, Julian Robichaux
Customizing Perspectives
“Manual” customization
Move view panes all to the left or right for more screen
real estate
Drag up Outline
Add Package Explorer
(Window - Show Eclipse Views)
26. © Kathy Brown, Julian Robichaux
Saving Perspectives
Save Perspective As...
Always a good idea to do this BEFORE customizing
You CAN make changes in a copy, however if you make them
in the default perspective, then your changes will be there
whenever you open DDE
i.e. changing IDs opens the default perspective
27. © Kathy Brown, Julian Robichaux
My Favorite View: Progress
Window -
Show Eclipse Views -
Other... -
General -
Progress
28. © Kathy Brown, Julian Robichaux
Tips on Views & Perspectives
Make the tab full screen
Double-click the tab title, and double-click again to reset it
Or click the small “maximize” icon on the tab bar
Or use Ctrl-M
Use Reset Perspective when you’ve totally borked it
29. © Kathy Brown, Julian Robichaux
Working Sets
It’s an Eclipse thing for organizing your
projects (Notes DB == Eclipse project)
All applications for a client, or all
applications for a project, or only
templates, or only production
applications, etc.
Switching working sets does NOT release
the open applications from memory (!)
30. © Kathy Brown, Julian Robichaux
Working with ... Working Sets
Select one or more working sets, or no working sets (shows all
applications ever opened in the history of time)
Edit Current Working Set
Manage Working Sets
31. © Kathy Brown, Julian Robichaux
More Working Sets
New in Notes 9, select Applications Not in a Working Set
Working Set preferences
“Ask me” is good if you often (ever) open the wrong app
32. © Kathy Brown, Julian Robichaux
Preferences and Settings
Notes client and DDE shared storage of settings
Eclipse is a cornucopia of plugins
Every plugin has its own folder in workspace.metadata
Also a central Eclipse preference store (a tiny bit like Windows registry,
but much better behaved)
OSGi handles plugin lifecycle and caching
33. © Kathy Brown, Julian Robichaux
The Workspace Folders
Main subfolders under the dataworkspace folder are:
.config -- OSGi cache, JVM cache, Eclipse startup config
.metadata -- plugin folders, preference files
applications -- third-party plugins you’ve installed
logs -- Eclipse logs, Java core dumps and heap dumps
UDM -- spellcheck files
also a folder for each server you access from DDE
(including “Local”), with subfolder for each database
34. © Kathy Brown, Julian Robichaux
Deleting the Workspace
Removes caches, configurations, preferences, settings
including Notes client and DDE UI customizations
Deletes [most] third-party plugins you’ve installed
Deletes extra settings in rcpinstall.properties
Everything will be rebuilt with default settings
35. © Kathy Brown, Julian Robichaux
The -clean Option
-clean is a less nuclear option
Rebuilds the plugin caches and some
of the Eclipse/OSGi config files
but you don’t lose your preferences
Make a COPY of your Notes shortcut,
change target to:
notes.exe -RPARAMS -clean
36. © Kathy Brown, Julian Robichaux
Cleaning a Broken DDE
Special workspace folders for each server+db you access
workspace.metadata.plugins
org.eclipse.core.resources (additional DDE project cache)
com.ibm.rcp.personality.framework (perspective info)
org.eclipse.ui.workbenchworkingsets.xml
com.ibm.designer.domino.ide.resourceswsInfo.xml
37. © Kathy Brown, Julian Robichaux
Back Up Your Settings
Can’t I just back up my whole workspace folder?
You could, but not always portable between installations/versions
What about my workspace.metadata folder?
Still too much
What about this specific list of folders... ?
There is an easier way if you will just stop asking questions
38. © Kathy Brown, Julian Robichaux
Back Up Your Settings
Hat tip to Paul Withers
http://www.intec.co.uk/quick-setup-restore-of-domino-designer
Switch to a non-Domino perspective in DDE (like “Java”)
File - Export - General - Preferences
Saves as a .epf file (text file, you can look to see what’s there)
To import: File - Import - General - Preferences
39. © Kathy Brown, Julian Robichaux
Back Up Your Settings
Bonus: also backs up your SAVED custom Perspectives
41. © Kathy Brown, Julian Robichaux
File - Preferences
There are so many settings in DDE, you might not have seen
them all -- here are a few useful ones
Please don’t be insulted if you’ve seen some of these before
Not everyone is as smart as you
Newer versions of DDE have new settings
Almost all of the DDE preferences (from File - Preferences)
map to Eclipse preferences
45. © Kathy Brown, Julian Robichaux
Colors and Fonts
Basic - Text Font is the default editor font,
you can override for Java and JavaScript here,
LotusScript has its own settings under Domino Designer.
46. © Kathy Brown, Julian Robichaux
Hotkeys
Help - Key Assist
or...
Control - Shift - L
or...
File - Preferences - General - Keys
48. © Kathy Brown, Julian Robichaux
Hotkeys Shortlist
Ctrl + / -- toggle single-line comments
Ctrl + Shift + / -- toggle block comments
Ctrl + i -- auto-format
Ctrl + F6 -- switch between editor tabs
Ctrl + M -- maximize or restore a tab
Ctrl + Space -- all sorts of code-completion things
49. © Kathy Brown, Julian Robichaux
Other People’s Preferences
http://notesin9.com/index.php/2012/02/12/notesin9-043-domino-
designer-tips-and-tweaks
http://xpagetips.blogspot.com/search/label/Designer%20Tip
http://nathantfreeman.wordpress.com/taming-ibm-domino-designer
http://www.slant.co/topics/67/~what-are-the-best-programming-fonts
51. © Kathy Brown, Julian Robichaux
Search Tips
Old skool: File - Application - Design Synopsis...
It still exists!
52. © Kathy Brown, Julian Robichaux
Search Tips
Single code element: Control + F
make sure you use “wrap search”
regular expressions!
53. © Kathy Brown, Julian Robichaux
Search Tips
Full design search: Search - File... (or Ctrl + H)
54. © Kathy Brown, Julian Robichaux
Search Tips
Full design search: Search - File... (or Ctrl + H)
Search entire workspace, all databases in a working set, all design
elements in a database (project), or selected design elements
File patterns allow you to specify certain design elements (use the
“Choose” button for a list), or use * for all design elements
Non-code elements (forms, views, etc.) have their DXL searched
Regular expressions
Results listed in a Search view (tab) you can leave open
56. © Kathy Brown, Julian Robichaux
LotusScript Tips
Code and Comment Templates
57. © Kathy Brown, Julian Robichaux
LotusScript Tips
Determining the correct error line number
Navigate - Go to erl line...
Needed in DDE 8.5.x, seems to be less necessary in 9.0
58. © Kathy Brown, Julian Robichaux
XPages Tips
Changing the local web server port (8.5.3+)
not just XPages, any DDE local web preview
great if you’re running a local web server (on purpose or unknowingly)
59. © Kathy Brown, Julian Robichaux
XPages Tips
Troubleshooting local web server port conflicts
TCPView from sysinternals.com (now Microsoft Sysinternals)
60. © Kathy Brown, Julian Robichaux
XPages Tips
Where do all the print statements go for local debugging?
log.nsf -or- dataIBM_TECHNICAL_SUPPORTconsole.log
Extra logging info
datadominoworkspace.configrcpinstall.properties
see the commented log levels at the bottom of the file
logs to datadominoworkspacelogstrace-log-0.xml
might have to shut down local web preview for logs to flush
notice the “domino” in that path...
61. © Kathy Brown, Julian Robichaux
XPages Tips
The dreaded “Error 500” on local XPages preview
Turn on runtime error notification (Application Properties, XPages tab)
Test a very basic XPage (is it all XPages, or just that one?)
Add error handling (JavaScript and Java)
Check the logs (see previous slide)
Check for duplicate (previous version) JAR files in notesosgi:
*April 2012 Clippings Newsletter -- need to get republished
62. © Kathy Brown, Julian Robichaux
XPages Tips
Problems Tab, “configure contents...”
Show only errors “On any element in same project”
63. © Kathy Brown, Julian Robichaux
XPages Tips
To Build Automatically or Not To Build Automatically
Working Local?
Yes No
Sure, Build Automatically No, Just No
64. © Kathy Brown, Julian Robichaux
Java Tips
Get stack trace line numbers from Java agents and script
libraries
No performance penalty
65. © Kathy Brown, Julian Robichaux
Java Tips
Save the whole agent when you save a class in the agent
66. © Kathy Brown, Julian Robichaux
Java Tips
Code templates
Java - Editor - Templates
Ctrl + Space (FTW!)
Default shortcuts to start with:
for, while, try, new, final, toarray
Make your own for fun and profit!
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/using_code_templates_in_dde?lang=en_us
67. © Kathy Brown, Julian Robichaux
Java Tips
TODO and FIXME
Eclipse view: Other - General - Tasks
68. © Kathy Brown, Julian Robichaux
Java Tips
Adding Domino API Javadocs for hover help
Domino Javadoc Generator: http://domino-javadoc.sourceforge.net
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer?lang=en_us
69. © Kathy Brown, Julian Robichaux
Java Tips
Code Snippets
Built-in Eclipse functionality
Right-click code and choose “Add to snippets”
Drag and drop to paste into editors
70. © Kathy Brown, Julian Robichaux
Java Tips
Scrapbook pages
from Package Explorer:
Right-Click - New - Other
Java - Java RunDebug
Scrapbook Page
Use a Console view for output
Highlight code, right-click, execute
System.out.println() goes to console (Other - General - Console)
71. © Kathy Brown, Julian Robichaux
Java Tips
Scrapbook Pages
Evaluate String commands, regular expressions, XML parsing, etc.
72. © Kathy Brown, Julian Robichaux
Java Tips
Debugging
you CAN debug Java from DDE
server or client, although debugging a server is a pretty bad idea
see Julian and Mark Myers’ presentation from Lotusphere 2012:
http://londondevelopercoop.com/ldc.nsf/pages/goodies
73. © Kathy Brown, Julian Robichaux
Java Tips
Eclipse Tips and Tricks page
http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tips/jdt_tips.html
75. © Kathy Brown, Julian Robichaux
Source Control
Even if you aren’t working with a team
Easily roll back specific changes
Track changes (what/when/who)
Simple system for having a backup, while working locally
76. © Kathy Brown, Julian Robichaux
Source Control - Setting
Sometimes DDE hangs (GASP!)
Turning off On Disk Project syncing can help
Tip!
You have to remember to then manually sync
77. © Kathy Brown, Julian Robichaux
Source Control - Resources
https://www.socialbizug.org/blogs/articles/entry/
setting_up_source_control?lang=en_us
https://www.socialbizug.org/blogs/articles/entry/using_source_control?
lang=en_us
https://www.socialbizug.org/blogs/articles/entry/
5_tips_for_source_control_in_domino?
http://xpagetips.blogspot.com/2013/04/source-control-good-stuff.html
78. © Kathy Brown, Julian Robichaux
Extension Library
Depending on version of Domino, no install required
8.5.3 UP1 or 9
For latest and greatest, go to OpenNTF.org
Install via an Update Site
http://bit.ly/UpdateSite Wiki entry on installing an update site
79. © Kathy Brown, Julian Robichaux
Extension Library Install Tips
Do NOT install multiple versions
If you’ve got 8.5.3 UP1 and you go get the latest from
OpenNTF.org, REMOVE the library that came with 8.5.3 UP1
Install the Extension Library on DDE AND your server
Get the sample database
Don’t mix and match versions (Server/DDE)
80. © Kathy Brown, Julian Robichaux
Third Party Plugins
Finding third-party plugins
Looks for plugins compatible with Eclipse 3.2 - 3.4 (they might work)
Before you install
Completely restart the Notes client
Take a snapshot if you’re using VMWare
81. © Kathy Brown, Julian Robichaux
Third Party Plugins
File - Application - Install
You might have to be in a DDE (non-custom) perspective to get the
Application - Install menu option
After you install
Manually shut down and restart the Notes client again
(don’t use the “Restart now” option)
X
82. © Kathy Brown, Julian Robichaux
FreeMem
http://www.junginger.biz/eclipse/freemem.html
83. © Kathy Brown, Julian Robichaux
QuickREx
http://www.bastian-bergerhoff.com/eclipse/features
84. © Kathy Brown, Julian Robichaux
MultiClipboard
http://www.bastian-bergerhoff.com/eclipse/features
85. © Kathy Brown, Julian Robichaux
XPath-Developer
http://www.bastian-bergerhoff.com/eclipse/features
86. © Kathy Brown, Julian Robichaux
Writing Your Own Plugins
What you need:
DDE 8.5.1+
Eclipse 3.4.2 (Ganymede for RCP/Plugin Developers)
http://www.eclipse.org/downloads/packages/release/ganymede/sr2
You should use EXACTLY this version (not 3.2, not 3.5, not 4.2...)
Lotus Expeditor Toolkit 6.2.x
http://www.ibm.com/developerworks/lotus/downloads/toolkits.html
87. © Kathy Brown, Julian Robichaux
Writing Your Own Plugins
Hints, tips, and instructions
http://bit.ly/pluginredwiki
http://www-10.lotus.com/ldd/lewiki.nsf
Tim Tripcony and Maureen Leland’s Lotusphere 2011 presentation
“AD102: Hacking IBM Lotus Designer (Gently)”
88. © Kathy Brown, Julian Robichaux
THANK YOU
Julian Robichaux
panagenda
nsftools.com
@jrobichaux
Kathy Brown
PSC Group
runningnotes.net
@RunningKathy