.NET পোর্টফোলিও - সেরা পছন্দ জন্য স্বয়ংক্রিয় বিল্ড প্ল্যাটফর্ম? [বন্ধ]


10

আমি নেট অ্যাপ্লিকেশনগুলির মোটামুটি বড় পোর্টফোলিও বজায় রাখার সাথে জড়িত। এছাড়াও পোর্টফোলিওতে অন্যান্য প্ল্যাটফর্মগুলির শীর্ষে নির্মিত লিগ্যাসি অ্যাপ্লিকেশনগুলি রয়েছে - দেশীয় সি ++, ইসিলিপস ফর্ম ইত্যাদি etc.

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

  • সাবভারশনের বাইরে কোড টানুন, পাশাপাশি সাবভারশনে ট্যাগ তৈরি করুন
  • .NET বা অন্যান্য প্ল্যাটফর্মের জন্য অন্যান্য সংকলকগুলির জন্য এমএসবিল্ড ব্যবহার করে কোডটি তৈরি করুন
  • বর্ধিত সংস্করণ সংখ্যাগুলিতে এসেম্বলিআইনফোর ফাইলগুলির মধ্যে উঁকি দিন
  • বিল্ড / রিলিজের মধ্যে অন্তর্ভুক্ত করা উচিত নয় এমন কিছু ফাইল মুছুন
  • বিস্তৃত ফোল্ডারগুলিতে কোড প্রকাশ করে
  • ব্যাকআপ উদ্দেশ্যে জিপ কোড আপ
  • উইন্ডোজ পরিষেবা স্থাপন; শুরু করুন এবং তাদের বন্ধ করুন
  • প্রভৃতি

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

ইদানীং আমি বেশ কয়েকটি কারণে ন্যান্টের সাথে অসন্তুষ্ট হয়েছি: (১) এটির বাক্য গঠনটি কেবল ভয়াবহ - এক্সএমএল শীর্ষে প্রোগ্রামিং ভাষাগুলি বজায় রাখা সত্যিই ভয়াবহ, (২) প্রকল্পটি সম্ভবত দ্রাক্ষালতায় মারা গেছে বলে মনে হচ্ছে; ইদানীং এক টন আপডেট হয়নি এবং দেখে মনে হয় আসলেই কেউ সুপরিচয় নেই। .NET 4 এর সাথে এটি কাজ করার চেষ্টা করা হচ্ছে এই ক্রিয়াকলাপের অভাবে কিছু ব্যথা পয়েন্ট তৈরি করেছে।

সুতরাং, যে সমস্ত পটভূমি পথছাড়া, এখানে আমার প্রশ্ন। উপরের সেই তালিকার উপর ভিত্তি করে আমি যে জিনিসগুলি সম্পাদন করতে চাই তার কয়েকটি দেওয়া এবং আমি যে প্রাথমিকভাবে একটি নেট শপে থাকি, কিন্তু আমার নন-নেট প্রকল্পগুলিও তৈরি করা দরকার, ন্যান্টের কি বিকল্প আছে যা আমার বিবেচনা করা উচিত? স্যুইচিং?

আমার রাডার উপর থিংস অন্তর্ভুক্ত PowerShell (সহ বা ছাড়া psake ), MSBuild নিজেই, এবং মই দিয়া আহরণ করা । এগুলির সকলের পক্ষে মতামত রয়েছে। উদাহরণস্বরূপ, এমএসবিল্ড কি যথেষ্ট ক্ষমতাবান? আমার মনে আছে এটি বহু বছর আগে ব্যবহার করা হয়েছিল এবং এটি ন্যান্টের মতো তেমন শক্তি রাখেনি বলে মনে হয়। আমি কি সত্যিই আমার দলটিকে রিকে কেবল রেক ব্যবহার করে বিল্ড করতে শিখতে চাই? আমার পোর্টফোলিওটিতে পিন করার জন্য কি প্রজাক সত্যিই যথেষ্ট পরিপক্ক? পাওয়ারশেল কি "ধাতবটির খুব কাছাকাছি" এবং আমি নিজের বিল্ড লাইব্রেরিটি নিজের হাতে ব্যবহার করার জন্য এটি নিজের মতো করে লেখার মতো লিখে ফেলতে চাই?

