.NET স্ট্যান্ডার্ড বনাম। নেট কোর


240

আমি নেট স্ট্যান্ডার্ড এবং। নেট কোর মধ্যে পার্থক্য সম্পর্কে পড়েছি, তবে আমি আসলেই পার্থক্যটি কী তা জানি না, বা কখন একটি নেট স্ট্যান্ডার্ড লাইব্রেরি প্রকল্প বেছে নেব এবং কখন নেট নেট লাইব্রেরি প্রকল্প বেছে নেব।

আমি পড়েছি যে .NET স্ট্যান্ডার্ড হ'ল নিশ্চিত হওয়া যায় যে API গুলি একটি সেট সর্বদা উপলভ্য থাকে, প্ল্যাটফর্মটি যতই ব্যবহৃত হয় না (যতক্ষণ না সেই প্ল্যাটফর্মটি আমি চয়ন করে .NET স্ট্যান্ডার্ড সংস্করণের সাথে সামঞ্জস্যপূর্ণ)। যদি আমি ভুল না হয়ে থাকি তবে এর অর্থ হ'ল আমি .NET স্ট্যান্ডার্ডের একটি ক্লাসের লাইব্রেরি তৈরি করতে পারি এবং তারপরে আমি বেছে নেওয়া NET স্ট্যান্ডার্ড সংস্করণের সাথে সামঞ্জস্যপূর্ণ যে কোনও প্ল্যাটফর্মে এটি ব্যবহার করতে পারি।

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

তাই শেষে, আমি পার্থক্যটি দেখতে পাচ্ছি না। আমি কখন ব্যবহার করব? তাদের মধ্যে পার্থক্য কী?


33
কোড পদে:। নেট স্ট্যান্ডার্ড = ইন্টারফেস,। নেট কোর = শ্রেণি; আপনি যদি শ্রেণীর বিপরীতে কোড করেন তবে আপনি আরও পদ্ধতি (ইত্যাদি) পাবেন না, তবে আপনি সেই কংক্রিটের ধরণের (এবং বংশধরদের) মধ্যে সীমাবদ্ধ; আপনি যদি ইন্টারফেসটি ব্যবহার করেন তবে আপনি একটি ছোট পৃষ্ঠ পেতে পারেন , তবে এটি নির্বিচারে বাস্তবায়নের বিরুদ্ধে কাজ করবে ... যতক্ষণ না এই বাস্তবায়নগুলি প্রত্যাশিতভাবে কাজ করে :) হ্যাঁ,। নেট কোর একাধিক প্ল্যাটফর্মকে লক্ষ্য করে, তবে । নেট এর অন্যান্য বাস্তবায়ন রয়েছে are মানক
মার্ক গ্র্যাভেল

9
.এনইটিএস স্ট্যান্ডার্ড পিসিএলের প্রতিস্থাপন। একটি পোর্টেবল ক্লাস লাইব্রেরি আপনাকে এমন একটি লাইব্রেরি লিখতে সহায়তা করেছে যা একাধিক প্ল্যাটফর্মে চালিত হতে পারে (ফোন, ডেস্কটপ, স্টোর, ব্রাউজার, এক্সবক্স, ইত্যাদি)। এটি খুব ভাল স্কেল করেনি, এন থেকে খারাপভাবে ভুগছেন! সমস্যা, তাই তারা এটিকে পরিত্যাগ করেছিল। .NETCore হ'ল তারা প্রথম কাজটি সম্পন্ন করেছে, এটি সবচেয়ে সহজ ছিল, বাকিটি ধরে রাখতে হবে। মনে রাখবেন যে এটি খুব কার্য-অগ্রগতি, .NETS স্ট্যান্ডার্ড v2.0 এর সাথে সামনে বড় পরিবর্তন। এই মুহুর্তে তাদের সকলের শাসন করার স্ট্যান্ডার্ড :)
হ্যানস প্যাস্যান্ট

দয়া করে কোনও বিদ্যমান প্রশ্নে অতিরিক্ত প্রশ্ন যুক্ত করবেন না। সম্পাদনায় আপনার প্রশ্নটি এর থেকে পৃথক।
জন স্কিটি

1
@ জোনস্কিট তাহলে আমার কি নতুন প্রশ্ন খুলতে হবে? পরামর্শের জন্য ধন্যবাদ। কারণ প্রথমে আমি। নেট কোর মাল্টি টার্গেট সম্পর্কে একটি নতুন প্রশ্ন খুলেছি এবং আমি হ্রাস পেয়েছি কারণ তারা বলেছে এটি একটি সদৃশ প্রশ্ন।
আলভারো গার্সিয়া

