আরকোবজেক্টস 9.3 এর জন্য সি # সংস্করণ


10

আমি কি আর #Map 9.3 এর জন্য একটি এক্সটেনশান বিকাশ করতে .NET 3.5 এ লক্ষ্য কাঠামো সেট করে সি # 4.0 ব্যবহার করতে পারি? বা এটি সি # 3.0 বা তার আগের হতে হবে?


যদি লক্ষ্য ফ্রেমওয়ার্ক 3.5 থাকে তবে আপনি এক্সটেনশন সহ সি # 2.0 ব্যবহার করছেন। আর্কিঞ্জাইন 10 টি .NET 3.5 টার্গেট করা দরকার যাতে আপনি কিছু 4.0 টি গুডিকে মিস করেন। আমি আমার অ্যাপ্লিকেশনটিতে একটি ডাব্লুপিএফ ক্যালেন্ডার নিয়ন্ত্রণ ব্যবহার করতে চেয়েছিলাম, তবে আমি এটি 4.0 এর কারণে করতে পারিনি। সুতরাং আমি উইনফর্মগুলি ব্যবহার করতে হয়েছিল।
প্যাট্রিক

আমি আর্কম্যাপ 10 এর জন্য লক্ষ্য ফ্রেমওয়ার্কটি 3.5 তে সেট করে একটি এক্সটেনশান বিকাশ করতে সি # 4.0 ব্যবহার করছিলাম তাই আমি ভাবছিলাম যে ফ্রেমওয়ার্কটি 3.5 অবধি স্থায়ী থাকায় এটি পিছনে সামঞ্জস্যপূর্ণ হবে কিনা? আমি কি আমার আর্কম্যাপ 10 এক্সটেনশনটিকে সি # 2.0 তে পরিবর্তন করব যাতে এটি অনেক কোড সম্পাদনা না করেই আর্কম্যাপ 9 দিয়ে পুনরায় সংযুক্ত করা যায়? আর #Map 9 এর সাথে সি # 3.0 কাজ করবে?
মাইক রজার্স

উত্তর:


13

