আমি কি আর #Map 9.3 এর জন্য একটি এক্সটেনশান বিকাশ করতে .NET 3.5 এ লক্ষ্য কাঠামো সেট করে সি # 4.0 ব্যবহার করতে পারি? বা এটি সি # 3.0 বা তার আগের হতে হবে?
আমি কি আর #Map 9.3 এর জন্য একটি এক্সটেনশান বিকাশ করতে .NET 3.5 এ লক্ষ্য কাঠামো সেট করে সি # 4.0 ব্যবহার করতে পারি? বা এটি সি # 3.0 বা তার আগের হতে হবে?
উত্তর:
সংক্ষিপ্ত উত্তর: আমার অভিজ্ঞতায়, ভিজ্যুয়াল স্টুডিও ২০১০-তে আর্জিজিআইএস ৯.৩-এর জন্য নেট। 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 ফ্রেমওয়ার্ক সংস্করণটির সাথে সামঞ্জস্যপূর্ণ।
মনে রাখবেন যে ভিএস 2010 9.3 বিকাশের জন্য একটি সমর্থিত আইডিই নয়। আপনি কোনও সমাবেশের রেফারেন্স, সহায়তা বা টেম্পলেট একীকরণ পাবেন না।
আপনি এটিকে তবে কাজ করতে পারেন: http://forums.arcgis.com/threads/29935-VS2010-with-version-9.3.1