@ এলভারো গ্রাচিয়া: হ্যাঁ, তবে এটি পরিষ্কার করুন - আপনার বর্তমান এক-বাক্য প্রশ্নটি আমার কাছে মোটেও পরিষ্কার নয়।
জন স্কিটি

উত্তর:


195

আমি আপনার সন্দেহগুলি আরও স্পষ্ট করার চেষ্টা করব এবং জোন স্কিটির উত্তরটি প্রসারিত করব।

.NET স্ট্যান্ডার্ড একটি স্পেসিফিকেশন , সুতরাং নির্দিষ্ট .NET স্ট্যান্ডার্ড সংস্করণের জন্য সংকলিত একটি লাইব্রেরি বিভিন্ন .NET স্ট্যান্ডার্ড বাস্তবায়নে ব্যবহার করা যেতে পারে।

আমার অন্যান্য মন্তব্যে যেমন বলা হয়েছে,। নেট স্ট্যান্ডার্ড এবং অন্যান্য। নেট স্ট্যান্ডার্ড বাস্তবায়ন (। নেট কোর,। নেট ফ্রেমওয়ার্ক ইত্যাদি) এর মধ্যে সম্পর্কের জন্য একটি ভাল উপমা হ'ল ডেভিড ফাউলারের এই সূচনা :। নেট স্ট্যান্ডার্ড সংস্করণগুলি রয়েছে Interfaces, যখন ফ্রেমওয়ার্কগুলি হয় এই ইন্টারফেস বাস্তবায়ন।

সরলীকৃত চিত্রটি এই সম্পর্কটি বুঝতে সাহায্য করতে পারে:

নেট স্ট্যান্ডার্ড ইন্টারফেস উপমা

যে কোনও লক্ষ্যবস্তুতে এপিআই এবং নির্দিষ্ট এপিআইতে NetCore10অ্যাক্সেস রয়েছে (যেমন )।INetStandard15 NetCore10 DotNetHostPolicy

অবশ্যই এই গ্রন্থাগারটি বিভিন্ন INetStandard15বাস্তবায়নে ব্যবহার করা যাবে না ( NetCore10পরিবর্তিত NetFramework462বা এটি রূপান্তরযোগ্য নয় Mono46)।

আপনি, পরিবর্তে, প্রয়োজন শুধুমাত্র এক্সেস তাহলে INetStandard15API গুলি (এবং টার্গেট করে একটি কংক্রিট কাঠামোর পরিবর্তে স্পেসিফিকেশন) আপনার লাইব্রেরি দ্বারা ব্যবহৃত হতে পারে কোনো ফ্রেমওয়ার্ক যা কার্যকরী এটা ( NetCore10, NetFramework462ইত্যাদি)

দ্রষ্টব্য: মূল উপমাতে ডেভিড ফোলার .NET স্ট্যান্ডার্ড সংস্করণ এবং ফ্রেমওয়ার্ক বাস্তবায়ন উভয়ের জন্য ইন্টারফেস ব্যবহার করেছেন। আমি বিশ্বাস করি যে ইন্টারফেস এবং ক্লাস ব্যবহারের পরিবর্তে আরও স্বজ্ঞাত এবং আরও ভালভাবে স্পেসিফিকেশন এবং কংক্রিট বাস্তবায়নের মধ্যকার সম্পর্কের প্রতিনিধিত্ব করে।


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

8
এটি সংকলিত অ্যাপ্লিকেশনটির বাস্তবায়ন (এটি যাই হোক না কেন) ব্যবহার করবে। আপনি যদি একটি নেট কোর অ্যাপ্লিকেশন সংকলন করেন তবে এটি নেট কোর লাইব্রেরিগুলি (এটি নেট মানক একটি বাস্তবায়ন) ব্যবহার করবে
ফেদেরিকো ডিপুমা

5
মূল / স্টাডি / কাঠামোর সম্পর্কের চিত্রণে সেই চিত্রটি একটি দুর্দান্ত সহায়তা।
জ্যাস্পার

সুতরাং যদি আমি একটি নেট 461 কনসোল অ্যাপ্লিকেশন তৈরি করি এবং একটি নেটস্প্যান্ডার্ড 2.0 লাইব্রেরিটিকে লক্ষ্য করি তবে সেই মানক লিব থেকে কিছুই কনসোল অ্যাপ্লিকেশনে সমাধান হয় না। তো ... ??
সিনেটেস্টেথ

2
একটি চিত্র হাজার হাজার
শুল্কের

182

.NET কোর .NET স্ট্যান্ডার্ডের একটি বাস্তবায়ন । এটি একাধিক অপারেটিং সিস্টেমে উপলভ্য, তবে এটি একই জিনিস নয়। NET স্ট্যান্ডার্ডের অন্যান্য বাস্তবায়নও রয়েছে।

সুতরাং আপনি যদি একটি নেট কোর লাইব্রেরি তৈরি করেন তবে এটি .NET কোর এ প্রয়োগ করা জিনিসগুলিতে অ্যাক্সেস পেতে পারে তবে NET স্ট্যান্ডারের অংশ নয় এবং আপনার লাইব্রেরি .NET স্ট্যান্ডার্ডের অন্যান্য প্রয়োগের সাথে সামঞ্জস্য করবে না , যেমন Xamarin, Tizen, পূর্ণ .NET ডেস্কটপ ফ্রেমওয়ার্ক ইত্যাদি

সংক্ষেপে: সর্বাধিক পোর্টেবিলিটি অর্জন করতে আপনার গ্রন্থাগারটিকে লক্ষ্য করুন। নেট স্ট্যান্ডার্ড।


5
@ এলভারো গ্র্যাকিয়া: "এটি" দ্বারা সামঞ্জস্যপূর্ণ হওয়া উচিত বলে আপনার কী বোঝায়? .NET কোর 1.0? অগত্যা নয় - কারণ। নেট কোর 1.0 এখনও অতিরিক্ত জিনিস অন্তর্ভুক্ত করতে পারে। এন্ট্রিটির অর্থ হ'ল যদি আপনি .NET স্ট্যান্ডার্ড 1.6 কে টার্গেট করেন তবে আপনি মনো 4.6 এবং। নেট কোর 1.0 এর মধ্যে কোড চালাতে পারবেন ।
জন স্কিটি

4
আপনি নেট নেট (কোরএলআর এবং কোরএফএক্স) ব্যতীত অন্য কোনও ক্ষেত্রে। নেট কোর সমাবেশ পরিচালনা করতে পারবেন না। আপনি প্রাসঙ্গিক স্ট্যান্ডার্ড (1.3, 1.6, 2.0, ইত্যাদি) এর চুক্তিগত বাধ্যবাধকতা পূরণ করে এমন কোনও ফ্রেমওয়ার্কে একটি নেট স্ট্যান্ডার্ড অ্যাসেমব্লিলি চালাতে পারেন।
মার্ক রেন্ডেল

2
ক্রস প্ল্যাটফর্মটি ফ্রেমওয়ার্ক নয়, অপারেটিং সিস্টেমকে বোঝায়।
মার্ক রেন্ডেল

