Debug vs Release মোড
Visual Studio-তে Debug এবং Release - দুটি বিল্ড কনফিগারেশন রয়েছে।
| বিষয় | Debug Mode | Release Mode |
|---|---|---|
| উদ্দেশ্য | স্টেপ-বাই-স্টেপ ডিবাগিং | ফাইনাল বিল্ড (DLL/EXE) |
| অপ্টিমাইজেশন | না (বাইনারি অপ্টিমাইজ হয় না) | হ্যাঁ (পূর্ণ অপ্টিমাইজড) |
| সিম্বলিক ইনফো | পুরোপুরি থাকে | থাকে না |
| ব্রেকপয়েন্ট | সঠিকভাবে কাজ করে | কাজ করে না |
| পারফরম্যান্স | धीম | দ্রুত |
বিল্ড কনফিগারেশন পরিবর্তন করা
- মেনু থেকে: Build → Configuration Manager → Debug বা Release সিলেক্ট করুন
- টুলবার থেকে: Solution Configurations ড্রপডাউন থেকে Debug বা Release বেছে নিন
#if DEBUG ডিরেক্টিভ
#if DEBUG ব্লকের ভিতরের কোড শুধু ডিবাগ মোডে রান করবে। রিলিজ মোডে এই কোড কম্পাইলটাইমে বাদ দেওয়া হয়।
উদাহরণ
class Program {
static void Main() {
#if DEBUG
Console.WriteLine("আপনি ডিবাগ মোডে আছেন");
Console.WriteLine($"Environment: {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}");
#endif
Console.WriteLine("এই লাইন সবসময় চলবে");
Console.ReadKey();
}
}
আউটপুট (Debug Mode-এ):
আপনি ডিবাগ মোডে আছেন এই লাইন সবসময় চলবে
আউটপুট (Release Mode-এ):
এই লাইন সবসময় চলবে
ব্যবহারের পরিস্থিতি
- লগিং বা ডিবাগ ইনফো প্রিন্ট করার জন্য
- টেস্টিং-সময় ডামি ডেটা ব্যবহার করার জন্য
- পারফরম্যান্স মেজারমেন্ট কোড যোগ করার জন্য
- ডেভেলপমেন্ট-ওনلی ফিচার সক্রিয়/নিষ্ক্রিয় করার জন্য
অন্যান্য কন্ডিশনাল কম্পাইলেশন সিম্বল
#if RELEASE
// শুধু রিলিজ মোডে
#endif
#if DEBUG && NETCOREAPP
// ডিবাগ মোডে এবং .NET Core-এ
#endif