Saya telah mengembangkan aplikasi nyata dengan Rails dan ASP.NET MVC, tetapi jawaban ini datang dengan peringatan yang signifikan: Saya belajar dan mengembangkan dengan Rails pra-versi 2, jadi sangat mungkin bahwa saya jauh ketinggalan zaman dengan saya Pengetahuan rel.
Yang sedang berkata, saya tidak berpikir bahwa ada sesuatu yang dapat dilakukan dengan satu tetapi tidak yang lain. Dengan serangkaian persyaratan untuk aplikasi web, Anda harus dapat membangun aplikasi itu - mungkin sama efisiennya - dengan Rails atau ASP.NET MVC.
Ada beberapa hal rapi yang - sepengetahuan saya - tersedia di ASP.NET MVC terutama karena aspek C # /. NET. Misalnya: ketika saya memiliki halaman yang berisi formulir yang dikirimkan, saya akan memiliki Tindakan yang memeriksa untuk melihat apakah itu berurusan dengan GET atau POST untuk memutuskan apa yang harus dilakukan:
def edit
@item = Item.find(params[:id])
if request.post?
@item.update_attributes(params[:item])
redirect_to :action => 'edit', :id => @item.id
end
end
Ini adalah contoh sepele dari itu, tetapi if request.post?
polanya sangat umum di Rails. Untuk kasus-kasus non-sepele, kode Aksi bisa menjadi besar dan berantakan, dan seringkali, saya berharap bahwa saya bisa mengubahnya menjadi metode terpisah secara bersih. Dalam ASP.NET MVC saya dapat melakukan itu:
public ActionResult Edit() {
// Render my page that has the Edit form
...
}
[HttpPost]
public ActionResult Edit(Foothing foo) {
// Save my Foothing data
...
}
Saya pikir bisa memisahkan penanganan GET dan POST dengan rapi. Jarak tempuh Anda mungkin beragam.
Hal lain yang dilakukan ASP.NET MVC yang sangat keren (sekali lagi menurut saya) juga terkait dengan penanganan formulir POS. Di Rails, saya harus meminta params
hash untuk semua variabel formulir saya. Katakanlah saya memiliki formulir dengan bidang 'status', 'gonkulated', 'invert' dan 'disposisi':
def edit
@item = Item.find(params[:id])
if params[:status] == "new"
...
else
...
end
if params[:gonkulated] == "true"
...
else
...
end
if params[:invert] == "true"
...
else
...
end
# Rest ommited for brevity
end
Tetapi ASP.NET MVC memungkinkan saya untuk mendapatkan semua nilai formulir saya sebagai parameter untuk metode Tindakan saya:
[HttpPost]
public ActionResult Edit(int id, string status, bool gonkulated, bool invert, int disposition) {
...
}
Itulah dua hal yang sangat saya sukai tentang ASP.NET MVC atau Rails. Mereka tidak cukup alasan untuk pengembang waras atau kompeten untuk memilih satu kerangka kerja dari yang lain.