এএসপি.নেটে 3-টিয়ার আর্কিটেকচার এবং এমভিসি (মডেল, দেখুন কন্ট্রোলার) এর মধ্যে পার্থক্য


9

আমি এএসপি.নেটের এমভিসি (মডেল, ভিউ কন্ট্রোলার) থেকে 3-স্তরের আর্কিটেকচারটি কীভাবে আলাদা তা জানতে আগ্রহী হচ্ছি কারণ আমার কাছে মনে হয় একই আর্কিটেকচারটি প্রযোজ্য।

3-স্তর আমরা আছে User Services Layer, BusinessLayerএবং DataAccessLayerঅন্যদিকে আমরা আছে উপর Model, Viewএবং Controller। এটি আমার কাছে একই স্থাপত্য বলে মনে হচ্ছে

দুটি আর্কিটেকচারের মধ্যে আসলে কী আলাদা হয় তা কি কেউ ব্যাখ্যা করতে পারেন, প্রতিটি স্তর কীভাবে একে অপরের সাথে আলাদা?



2
এমভিসি আরও একটি ইউআই আর্কিটেকচার হিসাবে দেখা যেতে পারে। অন্যান্য উদাহরণ উদাহরণস্বরূপ কৌণিক হয়। আপনি যখন কোনও এএসপি নেটওয়ান এমভিসি প্রকল্পে 3 স্তরের আর্কিটেকচার বাস্তবায়ন করেন তখন এটি এমভিসিতে মডেল (এম) কে 3 স্তরে ভাগ করে দেবে।
ডিভ্রিক


@ জাগ্রত আমি দেখছি, আমি সেই পুরনোটিকে আগে দেখিনি .. তবে আপনি যেমন বলেছিলেন ঠিক তেমন দুগ্ধের মতো, পুরানো ব্যক্তির একমাত্র উত্তরটি ভালভাবে ব্যাখ্যা করা হয়নি, আপনি কী ভাবেন? :)
জাপজডিভিনো

উত্তর:


18

এটি একটি আপেল এবং একটি আপেল কোরের মধ্যে পার্থক্য কী তা জিজ্ঞাসার মতো। এই দুটি স্থাপত্য একে অপরের জন্য প্রতিস্থাপন নয়। আমি মনে করি আরও সঠিক দৃষ্টিভঙ্গি হ'ল ত্রি -স্তরের আর্কিটেকচার এমভিসি বৃদ্ধি করে

এমভিসি আর্কিটেকচার

  • মডেল: এগুলি আপনার অ্যাপ্লিকেশনটিতে "স্টাফ" উপস্থাপন করে। সাম্প্রতিক বছরগুলিতে এই স্তরটি কিছুটা অস্পষ্ট হয়ে গেছে, যা আমি পরে ব্যাখ্যা করব।

  • দর্শন: ব্যবহারকারী ইন্টারফেস। ব্যবহারকারী যে জিনিসটির সাথে ইন্টারঅ্যাক্ট করে।

  • কন্ট্রোলার: প্রোগ্রামিং কোড যা ব্যবহারকারী এবং মডেল স্তরের পরিবর্তনগুলিতে সাড়া দেয়

3-স্তরের আর্কিটেকচার

3-স্তরের আর্কিটেকচারের সাথে আপনার বিভিন্ন স্তরের বিভিন্ন স্তর রয়েছে।

  • ব্যবহারকারী পরিষেবাগুলি: (বা সাধারণভাবে "পরিষেবাগুলি") এই স্তরটি "মডেল" স্তরটির পুনরুদ্ধার এবং পরিবর্তনগুলি সমন্বয় করার বিষয়ে আরও বেশি। জটিল, বহু-পদক্ষেপের ক্রিয়াগুলি এখানে সম্পাদিত হয়

  • ব্যবসায়ের স্তর: এটি প্রোগ্রামিং কোডে প্রবিষ্ট ব্যবসায়ের বিধিগুলি উপস্থাপন করে। "ব্যবসায়" যা চায় তা এই স্তরে প্রয়োগ করা হয়।

  • ডেটা অ্যাক্সেস লেয়ার: একটানা ডেটা স্টোর অ্যাক্সেসের জন্য দায়ী এক বা একাধিক ক্লাস।

