ব্যবহারকারী ভিউয়ের সাথে ইন্টারঅ্যাক্ট করে তবে ভিউটি অবশ্যই কন্ট্রোলারের সাথে ক্রিয়াগুলি যোগাযোগ করে । নিয়ন্ত্রক আপডেট করতে পারে মডেল , কিন্তু এটা যে / কোন পরিবর্তনের সঙ্গে প্রয়োজন হয় না।
আমি যে বিবরণ দিচ্ছি তা এমভিসির .NET প্রয়োগের সাথে আমার ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে। আপনার বাস্তবায়ন আলাদা হতে পারে।
নিয়ন্ত্রক যেখানে কর্ম প্রসেস করা হয়, মূলত একটি ব্যবসার লেয়ার। সাধারণ কন্ট্রোলারটি ভিউতে ফিড দেওয়ার জন্য মডেল থেকে ডেটা পাওয়ার বাইরে আর কিছুই করবে না। একটি জটিল কন্ট্রোলার সুরক্ষা ব্যবস্থাপনার, প্রমাণীকরণ, অনুমোদন, নিবন্ধকরণ এবং সম্ভবত অন্যান্য অনেকগুলি কাজ পর্যন্ত সমস্ত ধরণের ক্রিয়া সম্পাদন করবে।
দেখুন শুধুমাত্র একটি ফ্যাশন ব্যবহারকারী বুঝতে পারেন তথ্য প্রদর্শন করার জন্য দায়ী হতে হবে। কন্ট্রোলার এবং মডেল উভয়ের সাথেই এখানে কিছু ক্রসও হতে পারে কারণ একক পৃষ্ঠা অ্যাপ্লিকেশনগুলির (এসপিএ) ব্যবহারকারীর জন্য ডেটা বৈধতা প্রতিক্রিয়া থাকবে। অন্য যে কোনও ক্রস ওভারগুলিকে ভারী করে তোলা হয়েছে।
মডেল ডেটা নিয়ে কাজ করে। এর মধ্যে ডেটার বৈধতা (যেখানে প্রযোজ্য) অন্তর্ভুক্ত। ডেটা স্টোরেজ এবং পুনরুদ্ধারও এই স্তরটিতে পরিচালিত হয়।
হালনাগাদ
কে কখন কি করবে কে ঘিরে কিছু বিভ্রান্তি আছে বলে মনে হচ্ছে। আমি এমভিসি আর্কিটেকচারের দুটি পৃথক ওভারভিউ অন্তর্ভুক্ত করেছি কারণ সেগুলি একই রকম, তবে একই নয়। উভয় ব্যাখ্যার জন্য জায়গা আছে। সম্ভবত আরও অনেক। উপরোক্ত বিবরণগুলি এই পদ্ধতিটি ব্যবহার করে আমার নিজের অভিজ্ঞতা বিল্ডিং অ্যাপ্লিকেশন সহ একাধিক উত্স থেকে আমার এমভিসি সম্পর্কে ব্যাখ্যা। আশা করি, এই আপডেটটি এই বিভ্রান্তির কিছুটা পরিস্কার করতে সহায়তা করবে।
এমভিসি হ'ল সফটওয়্যার বিকাশের জন্য কনসার্নস ডিজাইন প্যাটার্নের পৃথকীকরণ গড়ে তোলার একটি প্রচেষ্টা । এটি প্রাথমিকভাবে ওয়েব ভিত্তিক অ্যাপ্লিকেশনগুলিতে প্রয়োগ করা হয়েছে (আমার জ্ঞানের কাছে)।
দেখুন ব্যবহারকারীর কোনো ভূমিকা সব পরিচালনা করে। যদি আপনার ব্যবহারকারী কোনও বোতামে ক্লিক করে থাকে, ক্লিকটি কোনও ব্যবহারকারী ইন্টারফেস ইন্টারঅ্যাকশন বা এটির উদ্বেগের বাইরে যে কোনও কিছু কিনা তা একটি নিয়ন্ত্রণ (নিয়ন্ত্রণকারী ইন্টারঅ্যাকশন) কিনা তা ভিউ নির্ধারণ করে। যদি বোতামটি এক ক্ষেত্র থেকে অন্য ক্ষেত্রের অনুলিপি মানগুলির মতো কিছু করে, আপনার বাস্তবায়ন নির্ধারণ করবে এটি কিনা দেখার উদ্বেগ বা নিয়ামক উদ্বেগ। সিঙ্গল পেজ অ্যাপ্লিকেশন (এসপিএ) এর সাথে ডিল করার সময় আপনার কেবল উদ্বেগের ঝাপসা খুব সম্ভবত থাকবে।
নিয়ন্ত্রক যেখানে আপনার কর্মের প্রসেস করা হয় হয়। ভিউ ব্যবহারকারীকে কিছু ক্ষেত্রের মান পরিবর্তন করার সিদ্ধান্ত নিয়েছে। কন্ট্রোলার সেই ডেটাতে বৈধতা প্রয়োগ করতে পারে বা এটি মডেল দ্বারা পরিচালিত হতে পারে। আবার এটি বাস্তবায়ন নির্ভর। যদি কন্ট্রোলারের সুরক্ষা বৈশিষ্ট্য থাকে তবে এটি নির্ধারণ করতে পারে যে ক্রিয়াটি সম্পাদনের জন্য ব্যবহারকারীর পর্যাপ্ত অধিকার নেই। এটি পরিবর্তনগুলি প্রত্যাখ্যান করবে এবং সেই অনুযায়ী ভিউ আপডেট করবে। কন্ট্রোলার মডেল থেকে কী ডেটা পুনরুদ্ধার করবেন, কীভাবে এটি প্যাকেজ করবেন, এবং সেই ডেটা দিয়ে ভিউ আপডেট করুন determin
মডেল নির্ধারণ করে কিভাবে এবং কোথায় ডেটা জমা করতে। এটি সংরক্ষণ করার আগে সেই ডেটাটির বৈধতাও সম্পাদন করতে পারে (এটি এটি করা উচিত কারণ লোকেরা উপলক্ষে ভিউকে বাইপাস করবে)।
উইকিপিডিয়ায় এমভিসি সম্পর্কিত একটি নিবন্ধ রয়েছে ।
- কোনও মডেল তার যুক্ত দৃষ্টিভঙ্গি / দৃষ্টিভঙ্গি এবং নিয়ন্ত্রককে তার রাজ্যে পরিবর্তন আসে যখন তা অবহিত করে। এই বিজ্ঞপ্তি দর্শনগুলিকে তাদের উপস্থাপনা আপডেট করার এবং কন্ট্রোলারগুলিকে উপলভ্য কমান্ডের সেটটি পরিবর্তন করার অনুমতি দেয়। কিছু ক্ষেত্রে একটি এমভিসি বাস্তবায়ন পরিবর্তে "প্যাসিভ" হতে পারে যাতে অন্যান্য উপাদানগুলিকে অবহিত করার পরিবর্তে আপডেটগুলির জন্য মডেলটি পোল করতে হবে।
- একটি দৃশ্য নিয়ামক সব তথ্য এটি ব্যবহারকারীকে একটি আউটপুট প্রতিনিধিত্ব জেনারেট করার জন্য দরকার দ্বারা বলা হয়। এটি ব্যবহারকারী ইনপুটটির নিয়ামককে জানাতে জেনেরিক ব্যবস্থাও সরবরাহ করতে পারে।
- একজন নিয়ামক মডেলটির অবস্থা আপডেট করার জন্য মডেলকে আদেশগুলি পাঠাতে পারে (উদাহরণস্বরূপ, একটি দস্তাবেজ সম্পাদনা)। এটি মডেলটির দর্শন উপস্থাপনা (যেমন, কোনও দস্তাবেজের মাধ্যমে স্ক্রোল করে) পরিবর্তন করতে তার সম্পর্কিত দৃশ্যে কমান্ডগুলি প্রেরণ করতে পারে।
মাইক্রোসফ্টের এমভিসির ওভারভিউ থেকে ।
মডেল। মডেল অবজেক্টস অ্যাপ্লিকেশনটির সেই অংশ যা অ্যাপ্লিকেশনটির ডেটা ডোমেনের জন্য যুক্তি প্রয়োগ করে। প্রায়শই, মডেল অবজেক্টগুলি একটি ডাটাবেসে মডেল স্টেট পুনরুদ্ধার করে এবং সঞ্চয় করে। উদাহরণস্বরূপ, কোনও পণ্য অবজেক্ট কোনও ডাটাবেস থেকে তথ্য পুনরুদ্ধার করতে পারে, এতে কাজ করতে পারে এবং তারপরে আপডেট হওয়া তথ্যটি এসকিউএল সার্ভার ডাটাবেসে কোনও পণ্য টেবিলে ফিরে লিখতে পারে।
ছোট অ্যাপ্লিকেশনগুলিতে, মডেলটি প্রায়শই কোনও শারীরিক পরিবর্তে ধারণাগত পৃথক হয়। উদাহরণস্বরূপ, যদি অ্যাপ্লিকেশনটিতে কেবল একটি ডেটাसेट পড়ে এবং ভিউতে প্রেরণ করা হয় তবে অ্যাপ্লিকেশনটির কোনও শারীরিক মডেল স্তর এবং সম্পর্কিত ক্লাস নেই। সেক্ষেত্রে ডেটাসেট একটি মডেল অবজেক্টের ভূমিকা গ্রহণ করে।
দেখাগুলি। দর্শনগুলি এমন উপাদান যা অ্যাপ্লিকেশনটির ইউজার ইন্টারফেস (ইউআই) প্রদর্শন করে। সাধারণত, এই ইউআইটি মডেল ডেটা থেকে তৈরি করা হয়েছে। উদাহরণ হ'ল এমন কোনও পণ্য সারণীর সম্পাদনা দৃশ্য যা পাঠ্য বাক্স, ড্রপ-ডাউন তালিকাগুলি এবং কোনও পণ্য সামগ্রীর বর্তমান অবস্থার উপর ভিত্তি করে চেক বাক্সগুলি প্রদর্শন করে।
কন্ট্রোলার। কন্ট্রোলাররা এমন উপাদান যা ব্যবহারকারীর ইন্টারঅ্যাকশন পরিচালনা করে, মডেলটির সাথে কাজ করে এবং শেষ পর্যন্ত ইউআই প্রদর্শন করে এমন একটি ভিউ নির্বাচন করে। একটি এমভিসি অ্যাপ্লিকেশনটিতে, ভিউ কেবল তথ্য প্রদর্শন করে; নিয়ামক পরিচালনা করে এবং ব্যবহারকারী ইনপুট এবং মিথস্ক্রিয়াটিকে প্রতিক্রিয়া জানায়। উদাহরণস্বরূপ, কন্ট্রোলার ক্যোয়ারী-স্ট্রিং মানগুলি পরিচালনা করে এবং এই মানগুলিকে মডেলটিতে স্থান দেয় যা ফলস্বরূপ ডাটাবেসকে জিজ্ঞাসা করতে এই মানগুলি ব্যবহার করতে পারে।