Lessons in this course (10)

1. Project types and folder structure

Basic★ Must knowLesson 1 of 10

Web Site project (File → New → Web Site): no project file; every .cs file compiled dynamically on the server; App_Code for classes. Web Application project (preferred for real apps): a .csproj, compiled into one DLL in bin, better for source control and builds.

text
ShopWeb/                        (ASP.NET Web Application, .NET Framework 4.8)
├── App_Code/                   shared classes compiled dynamically (Web Site projects mainly)
├── App_Data/                   local data files (.mdf, XML) — not served to browsers
├── App_GlobalResources/        .resx strings for localisation (whole app)
├── App_LocalResources/         .resx per page
├── App_Start/                  startup classes: RouteConfig, BundleConfig, IdentityConfig
├── App_Themes/                 themes: .skin and .css files per theme
├── Account/                    Login.aspx, Register.aspx (Identity/Membership template)
├── bin/                        compiled assemblies (YourApp.dll) and references
├── Content/                    CSS
├── Scripts/                    JavaScript (jQuery, Bootstrap)
├── Controls/                   user controls (.ascx)
├── Admin/                      pages protected by role (web.config <authorization> per folder)
├── Default.aspx                markup (HTML + server controls)
├── Default.aspx.cs             code-behind (partial class Default : Page)
├── Default.aspx.designer.cs    auto-generated control field declarations
├── Site.Master (+ .cs)         master page layout
├── Global.asax (+ .cs)         application events
├── Web.config                  configuration (connection strings, auth, modules, custom errors)
├── Web.Debug.config / Web.Release.config   config transforms for publishing
└── packages.config             NuGet packages (older style)

Folders starting with App_ are special: IIS/ASP.NET blocks direct browser access to them.