Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ColdFusion framework comparison

  • Als Erste(r) kommentieren

ColdFusion framework comparison

  1. 1. ColdFusion Framework Comparison Vikas Patel iSummation Technologies
  2. 2. What we’ll cover <ul><li>Types of frameworks </li></ul><ul><li>Structure of frameworks </li></ul><ul><li>Common things and differences </li></ul>
  3. 3. Traditional Applications <ul><li>Validation / data processing in the same page </li></ul><ul><li>Logic to select next page </li></ul><ul><li><cfif isDefined(&quot;form.submit&quot;)> </li></ul><ul><li>... process data ... </li></ul><ul><li>... redirect or continue to show errors ... </li></ul><ul><li></cfif> </li></ul><ul><li><cfform ..> </li></ul><ul><li>... </li></ul><ul><li></cfform> </li></ul>
  4. 4. Model-View-Controller <ul><li>View = display code </li></ul><ul><li>Controller = logic to select next page, form validation, interaction with Model </li></ul><ul><li>Model = all the business logic - validation, data processing etc </li></ul>
  5. 5. Types of frameworks <ul><li>MVC - application frameworks </li></ul><ul><ul><li>cfWheels, ColdBox, Fusebox, Mach-II, Model-Glue, onTap etc </li></ul></ul><ul><li>ORM - persistence frameworks </li></ul><ul><ul><li>DataFaucet, Reactor, Transfer etc </li></ul></ul><ul><li>IoC / DI - management of services (CFCs) </li></ul><ul><ul><li>ColdSpring, Lightwire, Spring (Java) </li></ul></ul><ul><li>Miscellaneous </li></ul><ul><ul><li>Validation frameworks </li></ul></ul><ul><ul><li>Event handling frameworks </li></ul></ul><ul><ul><li>etc </li></ul></ul>
  6. 6. ColdSpring
  7. 7. ColdSpring <ul><li>UserService.cfc </li></ul><ul><li>UserGateway.cfc </li></ul><ul><li>ConfigBean.cfc </li></ul>
  8. 8. ColdSpring
  9. 9. Commonalities <ul><li>What do ColdBox, Mach-II and Model-Glue have in common? </li></ul><ul><li>index.cfm - entry point for Controller </li></ul><ul><li>event-based - focused on &quot;handlers“ </li></ul><ul><li>event &quot;object“ </li></ul><ul><ul><li>Contains URL and form data </li></ul></ul><ul><ul><li>Provides a data bus for Controller / View </li></ul></ul>
  10. 10. Commonalities <ul><li>Views are &quot;regular&quot; CFML pages </li></ul><ul><li>Controllers are CFCs </li></ul><ul><li>Model is a collection of CFCs too </li></ul>
  11. 11. Configuration vs Convention <ul><li>Event handlers are specified in XML files </li></ul><ul><ul><li>Mach-II, Model-Glue - like Fusebox XML </li></ul></ul><ul><li>Event handlers are located by convention </li></ul><ul><ul><li>ColdBox - like Fusebox no-XML </li></ul></ul>
  12. 12. How are they different?
  13. 13. ColdBox
  14. 17. ColdBox <ul><li>Event names look like entity.action </li></ul><ul><ul><li>Map to handler entity.cfc, method action (event) - like Fusebox no-XML </li></ul></ul><ul><li>Core configuration is via XML file </li></ul><ul><ul><li>Just basic properties - no &quot;logic“ </li></ul></ul><ul><li>Layouts </li></ul><ul><ul><li>Default layout for whole app </li></ul></ul><ul><ul><li>Default layout for specific views/folders </li></ul></ul><ul><ul><li>Can override programmatically </li></ul></ul>
  15. 18. ColdBox <ul><li>Interceptors - called automatically during the application / request lifecycle </li></ul><ul><ul><li>SES URLs, security, tracing, cache advice… </li></ul></ul><ul><ul><li>e.g., environment interceptor can override configuration for dev, QA, prod </li></ul></ul>
  16. 19. ColdBox <ul><li>Plugins - add custom functionality </li></ul><ul><ul><li>Create plugins/Stuff.cfc </li></ul></ul><ul><ul><li>In view or handler, getMyPlugin(&quot;Stuff&quot;) </li></ul></ul><ul><ul><li>Automatically cached </li></ul></ul><ul><ul><li>Lots built-in: i18n, logger, RSS, web services, timer etc </li></ul></ul>
  17. 20. Mode-Glue
  18. 21. Model-Glue <ul><li>Event handlers in XML </li></ul><ul><ul><li>Publish messages for subscribed listeners </li></ul></ul><ul><ul><li>Specify conditional result / event mapping </li></ul></ul><ul><ul><li>Specify views to render </li></ul></ul>
  19. 22. Model-Glue <ul><li>Controller CFCs (methods are listeners) </li></ul><ul><ul><li>Conditional logic sets &quot;results&quot; to control the flow of events (like filters in Mach-II) </li></ul></ul><ul><ul><li>A few automatic events during each request (like plugins in Mach-II or interceptors in ColdBox) </li></ul></ul>
  20. 23. Model-Glue <ul><li>Scaffolding (MG2) / code generation (MG3) </li></ul><ul><ul><li>Builds XML, controllers and views for you to speed up development </li></ul></ul><ul><li>Event types (new in MG3) </li></ul><ul><ul><li>Reduces boilerplate layout / result mapping in event handler XML </li></ul></ul>
  21. 24. Model-Glue <ul><li>Integrated ColdSpring </li></ul><ul><ul><li>Autowiring of model into controllers </li></ul></ul><ul><ul><li>Model-Glue itself is wired together with ColdSpring! </li></ul></ul><ul><li>View formats (new in MG3) </li></ul><ul><ul><li>Select different views in single event handler to render HTML or AJAX </li></ul></ul>
  22. 25. Mach-II
  23. 26. Mach-II <ul><li>Event handlers in XML </li></ul><ul><ul><li>Call methods on listener CFCs </li></ul></ul><ul><ul><li>Specify views to render </li></ul></ul><ul><ul><li>Can publish message for subscribed listeners </li></ul></ul><ul><ul><li>Can map event names </li></ul></ul><ul><ul><li>Both decouple listeners from XML </li></ul></ul>
  24. 27. Mach-II <ul><li>Plugins - a bit like interceptors in ColdBox </li></ul><ul><ul><li>Automatically called during each request </li></ul></ul><ul><li>Filters - conditional logic for event handlers </li></ul><ul><ul><li>Can change flow of events </li></ul></ul><ul><li>Built-in caching, logging </li></ul><ul><li>Environment support </li></ul><ul><li>HTML helper </li></ul>
  25. 28. Wrap up.. <ul><li>At a high level, ColdBox, Mach-II and Model-Glue perform similar functions </li></ul><ul><li>ColdBox has convention-based approach </li></ul><ul><li>Model-Glue is lightweight and simple </li></ul><ul><li>Mach-II is very OO and built for extension </li></ul>
  26. 29. Wrap up..
  27. 30. Q & A

    Als Erste(r) kommentieren

    Loggen Sie sich ein, um Kommentare anzuzeigen.

  • TheNephalim

    May. 6, 2014

Aufrufe

Aufrufe insgesamt

6.817

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

6

Befehle

Downloads

0

Geteilt

0

Kommentare

0

Likes

1

×