15
সাদৃশ্য হিসাবে, নেট ইন্টারফেস হিসাবে উদাহরণস্বরূপ (যেমন INetStandard16) কল্পনা করুন । .NET কোর 1.0 এবং মনো 4.6 উভয়ই প্রয়োগ করে INetStandard16। আপনি নেট নেট 1.0 কে মনো 4.6 (এবং তদ্বিপরীত) INetStandard16তে রূপান্তর করতে পারবেন না, তবে যেটি ব্যবহার করে তা উভয় ক্ষেত্রেই কাজ করবে। (ক্রেডিট ডেভিড
ফোলারের কাছে

6
এটা আমাকে অবাক করে দিয়েছিল। নামগুলি পেছনের দিকে মনে হয়। আপনি ভাববেন যে "কোর" নামক কিছু
হ'ল

6

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

সুতরাং আপনি যদি নিশ্চিত হন যে আপনি নিজের লাইব্রেরিটি কেবলমাত্র নেট কোর প্রকল্পের জন্য ব্যবহার করবেন তবে আপনি নেট স্ট্যান্ডার্ডকে এড়িয়ে যেতে পারবেন, তবে যদি আপনার কোডটি জ্যামারিনের জন্য .NET ফ্রেমওয়ার্ক বা মনো দ্বারা ব্যবহার করা সম্ভব হয় তবে এটির আরও ভাল সুযোগ রয়েছে তবে এটি আরও ভাল better .NET স্ট্যান্ডার্ড আটকে যাও

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

PS: এছাড়াও আপনি যদি আপনার গ্রন্থাগারটিকে .NET স্ট্যান্ডার্ডে রূপান্তর করতে চান তবে .NET পোর্টাবিলিটি অ্যানালাইজার আপনাকে এতে সহায়তা করতে পারে।


4

.NET স্ট্যান্ডার্ড হ'ল .NET এপ্লিকেশনগুলিতে উপলব্ধ থাকার উদ্দেশ্যে NET API গুলিগুলির একটি নির্দিষ্টকরণ। এটি সমস্ত NET বাস্তবায়নের জন্য বিসিএল এপিআই'র ইউনিফর্ম সেট সংজ্ঞায়িত করতে সক্ষম করে।

.NET কোর হ'ল .NET স্ট্যান্ডার্ডের এমন একটি বাস্তবায়ন। .NET ফ্রেমওয়ার্ক .NET স্ট্যান্ডার্ডের আর একটি বাস্তবায়ন।

নেট ব্লগ থেকে চিত্র

এখানে চিত্র বর্ণনা লিখুন

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

এখানে চিত্র বর্ণনা লিখুন

.NET স্ট্যান্ডার্ড লক্ষ্য করে আপনার প্ল্যাটফর্ম সমর্থন বাড়ায় যেখানে নির্দিষ্ট .NET প্ল্যাটফর্ম যেমন। নেট কোর (বা। নেট ফ্রেমওয়ার্ক) টার্গেট করে আপনাকে সেই প্ল্যাটফর্মের জন্য সমস্ত প্ল্যাটফর্ম বৈশিষ্ট্য ব্যবহার করতে দেয়।


2

.NET স্ট্যান্ডার্ড হল API এর একটি স্পেসিফিকেশন যা সমস্ত। নেট বাস্তবায়ন অবশ্যই সরবরাহ করে। এটি নেট পরিবারে ধারাবাহিকতা নিয়ে আসে এবং আপনি যে কোনও নেট অ্যাপ্লিকেশন থেকে ব্যবহার করতে পারেন এমন গ্রন্থাগার তৈরি করতে সক্ষম করে। এটি ভাগ করা উপাদান তৈরির জন্য পিসিএলগুলি প্রতিস্থাপন করে।

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


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


0

আপনি কি নেট ফ্রেমওয়ার্ক বলতে চাইছেন? কারণ .NET স্ট্যান্ডার্ড একটি বাস্তবায়ন, যেমন। নেট ফ্রেমওয়ার্ক,। নেট কোর এবং জ্যামারিন।

আমি .NET কোর পছন্দ করি কারণ আমরা এটি লিনাক্সে হোস্ট করতে পারি (আমার অভিজ্ঞতার মধ্যে nginx ব্যবহার করুন)। এটি নেট আইটেম থেকে আলাদা যা আপনি কেবল আইআইএস-এ হোস্ট করতে পারেন। আপনি এই ক্ষেত্রে হোস্টিং বাজেট সম্পর্কে বিবেচনা করতে পারেন (কারণ উইন্ডোজ সার্ভারটি আমার জন্য ব্যয়বহুল)।

ইন ডেভেলপমেন্ট এনভায়রনমেন্ট দৃষ্টিকোণ , .net কোর লাইটওয়েট হয়। সুতরাং, আপনি আইডিই (কেবল ভিজ্যুয়াল স্টুডিও নয়) ভিসকোড, সাব্লাইম ব্যবহার করতে পারেন।


0

সহজ কথায়, .NET স্ট্যান্ডার্ডটি ক্লাস লাইব্রেরি প্রকল্পগুলি লেখার জন্য ব্যবহৃত হয় যা dll তৈরি করে। .NET কোরটি সমস্ত অপারেটিং সিস্টেমে (উইন্ডোজ, লিনাক্স, ম্যাকোস) চলতে পারে এমন প্রকৃত ওয়েব অ্যাপ্লিকেশনগুলির বিকাশের জন্য ব্যবহার করা যেতে পারে। (। নেট কোর 3 মাইক্রোসফ্ট ডাব্লুপিএফ ব্যবহার করে ডেস্কটপ অ্যাপ্লিকেশনগুলি বিকাশের জন্য কার্যকারিতা সরবরাহ করেছে, তবে এখন পর্যন্ত এই অ্যাপসটি ক্রস প্ল্যাটফর্ম হবে না এবং এটি কেবল উইন্ডোজ সিস্টেমে চলবে future ভবিষ্যতে মাইক্রোসফ্ট এগুলি ক্রস প্ল্যাটফর্মও তৈরি করতে পারে)। নেট মানক । নেট (। নেট ফ্রেমওয়ার্ক,। নেট কোর) ব্যবহার করে এমন কোনও অ্যাপ্লিকেশনটিতে লাইব্রেরি / ডিএল ব্যবহার করা যেতে পারে যার অর্থ আপনি। নেট ফ্রেমওয়ার্ক এবং। নেট কোর উভয়ই নেট নেট ব্যবহার করতে পারবেন।

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