Successfully reported this slideshow.

Ruby On Rails Vorlesung 1 Rails Überblick

1,467 views

Published on

Überlick über das Ruby on Rails Framework

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ruby On Rails Vorlesung 1 Rails Überblick

  1. 1. Ruby on Rails Dozent Dipl.-Inf. (FH) Julian Fischer Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 1
  2. 2. Einführung Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 2
  3. 3. Was ist Ruby on Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 3
  4. 4. Was ist Ruby on Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  5. 5. Was ist Ruby on Rails? • Ruby = Programmiersprache Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  6. 6. Was ist Ruby on Rails? • Ruby = Programmiersprache • Ruby on Rails = Web- und Persistenzframework für Ruby Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  7. 7. Was ist Ruby on Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  8. 8. Was ist Ruby on Rails? • Ruby on Rails (kurz Rails) = Web- und Persistenzframework für Ruby Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  9. 9. Was ist Ruby on Rails? • Ruby on Rails (kurz Rails) = Web- und Persistenzframework für Ruby • Was ist Ruby? Ruby = Programmiersprache Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  10. 10. Eigenschaften von Ruby on Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 6
  11. 11. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  12. 12. Eigenschaften von Rails • Basiert auf einer MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  13. 13. Eigenschaften von Rails • Basiert auf einer MVC-Architektur • MVC = Model View Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  14. 14. Eigenschaften von Rails • Basiert auf einer MVC-Architektur • MVC = Model View Controller • Trennung der Verantwortlichkeiten Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  15. 15. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  16. 16. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  17. 17. Eigenschaften von Rails • Basiert auf einer MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  18. 18. Eigenschaften von Rails • Basiert auf einer MVC-Architektur • MVC in Rails: Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  19. 19. Eigenschaften von Rails • Basiert auf einer MVC-Architektur • MVC in Rails: Model ActiveRecord View ActionView Controller ActionController Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  20. 20. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  21. 21. Eigenschaften von Rails • MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  22. 22. Eigenschaften von Rails • MVC-Architektur • Model Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  23. 23. Eigenschaften von Rails • MVC-Architektur • Model • = Datenmodell Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  24. 24. Eigenschaften von Rails • MVC-Architektur • Model • = Datenmodell • = Geschäftsobjekte (z.B. Person) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  25. 25. Eigenschaften von Rails • MVC-Architektur • Model • = Datenmodell • = Geschäftsobjekte (z.B. Person) • = Persistent (SQL-DB Binding) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  26. 26. Model - Beispiel Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  27. 27. Model - Beispiel class SubHostingBillingPosition < HostingBillingPosition belongs_to :hosting def to_s ret = super ret += " " ret += hosting.id.to_s ret += " " + start_date.to_s ret += " " + end_date.to_s end end Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  28. 28. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  29. 29. Eigenschaften von Rails • MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  30. 30. Eigenschaften von Rails • MVC-Architektur • View Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  31. 31. Eigenschaften von Rails • MVC-Architektur • View • = User Interface Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  32. 32. Eigenschaften von Rails • MVC-Architektur • View • = User Interface • Visuelle Darstellung der Geschäftsobjekte Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  33. 33. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  34. 34. Eigenschaften von Rails • MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  35. 35. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  36. 36. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate • HTML Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  37. 37. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  38. 38. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  39. 39. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF • JSON Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  40. 40. Eigenschaften von Rails • MVC-Architektur • View - Mögliche Ausgabeformate • HTML • XML • PDF • JSON • ... Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  41. 41. View - Beispiel Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 14
  42. 42. View - Beispiel <% for column in Branding.content_columns %> <p> <b><%= column.human_name %>:</b> <%=h @branding.send(column.name) %> </p> <% end %> <%= link_to 'Edit', :action => 'edit', :id => @branding %> | <%= link_to 'Back', :action => 'list' %> Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 14
  43. 43. Eigenschaften von Rails Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  44. 44. Eigenschaften von Rails • MVC-Architektur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  45. 45. Eigenschaften von Rails • MVC-Architektur • Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  46. 46. Eigenschaften von Rails • MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  47. 47. Eigenschaften von Rails • MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  48. 48. Eigenschaften von Rails • MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle • Aufbereitung der Daten Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  49. 49. Eigenschaften von Rails • MVC-Architektur • Controller • Handhabung der Benutzerinteraktion (HTTP-Requests) • Zugriff auf Modelle • Aufbereitung der Daten • Entscheidung, welche View darzustellen ist Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  50. 50. Controller - Beispiel Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  51. 51. Controller - Beispiel class BrandingsController < ApplicationController def index list render :action => 'list' end [...] def edit @branding = Branding.find(params[:id]) end def update @branding = Branding.find(params[:id]) if @branding.update_attributes(params[:branding]) flash[:notice] = 'Branding was successfully updated.' redirect_to :action => 'show', :id => @branding else render :action => 'edit' end end [...] Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  52. 52. Warum Ruby on Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 17
  53. 53. Warum Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  54. 54. Warum Rails? • Vorgegebene Projektstruktur Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  55. 55. Warum Rails? • Vorgegebene Projektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  56. 56. Warum Rails? • Vorgegebene Projektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout • Erleichterte Einarbeitung in fremde Projekte Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  57. 57. Warum Rails? • Vorgegebene Projektstruktur • Jedes Rails Projekt hat das gleiche Verzeichnis-Layout • Erleichterte Einarbeitung in fremde Projekte • Motiviert zur Einhaltung der „Good practices“ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  58. 58. Warum Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  59. 59. Warum Rails? • Good practices, z.B. Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  60. 60. Warum Rails? • Good practices, z.B. • testgetriebene Entwicklung Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  61. 61. Warum Rails? • Good practices, z.B. • testgetriebene Entwicklung • MVC Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  62. 62. Warum Rails? • Good practices, z.B. • testgetriebene Entwicklung • MVC • ... Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  63. 63. Warum Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  64. 64. Warum Rails? • Werkzeuge Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  65. 65. Warum Rails? • Werkzeuge • Ruby - Rake Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  66. 66. Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  67. 67. Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems • Rails - Plugins Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  68. 68. Warum Rails? • Werkzeuge • Ruby - Rake • Ruby - Gems • Rails - Plugins • Rails - Generators Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  69. 69. Warum Rails? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  70. 70. Warum Rails? • Community Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  71. 71. Warum Rails? • Community • Aktive und wachsende Entwicklergemeinschaft Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  72. 72. Warum Rails? • Community • Aktive und wachsende Entwicklergemeinschaft • Viele frei verfügbare Plugins, Code- Stücke, usw. Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  73. 73. Demo! Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22

×