আমি রেল এবং এএসপি.এনইটি এমভিসি উভয়ের সাথেই সত্যিকারের অ্যাপ্লিকেশনগুলি বিকাশ করেছি, তবে এই উত্তরটি একটি উল্লেখযোগ্য সতর্কতার সাথে আসে: আমি প্রাক সংস্করণ 2 রেলগুলি দিয়ে শিখেছি এবং বিকাশ করেছি, তাই এটি সম্পূর্ণভাবে সম্ভব যে আমি আমার সাথে পুরানো-সীমাবদ্ধ am রেল জ্ঞান।
বলা হচ্ছে, আমি মনে করি না যে এমন কিছু আছে যা একটি দিয়ে করা যায় তবে অন্যটির সাথে নয়। কোনও ওয়েব অ্যাপ্লিকেশনটির জন্য প্রয়োজনীয় কোনও সেট দেওয়া হয়েছে, আপনার অবশ্যই সেই অ্যাপ্লিকেশনটি তৈরি করতে সক্ষম হওয়া উচিত - সম্ভবত সমান দক্ষতার সাথে - রেল বা এএসপি.নেট এমভিসি উভয়ই দিয়ে।
বেশ কয়েকটি ঝরঝরে জিনিস রয়েছে যা আমার জ্ঞানের সর্বোপরি - এএসপি.নেট এমভিসিতে মূলত সি # /। নেট এর দিকগুলির কারণে উপলব্ধ। উদাহরণস্বরূপ: যখন আমার কাছে এমন একটি পৃষ্ঠা রয়েছে যাতে জমা দেওয়া একটি ফর্ম থাকে, তখন আমার কাছে একটি অ্যাকশন থাকবে যা এটি জিইটি বা পোষ্টের সাথে কী করবে তা স্থির করে কিনা তা পরীক্ষা করে দেখুন:
def edit
@item = Item.find(params[:id])
if request.post?
@item.update_attributes(params[:item])
redirect_to :action => 'edit', :id => @item.id
end
end
এটি এর তুচ্ছ উদাহরণ, তবে if request.post?
প্যাটার্নটি রেলগুলির মধ্যে অত্যন্ত সাধারণ একটি। তুচ্ছ-বিহীন মামলার ক্ষেত্রে অ্যাকশন কোডটি বড় এবং অগোছালো হয়ে উঠতে পারে এবং প্রায়শই আমি চাই যে আমি এটি পরিষ্কার পদ্ধতিতে পৃথক পদ্ধতিতে রিফ্যাক্টর করতে পারি could এএসপি.নেট এমভিসিতে আমি এটি করতে পারি:
public ActionResult Edit() {
// Render my page that has the Edit form
...
}
[HttpPost]
public ActionResult Edit(Foothing foo) {
// Save my Foothing data
...
}
আমি মনে করি যে পরিষ্কারভাবে জিইটি এবং পোষ্ট অনুরোধগুলির হ্যান্ডলিংটি পৃথক করতে সক্ষম হওয়া পরিষ্কার is আপনার মাইলেজ পরিবর্তিত হতে পারে.
এএসপি.এনইটি এমভিসি যে অন্য জিনিসটি দুর্দান্ত করে তোলে তা (আবার আমার মতে) পোষ্টস হ্যান্ডলিং ফর্মের সাথেও সম্পর্কিত। রেলগুলিতে, আমাকে params
আমার ফর্মের সমস্ত ভেরিয়েবলের জন্য হ্যাশটি জিজ্ঞাসা করতে হবে। ধরা যাক যে ক্ষেত্রগুলির 'স্ট্যাটাস', 'গনকুলেটেড', 'ইনভার্ট' এবং 'ডিসপ্যাশন' সহ আমার একটি ফর্ম রয়েছে:
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
তবে এএসপি.নেট এমভিসি ঝরঝরে করে আমাকে আমার ক্রিয়া পদ্ধতির পরামিতি হিসাবে আমার ফর্মের সমস্ত মান পেতে দেয়:
[HttpPost]
public ActionResult Edit(int id, string status, bool gonkulated, bool invert, int disposition) {
...
}
এএসপি.নেট এমভিসি বা রেলগুলি সম্পর্কে আমি দুটি জিনিসই সত্যই পছন্দ করি। এগুলি কোনও বুদ্ধিমান বা সক্ষম বিকাশকারীকে অন্যের চেয়ে এক কাঠামো চয়ন করার পক্ষে যথেষ্ট কারণ নয়।