.NET 4 এ অ্যাসিঙ্ক-অপেক্ষার ব্যবহার করে


137

আমি বর্তমানে একটি অ্যাপ্লিকেশন তৈরি করতে শুরু করছি যা সি # 5 এর অ্যাসিঙ্ক-প্রতীক্ষিত বৈশিষ্ট্যটি থেকে প্রচুর লাভ করবে। তবে আমি নিশ্চিত নই যে কোন সংস্করণ ভিএস এবং অ্যাসিঙ্ক রানটাইম ব্যবহার করবে।

ওএসের জনপ্রিয়তার চার্টগুলির দিকে তাকানো, আমাকে আরও তিন বছর বা তার জন্য উইন্ডোজ এক্সপি সমর্থন করতে হবে। দেখে মনে হচ্ছে। নেট 4.5 শুধুমাত্র উইন্ডোজের নতুন সংস্করণগুলিতে রান করে, তাই আমার। নেট 4.0 টি লক্ষ্য করা দরকার। বিকাশ মেশিনগুলি উইন্ডোজ 7 ব্যবহার করে, সুতরাং ভিএসের নতুন সংস্করণ ব্যবহার করা কোনও সমস্যা নয়।

এটি করার জন্য এখন আমাকে প্রথমে একটি সংকলক চয়ন করতে হবে:

  • এসিএনসিটিপি সহ ভিএস 2010
  • ভিএস2012 পূর্বরূপ (এবং এটি একবারে চূড়ান্ত হলে এটি) .NET 4.0 এ লক্ষ্য নির্ধারণ করে
  • মনো (দেখে মনে হচ্ছে ২.১২ এর মতো অ্যাসিঙ্ক-ওয়েভিট রয়েছে, আমি আইডিই হিসাবে মনো-ডেভেলফের তুলনায় ভিএসকে পছন্দ / পছন্দ করি)

কোনটিতে কোড-জেন বাগ রয়েছে কম? এ খুঁজছি জন স্কিট এর ব্লগ VS2012 পূর্বরূপ অন্তর্গত CTP চেয়ে কখনো কোড-জেনারেটর ব্যবহার করে।

এবং আরও গুরুত্বপূর্ণভাবে কোন রানটাইমটি ব্যবহার করতে হবে?

ভিএস ২০১২-তে কি .NET 4 এর সাথে ব্যবহারের জন্য পুনরায় বিতরণযোগ্য অ্যাসিঙ্ক রানটাইম থাকতে পারে?

অ্যাসিএনসিটিপি রানটাইম উল্লেখ করে আমি পূর্বরূপ সহ কোড সংকলন পরিচালনা করেছিলাম। তবে যেহেতু সিটিপিতে অদ্ভুত লাইসেন্সিং শর্ত রয়েছে, এটি দীর্ঘমেয়াদী সমাধানের মতো ভাল লাগে না।

বা আমার তৃতীয় পক্ষের প্রয়োগ ব্যবহার করা উচিত? মনো এক আছে কি?

লাইব্রেরি বিতরণের জন্য আমি কোনও ধরণের ইনস্টলারের পরিবর্তে অ্যাপ্লিকেশন হিসাবে একই ডিরেক্টরিতে dll স্থাপন পছন্দ করি।

আমি এটিও চাই যদি আমার বাইনারিগুলি মনো + লিনাক্স / ম্যাকোজে কোনও পরিবর্তন ছাড়াই কাজ করে। সুতরাং রানটাইমটি হয় মনো (যা 2.12 সম্ভবত) নির্মিত হয়েছে তার সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত, বা উইন্ডোজ অপারেটিং সিস্টেমগুলিতে ব্যবহারের অনুমতি দেওয়া উচিত allow


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

