আমার কি AngularJS এবং ASP.NET MVC উভয়ই ব্যবহার করা উচিত?


58

আমি AngularJS এবং ASP.NET MVC শিখতে শুরু করেছিলাম, তবে কেন নিশ্চিত নয় যে কেন উভয়কে একই প্রকল্পে একসাথে ব্যবহার করব?

তারা উভয়ই এমভিসি ফ্রেমওয়ার্ক নয়? আমি কি তাদের উভয় একই অ্যাপ্লিকেশন ব্যবহার করা উচিত? এটি কি না অন্য এক?

উত্তর:


74

যদি আপনি একটি একক পৃষ্ঠার অ্যাপ্লিকেশন (এসপিএ) তৈরি করে থাকেন তবে সম্ভবত আপনার এএসপি.নেট এমভিসিতে "এমভিসি" দরকার নেই । দর্শনগুলি, বিশেষত গতিশীল দর্শনগুলি সম্ভবত ক্লায়েন্ট-সাইডে সরবরাহ / ম্যানিপুলেটেড। কৌণিক হ্যান্ডেলগুলি যে ঠিক আছে।

তবে সম্ভবত আপনি 100% এসপিএ চান না। তারপর কি? পরিবর্তে 10 পৃষ্ঠা, কিন্তু 10 পৃষ্ঠাগুলি হয় কল্পনা খুবগতিশীল। কোনও ব্যবহারকারী লগইন করার পরে, ডানদিকের কোণায় একটি সামান্য ব্যবহারকারীর ব্যাজ রয়েছে। এটি গতিশীল নয়। এটি কেবল ব্যবহারকারীর "স্কোর" এবং তাদের সর্বশেষ সেলফির মতো কয়েকটি নিফটি জিনিস দেখায়। আপনি নিফটি জিনিসগুলি ক্যাশে করেন যাতে সেগুলি সহজেই পুনরুদ্ধার করা যায়। এখন, আপনি এটি দিয়ে দুটি উপায় যেতে পারেন। আপনি যদি ক্লায়েন্ট-সাইড এমভিসি পিউরিস্ট হন তবে অন্যান্য সমস্ত ডেটার মতোই আপনি প্রাথমিক এইচটিএমএল পেওলড বিতরণ করার পরে ব্যাজ ডেটা আনবেন। তবে আপনি কোনও বিশুদ্ধবাদী নন। হতে পারে আপনি একজন পিউরিস্টের বিপরীত। হতে পারে আপনি একজন ইমপ্রিস্ট। সুতরাং, প্রাথমিক এইচটিএমএল সরবরাহ করার পরিবর্তে কিছু জাভাস্ক্রিপ্ট বিতরণ করা যা আপনার সার্ভারে ফিরে পোস্ট করবে, ব্যাজ ডেটা ধরার জন্য জাভাস্ক্রিপ্টের মাধ্যমে পোস্ট করবে এবং শেষ পর্যন্ত ক্লায়েন্ট-সাইড এমভিসির মাধ্যমে সেই ডেটা ভিউতে মার্জ করে,এটি আপনার প্রাথমিক এইচটিএমএল হিসাবে। আপনার প্রাথমিক এইচটিএমএল সরবরাহ করার পরে, আপনি আপনার সাধারণ ক্লায়েন্ট-সাইড এমভিসি অ্যান্টিক্স নিয়ে এগিয়ে যান।

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

তবুও, আপনি কৌণিক কীভাবে মোতায়েন করেন তা বিবেচনা না করেই আপনার সেই প্রাথমিক এইচটিএমএল, টেমপ্লেটগুলি এবং সবচেয়ে গুরুত্বপূর্ণভাবে ডেটা সরবরাহ করার একটি উপায় প্রয়োজন। এমন প্ল্যাটফর্মটি কেন ব্যবহার করবেন না যা এটি সহজ করে? অনেকগুলি রয়েছে, তবে। নেট এমভিসি কোনও স্লুচ নয়। আমি যেমন বলেছি, আপনি প্রাথমিক এইচটিএমএল এবং বহিরাগত কৌণিক টেম্পলেটগুলি এমভিসি ক্রিয়াকলাপের ফলাফল তৈরি করতে পারেন, তবে আরও ভাল, আপনি ডেটা সরবরাহ করতে .NET এর ওয়েব এপিআই ব্যবহার করতে পারেন । ওয়েব এপিআই এপ্রিকোট কম্পোটের মতো সুস্বাদু।

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


