উত্তর:
এর প্রধান সুবিধা ASP.net এমভিসি এর হ'ল :
রেন্ডার এইচটিএমএল উপর সম্পূর্ণ নিয়ন্ত্রণ সক্ষম করে।
উদ্বেগের পরিষ্কার বিচ্ছিন্নতা সরবরাহ করে (এসসি)।
পরীক্ষা চালিত বিকাশ সক্ষম করে (টিডিডি) ।
জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলির সাথে সহজ সংহতকরণ।
ওয়েবের রাজ্যহীন প্রকৃতির নকশা অনুসরণ করে।
রেস্টলফুল ইউআরএল যা এসইও সক্ষম করে।
ভিউস্টেট এবং পোস্টব্যাক ইভেন্ট নেই
এএসপি.নেট ওয়েব ফর্মের প্রধান সুবিধা :
এটি আরএডি সরবরাহ করে উন্নয়ন সরবরাহ করে
উইনফর্ম বিকাশ থেকে আসা বিকাশকারীদের জন্য সহজ বিকাশের মডেল।
এএসপি.নেট ওয়েব ফর্ম এবং এমভিসি দুটি মাইক্রোসফ্ট দ্বারা বিকাশযুক্ত ওয়েব ফ্রেমওয়ার্ক - এটি উভয়ই ভাল পছন্দ। ওয়েব ফ্রেমওয়ার্কগুলির কোনওটিই অন্যটির দ্বারা প্রতিস্থাপিত হবে না বা তাদের একটি একক কাঠামোর মধ্যে 'একীভূত' করার পরিকল্পনা নেই। অবিচ্ছিন্ন সমর্থন এবং বিকাশ মাইক্রোসফ্ট দ্বারা সমান্তরালভাবে করা হয় এবং উভয় 'দূরে যাওয়া' হবে না।
এই ওয়েব ফ্রেমওয়ার্কগুলির প্রতিটি সুবিধা / অসুবিধাগুলি সরবরাহ করে - যার মধ্যে কয়েকটি ওয়েব অ্যাপ্লিকেশন বিকাশের সময় বিবেচনা করা উচিত। কোনও প্রযুক্তি ব্যবহার করে একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করা যেতে পারে - এটি নির্দিষ্ট অ্যাপ্লিকেশনটির জন্য একটি প্রযুক্তি বনাম অন্যটির বিপরীতে নির্বাচন করা সহজতর করে তোলে।
এএসপি.নেট ওয়েব ফর্ম:
এএসপি.নেট এমভিসি:
প্রমাণীকরণ, অনুমোদন, কনফিগারেশন, সংকলন এবং স্থাপনা দুটি বৈশিষ্ট্য যা দুটি ওয়েব ফ্রেমওয়ার্কের মধ্যে ভাগ করা হয়।
ক্লাসিক এএসপিকে মনে রাখার মতো যথেষ্ট বয়স্ক যে কেউ এইচটিএমএল এবং জাভাস্ক্রিপ্টের সাথে মিশ্রিত কোড সহ একটি পৃষ্ঠা খোলার দুঃস্বপ্ন মনে রাখবেন - এমনকি ক্ষুদ্রতম পৃষ্ঠাটি হ্যাক কী করছে তা নির্ধারণ করার জন্য একটি ব্যথা ছিল। আমি ভুল হতে পারি, এবং আমি আশা করি আমিই রয়েছি, তবে এমভিসি মনে হচ্ছে bad খারাপ পুরানো দিনগুলিতে ফিরে যাওয়া।
যখন এএসপি ডট নেট এসেছিল তখন এটিকে ত্রাণকর্তা হিসাবে গ্রহণ করা হত, কোডটি সামগ্রী থেকে আলাদা করে এবং ওয়েব ডিজাইনারকে HTML তৈরি করার অনুমতি দেয় এবং কোডার পিছনে কোডটিতে কাজ করে। আমরা যদি ভিউস্টেট ব্যবহার করতে না চাই, আমরা এটি বন্ধ করে দিয়েছি। যদি আমরা কোনও কারণে কোডটি পিছনে ব্যবহার করতে না চাই, আমরা আমাদের কোডটি এইচটিএমএলের অভ্যন্তরে ক্লাসিক এএসপির মতো স্থাপন করতে পারি। আমরা যদি পোস্টব্যাকটি ব্যবহার করতে না চাই আমরা প্রসেসিংয়ের জন্য অন্য পৃষ্ঠায় পুনঃনির্দেশিত করেছি। আমরা যদি এএসপি.নেট নিয়ন্ত্রণগুলি ব্যবহার করতে না চাই আমরা স্ট্যান্ডার্ড এইচটিএমএল নিয়ন্ত্রণ ব্যবহার করি। আমরা আমাদের কন্ট্রোলগুলিতে এএসপি. নেট রুনাট = "সার্ভার" ব্যবহার করতে না চাইলে আমরা রেসপন্স অবজেক্টটিও জিজ্ঞাসাবাদ করতে পারি।
এখন তাদের দুর্দান্ত জ্ঞানের কেউ (সম্ভবত কেউ কখনও ক্লাসিক এএসপি প্রোগ্রাম করেননি) সিদ্ধান্ত নিয়েছেন যে বিষয়বস্তুর সাথে কোড মিশ্রণের দিনগুলিতে ফিরে যাওয়ার এবং এটিকে "উদ্বেগের বিচ্ছেদ" বলার সময় এসেছে। অবশ্যই, আপনি ক্লিনার এইচটিএমএল তৈরি করতে পারেন, তবে আপনি ক্লাসিক এএসপি দিয়ে পারেন। "আপনার ভিউ এর ভিতরে খুব বেশি কোড থাকলে আপনি সঠিকভাবে প্রোগ্রামিং করছেন না" বলার মতো "যদি আপনি ক্লাসিক এএসপিতে ভাল কাঠামোগত এবং মন্তব্য কোড লিখে থাকেন তবে এটি এএসপি-নেট থেকে অনেক বেশি ক্লিনার এবং ভাল"
যদি আমি কনটেন্টের সাথে মিশ্রিত কোডটিতে ফিরে যেতে চাই তবে আমি পিএইচপি ব্যবহার করে বিকাশ করব যা এই ধরণের বিকাশের জন্য আরও বেশি পরিপক্ক পরিবেশ রয়েছে। যদি এএসপি.এনইটি নিয়ে এত সমস্যা থাকে তবে সেগুলি কেন সমাধান করবেন না?
সর্বশেষে তবে অন্তত নতুন রেজার ইঞ্জিনটির অর্থ এইচটিএমএল এবং কোডের মধ্যে পার্থক্য করা এমনকি আরও শক্ত। কমপক্ষে আমরা এএসপিতে ট্যাগগুলি খোলার এবং বন্ধ করার সন্ধান করতে পারি তবে এখন কেবলমাত্র ইঙ্গিতটি হবে @ প্রতীক।
পিএইচপি-তে স্থানান্তরিত হয়ে আবার কেউ আবার বিষয়বস্তু থেকে কোড আলাদা করার জন্য আরও 10 বছর অপেক্ষা করতে পারে।
যদি আপনি অন্যান্য বিকাশকারীদের সাথে যেমন পিএইচপি বা জেএসপি (এবং আমি রেলগুলি অনুমান করছি) এর সাথে কাজ করছেন - আপনি পৃষ্ঠাগুলিতে রূপান্তর বা সহযোগিতা করার জন্য আরও অনেক সহজ সময় কাটাচ্ছেন কারণ আপনার এই সমস্ত 'দুষ্ট' এএসপি.নেট নেই ইভেন্ট এবং নিয়ন্ত্রণ সর্বত্র।
এমভিসির সমস্যাটি হ'ল এমনকি "বিশেষজ্ঞদের" জন্য এটি অনেক মূল্যবান সময় খায় এবং প্রচুর পরিশ্রম প্রয়োজন requires ব্যবসায়গুলি এর পিছনে প্রযুক্তি নির্বিশেষে "কুইক সলিউশন যা কাজ করে" প্রাথমিক জিনিস দ্বারা পরিচালিত হয়। ওয়েব ফোরামগুলি একটি আরএডি প্রযুক্তি যা সময় এবং অর্থ সাশ্রয় করে। যে কোনও জিনিসের জন্য আরও বেশি সময় প্রয়োজন তা ব্যবসায় দ্বারা গ্রহণযোগ্য নয়।
আমার পক্ষে সবচেয়ে বড় একক সুবিধা হ'ল আপনার মডেল, ভিউ এবং কন্ট্রোলার স্তরগুলির মধ্যে স্পষ্ট-কাট বিচ্ছেদ। এটি শুরু থেকেই ভাল ডিজাইনের প্রচার করতে সহায়তা করে।
আমি এএসপি.নেটের চেয়ে এমভিসিতে কোনও সুবিধা দেখিনি। 10 বছর আগে এমভিসির উত্তর হিসাবে মাইক্রোসফ্ট ইউআইপি (ইউজার ইন্টারফেস প্রক্রিয়া) নিয়ে আসে। এটি একটি ফ্লপ ছিল। আমরা তখন ইউআইপি সহ একটি বিশাল প্রকল্প (4 বিকাশকারী, 2 ডিজাইনার, 1 পরীক্ষক) করেছি এবং এটি ছিল এক নিদারুণ দুঃস্বপ্ন।
হাইপ খাওয়ার জন্য কেবল ব্যান্ডওয়াগনে ঝাঁপ দাও না। উপরে তালিকাভুক্ত সমস্ত সুযোগ-সুবিধা ইতিমধ্যে Asp.Net এ উপলব্ধ (আরও দুর্দান্ত টুইট সহ [ এসপি.নেট 4-এ নতুন বৈশিষ্ট্য ] Asp.Net 4 এ)।
যদি আপনার বিকাশ দল বা অ্যাস্প নেট এর সাথে একক বিকাশকারী পরিবারগুলি কেবল এটির সাথে লেগে থাকে এবং আপনার ক্লায়েন্টদের সন্তুষ্ট করার জন্য দ্রুত সুন্দর পণ্যগুলি তৈরি করে (যারা আপনার কাজের সময়গুলির জন্য অর্থ প্রদান করে)। এমভিসি আপনার মূল্যবান সময় ব্যয় করবে এবং Asp.Net :-) হিসাবে একই ফলাফল তৈরি করবে
ফ্রান্সিস শানাহান,
আপনি কেন আংশিক পোস্টব্যাককে "বাজে কথা" বলছেন? এটি আজাক্সের মূল বৈশিষ্ট্য এবং এটি টেলিকের মতো অ্যাটলাস ফ্রেমওয়ার্ক এবং দুর্দান্ত তৃতীয় পক্ষের নিয়ন্ত্রণগুলিতে খুব ভালভাবে ব্যবহার করা হয়েছে
আমি ভিউস্টেট সম্পর্কিত আপনার বক্তব্য সম্মত। তবে যদি বিকাশকারীরা ভিউস্টেটটি অক্ষম করতে সাবধান হন, এটি HTML এর আকারকে হ্রাস করতে পারে যা এইভাবে রেন্ডার করা হয় যাতে পৃষ্ঠাটি হালকা ওজনে পরিণত হয়।
কেবলমাত্র এইচটিএমএল সার্ভার নিয়ন্ত্রণগুলি এএসপি.নেট ওয়েব ফর্ম মডেলে নতুন নামকরণ করা হয়েছে এবং খাঁটি এইচটিএমএল নিয়ন্ত্রণ নয়। যা-ই হোক না কেন, নামকরণ করা হলে আপনি এতটা চিন্তিত কেন? আমি জানি আপনি ক্লায়েন্ট পক্ষের অনেকগুলি জাভাস্ক্রিপ্ট ইভেন্টগুলি মোকাবেলা করতে চান তবে আপনি যদি আপনার ওয়েব পৃষ্ঠাগুলি স্মার্টভাবে ডিজাইন করেন তবে আপনি অবশ্যই চান এমন সমস্ত আইডি পেতে পারেন
এমনকি এএসপি.এনইটি ওয়েব ফর্মগুলি এক্সএইচটিএমএল স্ট্যান্ডার্ডগুলির সাথে মিলিত হয় এবং আমি কোনও প্রস্ফুটিত দেখতে পাই না। আমাদের এমভিসি প্যাটার্ন কেন দরকার তা এটি সমর্থনযোগ্য নয়
আবার, আপনি কেন এক্সএক্স জাভাস্ক্রিপ্ট নিয়ে বিরক্ত? কেন এটা আপনাকে ব্যাথা দেয়? এটি আবার একটি বৈধ সমর্থনযোগ্যতা নয়
এখনও অবধি, আমি ক্লাসিক এএসপি.নেট ওয়েব ফর্মগুলি ব্যবহার করে অ্যাপ্লিকেশনগুলি বিকাশের ভক্ত। উদাহরণস্বরূপ: আপনি যদি একটি ড্রপডাউনলিস্ট বা গ্রিডভিউ বাঁধতে চান তবে আপনার সর্বোচ্চ 30 মিনিটের প্রয়োজন হবে এবং 20 লাইন কোডের বেশি নয় (অবশ্যই ন্যূনতম)। তবে এমভিসির ক্ষেত্রে ডেভেলপারদের সাথে কথা বলুন এটি কতটা বেদনাযুক্ত।
এমভিসির সবচেয়ে বড় অবক্ষয় হ'ল আমরা এএসপির দিনগুলিতে ফিরে যাচ্ছি। সার্ভার কোড এবং এইচটিএমএল মিশ্রণের স্প্যাগটি কোডটি মনে আছে ??? ওহে আল্লাহ, জাভাস্ক্রিপ্ট, এইচটিএমএল, জকিউয়ারি, সিএসএস, সার্ভার ট্যাগগুলির সাথে মিশ্রিত একটি এমভিসি এসপেক্স পৃষ্ঠাটি পড়ার চেষ্টা করুন এবং কী নয় .... কোনও শরীর এই প্রশ্নের উত্তর দিতে পারে?
ওয়েব ফর্মগুলি বৃহত্তর পরিপক্কতা থেকে এবং তেলিকের মতো তৃতীয় পক্ষের নিয়ন্ত্রণ সরবরাহকারীদের সমর্থন থেকেও লাভ করে।
ওয়েবফর্মগুলিতে আপনি ভিউস্টেট, ইভেন্ট বৈধকরণ এবং অনুরূপ কয়েকটি ট্যাগ বাদে প্রায় পুরো এইচটিএমএল হাতের দ্বারা রেন্ডার করতে পারেন, যা পেজএডাপ্টার দিয়ে মুছে ফেলা যায়। আপনাকে গ্রিডভিউ বা অন্য কোনও সার্ভার সাইড কন্ট্রোল ব্যবহার করতে বাধ্য করবে না যার খারাপ এইচটিএমএল রেন্ডারিং আউটপুট রয়েছে।
আমি বলব যে এমভিসির সবচেয়ে বড় সুবিধাটি স্পিড!
এরপরে উদ্বেগকে আলাদা করতে বাধ্য করা হয়। তবে এটি আপনাকে নিয়ন্ত্রণকারী / অ্যাকশনের ভিতরে পুরো বিএল এবং ডএল যুক্তি রাখতে নিষেধ করে না! এটি কেবল দেখার পৃথকীকরণ, যা ওয়েবফোর্মেও করা যেতে পারে (উদাহরণস্বরূপ এমভিপি প্যাটার্ন)। লোকেরা mvc এর জন্য উল্লেখ করা অনেকগুলি বিষয় ওয়েবফোমে করা যেতে পারে তবে কিছু অতিরিক্ত প্রচেষ্টা নিয়ে।
মূল পার্থক্য হ'ল অনুরোধটি নিয়ন্ত্রণকারীর কাছে আসে, দেখার জন্য নয় এবং এই দুটি স্তর পৃথক করা হয়েছে, ওয়েবফর্মগুলির মতো আংশিক শ্রেণীর মাধ্যমে সংযুক্ত নয় (পিছনে এসপেক্স + কোড)
আমার 2 সেন্ট:
এমভিসি আপনাকে একটি পৃষ্ঠায় একাধিক ফর্ম রাখতে দেয়, একটি ছোট বৈশিষ্ট্য যা আমি জানি তবে এটি কার্যকর!
এছাড়াও এমভিসি প্যাটার্নটি আমি মনে করি কোড বজায় রাখা আরও সহজ করে তোলে, esp। যখন আপনি কয়েক মাস পরে এটি পুনর্বিবেচনা করছেন।
runat="server"
যখন আপনি ওয়েবফর্মগুলি ব্যবহার করতে চান তখন কোনও ফর্ম ট্যাগে খুব বেশি ব্যবহার হয় না , এবং যেহেতু আপনি বাসা বাঁধতে পারবেন না / করতে পারেন না, তাই আমি মনে করি এটি তার স্পষ্টতই স্পষ্টভাবে বোঝায় :)
এমভিসি নিয়ন্ত্রক:
[HttpGet]
public ActionResult DetailList(ImportDetailSearchModel model)
{
Data.ImportDataAccess ida = new Data.ImportDataAccess();
List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);
return PartialView("ImportSummaryDetailPartial", data);
}
এমভিসি দেখুন:
<table class="sortable">
<thead>
<tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
@foreach (Data.ImportDetailData detail in Model)
{
<tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
}
</tbody></table>
কত কঠিন? ভিউস্টেট নেই, বিএস পৃষ্ঠার জীবনচক্র নেই ... খাঁটি কার্যকর কোড।
ছোট সাইটগুলির জন্য কেবলমাত্র দুটি সুবিধা আমি দেখতে পাচ্ছি: 6) বিশ্রামের url যা এসইওকে সক্ষম করে en )) কোনও ভিউস্টেট এবং পোস্টব্যাক ইভেন্ট নেই (এবং সাধারণভাবে আরও বেশি পারফরম্যান্স)
ছোট সাইটগুলির জন্য পরীক্ষা করা কোনও সমস্যা নয়, যে কোনও উপায়ে কোনও সাইটকে সঠিকভাবে কোডিং করা হলে ডিজাইনের সুবিধাগুলিও নয়, এমভিসি বিভিন্ন উপায়ে অপ্রস্তুত হয় এবং পরিবর্তনগুলি আরও শক্ত করে তোলে। এই সুবিধাগুলি উপযুক্ত কিনা তা আমি এখনও সিদ্ধান্ত নিচ্ছি।
আমি বৃহত্তর মাল্টি-ডেভেলপার সাইটগুলিতে এমভিসির সুবিধাটি পরিষ্কারভাবে দেখতে পাচ্ছি।
আমি যে প্রধান সুবিধাটি পেয়েছি তা হ'ল এটি প্রকল্পটিকে আরও পরীক্ষামূলক স্ট্রোকউচারে বাধ্য করে। এটি বেশ সহজেই ওয়েবফর্মগুলি (এমভিপি প্যাটার্ন) দিয়েও করা যেতে পারে তবে এটি বিকাশকারীকে এটি বোঝার প্রয়োজন, অনেকেই না।
ওয়েবফর্ম এবং এমভিসি উভয়ই কার্যকর সরঞ্জাম, উভয়ই বিভিন্ন ক্ষেত্রে এক্সেল।
আমরা ব্যক্তিগতভাবে ওয়েব ফর্মগুলি ব্যবহার করি কারণ আমরা প্রাথমিকভাবে বি 2 বি / এলওবি অ্যাপ্লিকেশন বিকাশ করি। তবে আমরা সর্বদা এমভিপি প্যাটার্ন সহ এটি করি যা আমরা আমাদের ইউনিট পরীক্ষার জন্য 95 +% কোড কভারেজ অর্জন করতে পারি। এটি আমাদের ওয়েবকন্ট্রোলগুলির বৈশিষ্ট্যগুলির বৈশিষ্ট্যগুলির পরীক্ষার স্বয়ংক্রিয় করতে অনুমতি দেয় যেমন দর্শন উদাহরণের মাধ্যমে প্রকাশ করা হয়
bool IMyView.IsAdminSectionVisible{
get{return pnlAdmin.Visible;}
get{pnlAdmin.Visible=value;}
}
) আমি মনে করি না যে এই মডেলটিকে কলুষিত না করে এই স্তরটির পরীক্ষা এমভিসিতে খুব সহজেই করা যায়।
আপনি আর 'পোস্ট-ব্যাক নিয়ন্ত্রণগুলি' ব্যবহার করে খারাপ ব্যবহার করবেন না - এবং কীভাবে এগুলিকে একটি aspতিহ্যবাহী এসপি নেট পরিবেশে ছড়িয়ে দেবেন তা নির্ধারণ করে।
এর অর্থ এই যে আধুনিক (ব্যবহার বিনামূল্যে) জাভাস্ক্রিপ্ট নিয়ন্ত্রণগুলি যেমন এই বা এই বা এই সব যে একটি বর্গক্ষেত্র গহ্বর মনে একটি বৃত্তাকার গোঁজ মাপসই চেষ্টা ছাড়া ব্যবহার করা যাবে।
আধুনিক জাভাস্ক্রিপ্ট নিয়ন্ত্রণের পাশাপাশি জেএসওন অনুরোধগুলি এমভিসি ব্যবহার করে খুব সহজেই পরিচালনা করা যায়। একটি ক্রিয়া থেকে অন্য ক্রিয়ায় ডেটা পোস্ট করতে আমরা প্রচুর অন্যান্য প্রক্রিয়া ব্যবহার করতে পারি। এজন্য আমরা ওয়েব ফর্মের চেয়ে এমভিসি পছন্দ করি। এছাড়াও আমরা হালকা ওজনের পৃষ্ঠা তৈরি করতে পারি।
আমার ব্যক্তিগত মতামত ASP.Net MVC ব্যবহার করে যে, সবচেয়ে বড় বিচ্ছিন্ন সুবিধা যে CODE BLOCKS
মিশ্র সঙ্গে HTML
...
ডেভেলপারদের যারা বজায় রাখা জন্য HTML জাহান্নাম ...