Presented by Kevin Pettitt at ILUG 2008 in Dublin, June 2008.
SuperNTF is the open-source Notes client application framework built from the ground up to enable even novice developers to embrace coding best practices. No more customized discussion databases! The feature-rich yet uncomplicated design of this template encourage wide adoption, enabling you to promote coding standards across your organization. Even advanced developers will find plenty of features to cherry pick for use in other applications. From integrated help and error handling to getting soft deletions right and providing an alternate "dashboard" interface, SuperNTF makes it easy to look like you're working hard. The session will also offer an in-depth review of the template’s advanced features for user activity and field change tracking, configuration, and data reporting/exporting, and show you how to inject new life into existing apps, or provide a strong foundation for new ones.
2. Your Host for Today’s Session …
Kevin Pettitt
President
LotusGuru Consulting
Independent Consultant
Developer, Admin, Architect
Blog: www.lotusguru.com
2
3. What Is SuperNTF?
Generic starter application template that isn’t
“-blank-”
Notes Client application framework designed
for easy understanding to encourage wide
adoption
Built from the ground up with the goal of
making development best practice easy for
even novice Notes developers
Fusion of many other open source projects
3
4. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
4
5. In the Beginning, There Was -Blank-
And it really was “blank”
Next step - Doc Library or Discussion
template
– Just to have some code to start
Advanced developers
created their own “common
design elements”
– Great for reusing code among
many applications
– Problem: Only they understood
how it worked
5
6. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
6
7. Design Standards – Huh?
Notes is a very “approachable” development
platform
– Any decent spreadsheet jock can whip up a Notes database
limited skills hinder code standardization
efforts
It takes time and effort to enforce standards
Only way way to achieve some level of
coding standards for novice developers
– Make it EASY to do things “right” without thinking
7
8. Key Benefits of Standardized Code
No more reinventing the wheel
– Unless it’s a better wheel
Commonly used routines are readily available
Easier to troubleshoot, maintain, and
enhance
– Especially when the standard code has been more rigorously
tested than any one application
The next developer to touch the app won't
curse your name
8
9. What Is an Application Framework?
A basic template for jumpstarting a new
application
A collection of generic design elements useful
in any kind of application
A way to standardize the “plumbing” of all
your custom Notes applications
Everything *except* what makes the
application unique
9
10. Framework Pitfalls
Often developed organically over time by
single developer
– Thoughts of having others use the framework may not take
hold until after most of it is built
– Only that developer understands the “quirks”
– Steep learning curve for others without that developer on the
team
Tendency toward complexity
– Time spent “improving” the framework may actually detract
from others’ ability to maintain code later
– The more tightly integrated it gets the easier it is to break
10
11. What Makes SuperNTF Different?
Conceived with ease of understanding in mind
– Novices can create nice looking applications without quot;breakingquot;
something
Design goal: Make it easy to follow and thereby
gain wide adoption
– Low learning curve also helps intermediate and advanced
developers ability to customize and extend more easily
– Code is written for readability – elegance over complexity
Designed to facilitate quot;cherry pickingquot; code
– Many individual pieces can be copied and reused in other
applications and still work
– Copying elements with their dependencies will be made easier in
the future 11
12. Meet the SuperNTF Team
Head of R&D: Kevin Pettitt
– aka quot;Robbery and Deploymentquot;
With contributions from: The Domino
community
– No one has a monopoly on best practice ideas
– Most borrowed code reworked significantly to adhere to
SuperNTF simplicity standards
New quot;volunteersquot; all the time as more great
ideas appear
12
13. So How Simple Is “Simple”?
Simple doesn’t mean boring
– There are still lots of cool features, as you will see
– Significant attention was paid to offering an attractive default
UI design
Many advanced functions are “black boxed”
– Eliminates the need to manipulate truly complex code (although
you still can if you want)
– High degree of configurability further minimizes need to touch
code
13
14. Agenda …
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
14
17. Key Navigation Elements
Standard action bar in separate frame
– Eliminates need for most typical view actions
– Leaves room for a descriptive view title
– Actions show only when appropriate (e.g., “Search” only visible
if database is full-text indexed)
Administration panel logically organized
– Configuration
– Logging
– Cool Design Views
– Utility views (e.g., Design element views, All Documents)
17
20. Centralized Form Configuration (cont.)
Each application-specific form has its own
“configuration” document
Controls which form features are enabled
– Shared Actions – (e.g., Edit, Save & Close, etc.)
– Validation – edit a form-wide formula right on the form config.
– User Activity Tracking – who read/edited what and when
– Field Change History – what did they change and when
– Comments – user feedback mechanism
20
21. View Configuration
Set the View “Header Title”
Configure “Help” and “New Document”
behavior
21
22. User Activity Tracking – Summary
Keeps a running history of every time a
document is READ or EDITED
Saves each record as a separate document
– Can be easily tabulated and sorted in views
– Allows user to “jump” directly to the source document
22
25. User Activity Tracking – Dashboard Reports
At-a-glance view to most active users and
documents
Apply custom filters to highlight the specific
information you want
25
26. Field Change History
Form config specifies which form fields to track
– Also assign user-friendly field labels
26
27. Field Change History (cont.)
All changes to target fields are recorded in a
single rich-text field
– Change history dialog accessed via action button
27
31. Exporting Data – The Quick and Simple Way
View actions export all or selected docs
Use column naming “trick” to …
– Get categorized column titles to appear
– Omit specific columns from export
31
32. Exporting Data – The Structured and
Repeatable Way
Integrated with the OpenNTF ASND Export
Facility
32
33. Soft Deletions Work!
No matter how you delete a document
– Press <Delete> key at document or view level
– Cut document(s) from a view
– Drag to Trash
– From “Delete” action in document or view
Confirmation warning always appears
33
34. Soft Deletions Work! (cont.)
Easily restore some or all deleted documents
Configure deletion purge interval in main DB
configuration
34
36. Design Views (cont.)
Yes, that’s right, you’re seeing design
elements in regular views!
– Made possible via the $FormulaClass “hack”
– Allows ALL design elements to appear in a single view
– Includes action button to “clean” the design elements (i.e.,
remove old $UpdatedBy entries and re-sign them)
Other variations show
– All image resources with image preview
– All fields and subforms listed by form(s) where they appear
Views can be copied to any other database to
provide instant value
36
37. Icons, Icons, Everywhere
Outline entry and action icons used throughout to
provide visual cues to associated function
Many include mouse-over animations
– Further improves visual cue of mouse position
– Injects a little fun into the application, which users love
All images can be previewed in the “Images Preview”
design element view
37
38. All Documents View
Shows all docs in the database grouped by form name
Useful for finding “lost” docs, the “last” one edited, or the
300 customer documents you accidentally pasted
38
39. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
39
39
40. So What’s It Look Like Under the Hood?
It’s not a Ferrari, but then you wouldn’t let
your rookie mechanic work on it if it were that
complicated
It is, however …
– Cleanly designed
– Easy to work on without
“breaking” anything
– Individual parts are
clearly identifiable
– Yet still highly functional
with lots of cool features
40
42. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
42
42
43. Creating a “SuperNTF” View
Shortcut: create a new view based on one of
the demo views
– Easy way to get actions that are the “hooks” into the view
configuration
Customize columns, row colors, etc., as desired
Display view into the outline and open it
Click
– Any guesses what that does ?
Fill out the view configuration
– You may need to come back after creating a form to change the
“New Document” behavior
43
44. Creating a “SuperNTF” Form
All the “hooks” into the configuration are
encapsulated in two subforms
– SYSTEM - Standard Hidden Form Header
– SYSTEM - Standard Hidden Form Footer
Just a few other details
– “Form” field – set to form alias
– Window title: @If(@IsNewDoc; quot;New Documentquot;;
WindowTitle)
– Turn off the create menu – PLEASE!
Tie the form into one or more views
Compose a document and click
44
45. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
45
45
46. Basics of Overhauling Existing Application
Add SuperNTF design elements to existing
application
– Or for very simple examples, copy the key elements into a
“blank” SuperNTF database
Migrate views to new design
– Remove unnecessary actions
– Add Standard SuperNTF Actions
– Update column fonts
– Ytria Tools make this dead easy
Add standard SuperNTF subforms to key
forms
– Configure the enabled features for each form
46
47. Agenda…
A brief history of File – Database – New
Overview of standards and frameworks
SuperNTF feature walkthrough
What’s under the hood
Creating a new application
Overhauling an existing application
Final Word
47
47
48. Resources
Download SuperNTF
– www.superntf.org
My Blog: www.lotusguru.com
– Includes many articles pertaining to SuperNTF, including
upcoming features
SuperNTF IdeaJam?
– Stay tuned
48
48
49. Parting Thoughts
Coding standards will only gain wide adoption
if they are easy to learn and use
– And what use is a “standard” no one uses?
– Even experienced developers will appreciate the freedom to
focus on application logic
Cool things to do with SuperNTF
– Give power users more power without giving yourself more
headache
– Give older apps a professional facelift
Sharing is good!
– Please share your good ideas and useful SuperNTF
customizations
49
50. Sharing is Good
Sharing is good!
– Please share your good ideas and useful SuperNTF
customizations
50