আমার কি অন্যান্য সরঞ্জামগুলি বিবেচনা করা উচিত? আপনি যদি উল্লেখযোগ্য জটিলতার একটি নেট পোর্টফোলিও বজায় রাখার সাথে জড়িত থাকেন তবে আপনি কোন বিল্ড টুলটি খুঁজছেন? আপনার দলটি বর্তমানে কী ব্যবহার করে?

উত্তর:


2

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

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

আপনি নিজের অ্যাপ্লিকেশন / কার্যগুলিও লিখতে পারেন যা কোনও বিল্ডের অংশ হিসাবে চালানো যেতে পারে (কমান্ড-লাইন রানারের মাধ্যমে) এবং যা কিছু করতে চান (যেমন উইন্ডোজ প্রক্রিয়াগুলি শুরু / বন্ধ করুন)।


3

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


2

কটাক্ষপাত হাডসন এবং MSBuild একজোড়া হিসাবে। শক্তি এমএসবিল্ডের শক্তিশালী ক্ষমতা এবং হডসনের প্লাগইন সহ আসে ।

উদাহরণস্বরূপ, আপনি হডসন ব্যবহার করতে পারবেন এবং আপনার ন্যান্ট স্ক্রিপ্টগুলি চালাতে পারবেন যতক্ষণ না আপনি এমএসবিল্ডে স্থানান্তরিত হন এবং তারপরে এটি আপনার এমএসবিল্ড স্ক্রিপ্টগুলি চালাতে পারে।

বিশেষত আপনার পয়েন্টগুলিতে সম্বোধন করা:

  • সাবভার্সন এবং ট্যাগিং
  • MSBuild
  • এসেম্বলইনফোতে উঁকি মারার জন্য এসওকে জিজ্ঞাসা করা হয়েছিল , তবে সমাধানটি আপনার পছন্দ মতো নাও হতে পারে
  • এমএস বিল্ড সহজেই ফাইলগুলি মুছতে পারে
  • "স্থাপনার ফোল্ডারগুলিতে কোড প্রকাশ করুন" - আপনার বিল্ড সিস্টেমটি সেই পদক্ষেপটি এড়িয়ে যেতে পারে এবং বেশ কয়েকটি পদ্ধতি ব্যবহার করে এটি স্বয়ংক্রিয়ভাবে স্থাপন করতে পারেন। অথবা আপনি চাইলে এফটিপি করতে পারেন।
  • এমএসবিল্ড জিপ করতে পারে
  • উইন্ডোজ পরিষেবাগুলি, আবার এমএসবাইল্ড এখানে আপনার বন্ধু।

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

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

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

@ জেকোহেলহেপ: অসুবিধাটি হ'ল একই জায়গাতে অনেকগুলি সমাধান রয়েছে। দিন শেষে, হাডসন হয় সহজ এবং 100% বিনামূল্যে। আইআইআরসি, টিডির একটি জিনিস হডসনে থাকতে পারে এটি হ'ল মাল্টি এজেন্ট বিল্ডিং।
স্টিভেন এভার্স 21

2

আমি অটোমেটেড বিল্ড স্টুডিও ব্যবহার করি । আমি এ থেকে মুক্তি পেতে চাই।

আমি 100% এমএস বিল্ড বা টিম ফাউন্ডেশন বিল্ডে স্যুইচ না করার একমাত্র কারণ হ'ল স্ক্রিপ্টগুলি আজ পুরোপুরি কার্যকরভাবে পুনর্নির্মাণের জন্য ব্যয় করা হবে। স্ক্রিপ্টগুলি খুব বেশি পরিবর্তন হয় না ...

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

  • এটি স্থাপন করা সহজ (সর্বশেষ সংস্করণ: ২০১০)
  • এটি ভিজ্যুয়াল স্টুডিও এবং টিম ফাউন্ডেশন সার্ভারের সাথে সম্পূর্ণ সংহত
  • এটি এমএস বিল্ডের মতো একটি স্ট্যান্ডার্ড হয়ে উঠছে
  • এটি বিসস্পার্কের সাথে বিনামূল্যে (শুরু করার জন্য)

