এএসপি.এনইটি / এমভিসি এবং ডাব্লুসিএফ উভয়কেই উপকৃত করে এমন একটি অ্যাপ্লিকেশন লেখার পক্ষে এটি দুর্দান্ত নয়। ওয়েবএপিআই-র বিষয়গুলির উন্নতি হতে পারে, তবে একটি প্রকল্পে আমি জানি যে ডব্লিউসিএফ এবং এমভিসি একই অ্যাপে ব্যবহার করছিলাম, তারা একই ধারণার প্রতিনিধিত্ব করতে দুটি ভিন্ন মডেল বজায় রেখেছিল - একটি ডাব্লুসিএফ কোডের জন্য এবং একটি এমভিসির জন্য। কোড। আপনি দুটি মডেলের মধ্যে জিনিসগুলি অনুবাদ করতে তাদের যে ম্যাপারগুলি লিখতে হয়েছিল তা কল্পনা করতে পারেন - সেখানে প্রচুর কোড লাইন ছিল যা এড়ানো / হওয়া উচিত ছিল।
কেন এমনটি ঘটেছিল তার একটি অংশ হ'ল ডাব্লুসিএফ অনুরোধ এবং প্রতিক্রিয়া অবজেক্টগুলিকে [ডেটা কন্ট্রাক্ট] এবং তাদের বৈশিষ্ট্যগুলি [ডেটা মেম্বার] দিয়ে টীকায়িত করা উচিত, যখন এমভিসির এটির প্রয়োজন হয় না। অন্যদিকে আইডোমেটিক এমভিসি চাইছে ভিউমোডেলস, যা ডাব্লুসিএফ ডেটা চুক্তিগুলির চেয়ে আলাদা লক্ষ্য রয়েছে। অবশ্যই, এটি সম্ভব যে ডোমেন অবজেক্টের দুটি সম্পূর্ণ সেট ব্যবহারের সাথে ডাব্লুসিএফ এবং এমভিসি দ্বন্দ্বের চেয়ে কনওয়ের আইনের সাথে আরও অনেক কিছু ছিল , তবে এটি উল্লেখ করার মতো যে ডাব্লুসিএফ এবং এমভিসির আউটপুট এবং ইনপুট পর্যন্ত বিভিন্ন লক্ষ্য এবং প্রয়োজনীয়তা রয়েছে।
ব্যক্তিগতভাবে, আমি একটি সাধারণ তবে শক্তিশালী পরিষেবাগুলি ভিত্তিক ব্যাক এন্ড এপিআই বিকাশের জন্য আংশিক, বিশেষত যখন আপনি একাধিক ক্লায়েন্ট পেতে পারেন। আমি মনে করি চমৎকার জাভাস্ক্রিপ্ট এমভিভিএম এবং মাইক্রো এমভিসি ফ্রেমওয়ার্কগুলির আগমন এটিকে প্রাকৃতিক পছন্দ হিসাবে বিবেচনা করে, ব্যাকবোনজেএস , নাকআউটজেএস এবং অন্যান্য ব্যবহার করে অ্যাপ্লিকেশন কোড লেখার ফলে একটি সক্ষম বিকাশের পরিবেশের সুযোগ পাওয়া যায়। তারপরে আপনি নিজের ওয়েব অ্যাপ্লিকেশনটি তৈরি করতে বা কোনও মোবাইল ক্লায়েন্টে আপনার পছন্দের মাইক্রো এমভিসির পিছনের প্রান্তটি গ্রাস করতে পারেন এবং আপনার অংশীদাররা একই এপিআই দূরবর্তী স্থান থেকে গ্রাস করতে পারে।
প্রস্তাবনা
হয় ওয়েবপিআই বা পরিষেবা স্ট্যাক আপনার পিছনের এপিআই তৈরির জন্য ভাল প্রার্থী হতে পারে। আমি পরিষেবা স্ট্যাকের প্রস্তাব দিচ্ছি, কারণ আমি গত কয়েক মাস ধরে এটি ব্যবহার করছি এবং এটি ডাব্লুসিএফ-এর একটি দুর্দান্ত প্রতিস্থাপন বলে মনে করেছি। আমি বর্তমানে আমার ব্লগে পরিষেবা স্ট্যাকের উপর একটি টিউটোরিয়াল সিরিজ লিখছি ।
সার্ভিস স্ট্যাক রক্ষণাবেক্ষণকারী গোষ্ঠী ক্লোনার মতো স্ট্যাকওভারফ্লো বিকাশের জন্য কাঠামোগত ব্যবহার করে একটি উদাহরণ অ্যাপ্লিকেশন পোস্ট করেছে যা আমার বিশ্বাস যে বিকাশের ধরণটি বিশেষত বাধ্যতামূলক বলে মনে করে। এটিতে একটি সাধারণ, মডেল ভিত্তিক পরিষেবা অন্তর্ভুক্ত রয়েছে যা আপনি কোনও এমভিসি ওয়েবসাইট, একটি মোবাইল অ্যাপ্লিকেশন, বা অন্য যে কোনও কিছু সহজেই গ্রাস করতে পারবেন বলে কল্পনা করতে পারেন। সার্ভিসস্ট্যাকের ডিজাইন লক্ষ্যগুলি এমন একটি প্যাটার্নকে স্পষ্টভাবে উত্সাহ দেয় যা ক্লায়েন্ট এবং সার্ভারের মধ্যে কম সংযোগের দিকে পরিচালিত করে। ধারণাটি হ'ল চ্যাটি এপিআই এর কলগুলি যেমন GetCustomersInRegionWithSearchTerm(int regionId, string searchTerm)
কম পদ্ধতির পক্ষে রয়েছে তেমন এড়ানো । আপনি পরিষেবা স্ট্যাকে একই জিনিসটি প্রয়োগ করতে পারেন:
[Route("/customers", "GET"]
[Route("/customers/search/{SearchTerm}", "GET"]
[Route("/customers/region/{Region}", "GET"]
[Route("/customers/region/{Region}/search/{SearchTerm}", "GET"]
public class Customers
{
public int? RegionId { get; set; }
public string SearchTerm { get; set; }
}
public class CustomersService : Service
{
public object Get(Customers request) {
// handle request
return new CustomersResponse();
}
}
বেনিফিট, আমার চোখে, যে পরিবর্তে প্রচুর এবং পৃথক পদ্ধতি প্রচুর ওভার আউট আপনার ব্যবসা লজিক বিস্তার থাকার হল GetCustomersInRegionWithSearchTerm(int regionId, string searchTerm)
, GetCustomersInRegion(int regionId)
, GetCustomersWithSearchTerm(string searchTerm)
, GetCustomers()
, এটা সব এক জায়গায় আছে। এটি আরও রক্ষণাবেক্ষণযোগ্য কোডের দিকে নিয়ে যাওয়া উচিত।
কাকতালীয়ভাবে, স্ট্যাক এক্সচেঞ্জ মূল পরিষেবা স্ট্যাক লেখক নিয়োগ করে । তিনি পরিষেবা স্ট্যাক প্রকল্পে সক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ অবিরত ।
আমি বিশেষ কিছু বার্তার জন্য মেসেজের সারি পছন্দ করি - এবং ডাব্লুসিএফ এটির জন্য অনুমতি দিচ্ছিল, ওয়েবএপিআই তা দেয় না। সার্ভিস স্ট্যাক একই ওয়েব পরিষেবাটিকে এমকিউ এর মাধ্যমে চালিত করার অনুমতি দেয় না। এ সম্পর্কিত আরও তথ্যের জন্য রেডিস এমকিউ হোস্টটি এখানে দেখুন: github.com/ServiceStack/ServiceStack/wiki/Messaging- and-redis