Web.config ফাইলটি একটি XML ফাইল যা ASP.Net অ্যাপ্লিকেশনে বিভিন্ন কনফিগারেশন সেটিংস সংরক্ষণ করে। এটি ASP.Net অ্যাপ্লিকেশনটির আচরণ কাস্টমাইজ করতে ব্যবহৃত হয়, যেমন ডেটাবেস কনফিগারেশন, সিকিউরিটি সেটিংস, রাউটিং, লগিং, এবং আরও অনেক কিছু। Web.config ফাইলটি সাধারণত অ্যাপ্লিকেশনের রুট ডিরেক্টরিতে থাকে এবং ASP.Net এর সব সংস্করণে ব্যবহৃত হয়।
Web.config ফাইলের ভূমিকা
Web.config ফাইলটি ASP.Net অ্যাপ্লিকেশনের সেটিংস কনফিগার করে যা ডেভেলপারদের অ্যাপ্লিকেশনটির কার্যকলাপ নিয়ন্ত্রণ করতে সাহায্য করে। এটি বিভিন্ন ধরনের কনফিগারেশন তথ্য সংরক্ষণ করে, যেমন:
- কননেকশন স্ট্রিংস (Connection Strings)
- সিকিউরিটি সেটিংস (Authentication, Authorization)
- এপিআই কনফিগারেশন (API Settings)
- এপ্লিকেশন সেটিংস (Application Settings)
- অ্যাপ্লিকেশন সেকশন কনফিগারেশন (Custom Configuration Sections)
Web.config ফাইলের মৌলিক স্ট্রাকচার
Web.config ফাইলটি একটি XML ডকুমেন্ট, যেখানে একাধিক কনফিগারেশন সেকশন থাকে। নীচে একটি সাধারণ Web.config ফাইলের উদাহরণ:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="AppName" value="MyApp"/>
<add key="AppVersion" value="1.0"/>
</appSettings>
<connectionStrings>
<add name="MyDB" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.8"/>
<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="30"/>
</authentication>
<authorization>
<allow users="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
<system.net>
<mailSettings>
<smtp from="no-reply@example.com">
<network host="smtp.example.com" port="587" userName="user" password="password"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Web.config ফাইলের বিভিন্ন সেকশন
1. appSettings সেকশন
appSettings সেকশনটি অ্যাপ্লিকেশনের কাস্টম কনফিগারেশন ভ্যালু সংরক্ষণ করার জন্য ব্যবহৃত হয়। এখানে আপনি সহজে অ্যাপ্লিকেশনের বিভিন্ন কনফিগারেশন সেটিংস যেমন নাম, সংস্করণ, বা কাস্টম কনফিগারেশন ভ্যালু সংরক্ষণ করতে পারেন।
<appSettings>
<add key="AppName" value="MyApp"/>
<add key="AppVersion" value="1.0"/>
</appSettings>
2. connectionStrings সেকশন
connectionStrings সেকশনটি ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য ব্যবহার হয়। এখানে আপনি ডেটাবেসের সার্ভার, ইউজারনেম, পাসওয়ার্ড এবং অন্যান্য সংযোগ তথ্য সংরক্ষণ করতে পারেন।
<connectionStrings>
<add name="MyDB" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient"/>
</connectionStrings>
3. system.web সেকশন
এটি ASP.Net অ্যাপ্লিকেশনের জন্য বিভিন্ন গুরুত্বপূর্ণ কনফিগারেশন সেকশন, যেমন authentication, authorization, compilation, custom errors, ইত্যাদি ধারণ করে।
- authentication: এটি অ্যাপ্লিকেশনের প্রমাণীকরণ কনফিগারেশন নির্ধারণ করে। উদাহরণস্বরূপ, আপনি Forms authentication বা Windows authentication ব্যবহার করতে পারেন।
<authentication mode="Forms">
<forms loginUrl="~/Login" timeout="30"/>
</authentication>
- authorization: এটি অনুমোদন বা অ্যাক্সেস নিয়ন্ত্রণ পরিচালনা করে। এটি নির্ধারণ করে কে কী রিসোর্স অ্যাক্সেস করতে পারবে।
<authorization>
<allow users="Admin"/>
<deny users="*"/>
</authorization>
4. system.net সেকশন
এই সেকশনটি ইমেল সার্ভিস কনফিগারেশন যেমন SMTP সেটিংস সংরক্ষণ করতে ব্যবহৃত হয়।
<system.net>
<mailSettings>
<smtp from="no-reply@example.com">
<network host="smtp.example.com" port="587" userName="user" password="password"/>
</smtp>
</mailSettings>
</system.net>
5. customSections সেকশন
কাস্টম কনফিগারেশন সেকশন ব্যবহারকারীরা কনফিগারেশন ফাইলে তাদের নিজস্ব সেকশন যোগ করতে পারেন। এটি ডেভেলপারদের নিজস্ব কনফিগারেশন মান সংরক্ষণ করতে সাহায্য করে।
<configuration>
<configSections>
<section name="myCustomSection" type="Namespace.MyCustomSection, MyAssembly" />
</configSections>
</configuration>
Web.config ফাইলের অন্যান্য গুরুত্বপূর্ণ সেটিংস
1. customErrors
এটি অ্যাপ্লিকেশনের ত্রুটি (error) সঠিকভাবে পরিচালনা করতে সাহায্য করে। আপনি On অথবা Off নির্বাচন করতে পারেন এবং কাস্টম ত্রুটি পৃষ্ঠা তৈরি করতে পারেন।
<system.web>
<customErrors mode="On" defaultRedirect="ErrorPage.html">
<error statusCode="404" redirect="PageNotFound.html"/>
</customErrors>
</system.web>
2. httpRuntime
এটি অ্যাপ্লিকেশনের HTTP রিকোয়েস্ট সেটিংস কনফিগার করে, যেমন টাইমআউট এবং অন্যান্য সেটিংস।
<system.web>
<httpRuntime maxRequestLength="4096" executionTimeout="110"/>
</system.web>
3. compilation
এটি অ্যাপ্লিকেশনের কোড কম্পাইলেশন সেটিংস কনফিগার করে, যেমন ডিবাগিং মোড (debug mode) সক্রিয় বা নিষ্ক্রিয় করা।
<system.web>
<compilation debug="true" targetFramework="4.8"/>
</system.web>
সারমর্ম
Web.config ফাইল হল ASP.Net অ্যাপ্লিকেশনের জন্য একটি অত্যন্ত গুরুত্বপূর্ণ কনফিগারেশন ফাইল। এটি ডেটাবেস কনফিগারেশন, প্রমাণীকরণ, অনুমোদন, ইমেল সেটিংস, এবং অন্যান্য অ্যাপ্লিকেশন নির্দিষ্ট কনফিগারেশন সংরক্ষণ করে। ডেভেলপাররা সহজেই এই ফাইলটির মাধ্যমে অ্যাপ্লিকেশনের কাজ কাস্টমাইজ এবং কনফিগার করতে পারেন, যাতে তাদের অ্যাপ্লিকেশনটি নিরাপদ, কার্যকর, এবং ভালভাবে পরিচালিত হয়।