যেহেতু আপনি। নেট এও আছেন তাই আমি আপনাকে টিএফবি ব্যবহার করার জন্য আন্তরিকভাবে পরামর্শ দিচ্ছি।

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


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

এটি এত বিস্তৃত নয়। আপনার পরিচালন যদি দামের সংবেদনশীল হয় তবে এমএস বিল্ড একটি নিখুঁত মিল হবে। আমি কেবল এমএস বিল্ড + ক্রুজকন্ট্রোল.এনইটি-র সাথে কাজ করতাম এবং এটি দুর্দান্ত কাজ করেছিল! আমার উত্তরে এটি যোগ করবে।

@ পিয়ার 303: কৌতূহলগুলির জন্য, আপনি কেন স্বয়ংক্রিয় বিল্ড স্টুডিও থেকে মুক্তি পেতে চান?
যৌক্তিকগীত

@ পিয়ার 303: টিএফএসের ব্যয় একমাত্র উদ্বেগ নয়। আমার দোকানটি বৃহত্তর উদ্যোগের একটি অংশ এবং সেগুলি সাবভারশন এবং অন্যান্য সরঞ্জামগুলিকে মানীকৃত করেছে এবং "অ-মানক" হওয়া এবং টিএফএসের সাথে যাওয়ার কারণে রাজনৈতিক সমস্যা দেখা দেয়।
যৌক্তিকগীত

@ জেকোহেলহেপ: এটি ব্যবহার করা সহজ নয়, এটি ভিজ্যুয়াল স্টুডিওর সাথে কমপক্ষে সংহত নয় (কমপক্ষে আমার কাছে থাকা সংস্করণ) এবং এটি স্ট্যান্ডার্ড হওয়ার থেকে দূরে।


2

আমি বর্তমানে এমএসবিল্ড (> স্ক্রিপ্টগুলির 3000 লাইন) ব্যবহার করে আপনি যা করছেন (অর্থাত্ প্যাকেজিং থেকে প্যাকেজিং স্থাপনার দিকে) করছেন তা বর্তমানে করছি। সিআই ক্রুজকন্ট্রোল. নেট ব্যবহার করছে এবং আশা করছি ভবিষ্যতে আমি টিমবিল্ডে যেতে পারি। এমএসবিল্ড জটিল (এক্সএমএলে প্রোগ্রামিং) তবে এটি বেশ শক্তিশালী বিশেষত ব্যাচের প্রসেসিং এবং নির্ভরতা ট্র্যাকিং। এটি নতুন। নেট সংস্করণগুলিতে সক্রিয়ভাবে রক্ষণাবেক্ষণ এবং উন্নত এবং ভিজ্যুয়াল স্টুডিও এবং টিএফএসে বিল্ড সিস্টেমের ভিত্তি। এছাড়াও ভিজ্যুয়াল স্টুডিও প্রকল্প ফাইলগুলি আসলে এমএসবিল্ড প্রকল্প এবং আমি বিভিন্ন এক্সটেনশন পয়েন্টগুলিতে ঝুঁকতে পারি। MSBuild এক্সটেনশন প্যাকঅনেক অতিরিক্ত কাজ রয়েছে এবং আপনার নিজের কর্মক্রমে ক্রিয়াকলাপ তৈরি করা তুচ্ছভাবে সহজ। আমি এমএসবিল্ডকে একটি গুরুতর চিন্তাভাবনা দেওয়ার পরামর্শ দিচ্ছি। ইদানীং আমি পাওয়ারশেলও শিখছি এবং নির্দিষ্ট কাজগুলির জন্য বিশেষতঃ স্থাপনার পর্যায়ে যেমন সার্টিফিকেট ইনস্টল করা ও কনফিগার করা, আইআইএস ইত্যাদি সহজেই খুঁজে পাচ্ছি learning

