Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ruby on Rails vs ASP.NET MVC Simone Chiaretta Web Architect, Council of the EU Milano, 19 Febbraio 2011 Sandro.

Similar presentations


Presentation on theme: "Ruby on Rails vs ASP.NET MVC Simone Chiaretta Web Architect, Council of the EU Milano, 19 Febbraio 2011 Sandro."— Presentation transcript:

1 Ruby on Rails vs ASP.NET MVC Simone Chiaretta Web Architect, Council of the EU http://codeclimber.net.nz Twitter: @simonech Milano, 19 Febbraio 2011 Sandro Paganotti Software Architect, Wave Factory http://sandropaganotti.com/ Twitter: @sandropaganotti

2 Join the Conf: the app

3 Conference List

4 Attendee Registration

5 Join the Conf: the making

6 The Model

7 Project Setup rails new join_the_conf -d mysql cd join_the_conf mate config/database.yml rake db:create rails server [File>New Project>ASP.NET MVC 3 Application]

8 Install Dependencies mate Gemfile gem 'devise' gem 'rails_admin', :git => '...' gem 'haml‘ bundle install Install-Package MvcScaffolding

9 Create Model rails generate resource Conference name:string description:text start:date end:date location:string capacity:integer -a index public class Conference { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } public string Location { get; set; } public int Capacity { get; set; } }

10 Create BackOffice rails generate rails_admin:install_admin Administrator rake db:migrate rails server http://localhost:3000/admin Scaffold Controller Attendee Scaffold Controller Conference [Build] http://localhost:2246/Admin/Conference

11 Validation class Attendee < ActiveRecord::Base belongs_to :conference validates_presence_of :conference_id, :name, :email validates_uniqueness_of :email, :scope => :conference_id end public class Attendee { public int Id { get; set; } public int ConferenceId { get; set; } [Required] public string Name { get; set; } [Required] public string Email { get; set; } virtual public Conference Conference { get; set; } }

12 Routing resources "conferences", :only => [:index] do resources "attendees", :only => [:index, :create] End rake routes public class ConferencesController : Controller public ViewResult Index() public class AttendeesController : Controller public ViewResult Index() public ActionResult Create(Attendee attendee)

13 Controller class ConferencesController... def index @conferences = Conference.all( :order=>'start DESC') end public class AttendeesController : Controller { private JTCContext context = new JTCContext(); public ViewResult Index() { return View(context.Attendees.ToList()); }

14 Layout !!! 5 %html %head %title Join The Conf = stylesheet_link_tag :all = javascript_include_tag :defaults = csrf_meta_tag %body= yield Join The Conf @RenderBody()

15 Views conferences/index.html.haml %ul= render @conferences conferences/index.cshtml @foreach (Conference item in ViewBag.Conferences) { @Html.Partial("_conference", item) }

16 Partial Views conferences/_conference.html.haml %li = "#{conference.name} - #{conference.start}" = link_to '(show attendees)', conference_attendees_path(conference) conferences/_conference.cshtml @Model.Name: - @Model.Start @Html.ActionLink("(Register)","New","Attendees")


Download ppt "Ruby on Rails vs ASP.NET MVC Simone Chiaretta Web Architect, Council of the EU Milano, 19 Febbraio 2011 Sandro."

Similar presentations


Ads by Google