3
আশ্চর্য প্রতিক্রিয়া। আপনার ব্যাখ্যার জন্য অনেক ধন্যবাদ +1
নাটালি

আপনি কি আমাকে বলতে পারবেন, উদাহরণস্বরূপ যদি কোনও ওয়েব এপিআই থাকে যা আমাকে ডেটা সরবরাহ করে, এবং আমি গ্রিডে এই ডেটাটি দেখাতে চাই, তবে আমি কি কৌনিক বা এমভিসি ব্যবহার করে লুপিং এবং টেম্প্লেটিং করি? আমি কীভাবে ওয়েব এপিআই পরিষেবা কল করব? আপনি প্রকল্পের শুরু থেকেই কীভাবে সিদ্ধান্ত নেবেন যে আপনি যাচ্ছেন?
নাটালি

1
@ নেটলি যদি ডেটা ওয়েব এপিআই থেকে হয়, আপনি সম্ভবত এটি ক্লায়েন্ট-সাইডে আনছেন। এর অর্থ আপনি আঙ্গুলের মধ্যে আবদ্ধ হন, নেট এমভিসি নয়। আপনি স্পষ্টভাবে লুপ করবেন না। আপনি এনজিআরপিট ব্যবহার করে আপনার গ্রিড / টেবিলের সাথে ডেটা বাঁধেন । ডেটা আনার জন্য, আপনি সম্ভবত $ http মডিউলটি ব্যবহার করবেন এবং আপনার ওয়েব এপিআই এর শেষ পয়েন্টটি কল করবেন। কোন পদ্ধতির ব্যবহার করবেন তা স্থির করার জন্য, এটাই উদ্দীপনা। কোনও কালো এবং সাদা উত্তর নেই। আপনাকে নিজের প্রবৃত্তিটি পরীক্ষা করতে হবে, মূল্যায়ন করতে হবে এবং অনুসরণ করতে হবে।
স্ক্যান্ট রজার

... সাবধানতার একটি শব্দ। আপনি যদি আগে কৌনিক বা অন্যান্য পূর্ণ-পরিষেবা জাভাস্ক্রিপ্ট কাঠামো ব্যবহার না করে থাকেন তবে আপনাকে দড়ি শিখতে বেশ কিছু কঠিন সময় ব্যয় করতে হবে। তারা অগত্যা সহজবোধ্য নয়। আমি আপনাকে আশ্বাস দিতে পারি, যদিও তারা আপনার জীবনকে দীর্ঘমেয়াদে সহজ করে দেয়। কঠোর পরিশ্রম. এটি দিয়ে বিদ্ধ করা. আপনি দুর্দান্ত করবেন।
স্ক্যান্ট রজার

1
@ স্ক্যান্ট রোজার আমি ক্ষমা চাইছি, কিন্তু আপনার উত্তর আমার পক্ষে জিনিস পরিষ্কার করেনি। যদি আমি কোনও এমভিসি সার্ভার-সাইড ফ্রেমওয়ার্ক ব্যবহার করি, যেখানে ভিউ অজোনস্টিক, আমি এটির সাথে কৌনিকটি কীভাবে বেঁধে রাখতে পারি? সার্ভারে (ওয়েব এপিআই) ইতিমধ্যে মডেল এবং নিয়ামক সংজ্ঞা রয়েছে। সুতরাং, আমি যদি কৌনিক ব্যবহার করি তবে আমাকে আবার এমভিসি চাপিয়ে দেওয়া হচ্ছে। তাহলে এমসিভিসিএম হওয়ার কি শেষ নেই ...? (ক্লায়েন্ট সাইড এবং সার্ভারের উভয় ক্ষেত্রেই মডেল এবং নিয়ামক সংজ্ঞা) বা এটি কারণ যে আমি ক্লায়েন্ট-সাইড এমভিসি কাঠামো যেমন অ্যাংুলার ব্যবহার করব না, যদি আমি ইতিমধ্যে আমার ওয়েব এপিআইয়ের জন্য এমভিসি কাঠামো ব্যবহার করি
আবদুল

