Date post: | 12-Jun-2015 |
Category: |
Business |
Upload: | kevin-pettitt |
View: | 2,517 times |
Download: | 1 times |
Starting Your Application Starting Your Application the SuperNTF Waythe SuperNTF Way
Kevin Pettitt
2
Your Host for Today’s Session …Your Host for Today’s Session …
Kevin PettittPresidentLotusGuru Consulting
Independent ConsultantDeveloper, Admin, Architect
Blog: www.lotusguru.com
3
What Is SuperNTF?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
4
Agenda…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
5
In the Beginning, There Was -Blank-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
6
Agenda…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
7
Design Standards – Huh?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
8
Key Benefits of Standardized CodeKey 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
9
What Is an Application Framework? 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
10
Framework PitfallsFramework 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
11
What Makes SuperNTF Different?What Makes SuperNTF Different?
Conceived with ease of understanding in mind– Novices can create nice looking applications without "breaking"
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 "cherry picking" 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
12
Meet the SuperNTF TeamMeet the SuperNTF Team
Head of R&D: Kevin Pettitt– aka "Robbery and Deployment"
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 "volunteers" all the time as more great ideas appear
13
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
So How Simple Is “Simple”?So How Simple Is “Simple”?
14
Agenda …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
15
Key Navigation ElementsKey Navigation Elements
Separate frameset for normal use…
16
Key Navigation ElementsKey Navigation Elements
…and for administrative functions
17
Key Navigation ElementsKey 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)
18
Alternate “Dashboard” InterfaceAlternate “Dashboard” Interface
Content of each tab is configurable Double-clicking on preview opens document
fully
19
Centralized Form ConfigurationCentralized Form Configuration
20
Centralized Form Configuration (cont.)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
21
View ConfigurationView Configuration
Set the View “Header Title” Configure “Help” and “New Document”
behavior
22
User Activity Tracking – Summary 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
23
User Activity TrackingUser Activity Tracking
Consolidated Activity History
24
User Activity TrackingUser Activity Tracking
Current Document
25
User Activity Tracking – Dashboard ReportsUser Activity Tracking – Dashboard Reports
At-a-glance view to most active users and documents
Apply custom filters to highlight the specific information you want
26
Field Change HistoryField Change History
Form config specifies which form fields to track– Also assign user-friendly field labels
27
Field Change History (cont.)Field Change History (cont.)
All changes to target fields are recorded in a single rich-text field– Change history dialog accessed via action button
28
OpenLog Used for Error and Event LoggingOpenLog Used for Error and Event Logging
29
Integrated HelpIntegrated Help
Create help documents within the application Link them to specific forms and views via configuration
30
Integrated Help (cont.)Integrated Help (cont.)
Press F1 to pull up the relevant help document
31
Exporting Data – The Quick and Simple WayExporting 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
32
Exporting Data – The Structured and Exporting Data – The Structured and Repeatable WayRepeatable Way
Integrated with the OpenNTF ASND Export Facility
33
Soft Deletions Work!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
34
Soft Deletions Work! (cont.)Soft Deletions Work! (cont.)
Easily restore some or all deleted documents Configure deletion purge interval in main DB
configuration
35
Design ViewsDesign Views
36
Design Views (cont.)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
37
Icons, Icons, EverywhereIcons, 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
38
All Documents ViewAll 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
3939
Agenda…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
40
So What’s It Look Like Under the Hood?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
41
A Code Tour of SuperNTFA Code Tour of SuperNTF
4242
Agenda…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
43
Creating a “SuperNTF” ViewCreating 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
44
Creating a “SuperNTF” FormCreating 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; "New Document";
WindowTitle)– Turn off the create menu – PLEASE!
Tie the form into one or more views Compose a document and click
4545
Agenda…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
46
Basics of Overhauling Existing ApplicationBasics 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
4747
Agenda…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
4848
ResourcesResources
Download SuperNTF– www.superntf.org
My Blog: www.lotusguru.com– Includes many articles pertaining to SuperNTF, including
upcoming features
SuperNTF IdeaJam?– Stay tuned
49
Parting ThoughtsParting 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
50
Sharing is GoodSharing is Good
Sharing is good!– Please share your good ideas and useful SuperNTF
customizations