আপনি যদি পরিচালনা / ক্লায়েন্টের জন্য কোনও ওআরএম ব্যবহার করবেন কেন তার "পেশাদারদের" উদ্বুদ্ধ করতে হলে তার কারণগুলি কী হবে?
প্রতিটি উত্তরের জন্য একটি কারণ চেষ্টা করুন এবং রাখুন যাতে আমরা দেখতে পাই যে সেরা কারণগুলি কী হিসাবে ভোট পেয়েছে
আপনি যদি পরিচালনা / ক্লায়েন্টের জন্য কোনও ওআরএম ব্যবহার করবেন কেন তার "পেশাদারদের" উদ্বুদ্ধ করতে হলে তার কারণগুলি কী হবে?
প্রতিটি উত্তরের জন্য একটি কারণ চেষ্টা করুন এবং রাখুন যাতে আমরা দেখতে পাই যে সেরা কারণগুলি কী হিসাবে ভোট পেয়েছে
উত্তর:
ডেটা অ্যাক্সেস আরও বিমূর্ত এবং বহনযোগ্য। ওআরএম বাস্তবায়ন ক্লাসগুলি কীভাবে বিক্রেতা-নির্দিষ্ট এসকিউএল লিখতে হয় তা জানেন, তাই আপনার দরকার নেই।
একটি ওআরএম ব্যবহারের সর্বাধিক গুরুত্বপূর্ণ কারণটি হ'ল আপনার কাছে একটি সমৃদ্ধ, অবজেক্ট ওরিয়েন্টেড ব্যবসায়ের মডেল থাকতে পারে এবং এখনও এটি সংরক্ষণ করতে সক্ষম এবং কোনও সম্পর্কিত ডেটাবেসের বিরুদ্ধে দ্রুত কার্যকর প্রশ্ন লিখতে সক্ষম হন। আমার দৃষ্টিকোণ থেকে, আমি লিখতে পারি এমন উন্নত ধরণের প্রশ্নের ব্যতীত অন্য উত্পন্ন ডালের সাথে তুলনা করার সময় কোনও ভাল ওআরএম আপনাকে দেয় এমন কোনও আসল সুবিধা দেখতে পাচ্ছি না।
আমি যে ধরণের ক্যোয়ারির কথা ভাবছি তা হ'ল বহুবিধ ক্যোয়ারী। একটি সাধারণ ORM ক্যোয়ারী আপনার ডাটাবেসে সমস্ত আকার নির্বাচন করতে পারে। আপনি ফিরে আকারের একটি সংগ্রহ পেতে। তবে প্রতিটি উদাহরণটি তার বৈষম্যমূলক অনুসারে একটি বর্গক্ষেত্র, বৃত্ত বা আয়তক্ষেত্র।
অন্য ধরণের কোয়েরিটি হ'ল যা আগ্রহের সাথে একটি অবজেক্ট এবং এক বা একাধিক সম্পর্কিত অবজেক্ট বা সংগ্রহ করে একটি একক ডাটাবেস কল। উদাহরণস্বরূপ প্রতিটি আকারের অবজেক্টটি তার ভার্টেক্স এবং পাশের সংগ্রহের সাথে ফিরে আসে।
আমি এখানে অন্য অনেকের সাথে একমত হওয়ার জন্য দুঃখিত, কিন্তু আমি মনে করি না যে কোড জেনারেশন নিজেই একটি ওআরএম নিয়ে যাওয়ার যথেষ্ট উপযুক্ত কারণ। আপনি কোড জেনারেটরের জন্য অনেকগুলি ভাল ডাল টেম্পলেট লিখতে বা খুঁজে পেতে পারেন যা ওআরএম এর মত ধারণাগত বা কার্য সম্পাদন করে না।
অথবা, যদি আপনি মনে করেন যে কোনও ওআরএম ব্যবহার করার জন্য আপনাকে কীভাবে ভাল এসকিউএল লিখতে হয় তা জানার দরকার নেই, তবে আমি একমত নই। এটি সত্য হতে পারে যে একক প্রশ্ন লেখার দৃষ্টিকোণ থেকে, একটি ওআরএম এর উপর নির্ভর করা সহজ। তবে, ওআরএম এর সাহায্যে দুর্বল পারফরম্যান্স রুটিনগুলি তৈরি করা এত সহজ যখন বিকাশকারীরা বুঝতে পারে না যে ওআরএম এবং এসকিউএল অনুবাদ করে তাদের অনুবাদগুলি কীভাবে কাজ করে।
একাধিক ডাটাবেসের বিরুদ্ধে কাজ করে এমন একটি ডেটা স্তর থাকায় সুবিধা হতে পারে। এটি এমন নয় যে আমাকে প্রায়শই নির্ভর করতে হয়েছিল।
শেষ পর্যন্ত, আমাকে আমার অভিজ্ঞতাকে পুনরায় বলতে হবে যে আপনি যদি নিজের ওআরএম এর আরও উন্নততর ক্যোয়ারী বৈশিষ্ট্যগুলি ব্যবহার না করে থাকেন তবে অন্যান্য বিকল্প রয়েছে যা কম শিখন এবং কম সিপিইউ চক্রের সাহায্যে অবশিষ্ট সমস্যাগুলি সমাধান করে।
ওহ হ্যাঁ, কিছু বিকাশকারীরা মজাদার হয়ে ওআরএম এর সাথে কাজ করতে পারে তাই আপনার-বিকাশকারী-খুশি দৃষ্টিভঙ্গি থেকে ওআরএমও ভাল। =)
গতি উন্নয়ন। উদাহরণস্বরূপ, পুনরাবৃত্তিমূলক কোডগুলি বাদ দেওয়া যেমন ম্যাপিং ক্যোয়ারী ফলাফলের ক্ষেত্রগুলিকে সদস্য এবং তদ্বিপরীতকে ফল দেয়।
আপনার ডেটা অ্যাক্সেস স্তরে ব্যবসায়িক বিধিগুলির ওও এনক্যাপসুলেশনকে সহায়তা করছে। আপনি ক্ল্যাঙ্কি ট্রিগার এবং সঞ্চিত পদ্ধতি ভাষার পরিবর্তে আপনার পছন্দের অ্যাপ্লিকেশন ভাষায় ব্যবসায়ের নিয়ম (এবং ডিবাগ) লিখতে পারেন।
বেসিক CRUD ক্রিয়াকলাপের জন্য বয়লারপ্লেট কোড তৈরি করা। কিছু ওআরএম ফ্রেমওয়ার্কগুলি সরাসরি ডাটাবেস মেটাডেটা পরিদর্শন করতে পারে, মেটাডেটা ম্যাপিং ফাইলগুলি পড়তে পারে বা ঘোষিত শ্রেণীর বৈশিষ্ট্যগুলি ব্যবহার করতে পারে।
আপনি সহজেই বিভিন্ন ডাটাবেস সফ্টওয়্যার এ যেতে পারেন কারণ আপনি একটি বিমূর্ততায় উন্নতি করছেন।
উন্নয়নের সুখ, আইএমও ORM আপনাকে এসকিউএল-এ করতে হবে এমন অনেকগুলি খালি-ধাতব জিনিস দূরে ফেলে। এটি আপনার কোড বেসটি সহজ রাখে: পরিচালনা করতে কম উত্স ফাইল এবং স্কিমা পরিবর্তনগুলির জন্য কয়েক ঘন্টা ধরে রাখার প্রয়োজন হয় না।
আমি বর্তমানে একটি ওআরএম ব্যবহার করছি এবং এটি আমার বিকাশের গতি বাড়িয়েছে।
সাধারণ এসকিউএল কোয়েরিগুলির সদৃশতা কমাতে।
আমি এটি দেখার কারণটি হ'ল ভিএস ২০০৫ এর ডাল সরঞ্জামগুলি (স্কিমা ম্যাপিং, টেবিলএডাপ্টারস) থেকে উত্পন্ন কোডটি এড়ানো।
এক বছর আগে আমি যে ডাল / বিএলএল তৈরি করেছি তা ভাল কাজ করে যাচ্ছিল (যতক্ষণ না আমি এটি নির্মাণ করেছি) যতক্ষণ না অন্য কেউ উত্পন্ন কিছু ফাংশনগুলির সুবিধা নিতে এটি ব্যবহার শুরু করে (যা সম্পর্কে আমার কোনও ধারণা ছিল না)
দেখে মনে হচ্ছে এটি http://www.asp.net থেকে ডএল / বিএলএল সমাধানের চেয়ে অনেক বেশি স্বজ্ঞাত এবং ক্লিনার সমাধান সরবরাহ করবে looks
আমি আমার নিজের এসকিউএল কমান্ড সি # ডাল কোড জেনারেটর তৈরি করার কথা ভাবছিলাম, তবে ওআরএম আরও মার্জিত সমাধানের মতো দেখায়
প্রশ্নগুলির সংকলন এবং পরীক্ষণ।
ওআরএম-এর সরঞ্জামকরণের উন্নতির সাথে সাথে সংকলনের সময় ত্রুটি এবং পরীক্ষার মাধ্যমে আপনার প্রশ্নের যথাযথতা দ্রুত নির্ধারণ করা আরও সহজ।
আপনার প্রশ্নগুলি সংকলন বিকাশকারীদের ত্রুটিগুলি দ্রুত খুঁজে পেতে সহায়তা করে। রাইট? ঠিক। এই সংকলনটি সম্ভব হয়েছে কারণ বিকাশকারীরা এখন এসকিউএল বা এসকিউএল স্টেটমেন্টের মতো স্ট্রিংয়ের পরিবর্তে তাদের ব্যবসায়িক বিষয়গুলি বা মডেলগুলি ব্যবহার করে কোডে কোয়েরি লিখছেন।
.NET- এ সঠিক ডেটা অ্যাক্সেসের নিদর্শনগুলি ব্যবহার করা হলে মেমরি সংগ্রহের ক্ষেত্রে আপনার ক্যোয়ারী লজিকের পরীক্ষা করা সহজ। এটি আপনার পরীক্ষাগুলির কার্যকরকরণের গতি বাড়ায় কারণ আপনাকে ডাটাবেস অ্যাক্সেস করতে হবে না, ডাটাবেসে ডেটা সেট আপ করতে বা এমনকি একটি সম্পূর্ণ প্রস্ফুটিত ডেটা প্রসঙ্গে স্পিন আপ করার দরকার নেই [[সম্পাদনা] এটি যতটা সত্যই আমি ভেবেছিলাম এটি ইউনিটের মতো নয় স্মৃতিতে পরীক্ষা করা কঠিন চ্যালেঞ্জগুলি কাটিয়ে উঠতে পারে। তবে আমি এখনও এই ইন্টিগ্রেশন পরীক্ষাগুলি আগের বছরের তুলনায় আরও সহজে লিখতে পারি [[/ সম্পাদনা]
প্রশ্নটি যখন কয়েক বছর আগে জিজ্ঞাসা করা হয়েছিল তখন এটি আজ অবশ্যই বেশি প্রাসঙ্গিক, তবে এটি কেবলমাত্র ভিজ্যুয়াল স্টুডিও এবং সত্তা ফ্রেমওয়ার্কের ক্ষেত্রে হতে পারে যেখানে আমার অভিজ্ঞতা রয়েছে experience সম্ভব হলে আপনার নিজের পরিবেশটি প্লাগইন করুন।
আমি মনে করি এখানে অনেক ভাল পয়েন্ট রয়েছে (বহনযোগ্যতা, বিকাশ সহজলভ্য / রক্ষণাবেক্ষণ, ওও বিজনেস মডেলিং ইত্যাদির উপর ফোকাস) তবে আপনার ক্লায়েন্ট বা পরিচালনকে বোঝানোর চেষ্টা করার সময় আপনি কী পরিমাণ অর্থ ব্যবহার করবেন সে সম্পর্কে এগুলি সবই ফুটে উঠেছে একটি ORM ।
সাধারণ কাজের জন্য কিছু প্রাক্কলন (বা এমনকি বৃহত্তর প্রকল্পগুলিও উপস্থিত হতে পারে) করুন এবং আপনি (আশাবাদী!) স্যুইচিংয়ের জন্য কয়েকটি যুক্তি পাবেন যা উপেক্ষা করা শক্ত।
কোড স্মিথ টেম্পলেট ব্যবহার করে নেট টায়ার
http://nettiers.com/default.aspx?AspxAutoDetectCookieSupport=1
কোড কেন এমন কিছু যা কেবল উত্পন্ন করা যায়।
আমি মনে করি একটি কনসটি হ'ল আপনার পোজোর মধ্যে ওআরএমের কিছু আপডেট দরকার। মূলত স্কিমা, সম্পর্ক এবং প্রশ্নের সাথে সম্পর্কিত। সুতরাং দৃশ্যাবলী যেখানে আপনি মডেল অবজেক্টগুলিতে পরিবর্তন আনার কথা মনে করছেন না, কারণ এটি প্রকল্প বা বি / ডাব্লু ক্লায়েন্ট এবং সার্ভারের মধ্যে ভাগ করে নেওয়া হয়েছে। সুতরাং এই জাতীয় ক্ষেত্রে আপনাকে এটি দুটি স্তরে বিভক্ত করতে হবে, যার জন্য অতিরিক্ত প্রচেষ্টা প্রয়োজন হবে।
আমি একজন অ্যান্ড্রয়েড বিকাশকারী এবং আপনি জানেন যে মোবাইল অ্যাপ্লিকেশনগুলি সাধারণত আকারে বিশাল হয় না, তাই খাঁটি-মডেল এবং orm- প্রভাবিত-মডেলকে আলাদা করার জন্য এই অতিরিক্ত প্রচেষ্টা পুরোপুরি উপযুক্ত বলে মনে হয় না।
আমি বুঝতে পারি যে প্রশ্নটি জেনেরিক। তবে মোবাইল অ্যাপ্লিকেশনগুলি জেনেরিক ছাতার ভিতরে চলে আসে।