• Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
11,871
On Slideshare
11,871
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

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. TM Seaside TM Why should you care? ~ Dynamic Stockholm 2010 ~ Julian Fitzell Cincom Systems Tuesday, November 2, 2010
  • 2. What is Seaside? Tuesday, November 2, 2010
  • 3. TM A web framework Tuesday, November 2, 2010
  • 4. TM applica tion A web^framework Tuesday, November 2, 2010
  • 5. TM applica tion A^web^framework Smallt a lk Tuesday, November 2, 2010
  • 6. TM applica tion A^web^framework hereti cal? Tuesday, November 2, 2010
  • 7. TM applica tion A^web^framework hereti cal? Tuesday, November 2, 2010
  • 8. TM applica tion A web ^ ^framework templa te -free Tuesday, November 2, 2010
  • 9. TM applica tion A web ^ ^framework open-s ou rce Tuesday, November 2, 2010
  • 10. WebObjects Tuesday, November 2, 2010
  • 11. Ruby Tuesday, November 2, 2010
  • 12. Tuesday, November 2, 2010 Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
  • 13. Tuesday, November 2, 2010 equalizer The web is a language Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/
  • 14. I can’t see anything Photo courtesy of http://www.flickr.com/photos/pragdave/173643703/ wrong. Could you try again? Tuesday, November 2, 2010
  • 15. “Why should I care?” Tuesday, November 2, 2010
  • 16. Programming costs money Tuesday, November 2, 2010
  • 17. Programming costs lots of money Tuesday, November 2, 2010
  • 18. Let’s optimize development Tuesday, November 2, 2010
  • 19. Let’s take away the pain Tuesday, November 2, 2010
  • 20. Let’s focus on the features that make our products truly exceptional Tuesday, November 2, 2010
  • 21. So what’s your pain? Courtesy of stock.xchng user Bubbels Tuesday, November 2, 2010
  • 22. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="mailreader-support" namespace="/" extends="mailreader-default"> <action name="Tour"> <result>/tour.html</result> <interceptor-ref name="guest"/> </action> <action name="Welcome" class="mailreader2.Welcome"> <result>/Welcome.jsp</result> <interceptor-ref name="guest"/> </action> XML Files? <action name="Logout" class="mailreader2.Logout"> <result type="redirectAction">Welcome</result> </action> <action name="Login_*" method="{1}" class="mailreader2.Login"> <result name="input">/Login.jsp</result> <result name="cancel" type="redirectAction">Welcome</result> <result type="redirectAction">MainMenu</result> <result name="expired" type="chain">ChangePassword</result> <exception-mapping exception="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException" result="expired"/> <interceptor-ref name="guest"/> </action> <action name="Registration_*" method="{1}" class="mailreader2.Registration"> <result name="input">/Registration.jsp</result> <result type="redirectAction">MainMenu</result> <interceptor-ref name="guest"/> </action> </package> Tuesday, November 2, 2010
  • 23. Tag soup? Courtesy of stock.xchng user lusi Tuesday, November 2, 2010
  • 24. Spaghetti Templates? Courtesy of stock.xchng user TouTouke Tuesday, November 2, 2010
  • 25. Waiting for edit, compile, run? Courtesy of stock.xchng user matchstick Tuesday, November 2, 2010
  • 26. Code generation? Courtesy of stock.xchng users wildiexx and sundesigns Tuesday, November 2, 2010
  • 27. Object-Relational Mapping? Courtesy of stock.xchng user theswedish Tuesday, November 2, 2010
  • 28. Passing around IDs? Tuesday, November 2, 2010
  • 29. Security? Courtesy of stock.xchng user lusi Tuesday, November 2, 2010
  • 30. Multi- step Processes? Courtesy of stock.xchng user mexikids Tuesday, November 2, 2010
  • 31. Components Tuesday, November 2, 2010
  • 32. C A B Tuesday, November 2, 2010
  • 33. A B C Tuesday, November 2, 2010
  • 34. New Item Add Tuesday, November 2, 2010
  • 35. A B C Tuesday, November 2, 2010
  • 36. New Item Add Tuesday, November 2, 2010
  • 37. Demo Tuesday, November 2, 2010
  • 38. New Item A B C ? Add Tuesday, November 2, 2010
  • 39. New Item A B C Add New Item Add ? Tuesday, November 2, 2010
  • 40. New Item A B C Add item New Item Add item Tuesday, November 2, 2010
  • 41. a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b Tuesday, November 2, 2010
  • 42. a := self request: ‘A number?’. b := self request: ‘Another?’. self inform: a + b Tuesday, November 2, 2010
  • 43. Demo Tuesday, November 2, 2010
  • 44. Action Web Browser Action Tuesday, November 2, 2010
  • 45. Task Web Browser Task Tuesday, November 2, 2010
  • 46. IO NS AT Task NU Web Browser N TI CO Task Tuesday, November 2, 2010
  • 47. Single Tool-chain Tuesday, November 2, 2010
  • 48. Courtesy of stock.xchng user chux 1 2 “7 Things” 3 4 5 6 7 Tuesday, November 2, 2010
  • 49. In Smalltalk, everything is an object Tuesday, November 2, 2010
  • 50. Seaside + In Smalltalk, everything is an object Tuesday, November 2, 2010
  • 51. Templates aren’t OO Tuesday, November 2, 2010
  • 52. <h1><% print $title %><h1> Tuesday, November 2, 2010
  • 53. html heading: title Tuesday, November 2, 2010
  • 54. ✓ Debugging Tuesday, November 2, 2010
  • 55. ✓ Refactoring Tuesday, November 2, 2010
  • 56. ✓ Callbacks... Tuesday, November 2, 2010
  • 57. <a href=“/deleteItem?id=<% print $item.id%>”>Delete</a> Tuesday, November 2, 2010
  • 58. html anchor callback: [ self delete: item ]; with: ‘Delete’ Tuesday, November 2, 2010
  • 59. Security Courtesy of stock.xchng user julosstock Tuesday, November 2, 2010
  • 60. Cross-site scripting (XSS) © Mark Miller, from morguefile.com Tuesday, November 2, 2010
  • 61. Output is encoded by default Tuesday, November 2, 2010
  • 62. html heading: title Tuesday, November 2, 2010
  • 63. Parameter injection Courtesy of stock.xchng user foxumon Tuesday, November 2, 2010
  • 64. Parameter names are not meaningful Tuesday, November 2, 2010
  • 65. IDs are not passed around Tuesday, November 2, 2010
  • 66. Actions are bound to functions Tuesday, November 2, 2010
  • 67. html anchor callback: [ self delete: item ]; with: ‘Delete’ Tuesday, November 2, 2010
  • 68. If you don’t expose it, your users can’t do it! Tuesday, November 2, 2010
  • 69. Replay attacks Courtesy of stock.xchng user ratnesh Tuesday, November 2, 2010
  • 70. Tuesday, November 2, 2010
  • 71. 6-b it) (9 ess ion S Tuesday, November 2, 2010
  • 72. 6-b it) ge (9 Pa Tuesday, November 2, 2010
  • 73. Tuesday, November 2, 2010
  • 74. Demo Tuesday, November 2, 2010
  • 75. Where can I find out more? Tuesday, November 2, 2010
  • 76. www.seaside.st Tuesday, November 2, 2010
  • 77. Tuesday, November 2, 2010
  • 78. Mailing list Tuesday, November 2, 2010
  • 79. Examples Tuesday, November 2, 2010
  • 80. Tuesday, November 2, 2010
  • 81. Tuesday, November 2, 2010
  • 82. Tuesday, November 2, 2010
  • 83. In business, there is nothing more valuable than a technical advantage your competitors don't understand. – Paul Graham Tuesday, November 2, 2010
  • 84. Julian Fitzell jfitzell@cincom.com blog.fitzell.ca Twitter: @jfitzell www.seaside.st Seaside is a trademark of Avi Bryant and Julian Fitzell © 2010 Cincom Systems, Inc. CINCOM and the Quadrant Logo are registered trademarks of Cincom Systems, Inc. © 2009 Julian Fitzell All other trademarks belong to their respective companies. All rights reserved Tuesday, November 2, 2010