در ویژوال استودیو میتوانید پروژهی Web Application و یا Web Site ایجاد
نمایید. شما Web Application را با گزینهی New Project ایجاد و با Open
Project باز میکنید؛ ولی Web Site را با گزینهی New Web Site ایجاد و با
Open Web Site باز مینمایید. قبل از ساخت یک پروژهی جدید وب لازم است از
تفاوتهای این دو نوع، آگاهی کسب کرده و در انتخاب نوع پروژه دقت نمایید؛
چرا که تغییر و تبدیل یک نوع به نوع دیگر، علاوه بر سختی، موجب اتلاف زمان
شده و پروژه را مستعد خطا خواهد کرد.
نکته:
برای ایجاد یک
پروژهی جدید مایکروسافت Web Application را به شما پیشنهاد میدهد. هرچند
در این مبحث، مطالبی را مبنی بر فواید Web Site معرفی خواهد کرد، ولی اکثر
توسعه دهندگان وب که Web Site را برگزیده اند سرانجام مضراتی از آن را
مییابند که سنگینی آن بیشتر از فوایدش است. برای مثال تمامی خصیصههای
(feature فیچر) ASP.net لزومآ برای وب سایت در دسترس نخواهند بود؛ مثلآ از
ویژوال استودیوی 2012 به بعد، ابزاری برای تولید پروژههای وب وجود دارد که
فقط برای Web Application در اختیار خواهد بود (برای کسب اطلاعات بیشتر
میتوانید مطلب Creating an ASP.net Web Project in Visual Studio را
مطالعه نمایید).
سناریو :
سناریویی که مبنی برا انتخاب Web Application میباشد به شرح زیر است:
· شما نیاز به استفاده از Edit And Continue در دیباگر ویژوال استودیو دارید.
· تمامی کدها، فایلها و کلاسهایی که با صفحات ASP.net مرتبط هستند، برای تست بصورت واحد و یکپارچه در نظر گرفته میشوند.
· شما برای کلاسهایی که وابسته به صفحات هستند و همچنین برای کنترلها و کلاسهای منحصر آن باید ارجاع داشته باشید.
· وابستگی در حالتی که چندین پروژهی مرتبط به هم را دارید توسط شما مشخص میشود.
· برای کل سایت در هنگام کامپایل فقط یک اسمبلی ساخته میشود.
· کنترل نام اسمبلیها و همچنین شمارهی ورژن ایجاد شدهی برای پروژه در دست شماست.
·
برای کامپایل پروژه میتوانید MSBuild و یا Team Build را انتخاب کنید؛
برای مثال میتوانید مراحل Prebuild یا Postbuild را مشخص کنید.
· نیازی به قرار دادن سورس برنامه روی سرور نیست.
سناریویی که مبنی برا انتخاب Web Site میباشد به شرح زیر است:
·
یک پروژه در بر دارندهی کدهای #C و هم کدهای Visual Basic میباشد (
درحالیکه بصورت پیشفرض در Web Application فایل پروژه بر مبنای زبان
برنامهی شما کامپایل میشود، هرچند میتوان این حالت پیشفرض را تغییر داد؛
ولی این امر میتواند اندکی مشکل باشد).
· شما میتوانید سایت ایجاد شده را بصورت Real Time توسط FTP باز نموده و آپدیت نمایید.
· برای توزیع (deploy) پروژه مجبور به کامپایل صریح آن نیستید.
· اگر پروژه را کامپایل نمایید کامپایلر به ازای هر صفحه و یا هر پوشه، یک فایل اسمبلی جداگانه خواهد ساخت.
· برای تغییر یک فایل به تنهایی میتوانید فقط آنرا تغییر داده و بر روی سرور قرار دهید.
· حتی بعد از کامپایل هم میتوانید صفحات ASP.net را بدون نیاز به کامپایل دوبارهی کل سایت تغییر داده و جایگزین نمایید.
· سورس کامل پروژه برای اجرا باید روی سرور قرار گیرد.
پروژههای Web Application پروژههای Web Site
ساختار فایل پروژه فایل برنامه (.csproj / vbproj) دربردارنده
اطلاعاتی از جمله لیست فایلها و رفرنسها پروژه به پروژه دیگر خواهد بود.
هیچ فایل برنامه ای وجود ندارد و تمامی فایل هایی که داخل پوشه
میباشند جزو فایلهای سایت شناخته میشوند.
کامپایل · شما پروژه را در سیستم خود کامپایل میکنید.
· بصورت پیشفرض کامپایل کدها در یک اسمبلی قرار میگیرد.
· سورس کدها بصورت اتوماتیک در سرور توسط Asp.net با اولین درخواست کامپایل میشوند.
(البته شما میتوانید کامپایل را در سیستم خود نیز انجام دهید)
· بصورت پیشفرض کامپایل برای هر کلاس یک اسمبلی جدا میسازد.
فضاهای
نام Namespaceها بصورت صریح در صفحات و کلاسها و کنترلها افزوده
میشود. هیچ namespace ای بصورت پیشفرض اضافه نمیشود (شما میتوانید
بصورت دستی آنها را اضافه کنید)
توزیع
اسمبلی تولید شده در مرحله کامپایل را روی سرور قرار میدهید
اکثر مراحل کامپایل توسط ابزارهای ارائه شده ویژوال استودیو انجام میشود.
کل سورس پروژه روی سرور قرار میگیرد.
اکثر مراحل کامپایل توسط ابزارهای ارائه شده ویژوال استودیو انجام میشود.
ساختار فایل پروژه:
پروژههای
Web Application از فایل پروژه ویژوال استودیو ( .csproj / .vbproj ) برای
نگهداری اطلاعات پروژه استفاده میکنند. با این امکان میتوان فایلهایی
را که در پروژه دخیل هستند و یا باید کامپایل شوند، به تفکیک مشخص کرد.
در
مورد Web Site تمامی فایلهایی که در داخل پوشهی برنامه قرار دارند، به
صورت پیش فرض جزیی از برنامه تلقی شده و کامپایل خواهند شد و برای اینکه
فایلی را بخواهید مستثنا کنید یا باید آنرا حذف کنید و یا پسوند آنرا به
نامی که توسط سرور IIS قابل شناسایی نیست تغییر دهید.
فایدهی فایل پروژه یعنی همان ( .csproj / .vbproj ) در Web Application :
میتوان
فایلی را به طور موقت از برنامه حذف کرد، بدون نگرانی از آنکه فایل بصورت
کلی حذف شود. چرا که فایل در ساختار برنامه باقیست. برای مثال اگر صفحهای
برای توزیع آماده نیست، میتوانید به راحتی آنرا از برنامه خارج کنید (
Exclude ) و برنامه را کامپایل نمایید و بعد از اینکه این صفحه هم آماده
شد، دوباره آن را وارد پروژه نمایید ( include ) که اهمیت این امر در
مواردی که از برنامههای کنترل سورس استفاده میکنید، دوچندان میشود.
فایدهی عدم استفاده از فایل پروژهی برنامه در Web Site :
شما
مجبور به کنترل و شخصی سازی ساختار فایل برنامه در ویژوال استودیو نیستید و
به راحتی هر فایل یا صفحهای را که میخواهید، با کپی کردن به پوشه و یا
حذف کردن از آن توسط فایل اکسپلورر انجام میدهید.
کامپایل:
برای
برنامههای Web Application شما بصورت معمول پروژه را Build مینمایید و
تمامی کدهای صفحات و همچنین کلاسها به صورت یک فایل اسمبلی در پوشهی bin
ذخیره میگردد.
برای Web Site شما مجبور به کامپایل دستی پروژه نیستید و
میتوانید از Batch-Compile استفاده کنید و همچنین به ازای هر صفحه و
کلاسریال شما یک فایل اسمبلی خواهید داشت.
مزایای کامپایل در Web Application :
· میتوانید از MSBuild استفاده کنید.
· میتوانید خصیصههای اسمبلی، از جمله نام و ورژن را به راحتی مدیریت نمایید.
· کامپایل قبل از توزیع برنامه این مزیت را دارد که کاربران مجبور نیستند منتظر کامپایل برنامه در سرور باشند.
· مدیریت دقیقی بر روی فایلها و ساختار برنامه و همچنین کلاسها و ارجاعات خواهید داشت.
مزایای کامپایل در Web Site :
· میتوانید هر صفحهای را که نیاز دارید بدون در نظر گرفتن آماده شدن دیگر صفحات تست و اجرا نمایید.
· آپدیت و جایگزینی فایلها به راحتی صورت میگیرد؛ چرا که اسمبلی تمام فایلها بصورت منحصر همان صفحه ایجاد خواهد شد.
·
ایجاد شدن چند اسمبلی میتواند در برخی پروژهها به نفع برنامه بوده و
performance را بالا ببرد. برای مثال در حالتیکه یک سایت با صفحات زیاد
دارید و برخی صفحات به نسبت دیگر صفحات خیلی کمتر درخواست میشوند.
نکته:
هیچ فرقی بین Web Application , و web Site از نظر performance وجود ندارد مگر درحالت ذکر شده در بالا و در سایتهای خیلی بزرگ.
توزیع : ( Deployment )
در
web Site کل فایلهای پروژه را بر روی سرور قرار میدهید؛ درحالی که در
Web Application فایلهای برنامه بصورت اسمبلیها ( .dll ) روی سرور قرار
میگیرند. همین امر میتواند در برخی حالتها مثلآ زمانی که از هاست share
شده استفاده میکنید، خیال شما را از بابت سورس برنامه مطمئن سازد.
برای Web Site نیز این مزیت وجود دارد که برای انجام تغییرات کوچک مجبور به کامپایل و آپلود دوبارهی کل پروژه نیستید.
ماخذ
گروه(ها): ASP.Net
نسخه چاپی
امتیاز ۵,۰۰ از ۵ توسط ۱۱ نفر info
مقایسه پروژه های Web Site و Web Application در Visual Studio
Rated 5.00/5 based on 11 readers reviews
علی تنها more items from: مطالب ارسالی علی تنها
مطالب مرتبط
Globalization در ASP.NET MVC - قسمت سوم
شروع کار با ASP.NET Web API 2
ایجاد صفحات راهنما برای ASP.NET Web API
توزیع پروژههای ASP.NET MVC بدون ارائه فایلهای View آن
چگونه نرم افزارهای تحت وب سریعتری داشته باشیم؟ قسمت اول
نحوه ارتقاء برنامههای موجود MVC3 به MVC4
Globalization در ASP.NET MVC
ASP.NET MVC #7
ASP.NET MVC #5
→ بررسی امکانات Bootstrap 4
نحوه ایجاد یک نقشهی سایت پویا با استفاده از قابلیت Reflection ←
# نظرات خوانندگان