@ অ্যালোইস অ্যাসিএনসিটিপি'র পরবর্তী সংস্করণগুলি পুনরায় বিতরণের অনুমতি দেয়। এবং সবচেয়ে খারাপটি ঘটতে পারে তা হ'ল আমার অ্যাপ্লিকেশন ব্রেক। এটি অন্যান্য অ্যাপ্লিকেশনগুলিতে হস্তক্ষেপ করতে পারে এমন নয়, সুতরাং চূড়ান্ত সংস্করণে হস্তক্ষেপের তুলনায় আপনার কনসার্টটি আমি বুঝতে পারি না। আমার প্রশ্নের একটি অংশ হ'ল যদি কোনও চূড়ান্ত সংস্করণ থাকে যা WinXP কে প্রথম স্থানে সমর্থন করে।
কোডসইনচাওস

1
লাইসেন্সটিতে স্পষ্টভাবে বলা হয়েছে (অ্যাসিঙ্ক সিটিপি 3) "1.a.ii। আপনি মাইক্রোসফ্টের বিজ্ঞপ্তির সাথে সাথে এই জাতীয় ব্যবহার বন্ধ করতে সম্মত হন;"; আমার সন্দেহ হয় এই বিজ্ঞপ্তিটি প্রকাশিত হলে এমএস থেকে আসবে। আমি কোনও আইনজীবী নই তবে আমি নিশ্চিত যে আপনার আইনী বিভাগটি (যদি আপনার এক থাকে) আপনি লাইসেন্সের শর্তগুলি ভঙ্গ না করে কীভাবে আপনি এটি পেতে চান আপনার যুক্তি শুনতে ভাল লাগবে।
অ্যালোস ক্রাউস

উত্তর:


106

মাইক্রোসফ্ট অ্যাসিএনসিটিপি-র প্রতিস্থাপন হিসাবে নিউগেটের মাধ্যমে অ্যাসিঙ্ক টার্গেটিং প্যাক (মাইক্রোসফট.বিসিএল.এ্যাসেন্স) প্রকাশ করেছে।

আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন: http://blogs.msdn.com/b/bclteam/archive/2013/04/17/microsoft-bcl-async-is-now-stable.aspx

আপনি পূর্ববর্তী সংস্করণটি এখানে পড়তে পারেন: http://blogs.msdn.com/b/lucian/archive/2012/04/24/async-targeting-pack.aspx

যেহেতু এই প্যাকটি আনুষ্ঠানিকভাবে সমর্থিত, আমি এখন বিশ্বাস করি যে এক্সপি + অ্যাসিঙ্ক লক্ষ্যবস্তুর জন্য সেরা বিকল্পটি ভিজ্যুয়াল স্টুডিও 2012 + সি # 5 + অ্যাসিঙ্ক টার্গেটিং প্যাকটি ব্যবহার করবে।

আপনি যদি .NET 3.5 টার্গেট করার প্রয়োজন বোধ করেন তবে আপনি এখনও নেট নেট 3.5 এর জন্য (আমার) অ্যাসিঙ্কব্রিজ ব্যবহার করতে পারেন ।


আপনার অ্যাসিঙ্কব্রিজের জন্য আমি কোনও লাইসেন্সের কোনও রেফারেন্স পাই না?
টুং


15
মনে রাখবেন যে .NET 4.0 এ অ্যাসিঙ্ক টার্গেটিং প্যাকটি ব্যবহার করে KB2468871 ইনস্টল করা প্রয়োজন।
ঘোর্ড

- KB2468871 জুন 2011 সালে মুক্তি পায় (এবং 6 মাস পরে v2 মুক্তি), কিন্তু এটি এখনও ইনস্টল করা যাবে পারে, তাই কিভাবে Wix এটা চেক করতে stackoverflow.com/a/9506530/968003
অ্যালেক্স ক্লাউস

24

আপনি যদি অন্য। নেট ভাষা বিবেচনা করার জন্য উন্মুক্ত হন, তবে F # আপনার সমস্যার সমাধান করতে পারে। এটি বহু বছর ধরে অ্যাসিঙ্ক {} গণনা প্রকাশ করে আসছে এবং নেট নেট ২.০ এর সাথেও পিছনের দিকে সামঞ্জস্যপূর্ণ। সর্বনিম্ন প্রয়োজনীয়তা হ'ল উইন্ডোজ এক্সপি এসপি 3। রানটাইমটি এখানে ডাউনলোড করা যায়


4

এসিএনসি / অপেক্ষা করুন ব্যবহার করে নেট নেট 4.0 কে লক্ষ্য করে ভিএস 12 বিটা ব্যবহার করা সম্ভব।

আপনার প্রকল্পে আপনাকে এমন কিছু কোড অনুলিপি করতে হবে যা সংকলক নির্ভর করে the

বিশদ এখানে

সম্পাদনা করুন: আমরা এই কৌশলটি নিয়েছি এবং এ্যাসিনক্রিজেড নামে একটি ওপেন সোর্স লাইব্রেরিতে পরিণত করেছি: https://nuget.org/packages/AsyncBridge


3

আপনি যদি নিজের সফ্টওয়্যার বিতরণ করতে সক্ষম হতে চান তবে আমি মনে করি যে এই মুহুর্তে মনো সমাধানটি আপনার একমাত্র বিকল্প। আপনি আরও বলেছিলেন যে আপনি শেষের ফলাফলটি লিনাক্স এবং ওএস এক্স-এর উপরে মনোোতে চালিত করতে চান Mon মনোকে টার্গেট করা প্রাকৃতিক সমাধানের মতো বলে মনে হচ্ছে।

আপনার পরবর্তী সমস্যাটি আইডিই। মনোডেলোফ স্পষ্টতই ভাল কাজ করবে তবে আপনি বলছেন আপনি ভিজ্যুয়াল স্টুডিও পছন্দ করেন।

গ্রেগ হারলম্যান ভিজ্যুয়াল স্টুডিও থেকে মনো ২.৮ এর বিপরীতে কোডে একটি প্রোফাইল তৈরি করেছিলেন। আপনি যদি তার সাথে ফলোআপ করেন তবে ভিজুয়াল স্টুডিওতে মনো-2.11 / 2.12 এর বিরুদ্ধে বিকাশের জন্য তিনি আপনাকে সঠিক দিকে নির্দেশ করতে সক্ষম হবেন।

অবশ্যই, ভিজুয়াল স্টুডিওর জন্য মনো সরঞ্জাম রয়েছে যা একটি বাণিজ্যিক পণ্য। আমি ধরে নিলাম এটি এখনও জামারিন অফার করছেন

আপনি নেট থেকে উপরে নেট থেকে প্রয়োজনীয় 4.5 প্রোফাইল অ্যাসেমব্লিগুলি চালাতে সক্ষম হতে পারেন তবে আমি এটি চেষ্টা করি নি। 4.5 প্রোফাইলটি 4.0 এপিআইয়ের একটি কঠোর সুপার সেট। সম্ভবত এটি একটি শট দিন এবং ফিরে রিপোর্ট করুন।

সম্পাদনা: দেখে মনে হচ্ছে সম্ভবত আপনি এখন উত্পাদনে ভিজ্যুয়াল স্টুডিও অ্যাসিঙ্ক সিটিপি ব্যবহার করতে পারেন

ডাউনলোড পৃষ্ঠায় এটি যা বলেছে তা এখানে :

উত্পাদন ব্যবহারের জন্য একটি নতুন EULA অন্তর্ভুক্ত। দ্রষ্টব্য - এই লাইসেন্সটি আপনাকে আপনার উত্পাদন কোডের জন্য সিটিপি ব্যবহার করার জন্য উত্সাহ দেয় না। সিটিপি একটি অসমর্থিত এবং আপনার নিজস্ব-ঝুঁকিপূর্ণ প্রযুক্তি প্রাকদর্শন হিসাবে ব্যবহার করে। তবে আমরা প্রোডাকশন কোডের জন্য সিটিপি ব্যবহারের জন্য বিকাশকারীদের কাছ থেকে অনেক অনুরোধ পেয়েছি এবং তাই এটির অনুমতিতে লাইসেন্স পরিবর্তন করেছি changed