সংক্ষিপ্ত উত্তর: আমার অভিজ্ঞতায়, ভিজ্যুয়াল স্টুডিও ২০১০-তে আর্জিজিআইএস ৯.৩-এর জন্য নেট। 3.5-ভিত্তিক কোড (সি # ভাষার সংস্করণ 4 সহ), যতক্ষণ আপনি স্পষ্টভাবে .NET ফ্রেমওয়ার্ক 3.5 লক্ষ্য করেন না। সি # ভাষার সংস্করণটি এখানে বেশিরভাগ ক্ষেত্রে অপ্রাসঙ্গিক।

পিএস: এই উত্তরটি 9.3 এবং 10 সংস্করণে আর্কজিআইএস এক্সটেনশন বিকাশের মধ্যে বিদ্যমান পার্থক্যের মধ্যে যায় না (ইএসআরআই অ্যাড-ইন মডেলটিতে বেশ কয়েকটি বড় পরিবর্তন করেছে, তবে আমি ধরে নিচ্ছি যে আপনি এটি সম্পর্কে সচেতন রয়েছেন ।)

দীর্ঘ উত্তর: আপনার সি # ভাষার সংস্করণ এবং লক্ষ্যযুক্ত ফ্রেমওয়ার্ক সংস্করণের মধ্যে পার্থক্য করতে হবে।

.NET ফ্রেমওয়ার্কটি দুটি প্রধান অংশ: সিএলআর (প্রচলিত ভাষা রানটাইম) এবং বিসিএল (বেস ক্লাস লাইব্রেরি) নিয়ে গঠিত হিসাবে আপনি ভাবতে পারেন। পূর্ববর্তীটি হ'ল "ভার্চুয়াল মেশিন", তবে পরেরটি ক্লাসের লাইব্রেরি (আপনি এমএসডিএন-তে দেখতে পারেন এমন সমস্ত ধরণের)।

.NET ফ্রেমওয়ার্ক 2 3.5.৫ অবধি সমস্ত একই সিএলআর (সংস্করণ ২) ব্যবহার করে, অর্থাত্ কার্যকর করার পরিবেশটি বাস্তবে বিবর্তিত হয়নি। যা বিবর্তিত হয়েছে তা হ'ল ছাত্রলীগ। আপনি যদি নেট। 2 মেশিনে .NET 3.5 অ্যাপ্লিকেশন চালাচ্ছেন তবে মূল সমস্যাটি "বাইটোকোড" (সিআইএল) বেমানান হবে না (এটি হবে না), তবে অ্যাপ্লিকেশনটি উল্লেখ করতে এবং ব্যবহার করতে পারে .NET 2 বিসিএলে এখনও পাওয়া যায় নি।

এখন, যখন আপনি ভিজুয়াল স্টুডিও 2010 কে .NET ফ্রেমওয়ার্ক 3.5 কে টার্গেট করতে বলবেন, এটি নিশ্চিত করবে যে আপনি কোনও পরবর্তী ফ্রেমওয়ার্ক সংস্করণ থেকে বিসিএল প্রকারগুলি ব্যবহার করবেন না। এটি এটিও নিশ্চিত করবে যে সি # সংকলক দ্বারা কোড আউটপুট কেবল সিএলআর সংস্করণ 4-এ উপলব্ধ বৈশিষ্ট্যগুলির প্রয়োজন হবে না।

এই # টির সাথে সি # ভাষার সংস্করণটির খুব কম সম্পর্ক রয়েছে। সি # সংকলক সত্যই এটি করে যা আপনার উত্স কোডটি নিয়ে যায় এবং এটি অনেক নিম্ন-স্তরের প্রোগ্রামিং ভাষায় অনুবাদ করে যার নাম সিআইএল (কমন ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ)। নির্দিষ্ট সি # ভাষার গঠনগুলি সিআইএলে আর স্বীকৃত হবে না: উদাহরণস্বরূপ, yield returnএবং yield breakসিআইএলে উপস্থিত নেই। এগুলি কেবল IEnumerator<T>ইন্টারফেসের বাস্তবায়নে অনুবাদ করা হয় ।

সংক্ষিপ্তসারটি হিসাবে: আপনার কোড সংকলনের সাথে সাথে সি # ভাষার সংস্করণ অপ্রাসঙ্গিক হয়ে যায়। কি হল গুরুত্বপূর্ণ ...

  • সিআইএল / "বাইটকোড" আউটপুটটি লক্ষ্যযুক্ত। নেট ফ্রেমওয়ার্কের সাথে সামঞ্জস্যপূর্ণ কিনা (উপরের উল্লিখিত কারণে নেট নেট ৩.৫, এটি নেট। 2 এর সাথেও সামঞ্জস্যপূর্ণ হবে); এবং

  • আপনার কোডটি লক্ষ্য ফ্রেমওয়ার্কে উপলভ্য প্রকারের / ব্যবহারের বিষয়ে উল্লেখ করে কিনা।

একটি উল্লেখযোগ্য ব্যতিক্রম (এই অর্থে যে একটি সি # ভাষা নির্মানের কাঠামোর একটি নির্দিষ্ট সংস্করণ প্রয়োজন; এটি সর্বশেষে যখন জেনেরিকগুলি আইআইআরসি চালু হয়েছিল) এটি সি # কীওয়ার্ড হতে পারে dynamic। এটি এমন কোডে সংকলিত হতে পারে System.Dynamicযা নেমস্পেস থেকে প্রকারের প্রয়োজন , যা কেবল নেট নেট থেকে পাওয়া যায় 4. তবে চিন্তা করবেন না: আপনি নেট নেট ৩.৫ লক্ষ্য করার জন্য যদি আপনার ভিজ্যুয়াল স্টুডিও 2010 প্রজেক্টটি সেট করেন তবে আপনার উচিত একটি সংকলক ত্রুটি যদি আপনি এমন কোনও স্টাফ ব্যবহার করতে চেষ্টা করছেন যা উপলভ্য নয়, বা সেই নির্দিষ্ট .NET ফ্রেমওয়ার্ক সংস্করণটির সাথে সামঞ্জস্যপূর্ণ।


1
@ সিজঙ্ক, এটি পুরোপুরি সঠিক নয়। এমনকি যদি আর্কজিআইএস 9.3 / ভিএস2010 এর জন্য কোনও এসএসআরডি এসডিকে এক্সটেনশন নাও পাওয়া যায় তবে এটি আপনাকে আর্কজিআইএস অ্যাসেমব্লিগুলি উল্লেখ করতে এবং কোড লেখা শুরু করতে বাধা দেবে না। যে, এখনও এই IDE ব্যবহার করা সম্ভব, কেবল আরও অস্বস্তিকর। এছাড়াও জড়িত থাকতে পারে আরও কিছু ম্যানুয়াল কাজ (উপাদানগুলির নিবন্ধকরণ ইত্যাদি) তবে আবার এটি বাস্তবসম্মত আফাইক।
stakx

হ্যাঁ দুঃখিত, সবেমাত্র এটি দেখেছেন :)
সি জঙ্ক

আপনি একটি ভাল ব্যাখ্যা সরবরাহ করেছেন, তবে সম্পর্কগুলি কিছুটা জটিল, কারণ তিনটি (সিএলআর, বিসিএল এবং সি #) এর বৈশিষ্ট্যগুলি একে অপরের দ্বারা ভারী প্রভাবিত।
পেটর ক্রেবস

পার্শ্ব নোট হিসাবে, সিএলআর এবং সি # এর বিবর্তন সম্পর্কে খুব আকর্ষণীয় মজার কিছু তথ্য রয়েছে। উদাহরণস্বরূপ, জেনেরিক ধরণের প্যারামিটারগুলির সাথে সমবায়তা এবং বিপরীতত্ব সিএলআর ২.০ এ প্রবর্তিত হয়েছিল, তবে এটি ভাষা # দ্বারা সমর্থন করা শুরু করার পরে এটি সি # 4 অবধি ছিল না। আর একটি, ঘটনাক্রমে আপনার পয়েন্টের একটি দুর্দান্ত উদাহরণ: লিনিকিউ, সি # 3 তে প্রবর্তিত, এক্সটেনশন পদ্ধতির উপর নির্ভর করে, যা সিস্টেমের ব্যবহারের সাথে সি # 2 তে সিমুলেটেড করা যেতে পারে un
পেট্র ক্রেবস

1
এরিক লিপার্টের ব্লগ ( ব্লগস.এমএসএনএন বি / এরিক্লিপার্ট )। নেট / সি # এর বিভিন্ন অন্ধকার কোণ এবং তাদের নকশার পিছনে সিদ্ধান্তের একটি দুর্দান্ত উত্স।
পেটর ক্রেবস

4

মনে রাখবেন যে ভিএস 2010 9.3 বিকাশের জন্য একটি সমর্থিত আইডিই নয়। আপনি কোনও সমাবেশের রেফারেন্স, সহায়তা বা টেম্পলেট একীকরণ পাবেন না।

আপনি এটিকে তবে কাজ করতে পারেন: http://forums.arcgis.com/threads/29935-VS2010-with-version-9.3.1

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