Your SlideShare is downloading. ×
0
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WebSphere Portlet Factory: Davalen’s Practical Advice from the Field

756

Published on

WebSphere Portal Technical Conference 2008: …

WebSphere Portal Technical Conference 2008:
Session ID: D23
WebSphere Portlet Factory: Davalen’s Practical Advice from the Field
Speaker: Michael “Spoon” Witherspoon

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
756
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Session ID: D23 WebSphere Portlet Factory: Davalen’s Practical Advice from the Field Speaker: Michael “Spoon” Witherspoon WebSphere Portal Technical Conference U.S. 2008
  • 2. Practical Advice from the Field Agenda <ul><li>Introduction </li></ul><ul><li>Presentation </li></ul><ul><li>Questions / Answers </li></ul>
  • 3. Introduction <ul><li>Who is Davalen, LLC? </li></ul><ul><ul><li>Premier IBM Business Partner &amp; IBM Authorized Training Center since 1993 </li></ul></ul><ul><li>Who is Michael “Spoon” Witherspoon ? </li></ul><ul><ul><li>Career instructor, application developer, course writer </li></ul></ul><ul><ul><li>Former Lead Technical Instructor at Bowstreet </li></ul></ul><ul><ul><li>Current Portlet Factory Practice Manager at Davalen </li></ul></ul><ul><ul><li>Writes the Davalen Top Gun for WPF courses </li></ul></ul>
  • 4. Presentation <ul><li>Be Prepared </li></ul><ul><li>Know the Product Well </li></ul><ul><li>Advice on: </li></ul><ul><ul><li>Services </li></ul></ul><ul><ul><li>Schemas </li></ul></ul><ul><ul><li>Builder Calls </li></ul></ul><ul><ul><li>User Interface (UI) </li></ul></ul><ul><ul><li>Linked Java Objects (LJOs) </li></ul></ul><ul><ul><li>Profiling </li></ul></ul><ul><ul><li>Programming Patterns </li></ul></ul><ul><li>10 Practical Tips from the Field </li></ul>
  • 5. Be Prepared: The Customer is Relying on You! <ul><li>Customer may not know Portlet Factory </li></ul><ul><ul><li>Maybe has tried and failed </li></ul></ul><ul><li>Customer specs may not be complete </li></ul><ul><ul><li>Heavy focus on user interface (UI) </li></ul></ul><ul><ul><li>Little detail on data and services </li></ul></ul><ul><li>Customer may not understand profiling </li></ul><ul><ul><li>Roles-based profiling is very powerful </li></ul></ul>
  • 6. Know the Product Well: Everyone Expects You to Know <ul><li>Start with training and mentoring </li></ul><ul><ul><li>Davalen’s Top Gun courses for WPF developers </li></ul></ul><ul><ul><ul><li>Comprehensive, Practical, Real-World Examples </li></ul></ul></ul><ul><ul><li>http://www.davalen.com </li></ul></ul><ul><ul><li>IBM Course Catalog – search for “Top Gun” </li></ul></ul><ul><li>Use Portlet Factory Wiki and Forums </li></ul><ul><ul><li>See URLs at end of presentation </li></ul></ul><ul><li>Practice, Investigate, Innovate </li></ul><ul><ul><li>Develop new patterns and techniques </li></ul></ul><ul><ul><li>Learn new things </li></ul></ul>
  • 7. Advice on Services <ul><li>Expect to Design the Services Layer Yourself </li></ul><ul><ul><li>The customer is hyper-focused on the UI </li></ul></ul><ul><li>Think About the Schemas </li></ul><ul><ul><li>Tip! Input schemas should be custom </li></ul></ul><ul><ul><ul><li>More stable </li></ul></ul></ul><ul><ul><ul><li>Generated schemas - all inputs are string, all are required </li></ul></ul></ul><ul><ul><li>Tip! Figure them out early </li></ul></ul><ul><ul><ul><li>They drive the UI </li></ul></ul></ul><ul><ul><ul><li>Avoid late game schema changes </li></ul></ul></ul><ul><li>Stabilize the Database Structure Early </li></ul><ul><ul><li>Structure changes often force schema changes </li></ul></ul><ul><ul><li>Use Views when possible </li></ul></ul>Tip!
  • 8. Advice on Services – Don’t be Afraid to: <ul><li>Break up the Services into Multiple Service Provider models </li></ul><ul><ul><li>One per type of data i.e. Customer or Product </li></ul></ul><ul><ul><li>One per data relationship i.e. Invoice : LineItems </li></ul></ul><ul><ul><li>Something else logical </li></ul></ul><ul><li>Have one Provider Consume Another’s Services </li></ul><ul><ul><li>It is OK to have a Service Consumer builder in a Service Provider model </li></ul></ul><ul><li>Tip! Make Extra Services </li></ul><ul><ul><li>Utilities that return short lists – Lookup Table </li></ul></ul><ul><ul><li>Think broadly now , save time later </li></ul></ul><ul><ul><li>Easy to disable </li></ul></ul>Tip!
  • 9. Advice on Schemas <ul><li>The World is not Flat – neither is the data </li></ul><ul><ul><li>Learn to work with complex XML </li></ul></ul><ul><li>Leverage Simple Schema Generator builder </li></ul><ul><ul><li>Modify generated schema as needed </li></ul></ul><ul><ul><li>Custom input schemas aid Data Page validation </li></ul></ul><ul><li>Put repeating elements in a parent node </li></ul><ul><ul><li>&lt;Children&gt;&lt;Child&gt;&lt;/Child&gt;…&lt;Child&gt;&lt;/Child&gt;…&lt;/Children&gt; </li></ul></ul><ul><ul><li>Easier to work with in Action Lists, Methods, LJOs </li></ul></ul>Tip!
  • 10. Advice on Schemas – Don’t be Afraid to: <ul><li>Write your own Schemas </li></ul><ul><ul><li>Customize generated schemas for convenience and consistency </li></ul></ul><ul><ul><li>Streamline complex schemas </li></ul></ul><ul><ul><li>W3Schools – http://www.w3schools.com </li></ul></ul><ul><li>Use Schema-Typed Variables </li></ul><ul><ul><li>Regular Variable builder </li></ul></ul><ul><ul><ul><li>Choose schema element </li></ul></ul></ul><ul><ul><li>Very useful with </li></ul></ul><ul><ul><ul><li>Data Page builder </li></ul></ul></ul><ul><ul><ul><li>WebCharts builder </li></ul></ul></ul><ul><ul><ul><li>XML inputs for </li></ul></ul></ul><ul><ul><ul><ul><li>Action Lists, Event Handlers, Method Calls </li></ul></ul></ul></ul>
  • 11. Advice on Builder Calls <ul><li>Use Comments to group builders by feature / function </li></ul><ul><li>Use naming conventions </li></ul><ul><ul><li>Action List – Act_ActionName </li></ul></ul><ul><ul><li>LJO – LJO_ClassName </li></ul></ul><ul><ul><li>Service Definition / Service Consumer – end with underscore </li></ul></ul><ul><ul><ul><li>Service method names are much easier to read </li></ul></ul></ul><ul><ul><li>Variables by purpose </li></ul></ul><ul><ul><ul><li>Temporary – temp_VariableName </li></ul></ul></ul><ul><ul><ul><li>Shared – shared_VariableName </li></ul></ul></ul><ul><ul><ul><ul><li>The actual Variable and not the Shared Variable builder </li></ul></ul></ul></ul><ul><ul><li>Tip! Use self-documenting naming rules and be consistent </li></ul></ul>Tip!
  • 12. Advice on UI <ul><li>Learn Data Page well – you will definitely use it </li></ul><ul><ul><li>Tip! Place on &lt;div&gt; tag and not &lt;span&gt; tag </li></ul></ul><ul><ul><li>Use it even when there is only one input field </li></ul></ul><ul><ul><li>Learn to Nest Repeated Region builders </li></ul></ul><ul><ul><li>Excellent control over presentation of complex, hierarchical data </li></ul></ul><ul><ul><li>Good time to use schema-type variables </li></ul></ul><ul><li>Use AJAX </li></ul><ul><ul><li>Refresh just one region instead of entire portal page </li></ul></ul><ul><li>Use Visibility Setter </li></ul><ul><ul><li>Show / Hide notes, markers, complex variables, service results </li></ul></ul><ul><ul><li>Drive with Profiling </li></ul></ul>Tip!
  • 13. Advice on UI – Don’t be Afraid to: <ul><li>Make your own Layout Pages </li></ul><ul><ul><li>Generated pages can be too generic </li></ul></ul><ul><ul><li>Data Page works with custom pages </li></ul></ul><ul><ul><li>Tip! Use Imported HTML pages for layout and Page builders for snippets </li></ul></ul><ul><li>Use Data Page instead of View and Form </li></ul><ul><ul><li>It is more work but offers more control </li></ul></ul><ul><ul><ul><li>Page flow </li></ul></ul></ul><ul><ul><ul><li>Naming of pages, methods, etc. </li></ul></ul></ul><ul><ul><ul><li>View and Form encapsulates too much </li></ul></ul></ul><ul><ul><li>Tip! Always put each Data Page builder on its own Page builder. </li></ul></ul><ul><ul><ul><li>Combine onto separate page using Inserted Page </li></ul></ul></ul>Tip! Tip!
  • 14. Advice on Linked Java Objects (LJOs) <ul><li>Tip! Learn the IXml API </li></ul><ul><ul><li>Thorough API for manipulating XML objects </li></ul></ul><ul><li>Use in Services </li></ul><ul><ul><li>Complex transforms </li></ul></ul><ul><ul><li>Complex processing / data manipulation </li></ul></ul><ul><ul><li>Pre- and Post-Execution methods </li></ul></ul><ul><li>Use in Service Consumers </li></ul><ul><ul><li>Process / modify service results for UI purposes </li></ul></ul><ul><li>Use Builders whenever you can </li></ul><ul><ul><li>Don’t write everything in LJOs </li></ul></ul>Tip!
  • 15. Advice on Profiling <ul><li>Do not copy a Profile Set </li></ul><ul><ul><li>Create new Profile Set from existing instead </li></ul></ul><ul><li>Name using package name convention </li></ul><ul><li>Encourage customer to use Profiling </li></ul><ul><ul><li>Portlet configuration, defaults, user personalization </li></ul></ul><ul><ul><li>Roles-based application versions </li></ul></ul><ul><li>Use Profiling during application development </li></ul><ul><ul><li>Set Default profile to “normal” input values </li></ul></ul><ul><ul><li>Use a “developer” profile to expose options and visibility for developer’s convenience </li></ul></ul>
  • 16. Advice on Programming Patterns <ul><li>Use Services Oriented Architecture </li></ul><ul><ul><li>Service Provider / Service Consumer </li></ul></ul><ul><ul><li>Beware: not all services generate code equally </li></ul></ul><ul><li>Use Imported Models for Common Builder Calls </li></ul><ul><ul><li>Event Declarations </li></ul></ul><ul><ul><li>SQL Data Source </li></ul></ul><ul><ul><li>Shared Variables </li></ul></ul><ul><ul><li>Schemas </li></ul></ul><ul><li>Build Application Models from Components </li></ul><ul><ul><li>Static / Dynamic Model Containers </li></ul></ul><ul><ul><li>Profiled Imported Model </li></ul></ul><ul><ul><ul><li>Giant step toward model-based builders </li></ul></ul></ul>
  • 17. 10 Practical Tips from the Field: <ul><li>1. Always make custom input schemas. </li></ul><ul><li>2. Nail down the schemas early in the project. </li></ul><ul><li>3. Make extra, small utility services even if you think you won’t need them. </li></ul><ul><li>4. Put repeating schema elements inside a parent node. </li></ul><ul><li>5. Use self-documenting naming of builder calls and be consistent. </li></ul>
  • 18. 10 Practical Tips from the Field: <ul><li>Place Data Page builder calls on &lt;div&gt; tags instead of &lt;span&gt; tags. </li></ul><ul><li>Use Data Page even when there is only one input field. </li></ul><ul><li>Use Imported Page builder with HTML pages for page structure / layout and use Page builder for snippets. </li></ul><ul><li>Always put each Data Page builder on its own Page builder. </li></ul><ul><li>Learn the IXml API and use it liberally in LJOs. </li></ul>
  • 19. Additional Information and Resources Cited in Presentation <ul><li>Davalen, LLC – WebSite and Top Gun Information </li></ul><ul><li>http://www.davalen.com </li></ul><ul><li>IBM Training Course Catalog </li></ul><ul><li> http://www.ibm.com/training </li></ul><ul><li> Search Training Finder for “Top Gun” </li></ul><ul><li>WebSphere Portlet Factory Wiki </li></ul><ul><li> http://www-10.lotus.com/ldd/pfwiki.nsf </li></ul><ul><li>WebSphere Forums </li></ul><ul><li> http://www-128.ibm.com/developerworks/forums/wsdd_forums.jspa </li></ul><ul><li>Websphere Portlet Factory Documentation Page </li></ul><ul><li>http://www-128.ibm.com/developerworks/websphere/zones/portal/portletfactory/proddoc.html </li></ul><ul><li>Or use the link for Tutorial #5 on the Start Menu in Windows </li></ul>
  • 20. Additional Information and Resources <ul><li>WebSphere Portal – IBM Site </li></ul><ul><li> http://www-3.ibm.com/software/genservers/portal/ </li></ul><ul><li>WebSphere Portal Business Solutions Catalog: </li></ul><ul><li>http://catalog.lotus.com/wps/portal/portal </li></ul><ul><li>WebSphere Portal 6.0 DemoNet </li></ul><ul><li>http://docs.dfw.ibm.com/wp6/?DDSPageRequest=/ </li></ul><ul><li>Product Documentation and WebSphere Portal Wiki </li></ul><ul><li> http://www-3.ibm.com/software/genservers/portal/library/ </li></ul><ul><li> http://www-10.lotus.com/ldd/portalwiki.nsf </li></ul><ul><li>Education </li></ul><ul><li> http://www-3.ibm.com/software/genservers/portal/education/ </li></ul><ul><li>Websphere Portal Developer’s Zone </li></ul><ul><li>http://www-106.ibm.com/developerworks/websphere/zones/portal/ </li></ul>
  • 21. Please take a few minutes to fill out the session survey. Thank you Session ID: D23 Session: WebSphere Portlet Factory: Davalen’s Practical Advice from the Field Presenter(s): Michael “Spoon” Witherspoon Mark your calendars! 2009 U.S. WebSphere Portal Technical Conference October 12-15, 2009, Sheraton San Diego Hotel and Marina WebSphere Portal Technical Conference U.S. 2008
  • 22. <ul><li>© IBM Corporation 2008 All Rights Reserved. </li></ul><ul><li>The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. </li></ul><ul><li>References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. </li></ul><ul><li>All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. </li></ul><ul><li>IBM, the IBM logo, WebSphere, Lotus , Lotus Notes , Domino , Quickplace, Sametime , Workplace and Quickr are trademarks of International Business Machines Corporation in the United States, other countries, or both. </li></ul><ul><li>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. </li></ul><ul><li>Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. </li></ul><ul><li>Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. </li></ul><ul><li>Other company, product, or service names may be trademarks or service marks of others. </li></ul><ul><li>All references to Renovations Inc. refer to a fictitious company and are used for illustration purposes only. </li></ul>

×