এমভিসির সাথে ছেদ করা 3-স্তরের আর্কিটেকচারের একমাত্র অংশ হ'ল "বিজনেস লেয়ার"। এমভিসির "মডেলগুলি" এবং ত্রি-স্তরের আর্কিটেকচারের "বিজনেস লেয়ার" একই লক্ষ্য অর্জনের চেষ্টা করছে।

এমভিসিতে "এম" অস্পষ্ট হয়ে গেছে

এমভিসির "মডেল" স্তরটি সাম্প্রতিক বছরগুলিতে প্রসারিত হয়েছে। আমি যা দেখেছি, সেখান থেকে দুটি, সম্ভবত তিন ধরণের মডেল রয়েছে:

  1. ডোমেন মডেল: এগুলি "দ্য বিজনেস" যত্নশীল - বিজনেস ডোমেনের জন্য "জিনিসগুলি" উপস্থাপন করে। এই ক্লাসগুলিতে ব্যবসায়ের নিয়ম প্রয়োগের জন্য ডেটা এবং সমস্ত পদ্ধতি যা এই ডেটাতে পরিচালনা করে থাকে। প্রায়শই ডোমেন মডেলগুলি একটি ডাটাবেসে টেবিলের সাথে আবদ্ধ থাকে। এটি 3-স্তরের আর্কিটেকচারের "বিজনেস স্তর" ফিট করে বলে মনে হচ্ছে।

  2. মডেলগুলি দেখুন: এই ক্লাসগুলি ডোমেন মডেলগুলির থেকে ডেটা ম্যাসেজ করার জন্য দর্শনকে আরও প্রসারণযোগ্য কিছুতে ব্যবহৃত হয়। এটি 3-স্তরের আর্কিটেকচারের কোথাও ফিট হয় না কারণ ভিউ মডেলগুলি ব্যবসায়িক যুক্তি প্রয়োগ করে না, বা তারা কোনও ধরণের পরিষেবা বা ডেটা অ্যাক্সেস সরবরাহ করে না।

  3. ব্যবসায়িক মডেল: জটিল অ্যাপ্লিকেশনগুলিতে, ব্যবসায় যুক্তি থেকে ডোমেন মডেলটিকে ডিকুয়াল করার প্রয়োজনীয়তা দেখা দেয়। ব্যবসায়িক মডেলগুলিতে ব্যবসায়ের নিয়মগুলি প্রয়োগ করার জন্য সেই ডেটাতে পরিচালিত ডেটা এবং পদ্ধতিগুলি থাকে এবং ডোমেন মডেলগুলি "সম্পত্তি ব্যাগ" - এর জন্য অবিরত হয় - এমন বস্তু যা কেবল ডেটা ধারণ করে তবে কোনও আচরণ থাকে না। ডোমেন মডেলগুলি ডেটাবেস এবং অ্যাপ্লিকেশনগুলির মধ্যে ডেটা স্থানান্তর অবজেক্টের অন্য রূপে পরিণত হয়।

এমভিসিতে কোথাও ডেটা অ্যাক্সেসের উল্লেখ নেই। কিছু ক্ষেত্রে, আপনি দেখতে পাবেন যে ডেটা অ্যাক্সেস এমভিসির "মডেল" স্তরের অন্তর্গত, যা আমরা দেখেছি যে এখন আর পরিষ্কার কাট স্তর নয়। সত্যিই আমি দেখতে পাচ্ছি একটি সম্পূর্ণ অ্যাপ্লিকেশন তৈরি করতে এমভিসির সাথে 3-স্তরের আর্কিটেকচার যুক্ত করা হচ্ছে । একটি অপরটির বৃদ্ধি বা উন্নতি করে:

  • মডেল
    • ডোমেন মডেল (এমভিসি / 3-স্তর)
    • মডেলগুলি দেখুন (এমভিসি)
    • (allyচ্ছিকভাবে) ব্যবসায়িক মডেল (এমভিসি / 3-স্তর)
  • দর্শন (এমভিসি)
  • নিয়ন্ত্রক (এমভিসি)
  • ডেটা অ্যাক্সেস (3-স্তর)
  • পরিষেবাদি (3-স্তর)