17

এএসপি.নেট এমভিসি একটি সার্ভার-সাইড ফ্রেমওয়ার্ক; আপনি জাভাস্ক্রিপ্ট গ্রন্থাগারগুলি কী ব্যবহার করেন তা বিবেচ্য নয়। অ্যাঙ্গুলারজেএস একটি ক্লায়েন্ট-সাইড লাইব্রেরি, যা সার্ভার-সাইড প্রযুক্তি ওয়েবসাইটকে কী ক্ষমতা দেয় তা বিবেচ্য নয় — এটি পাইথন, এএসপি.নেট এমভিসি, এমনকি সরাসরি ডিস্কে সঞ্চিত স্ট্যাটিক এইচটিএমএল ফাইলগুলির সাধারণ পুরানো গুচ্ছ হতে পারে।

এএসপি.নেট এমভিসি এবং অ্যাঙ্গুলারজেএস উভয়ই সামঞ্জস্যপূর্ণ এবং সেখানে প্রচুর প্রকল্প রয়েছে যা এগুলি একসাথে ব্যবহার করে।

আপনি উভয় ব্যবহার করতে হবে ? আসলে তা না. এটি সম্পূর্ণ আপনার প্রকল্পের প্রয়োজনের উপর নির্ভর করে।

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

  • একইভাবে, আপনি এএসপি.নেট এমভিসি ব্যবহার করছেন তা আপনার ক্লায়েন্ট-সাইড কোডের কাঠামো সম্পর্কে কিছুই বোঝায় না। আপনি কাঠামো সম্পর্কে কোনও চিন্তা ছাড়াই আপনার সমস্ত জাভাস্ক্রিপ্টকে একটি ফাইলে রেখে দিতে পারেন এবং এতে খুশি হতে পারেন (যতক্ষণ না প্রকল্পটি বাড়তে শুরু করে)। এখানে আবার, AngularJS ক্লায়েন্ট-সাইডে আপনার অ্যাপ্লিকেশনটি গঠনের উপায় হিসাবে নিজেকে উপস্থাপন করে।


পার্শ্ব দ্রষ্টব্য: আপনি আপনার প্রশ্নটি এএসপি.নেট এমভিসি 3 ট্যাগ করেছেন 3.. যদি আপনি গত চার বছর ধরে আপডেট হয়নি এমন লিগ্যাসি সার্ভারগুলিতে অ্যাপ্লিকেশনটি হোস্ট করার ক্ষেত্রে আপনার কোনও নির্দিষ্ট বাধা থাকে তবে আপনি এএসপি ব্যবহার করতে পারবেন .NET এমভিসি 4 বা 5 পরিবর্তে।


1
ধন্যবাদ মাইনমা আমি সচেতন যে AngularJS ক্লায়েন্ট পক্ষ, এবং এমভিসি সার্ভার সাইড। আমি আরও সচেতন যে অন্যান্য গ্রন্থাগার যেমন হ্যান্ডেলবারস, নকআউটজগুলি এমভিসি.এনইটিতে ব্যবহার করা যেতে পারে, এবং কৌনিক পিএইচপি, জাভা অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে। আমি যা জিজ্ঞাসা করছি তা কেন উভয়কেই একসাথে ব্যবহার করা উচিত, যেহেতু দুজনেই একই কাজ করে যা "এমভিসি", তবে একটি ক্লায়েন্ট সাইড এবং একটি সার্ভার সাইড। এমভিসি ফ্রেমওয়ার্কগুলি ক্লায়েন্টের পাশ এবং সার্ভারের সাথে মিশ্রিত করছেন কেন? আমরা কি এমন অ্যাপ্লিকেশনটি করতে পারি না যা কেবলমাত্র কৌনিক অ্যাপ্লিকেশন? বা এমন একটি অ্যাপ্লিকেশন যা কেবলমাত্র এমভিসি.এনপ্লিকেশন?
নাটালি

@ নাটালি: আমি দেখছি সে সম্পর্কে আরও তথ্য সরবরাহ করার জন্য আমি উত্তরটি সম্পাদনা করেছি। একটি সংক্ষিপ্ত প্রতিক্রিয়া হ'ল আপনি সেই দুটি ফ্রেমওয়ার্কগুলিকে এমন প্রকল্পগুলিতে মিশ্রণ করুন যেখানে সার্ভার এবং ক্লায়েন্ট উভয় পক্ষেই একটি নির্দিষ্ট কাঠামো বোধ করা যায়।
আর্সেনী মরজেনকো