আমি উন্নয়নে যা ব্যবহার করি তা হ'ল ন্যূনতম বিষয়। প্রধান সমস্যাটি হ'ল আমার উইনএক্সপি ব্যবহারকারীদের কাছে আমার হস্তান্তর করা উচিত। আপনি কি আমার অ্যাপ্লিকেশনটির সাথে বান্ডেল মনো 2.12 এর পরামর্শ দিচ্ছেন?
কোডসইনচাওস

গতকাল আমি মনো উত্সগুলিতে দেখেছি, এবং কমপক্ষে কয়েকটি মূল অ্যাসিঙ্ক ক্লাস ( Async...Builderএবং ...Awaiter) বাকি মনো থেকে পৃথক করা খুব শক্ত। বর্তমানে আমি পুনরায় বাস্তবায়নের দিকে নজর দিচ্ছি AsyncCtpLibrary, সম্ভবত মনো থেকে কিছুটা ধার নেওয়া।
কোডসইনচওস

পুনঃ বিতরণ করার সময় AsyncCtpLibrary, আমি জানি যে এটি নীতিগতভাবে সম্ভব, তবে একটির জন্য লাইসেন্সটিতে কয়েকটি অদ্ভুত ধারা রয়েছে। তবে এখানে আমার মূল সমস্যাটি দীর্ঘমেয়াদে কী ঘটে। যদি এটি অসমর্থিত হয়ে থাকে এবং কেউ এতে কোনও বাগ ঠিক করেন না, এটি বিরক্তিকর হতে পারে।
কোডসইনচওস

2

আপনি যদি এমএস সি # 5.0 প্রকাশের পরে আপনার সফ্টওয়্যার বিতরণ শুরু করতে চান তবে আপনি অ্যাসিএনসিটিপি ব্যবহার করে বিকাশ শুরু করতে পারেন। অন্যথায় আমি আপনাকে এটি ব্যবহারের জন্য সুপারিশ করব না, কারণ এটি কেবল সিটিপি, এমনকি একটি বিটাও নয়। এটি বিটা পর্যায়ে এবং রিলিজের খুব কাছাকাছি পরিবর্তন করা যেতে পারে। এটি অস্থির ইত্যাদি হতে পারে

আপনি যদি আপনার অ্যাপ্লিকেশনটিতে সহজে অ্যাসিঙ্ক অপারেশনগুলি চালু করতে চান তবে আমি আপনাকে সুপারিশ করব রিএ্যাকটিভ এক্সটেনশন এবং উপরে নির্মিত প্রতিক্রিয়া (প্রতিক্রিয়াশীল ইউআই, ইত্যাদি), এটি কেবল বিউটিউল is

ভিএস ২০১২-র জন্য, এটিতে আমার // বিল্ড / ট্যাবলেট এমএস থেকে remember সম্মেলনে আমাকে যেভাবে দেওয়া হয়েছে ঠিক তেমন একই অ্যাসিঙ্ক সিটিপি রয়েছে।


1
আমি ভিএস2012 প্রকাশের অপেক্ষার বিষয়ে চিন্তা করি না। আমার সফ্টওয়্যারটি আলফা থেকে বের হওয়ার আগেই VS2012 প্রকাশিত হবে বলে আমি প্রত্যাশা করি। তবে একবার ভিএস2012 প্রকাশিত হওয়ার পরে, আমি .NET 4.5 কে টার্গেট করতে চাই না, যেহেতু এটি WinXP এ উপলব্ধ বলে মনে হয় না। সুতরাং মূল সমস্যাটি হ'ল। নেট 4 এ
অসিঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.