কিছু ছেদ রয়েছে, তবে সেগুলি বেশিরভাগভাবে পৃথক এবং একত্রে বৃহত্তর সিস্টেমের বিভিন্ন উপাদানগুলি ডিকোপল এবং বিচ্ছিন্ন করতে ব্যবহৃত হয়।


3

না, তারা এক নয়।

এমভিসি ব্যবহারকারী ইন্টারফেস কোড গঠনের জন্য একটি নকশার প্যাটার্ন। এটি একটি ত্রি-স্তরের আর্কিটেকচারে ব্যবহার করা যেতে পারে, সেই ক্ষেত্রে প্যাটার্নটি ব্যবহারকারী পরিষেবাগুলির স্তরের অন্তর্ভুক্ত। তবে এটি ইউআই এর জন্য এমন অ্যাপ্লিকেশনগুলিতেও ব্যবহার করা যেতে পারে যা ত্রি-স্তরের নয় - যেমন কোনও ক্যালকুলেটর যার অন্তর্নিহিত অধ্যবসায় নেই, এবং তাই কোনও ডেটা অ্যাক্সেস স্তর নেই।

একটি এমভিসি ফ্রন্টএন্ডের একটি ত্রি-স্তরের আর্কিটেকচারে, মডেল হিসাবে ব্যবহৃত ডোমেন অবজেক্টগুলি ব্যবসায়ের স্তর থেকে আসা বস্তু হতে পারে, তবে এমভিসি প্যাটার্নটি মডেলটি কী ধরণের অবজেক্টের তা নির্দিষ্টভাবে নির্দিষ্ট করে না, কেবল প্যাটার্নে তাদের ভূমিকা কী? হয়। উদাহরণস্বরূপ, এমভিভিএম ভেরিয়েন্টে মডেলগুলি হ'ল ডোমেন অবজেক্টের শীর্ষে ইউআই-স্পেসিফিক অ্যাডাপ্টার। এই ক্ষেত্রে এমনকি মডেলটি ব্যবহারকারী পরিষেবা স্তরের অন্তর্গত।


সবার আগে, এমভিসি হ'ল একটি আর্কিটেকচারাল প্যাটার্ন বিকাশকারী.মোজিলা.আর.ইন.ইউএস / অ্যাপস / ফান্ডামেন্টালস_… । দ্বিতীয়ত, এটি কেবলমাত্র ইউআইয়ের পক্ষে নয়, এটি ইউআইতে ব্যাপকভাবে ব্যবহৃত হয়, তবে আপনার খুব নির্বিচার বক্তব্যটি ভুল এবং বিভ্রান্তিকর।
ড্যানিয়েল দুবভস্কি

2

আমি জানি যে এখানে প্রচুর উত্তর আসবে, তবে আমি আপনাকে এ সম্পর্কে আমার মতামত দেব।

এটি সফটওয়্যার ইঞ্জিনিয়ারিংয়ের সবচেয়ে বিখ্যাত উত্তর "এটি নির্ভর করে"।

মূলত যদি আপনি এটি দেখুন, বিভিন্ন বাস্তবায়ন এবং তাত্ত্বিক পার্থক্য ছাড়াও এটি একই ধরণের প্রবাহের সাথে খুব মিল।

যেখানে এটি নির্ভর করে আপনি যে অ্যাপ্লিকেশনটি তৈরি করছেন তা হ'ল একটি সাধারণ ওয়েব অ্যাপ্লিকেশনটিতে কেবলমাত্র একটি এমভিসি স্তর থাকতে পারে একটি ডিআরএমের সাথে একটি ওআরএমের মাধ্যমে কথা বলা। আরও জটিল একটিতে এমভিসি থাকতে পারে ইউজার লেয়ারের ফ্রন্ট-এন্ড পরিচালনা করে, বিএল স্তরটিতে আরও জটিল অ-ব্যবহারকারী এক্সপ্রেস অপারেশনগুলি ঘটায় এবং একাধিক উত্সের সমন্বয়ে ডেটা স্তর থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.