এমএসবিল্ড প্রকল্পটি ভিজুয়ালস্টুডিওতে সম্পাদনা করুন যেমন এটি সিনট্যাক্সটি বোঝে এবং আপনাকে ইন্টেলিসেন্স দেয় e এখানে আরও কয়েকটি ভাল ইউটিলিটি রয়েছে যা এমএসবিল্ডের সাথে সহায়তা করবে।
এমএসবিল্ড লঞ্চ প্যাড - শেল এক্সটেনশনের জন্য
এমএসবিল্ড সাইডকিক্স - গ্রাফিকালি সম্পাদনা করুন, সম্পাদনা করুন এবং স্ক্রিপ্টগুলি ডিবাগ করুন।


1

সম্ভবত আপনি আপনার বিল্ড স্ক্রিপ্টটি খুব বেশি জিজ্ঞাসা করছেন এবং আপনার বিল্ড সার্ভারটি যথেষ্ট নয় - টিম সিটির সাথে, আপনার কাছে সহজেই এমন সরল স্ক্রিপ্ট থাকতে পারে যা আপনার প্রতিটি বুলেট সম্পাদন করে, যে ভাষা বা স্ট্যাক বোঝায় এবং টিমসিটি বিল্ডিং কার্যগুলি ব্যবহার করে সেটির জন্য যথাযথ হিসাবে শৃঙ্খলা জিনিস একসাথে।


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

1

আমি দৃ strongly়ভাবে TeamCity পরামর্শ দিচ্ছি, এটি কনফিগার করা এবং সেটআপ করা সহজ। Vs2008 / 2010-এর সমস্ত প্রকল্প / সমাধান ফাইলগুলি এমএসবিল্ড ফাইলগুলি প্রযুক্তিগতভাবে, তবে আপনি এমএসবিল্ড বা ন্যান্টের সাথে টিমসিটি কনফিগার করতে পারেন এমন সাধারণ কারণে এমএসবিল্ড ন্যান্টের চেয়ে বেশি পছন্দনীয়।

অবশ্যই, TeamCity আপনার জন্য ব্যয় করবে। আমি ব্যক্তিগতভাবে একটি পছন্দ দিয়েছি রেক পছন্দ করবে, কেবল কারণ রুবি সরঞ্জামগুলির সাথে ঘর্ষণ অন্যান্যগুলির সাথে তুলনা করলেও যদিও সাইজ ভাল প্রার্থী।


1
আপনার কাছে 20 টিরও কম বিল্ড কনফিগারেশন এবং 20 জনেরও কম ব্যবহারকারী থাকলে এফওয়াইআই টিমসিটি বিনামূল্যে। এছাড়াও, আপনি যদি ওপেন সোর্স প্রকল্প হন তবে আপনি নিখরচায় লাইসেন্সের জন্য তাদের কাছে আবেদন করতে পারেন them
যৌক্তিকগীত

0

আপনি কি হাডসনকে বিবেচনা করেছেন ? এটি কোনও ঝামেলার উপযুক্ত হতে পারে, যেহেতু এটি চালানোর জন্য জাভা অ্যাপ্লিকেশন সার্ভারের প্রয়োজন, তবে আমি মনে করি এটি আপনাকে আপনার বর্তমান ন্যান্ট স্ক্রিপ্টটি ব্যবহার করতে এবং অন্যান্য সরঞ্জামগুলি ব্যবহার করে তার শীর্ষে তৈরি করতে দেয়।


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

আইএমএইচও হডসন এটি ভিএস প্রকল্পগুলির সাথে সঠিকভাবে কী করে তাতে খুব সীমাবদ্ধ। চেকআউটগুলি আপনি যেভাবে প্রত্যাশা করেছেন সেভাবে চেঞ্জসেটের সাথে বাঁধা নেই এবং পর্দার আড়ালে এটি কোনও ওয়েব ইন্টারফেস এবং প্রচুর প্লাগইনগুলির মাধ্যমে আপনি তৈরি একটি ব্যাচ ফাইল চালানো ছাড়া কিছুই করছেন না। আপনি যদি এটি ভালভাবে কাজ করতে পারেন তবে এটির ধরণের প্রতিবেদন।
বিল 15
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.