আপনি কি আমাকে বলতে পারবেন, উদাহরণস্বরূপ যদি কোনও ওয়েব এপিআই থাকে যা আমাকে ডেটা সরবরাহ করে, এবং আমি গ্রিডে এই ডেটাটি দেখাতে চাই, তবে আমি কি কৌনিক বা এমভিসি ব্যবহার করে লুপিং এবং টেম্প্লেটিং করি? আমি কীভাবে ওয়েব এপিআই পরিষেবা কল করব? আপনি প্রকল্পের শুরু থেকেই কীভাবে সিদ্ধান্ত নেবেন যে আপনি যাচ্ছেন?
নাটালি

আমার মনে একই প্রশ্ন আছে। আমি মোটেও asp.net এমভিসি ব্যবহার করার কারণ খুঁজে পাইনি। আমার অর্থ এটি সার্ভার সাইডে Asp.net ওয়েব এপিআই এবং ক্লায়েন্টের পক্ষে কৌণিক পর্যায়ে যথেষ্ট হবে বলে মনে হচ্ছে। তবে আমি প্রথমে ভেবেছিলাম; ওয়েব এপিআই = ডেটা অ্যাক্সেস স্তর, অ্যাস্প। নেট এমভিসি = বিজনেস লজিক স্তর, কৌণিক = ইউআই স্তর। তবে কৌণিক দিক থেকে আমরা কেবল ওয়েব API কল করতে পারি তাই আমরা Asp.Net MVC সার্ভার সাইডটি ব্যবহার করতে পারি না। আমি মনে করি আমাদের Asp.Net MVC ব্যবহার করার প্রয়োজন হতে পারে তার জন্য আমাদের একটি ভাল উদাহরণ প্রয়োজন।
সেলিম

9

আপনি যদি ভিজ্যুয়াল স্টুডিও ব্যবহার করছেন তবে একটি নতুন 'একক পৃষ্ঠা অ্যাপ' এমভিসি ওয়েবসাইট টেম্পলেট রয়েছে যাতে কৌণিক এবং এমভিসি ওয়েব এপিআই কন্ট্রোলার রয়েছে।

এটি ভালভাবে কাজ করে কারণ আপনার এমভিসি সার্ভার-সাইড কোডটি কৌনিক ক্লায়েন্টের সাইড কোড কল করার জন্য জসন এন্ডপয়েন্টগুলি সরবরাহ করে।

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

প্রায়শই আপনি একক পৃষ্ঠাগুলির অ্যাপ্লিকেশন, এমনকি বিভিন্ন পরিবেশ, বিভিন্ন ভাষা, বা এমনকি বিজোড় প্রমাণীকরণ পৃষ্ঠা যা সার্ভারের পক্ষে করা সহজতর হতে পারে এর জন্য শেষ পয়েন্ট ইউআরএল এর মতো কিছু সংখ্যক সার্ভার তৈরি এইচটিএমএল / জাভাস্ক্রিপ্ট চাইবে।


1
ভিএস 2015 সিই-তে স্ট্যান্ডার্ড এসপিএ টেমপ্লেট তৈরি করার সময়, আমি স্ক্রিপ্ট ফোল্ডারে বুটস্ট্র্যাপ, জ্যাকোয়ারি, নক আউট, প্রতিক্রিয়া এবং স্যামি দেখতে পাই, তবে কোনও কৌনিক নেই। আমি কিছু অনুপস্থিত করছি?
TK-421

2

3 বছর পরে, ক্লায়েন্টের পক্ষ থেকে আপনার অ্যাপ্লিকেশনটি কাঠামোর জন্য আপনার ডেটা এবং অ্যাঙ্গুলার (জেএস বা আরও নতুন) পরিবেশন করতে ASP.NET ওয়েব API ব্যবহার করুন। আপনি যদি কোনও স্থির সাইট তৈরি করেন তবে কেবল এএসপি.নেট এমভিসি ব্যবহার করুন।

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