مقایسه Web.config، App.config و Machine.config

دوشنبه 4 آبان 1394

در این مقاله می خواهیم تفاوت های بین این سه فایل را توضیح دهیم. همانطور که می دانید فایل های پیکربندی برای ذخیره داده هایی که مقدارهای کلیدی هستند استفاده می شوند. در هدف امنیتی این داده ها می بینید که داده به عنوان داده امن شناخته می شود زیرا آنها نمی توانند به طور مستقیم توسط برخی منابع خارجی هک شوند. بنابراین اجازه دهید با هریک از فایل های پیکربندی بیشتر آشنا شویم.

مقایسه Web.config، App.config و  Machine.config

Web.config

این یک فایل پیکربندی است که در  web application استفاده می شود و می تواند بر اساس تکنولوژی های ASP.NET و یا MVC باشد. برخی پروژه ها شامل چندین فایل web.config هستند اما در پوشه های متفاوت قرار دارند. آنها مزایای منحصر به فرد خود را دارند. شما می توانید چندین فایل web.config در هر پوشه(فولدر) بسازید که هرکدام مزایای منحصر به فردی بر اساس نیازمندی های پروژه شما دارند.

این فایل برای ذخیره سازی پیکربندی سطح برنامه مورد استفاده قرار می گیرد. گاهی اوقات تنظیمات را از machine.config ارث بری می کند و در زمان اجرا تجزیه می شود، به این معنا که اگر شما هرگونه تغییری در برنامه خود ایجاد کنید، تمام تنظیمات آن در فایل config بارگذاری می شود. شما نیازی به ایجاد فایل web.config ندارید زیرا زمانی که یک web application جدید می سازید، فایل web.config به طور اتوماتیک ایجاد می شود. ولی اگر بخواهید، می توانید web.config را به طور دستی هم ایجاد کنید.

نمونه مثال:

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
  <system.web>  
  
  </system.web>  
</configuration> 

App.config

این فایل نیز نوع به خصوصی از فایل پیکربندی است که اساسا با سرویس های ویندوز، برنامه وب، برنامه کنسول و یا با برنامه WPF و غیره مورد استفاده قرار می گیرد.

این فایل در زمان کامپایل تجزیه می شود و به این معناست که اگر شما app.config را در زمان اجرا ویرایش کنید، آنگاه نیاز دارید که application خود را برای دوباره بارگذاری تنظیمات پیکربندی در برنامه restart کنید.

زمانی که شما برنامه ای که شامل app.config باشد را اجرا کنید، در زمان کامپایل یک کپی از app.config با نام متفاوت به پوشه ساخته شده برای اجرای برنامه می رود، بنابراین به همین دلیل اگر هرنوع تغییری در app.config ایجاد شود، ما حتما نیاز به restart کردن برنامه داریم.

این فایل به طور خودکار در زمانی که برنامه را ایجاد می شود بوجود نمی آید، برای اضافه کردن این فایل باید به solution explorer رفته و Add New Item را انتخاب کنید و در آخر Application Configuration File را بزنید.

Windows application همیشه فایل App.config را در پروژه به همراه دارد.

نمونه مثال:

<?xml version="1.0"?>  
<configuration>  
    <connectionStrings>     
        <add name="MyKey"   
             connectionString="Data Source=localhost;Initial Catalog=ABC;"  
             providerName="System.Data.SqlClient"/>  
    </connectionStrings>  
</configuration> 

Machine.config

این یک نوع خاص از فایل پیکربندی می باشد و زمانی که شما visual studio را نصب می کنید در سیستم عامل ایجاد می شود. این فایل تنظیمات پیکربندی سطح ماشین را ذخیره می کند. فقط یک فایل machine.config در سیستم وجود دارد و آن در بالاترین سطح تنظیمات پیکربندی ذخیره می شود.

تنظیمات Machine.config برای تمام web application هایی که بر روی سرور ساکن هستند، اعمال می شوند. تنظیمات machine.config می تواند با تنظیمات web.config بازنویسی شود.

مسیر Machine.config

سیستم bit-32

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

سیستم 64-bit

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config

نمونه مثال:

<?xml version="1.0" encoding="UTF-8" ?>  
<!--  
    Please refer to machine.config.comments for a description and  
    the default values of each configuration section.  
  
    For a full documentation of the schema please refer to  
    http://go.microsoft.com/fwlink/?LinkId=42127  
  
    To improve performance, machine.config should contain only those  
    settings that differ from their defaults.  
-->  
<configuration>  
  <configSections>  
  </configSections>  
</configuration>

امیدواریم از این مقاله استفاده کافی برده باشید.

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید