ওয়েবএপি এবং ডাব্লুসিএফ ডেটা সার্ভিসেসের মধ্যে বর্তমানে অন্যান্য বড় পার্থক্য রয়েছে, যার উল্লেখ কখনও বলে মনে হয় না। আমি আশা করি এমএস দুটি তুলনা করে একটি ভাল নিবন্ধ নিয়ে আসে।
আমি কিছুক্ষণ ওডাটা এবং ওয়েবএপিও অনুসরণ করে চলেছি। আমি সবসময় কয়েকটি বড় পার্থক্য খুঁজে পেয়েছি।
প্রথমত, আমি নিশ্চিত নই যে আপনার বস "এমএস দ্বারা ওয়েবএপি সমর্থন করছে" তার অর্থ কী, তারা ওডাটা সমর্থন করছে না ?? আইএমও, তারা উভয়কেই সমর্থন করছে এবং বর্তমানে কিছুটা সংক্ষিপ্ত ওভারল্যাপ রয়েছে। উইন্ডোজ অ্যাজুরে ডেটা মার্কেট ওডাটা ব্যবহার করে তাদের ডেটা প্রকাশ করে, অ্যাজুর টেবিল স্টোরেজ ওডাটা ব্যবহার করে, শেয়ারপয়েন্ট 2010 এটি ওডাটা কোয়েরিকে তার ডেটা সম্পর্কিত অনুমতি দেয় এবং এমএস থেকে প্রাপ্ত অন্যান্য পণ্যগুলিও এটি সমর্থন করে যেমন এক্সেল পাওয়ারপিভট। এটি যখন সম্পর্কিত সম্পর্কিত ডেটার কথা আসে তখন এটি একটি খুব শক্তিশালী ক্যোয়ারী ফ্রেমওয়ার্ক। এবং এটি শান্ত থাকার কারণে যে কোনও ভাষা, কাঠামো, ডিভাইস ইত্যাদি এর সাথে সংহত করতে পারে।
ওডাটা + ডাব্লুসিএফ ডেটা পরিষেবাদি সম্পর্কে আমি যা পছন্দ করি তা এখানে:
ওডাটা + ডাব্লুসিএফ ডেটা সার্ভিসেস ওয়েবে ডেটা জিজ্ঞাসা করার সময় ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে আরও "অভিব্যক্তিপূর্ণ" হওয়ার অনুমতি দিয়েছে। এর আগে, কঠোর ওয়েব এপিআই তৈরি করতে আমাদের সর্বদা এএসএমএক্স বা ডাব্লুসিএফ ব্যবহার করতে হত যা অযাচিতভাবে পায় এবং যখন কোনও ইউআই কিছুটা আলাদা চায় তখন ধ্রুবক পরিবর্তন প্রয়োজন। ক্লায়েন্ট অ্যাপ্লিকেশনটি কী মানদণ্ডে ফিরে আসবে তা নির্ধারণের জন্য কেবলমাত্র পরামিতি নির্দিষ্ট করতে পারে। বা আমি যেমন করেছি এবং লিনিকিউ এক্সপ্রেশনগুলি "সিরিয়ালাইজ" করেছি এবং সেগুলি প্যারামিটার হিসাবে পাস Expressions<Func<T,bool>>
করে সার্ভারে পুনরায় হাইড্রেট করুন। এটি শালীন। কাজটি পেয়েছি, তবে আমি ক্লায়েন্টের উপরে লিনকিউটি ব্যবহার করতে চাই এবং এটি আরইএসটি ব্যবহার করে ওয়েবে অনুবাদ করতে চাই, যা ওডাটা ঠিক তাই দেয় এবং আমি নিজের সমাধানের নিজস্ব "হ্যাক" ব্যবহার করতে চাই না।
এটি ডিবি সংযোগ স্ট্রিংয়ের প্রয়োজন ছাড়াই "ট্রান্স্যাক্ট এসকিউএল" প্রকাশের মতো like কেবল একটি url এবং হুয়াল সরবরাহ করুন! জিজ্ঞাসা শুরু করুন। অবশ্যই, ওয়েবএপি এবং ডাব্লুসিএফ ডেটা সার্ভিস উভয়ই প্রমাণীকরণ / অনুমোদন সমর্থন করে, যাতে আপনি অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন, ভূমিকা বা অন্যান্য ডেটা কনফিগারেশনের উপর ভিত্তি করে অতিরিক্ত "যেখানে" বিবৃতি যুক্ত করতে পারেন। আমি বরং এটি এসকিউএল (বিল্ডিং ভিউ বা স্টোরড প্রক্সের মতো) এর চেয়ে আমার ওয়েব এপি লেয়ারে করতাম। এবং এখন অ্যাপ্লিকেশনগুলি নিজেরাই ক্যোয়ারী তৈরি করতে পারে, আপনি অ্যাড-হক এবং বিআই রিপোর্টিং সরঞ্জামগুলি দেখতে পাবেন ওডাটা লাভ করার জন্য এবং ব্যবহারকারীদের তাদের নিজস্ব ফলাফল সংজ্ঞায়িত করার অনুমতি দেবে। স্থির প্রতিবেদনের উপর নির্ভর না করে যেখানে তাদের ন্যূনতম নিয়ন্ত্রণ থাকে।
সিলভারলাইট, উইন্ডোজ 8 মেট্রো, বা এএসপি.নেট (এমভিসি, ওয়েব ফর্মস, ইত্যাদি) এ বিকাশ করার সময়, আপনি কেবল ডাব্লুসিএফ ডেটা পরিষেবাতে ভিজ্যুয়াল স্টুডিওতে একটি "পরিষেবা রেফারেন্স" যুক্ত করতে পারেন এবং ডেটা অনুসন্ধানের জন্য দ্রুত লিনকিউ ব্যবহার শুরু করতে পারেন এবং আপনি একটি পান ক্লায়েন্টে "ডেটা কনটেক্সট" যার অর্থ এটি পরিবর্তনগুলি ট্র্যাক করে এবং আপনাকে আপনার পরিবর্তনগুলি পরমাণুভাবে সার্ভারে "জমা দিতে" দেয়। সিলভারলাইটের জন্য এটি আরআইএ পরিষেবাদির সাথে অত্যন্ত সাদৃশ্য। আমি আরআইএ পরিষেবাদির পরিবর্তে ডাব্লুসিএফ ডেটা পরিষেবাদি ব্যবহার করতাম তবে সেই সময় এটি ডেটাঅ্যানোটেশন বা ক্রিয়াকলাপ সমর্থন করে না, তবে এখন এটি করেছে :) ডব্লিউসিএফ ডেটা সার্ভিসেসের আরআইএ সার্ভিসের চেয়ে আরও একটি সুবিধা রয়েছে, যা "অনুমান" সম্পাদন করার ক্ষমতা ক্লায়েন্ট থেকে। এটি পারফরম্যান্সে সহায়তা করতে পারে, যদিও আমি কোনও সত্তা থেকে সমস্ত সম্পত্তি ফিরিয়ে দিতে চাই না। একটি "তথ্য প্রসঙ্গে" থাকা
সুতরাং, ডাব্লুসিএফ ডেটা পরিষেবাদিগুলি দুর্দান্ত যদি আপনার সম্পর্কের সাথে ডেটা থাকে, বিশেষত যদি আপনি এসকিউএল সার্ভার এবং সত্ত্বা ফ্রেমওয়ার্ক ব্যবহার করেন। আপনি খুব অল্প কোডের সাথেই REST- তে খুব দ্রুত ক্যোয়ারেবল ডেটা + অ্যাকশনগুলি (ক্রিয়াকলাপগুলি, অর্থাৎ ওয়ার্কফ্লো, পটভূমি প্রক্রিয়াগুলি কল করা) প্রকাশ করতে সক্ষম হবেন। ডাব্লুসিএফ ডেটা পরিষেবাদি সবেমাত্র আপডেট করা হয়েছিল। নতুন রিলিজ চালু হয়েছে। সমস্ত নতুন কার্যকারিতা পরীক্ষা করে দেখুন।
ডাব্লুসিএফ ডেটা সার্ভিসেসের ডাউনসাইড হ'ল এইচটিটিপি স্ট্যাকের উপরে "নিয়ন্ত্রণ"। আমি খুঁজে পেলাম সবচেয়ে বড় ত্রুটিটি সেই IQueryable<T>
পদ্ধতিগুলির মধ্যে যা সংগ্রহগুলি ফিরিয়ে দেয়। আরআইএ পরিষেবাদি এবং ওয়েবএপি থেকে পৃথক, আপনার আইকিউয়েরেবল পদ্ধতিতে যুক্তি বিকাশের সম্পূর্ণ অ্যাক্সেস নেই। আরআইএ সার্ভিসেস এবং ওয়েবএপিতে আপনি যতক্ষণ না ফিরে আসতে চান কোড লিখতে পারেন IQueryable<T>
। ডাব্লুসিএফ ডেটা পরিষেবাদিতে আপনি কেবল Expression<Func<T,bool>>
ইন্টারসেপ্টর পদ্ধতি ব্যবহার করে "যেখানে" বিবৃতি সংযোজন করতে অ্যাক্সেস পাবেন get আমি এই হতাশ পেয়েছি। আমাদের বর্তমান অ্যাপ্লিকেশনটি আরআইএ পরিষেবাদি ব্যবহার করে এবং আমি দেখতে পাচ্ছি যে সত্যই আমাদের আইকিউয়েরেবল যুক্তি নিয়ন্ত্রণ করার ক্ষমতা প্রয়োজন। আমি আশা করি আমি এতে ভুল করছি এবং আমি কিছু মিস করছি
এছাড়াও, ডাব্লুসিএফ ডেটা পরিষেবাগুলি এখনও সমস্ত লিনকিউ অপারেটরকে পুরোপুরি সমর্থন করে না। এটি এখনও WebApi এর চেয়ে বেশি সমর্থন করে।
WebApi সম্পর্কে কি ???
- আমি এইচটিপি অনুরোধ / প্রতিক্রিয়া উপর নিয়ন্ত্রণ পছন্দ করি
- এটি অনুসরণ করা সহজ (এমভিসি নিদর্শনগুলির উত্তোলন)। আমি নিশ্চিত যে আরও টুলিং আসবে।
এখন পর্যন্ত (আমার বোঝার জন্য), ক্লায়েন্টের উপর কোনও "ডেটা কনটেক্সট" সমর্থন নেই (যেমন সিলভারলাইট, এএসপি। নেট সার্ভার-সাইড কোড, ইত্যাদি), কারণ ওয়েবএপি সত্যই ডাব্লুসিএফ ডেটা সার্ভিসেস / ওডিটার মতো সত্তা ডেটা মডেলগুলি সম্পর্কে নয় হয় এটি আইকুয়ারেবল / আইনিউবারেবল ব্যবহার করে মডেল অবজেক্টগুলির সংগ্রহ প্রকাশ করতে পারে তবে ক্লায়েন্টে সত্তা লোড হয়ে যাওয়ার পরে কোনও প্রাথমিক কী / বিদেশী কী "নেভিগেশন প্রোপার্টি" (অর্থাত্ ગ્રાહার ইনভয়েসেস) ব্যবহার করার প্রয়োজন নেই কারণ কোনও "ডেটা কনটেক্সট" নেই যা এগুলি অবিচ্ছিন্নভাবে লোড করে (বা এক কলের মাধ্যমে $ প্রসারিত ব্যবহার করে) এবং পরিবর্তনগুলি পরিচালনা করে। আপনি আরআইএ পরিষেবাদি বা ডব্লিউসিএফ ডেটা পরিষেবাদিতে যেমন করেন তেমন কোনও ক্লায়েন্টে আপনার সত্তা ডেটা মডেলের কোড-উত্পন্ন "প্রতিনিধিত্ব" নেই। আমি বলছি না যে ক্লায়েন্টে আপনার ডেটা উপস্থাপন করে এমন মডেলগুলি আপনি রাখতে পারবেন না / না, তবে আপনি ম্যানুয়ালি ডেটা পপুলেট করেছেন এবং ওয়েবে পুনরুদ্ধার করার পরে প্রতিটি "গ্রাহক" এর সাথে কোন "চালান" সেট করতে হবে তা পরিচালনা করেন manage এটি জটিল হয়ে উঠতে পারে, বিশেষত সমস্ত অ্যাসিঙ্ক স্টাফ দিয়ে। আপনি জানেন না কোন কলগুলি প্রথমে ফিরে আসবে। এখানে এটি ব্যাখ্যা করা শক্ত হতে পারে তবে কেবল আরআইএ পরিষেবাদিগুলিতে বা "ডেটা প্রসঙ্গ" স্টাফ সম্পর্কে পড়ুন বাডাব্লুসিএফ ডেটা পরিষেবাদি । লাইন অফ বিজনেস অ্যাপ্লিকেশনগুলির সাথে কাজ করার সময়, এটি আমার কাছে বড় সমস্যা। এটি মূলত উত্পাদনশীলতা এবং রক্ষণাবেক্ষণের উপর ভিত্তি করে। আপনি ডেটা প্রসঙ্গ ছাড়াই অস্পষ্টভাবে অ্যাপস তৈরি করতে পারেন। এটি কেবল জিনিসগুলিকে আরও সহজ করে তোলে, বিশেষত সিলভারলাইট, ডাব্লুপিএফ এবং এখন উইন্ডোজ 8 মেট্রোতে। অবিচ্ছিন্নভাবে স্মৃতিতে লোড হওয়া রিলেশনাল সত্তা থাকা এবং টু-বাইন্ডিং থাকা সত্যিই দুর্দান্ত।
এটি বলার পরে, এর অর্থ কি কোনও দিন ওয়েবএপি ক্লায়েন্টে একটি "ডেটা কনটেক্সট" সমর্থন করতে পারে? আমি মনে করি এটি পারে। এছাড়াও, আরও সরঞ্জামের সাহায্যে একটি ভিজ্যুয়াল স্টুডিও প্রকল্প আপনার সমস্ত CRUD পদ্ধতি ডেটাবেস স্কিমা (বা সত্তা ফ্রেমওয়ার্ক) এর উপর ভিত্তি করে তৈরি করতে পারে।
এছাড়াও, আমি জানি আমি ডাব্লুসিএফ ডেটা সার্ভিসেস বা ওয়েবএপিআইয়ের সাথে কাজ করার সময় নেট নেট ফ্রেমওয়ার্কগুলি উল্লেখ করি তবে আমি খুব সচেতন যে এইচটিএমএল / জেএসও একজন প্রধান খেলোয়াড়। আমি সিলভারলাইট UI, বা ASP.NET সার্ভার-সাইড কোড ইত্যাদির সাথে কাজ করার সময় আমি যে সুবিধাগুলি পেয়েছি তা উল্লেখ করছিলাম আমি এইচটিএমএল 5 / জাভাস্ক্রিপ্টে "ইনডেক্সডডিবি" এর আবির্ভাবের সাথে বিশ্বাস করি যে "ডেটা কনটেক্সট" এবং একটি জাভাস্ক্রিপ্টের লাইনকিউ ফ্রেমওয়ার্কটি উপলভ্য হতে পারে, যা জাভাস্ক্রিপ্ট থেকে ওডাটা পরিষেবাদি জিজ্ঞাসা করার ক্ষমতা আরও সহজ করে তুলেছে (আপনি আজ ওডিটার সাথে ডেটাজেএস ব্যবহার করতে পারেন)। এছাড়াও, এইচটিএমএল / জেএস-তে এমভিভিএম এবং বাইন্ডিং সমর্থন করার জন্য নকআউটজেএস ব্যবহার করে এটি বাতাসকে পরিণত করবে :)
আমি বর্তমানে কোন প্ল্যাটফর্মটি ব্যবহার করব তা নিয়ে গবেষণা করছি। আমি উভয়টি ব্যবহার করেই খুশি হব, তবে আমার পরবর্তী অ্যাপ্লিকেশনটি মূলত অ্যানালিটিকাগুলির (কেবল পঠনযোগ্য) এবং আমি একটি সমৃদ্ধ এক্সপ্রেশনাল রিস্টফুল এপি চাই, তার ভিত্তিতে আমি ওডাটার দিকে ঝুঁকতে থাকি। আমি বিশ্বাস করি যে ওডাটা + ডাব্লুসিএফ ডেটা পরিষেবাদি আমাকে তা দেয় কারণ যে ওয়েবএপি কেবল সংগ্রহের ওপরে। টেক, ip স্কিপ, $ ফিল্টার, $ অর্ডারকে সমর্থন করে। এটি প্রজেকশনগুলি, অন্তর্ভুক্ত ($ প্রসারিত) ইত্যাদি সমর্থন করে না I আমার কাছে অনেকগুলি "আপডেট / ডিলিট / সন্নিবেশ" নেই এবং আমাদের ডেটা মোটামুটি সম্পর্কিত।
আমি আশা করি অন্যরা আলোচনায় যোগ দেবেন এবং তাদের মতামত দিন। আমি এখনও সিদ্ধান্ত নিচ্ছি এবং অন্যান্য মতামত শুনতে পছন্দ করি। আমি সত্যই মনে করি দুটোই ফ্রেমওয়ার্ক দুর্দান্ত। আমি ভাবছি যদি আপনি এমনকি চয়ন করতে হয়, কেন প্রয়োজন উভয় ব্যবহার না। ক্লায়েন্ট থেকে এটি যাইহোক যাইহোক আরএসটি কল কল করার বিষয়ে। শুধু একটি ভাবনা :)