CINXE.COM
ASP.NET Web Forms - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>ASP.NET Web Forms - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"6897a06b-7747-43e8-835e-c8ca7df1371c","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"ASP.NET_Web_Forms","wgTitle":"ASP.NET Web Forms","wgCurRevisionId":1258633047,"wgRevisionId":1258633047,"wgArticleId":57694788,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description is different from Wikidata","ASP.NET","Microsoft application programming interfaces","Microsoft free software","Microsoft Visual Studio","Template engines","Web frameworks","2002 software","Windows-only free software"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"ASP.NET_Web_Forms","wgRelevantArticleId":57694788,"wgIsProbablyEditable":true, "wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q55602973","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics" :true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.scribunto.logs","site","mediawiki.page.ready","jquery.tablesorter","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar", "ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="ASP.NET Web Forms - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/ASP.NET_Web_Forms"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=ASP.NET_Web_Forms&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/ASP.NET_Web_Forms"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-ASP_NET_Web_Forms rootpage-ASP_NET_Web_Forms skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=ASP.NET+Web+Forms" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=ASP.NET+Web+Forms" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=ASP.NET+Web+Forms" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=ASP.NET+Web+Forms" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Characteristics" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Characteristics"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Characteristics</span> </div> </a> <button aria-controls="toc-Characteristics-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Characteristics subsection</span> </button> <ul id="toc-Characteristics-sublist" class="vector-toc-list"> <li id="toc-Code-behind_model" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Code-behind_model"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Code-behind model</span> </div> </a> <ul id="toc-Code-behind_model-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Directives" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Directives"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Directives</span> </div> </a> <ul id="toc-Directives-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-User_controls" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#User_controls"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>User controls</span> </div> </a> <ul id="toc-User_controls-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Custom_controls" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Custom_controls"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>Custom controls</span> </div> </a> <ul id="toc-Custom_controls-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Rendering_technique" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Rendering_technique"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.5</span> <span>Rendering technique</span> </div> </a> <ul id="toc-Rendering_technique-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-State_management" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#State_management"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6</span> <span>State management</span> </div> </a> <ul id="toc-State_management-sublist" class="vector-toc-list"> <li id="toc-Application" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Application"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6.1</span> <span>Application</span> </div> </a> <ul id="toc-Application-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Session_state" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Session_state"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6.2</span> <span>Session state</span> </div> </a> <ul id="toc-Session_state-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-View_state" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#View_state"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6.3</span> <span>View state</span> </div> </a> <ul id="toc-View_state-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Server-side_caching" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Server-side_caching"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6.4</span> <span>Server-side caching</span> </div> </a> <ul id="toc-Server-side_caching-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Other" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Other"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6.5</span> <span>Other</span> </div> </a> <ul id="toc-Other-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Template_engine" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Template_engine"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.7</span> <span>Template engine</span> </div> </a> <ul id="toc-Template_engine-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Other_files" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Other_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.8</span> <span>Other files</span> </div> </a> <ul id="toc-Other_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Directory_structure" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Directory_structure"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.9</span> <span>Directory structure</span> </div> </a> <ul id="toc-Directory_structure-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Performance" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Performance"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Performance</span> </div> </a> <ul id="toc-Performance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ASP.NET_compared_with_Classic_ASP" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#ASP.NET_compared_with_Classic_ASP"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>ASP.NET compared with Classic ASP</span> </div> </a> <ul id="toc-ASP.NET_compared_with_Classic_ASP-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>References</span> </div> </a> <button aria-controls="toc-References-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle References subsection</span> </button> <ul id="toc-References-sublist" class="vector-toc-list"> <li id="toc-Citations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Citations"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Citations</span> </div> </a> <ul id="toc-Citations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sources" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Sources"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Sources</span> </div> </a> <ul id="toc-Sources-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">ASP.NET Web Forms</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 1 language" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-1" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">1 language</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/ASP.NET_%EC%9B%B9_%ED%8F%BC" title="ASP.NET 웹 폼 – Korean" lang="ko" hreflang="ko" data-title="ASP.NET 웹 폼" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q55602973#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/ASP.NET_Web_Forms" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:ASP.NET_Web_Forms" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/ASP.NET_Web_Forms"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/ASP.NET_Web_Forms"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/ASP.NET_Web_Forms" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/ASP.NET_Web_Forms" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&oldid=1258633047" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=ASP.NET_Web_Forms&id=1258633047&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FASP.NET_Web_Forms"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FASP.NET_Web_Forms"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=ASP.NET_Web_Forms&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=ASP.NET_Web_Forms&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q55602973" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Microsoft web application framework</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">ASP.NET Web Forms</caption><tbody><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Original author(s)</a></th><td class="infobox-data"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">2002<span class="noprint">; 22 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2002</span>)</span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="/wiki/Web_application_framework" class="mw-redirect" title="Web application framework">Web application framework</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://dotnet.microsoft.com/apps/aspnet/web-forms">dotnet<wbr />.microsoft<wbr />.com<wbr />/apps<wbr />/aspnet<wbr />/web-forms</a></span></td></tr></tbody></table> <p><b>ASP.NET Web Forms</b> is a <a href="/wiki/Web_application_framework" class="mw-redirect" title="Web application framework">web application framework</a> and one of several programming models supported by the <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> <a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> technology. Web Forms applications can be written in any <a href="/wiki/Programming_language" title="Programming language">programming language</a> which supports the <a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a>, such as <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a> or <a href="/wiki/Visual_Basic_.NET" class="mw-redirect" title="Visual Basic .NET">Visual Basic</a>. The main building blocks of Web Forms pages are <i>server controls</i>, which are reusable components responsible for rendering <a href="/wiki/HTML" title="HTML">HTML</a> markup and responding to events.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> A technique called <i>view state</i> is used to persist the <a href="/wiki/State_(computer_science)" title="State (computer science)">state</a> of server controls between normally <a href="/wiki/Stateless_protocol" title="Stateless protocol">stateless</a> <a href="/wiki/Hypertext_Transfer_Protocol" class="mw-redirect" title="Hypertext Transfer Protocol">HTTP</a> requests.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p>Web Forms was included in the original <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> 1.0 release in 2002 (see <a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">.NET Framework version history</a> and <a href="/wiki/ASP.NET#Versions" title="ASP.NET">ASP.NET version history</a>), as the first programming model available in ASP.NET. Unlike newer ASP.NET components, Web Forms is not supported by <a href="/wiki/ASP.NET_Core" title="ASP.NET Core">ASP.NET Core</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Characteristics">Characteristics</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=1" title="Edit section: Characteristics"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ASP.NET web pages, known officially as Web Forms,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> were the main building blocks for application development in ASP.NET before the introduction of MVC.<sup id="cite_ref-macdonald63_5-0" class="reference"><a href="#cite_note-macdonald63-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> There are two basic methodologies for Web Forms: a web application format and a web site format.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Web applications need to be compiled before deployment, while web sites allow the user to copy the files directly to the server without prior compilation. Web forms are contained in files with a ".aspx" extension; these files typically contain static (<a href="/wiki/XHTML" title="XHTML">X</a>)<a href="/wiki/HTML" title="HTML">HTML</a> markup or component markup. The component markup can include server-side Web Controls and User Controls that have been defined in the framework or the web page. For example, a textbox component can be defined on a page as <code><asp:textbox id='myid' runat='server'></code>, which is rendered into an html input box. Additionally, dynamic code, which runs on the server, can be placed in a page within a block <code><% -- dynamic code -- %></code>, which is similar to other Web development technologies such as <a href="/wiki/PHP" title="PHP">PHP</a>, <a href="/wiki/JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JSP</a>, and <a href="/wiki/Active_Server_Pages" title="Active Server Pages">ASP</a>. With <a href="/wiki/ASP.NET_3.5" class="mw-redirect" title="ASP.NET 3.5">ASP.NET Framework 2.0</a>, Microsoft introduced a new <i>code-behind</i> model that lets static text remain on the .aspx page while dynamic code goes into an .aspx.vb or .aspx.cs or .aspx.fs file (depending on the programming language used).<sup id="cite_ref-QuickstartAspNet_7-0" class="reference"><a href="#cite_note-QuickstartAspNet-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Code-behind_model">Code-behind model</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=2" title="Edit section: Code-behind model"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> recommends dealing with dynamic program code by using the code-behind model, which places this code in a separate file or in a specially designated script tag. Code-behind files typically have names like "<i>MyPage.aspx.cs"</i> or "<i>MyPage.aspx.vb"</i> while the page file is <i>MyPage.aspx</i> (same filename as the page file (ASPX), but with the final extension denoting the page language). This practice is automatic in <a href="/wiki/Visual_Studio" title="Visual Studio">Visual Studio</a> and other <a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDEs</a>, though the user can change the code-behind page name. Also, in the web application format, the pagename.aspx.cs is a partial class that is linked to the pagename.designer.cs file. The designer file is a file that is autogenerated from the ASPX page and allows the programmer to reference components in the ASPX page from the code-behind page without having to declare them manually, as was necessary in ASP.NET versions before version 2.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> When using this style of programming, the developer writes code to respond to different events, such as the page being loaded, or a control being clicked, rather than a procedural walkthrough of the document. </p><p>ASP.NET's code-behind model marks a departure from Classic ASP in that it encourages developers to build applications with <a href="/wiki/Separation_of_presentation_and_content" class="mw-redirect" title="Separation of presentation and content">separation of presentation and content</a> in mind. In theory, this would allow a Web designer, for example, to focus on the design markup with less potential for disturbing the programming code that drives it. This is similar to the separation of the controller from the view in <a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">model–view–controller</a> (MVC) frameworks. </p> <div class="mw-heading mw-heading3"><h3 id="Directives">Directives</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=3" title="Edit section: Directives"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <a href="/wiki/Directive_(programming)" title="Directive (programming)">directive</a> is a special instruction on how ASP.NET should process the page.<sup id="cite_ref-msdnMicrosoftSyntax_9-0" class="reference"><a href="#cite_note-msdnMicrosoftSyntax-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> The most common directive is <code><%@ Page %></code>, which can specify many attributes used by the ASP.NET page parser and compiler. </p> <div class="mw-heading mw-heading3"><h3 id="User_controls">User controls</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=4" title="Edit section: User controls"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><i><b>User controls</b></i> are encapsulations of sections of page sections that are registered and used as controls in ASP.NET. </p> <div class="mw-heading mw-heading3"><h3 id="Custom_controls">Custom controls</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=5" title="Edit section: Custom controls"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Programmers can also build <i>custom controls</i> for ASP.NET applications. Unlike user controls, these controls do not have an ASCX markup file, having all their code compiled into a <a href="/wiki/Dynamic-link_library" title="Dynamic-link library">dynamic link library (DLL)</a> file. Such custom controls can be used across multiple Web applications and <a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio 2013</a> projects. </p> <div class="mw-heading mw-heading3"><h3 id="Rendering_technique">Rendering technique</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=6" title="Edit section: Rendering technique"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>.NET uses a "visited composites" rendering technique. During compilation, the template (.aspx) file is compiled into initialization code that builds a control tree (the composite) representing the original template. Literal text goes into instances of the Literal control class, and server controls are represented by instances of a specific control class. The initialization code is combined with user-written code (usually by the assembly of multiple partial classes) and results in a class specific for the page. The page doubles as the root of the control tree. </p><p>Actual requests for the page are processed through a number of steps. First, during the initialization steps, an instance of the page class is created and the initialization code is executed. This produces the initial control tree, which is now typically manipulated by the methods of the page in the following steps. As each node in the tree is a control represented as an instance of a class, the code may change the tree structure as well as manipulate the properties/methods of the individual nodes. Finally, during the rendering step a visitor is used to visit every node in the tree, asking each node to render itself using the methods of the visitor. The resulting HTML output is sent to the client. </p><p>After the request has been processed, the instance of the page class is discarded and with it the entire control tree. This is a source of confusion among novice ASP.NET programmers who rely on the class instance members that are lost with every page request/response cycle. </p> <div class="mw-heading mw-heading3"><h3 id="State_management">State management</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=7" title="Edit section: State management"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ASP.NET applications are hosted by a <a href="/wiki/Web_server" title="Web server">Web server</a> and are accessed using the <a href="/wiki/Stateless_server" class="mw-redirect" title="Stateless server">stateless</a> <a href="/wiki/Hypertext_Transfer_Protocol" class="mw-redirect" title="Hypertext Transfer Protocol">HTTP</a> protocol. As such, if an application uses stateful interaction, it has to implement <a href="/wiki/State_management" title="State management">state management</a> on its own. ASP.NET provides various functions for state management. Conceptually, Microsoft treats "state" as <a href="/wiki/Graphical_user_interface" title="Graphical user interface">GUI</a> state. Problems may arise if an application must track "data state"; for example, a <a href="/wiki/Finite-state_machine" title="Finite-state machine">finite-state machine</a> that may be in a transient state between requests (<a href="/wiki/Lazy_evaluation" title="Lazy evaluation">lazy evaluation</a>) or takes a long time to initialize. State management in ASP.NET pages with authentication can make <a href="/wiki/Web_scraping" title="Web scraping">Web scraping</a> difficult or impossible. </p> <div class="mw-heading mw-heading4"><h4 id="Application">Application</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=8" title="Edit section: Application"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Application state is held by a collection of shared user-defined variables. These are set and initialized when the <code>Application_OnStart</code> event fires on the loading of the first instance of the application and are available until the last instance exits. Application state variables are accessed using the <code>Applications</code> collection, which provides a wrapper for the application state. Application state variables are identified by name.<sup id="cite_ref-state_10-0" class="reference"><a href="#cite_note-state-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Application is state management. </p> <div class="mw-heading mw-heading4"><h4 id="Session_state">Session state</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=9" title="Edit section: Session state"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Server-side session state is held by a collection of user-defined session variables that are persistent during a user session. These variables, accessed using the <code>Session</code> collection, are unique to each session instance. The variables can be set to be automatically destroyed after a defined time of inactivity even if the session does not end. Client-side user session is maintained by either a <a href="/wiki/HTTP_cookie" title="HTTP cookie">cookie</a> or by encoding the session ID in the URL itself.<sup id="cite_ref-state_10-1" class="reference"><a href="#cite_note-state-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p><p>ASP.NET supports three modes of persistence for server-side session variables:<sup id="cite_ref-state_10-2" class="reference"><a href="#cite_note-state-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p> <dl><dt>In-process mode</dt> <dd>The session variables are maintained within the ASP.NET <a href="/wiki/Process_(computing)" title="Process (computing)">process</a>. This is the fastest way; however, in this mode the variables are destroyed when the ASP.NET process is recycled or shut down.</dd> <dt>State server mode</dt> <dd>ASP.NET runs a separate <a href="/wiki/Windows_service" title="Windows service">Windows service</a> that maintains the state variables. Because state management happens outside the ASP.NET process, and because the ASP.NET engine accesses data using .NET Remoting, ASPState is slower than In-Process. This mode allows an ASP.NET application to be load-balanced and scaled across multiple servers. Because the state management service runs independently of ASP.NET, the session variables can persist across ASP.NET process shutdowns. However, since session state server runs as one instance, it is still one point of failure for session state. The session-state service cannot be load-balanced, and there are restrictions on types that can be stored in a session variable.</dd> <dt>SQL Server mode</dt> <dd>State variables are stored in a <a href="/wiki/Database" title="Database">database</a>, allowing session variables to be persisted across ASP.NET process shutdowns. The main advantage of this mode is that it allows the application to balance load on a server cluster, sharing sessions between servers. This is the slowest method of session state management in ASP.NET.</dd></dl> <p>ASP.NET session state enables you to store and retrieve values for a user as the user navigates ASP.NET pages in a Web application. HTTP is a stateless protocol. This means that a Web server treats each HTTP request for a page as an independent request. The server retains no knowledge of variable values that were used during previous requests. ASP.NET session state identifies requests from the same browser during a limited time window as a session, and provides a way to persist variable values for the duration of that session. By default, ASP.NET session state is enabled for all ASP.NET applications. </p><p>Alternatives to session state include the following: </p> <ul><li>Application state, which stores variables that can be accessed by all users of an ASP.NET application.</li> <li>Profile properties, which persists user values in a data store without expiring them.</li> <li>ASP.NET caching, which stores values in memory that is available to all ASP.NET applications.</li> <li>View state, which persists values in a page.</li> <li>Cookies.</li> <li>The query string and fields on an HTML form that are available from an HTTP request.</li></ul> <div class="mw-heading mw-heading4"><h4 id="View_state">View state</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=10" title="Edit section: View state"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>View state refers to the page-level state management mechanism, utilized by the HTML pages emitted by ASP.NET applications to maintain the state of the Web form controls and <a href="/wiki/GUI_widget" class="mw-redirect" title="GUI widget">widgets</a>. The state of the controls is encoded and sent to the server at every form submission in a hidden field known as <code>__VIEWSTATE</code>. The server sends back the variable so that, when the page is re-rendered, the controls render at their last state. At the server side, the application may change the viewstate, if the processing requires a change of state of any control. The states of individual controls are decoded at the server, and are available for use in ASP.NET pages using the <code>ViewState</code> collection.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p><p>The main use for this is to preserve form information across postbacks. View state is turned on by default and normally <a href="/wiki/Serialization" title="Serialization">serializes</a> the data in every control on the page regardless of whether it is actually used during a postback. This behavior can (and should) be modified, however, as View state can be disabled on a per-control, per-page, or server-wide basis. </p><p>Developers need to be wary of storing sensitive or private information in the View state of a page or control, as the <a href="/wiki/Base64" title="Base64">Base64</a> string containing the view state data can easily be de-serialized. By default, View state does not encrypt the <code>__VIEWSTATE</code> value. Encryption can be enabled on a server-wide (and server-specific) basis, allowing for a certain level of security to be maintained.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Server-side_caching">Server-side caching</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=11" title="Edit section: Server-side caching"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ASP.NET offers a "Cache" object that is shared across the application and can also be used to store various objects. The "Cache" object holds the data only for a specified amount of time. </p> <div class="mw-heading mw-heading4"><h4 id="Other">Other</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=12" title="Edit section: Other"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Other means of state management that are supported by <b>ASP.NET</b> are <a href="/wiki/HTTP_cookie" title="HTTP cookie">cookies</a>, <a href="/wiki/Web_cache" title="Web cache">caching</a>, and the <a href="/wiki/Query_string" title="Query string">query string</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Template_engine">Template engine</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=13" title="Edit section: Template engine"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>When first released, ASP.NET lacked a <a href="/wiki/Template_engine_(web)" class="mw-redirect" title="Template engine (web)">template engine</a>. Because the <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> is <a href="/wiki/Object-oriented" class="mw-redirect" title="Object-oriented">object-oriented</a> and allows for <a href="/wiki/Inheritance_(computer_science)" class="mw-redirect" title="Inheritance (computer science)">inheritance</a>, many developers would define a new base class that inherits from "<code>System.Web.UI.Page</code>", write <a href="/wiki/Method_(computer_science)" class="mw-redirect" title="Method (computer science)">methods</a> there that render HTML, and then make the pages in their application inherit from this new class. While this allows for common elements to be reused across a site, it adds complexity and mixes <a href="/wiki/Source_code" title="Source code">source code</a> with <a href="/wiki/Markup_language" title="Markup language">markup</a>. Furthermore, this method can only be visually tested by running the application – not while designing it. Other developers have used <a href="/wiki/Header_file" class="mw-redirect" title="Header file">include files</a> and other tricks to avoid having to implement the same navigation and other elements in every page. </p><p>ASP.NET 2.0 introduced the concept of <i>master pages</i>, which allow for <a href="/wiki/Web_template" class="mw-redirect" title="Web template">template</a>-based page development. A Web application can have one or more master pages, which, beginning with ASP.NET 2.0, can be nested.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Master templates have place-holder controls, called <i>ContentPlaceHolders</i> to denote where the dynamic content goes, as well as <a href="/wiki/HTML" title="HTML">HTML</a> and <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> shared across child pages. </p><p>Child pages use those ContentPlaceHolder controls, which must be mapped to the place-holder of the master page that the content page is populating. The rest of the page is defined by the shared parts of the master page, much like a <a href="/wiki/Mail_merge" title="Mail merge">mail merge</a> in a <a href="/wiki/Word_processor" title="Word processor">word processor</a>. All markup and <a href="/wiki/Server_(computing)" title="Server (computing)">server</a> controls in the content page must be placed within the ContentPlaceHolder control. </p><p>When a request is made for a content page, ASP.NET merges the output of the content page with the output of the master page, and sends the output to the user. </p><p>The master page remains fully accessible to the content page. This means that the content page may still manipulate headers, change title, configure caching, etc. If the master page exposes public properties or methods (e.g., for setting copyright notices) the content page can use these as well. </p> <div class="mw-heading mw-heading3"><h3 id="Other_files">Other files</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=14" title="Edit section: Other files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Other <a href="/wiki/File_extension" class="mw-redirect" title="File extension">file extensions</a> associated with different versions of ASP.NET include: </p> <table class="wikitable sortable" style="font-size: 85%; text-align: left; width: auto;"> <tbody><tr> <th>Extension</th> <th>Introduced in version</th> <th>Description </th></tr> <tr> <td>asax</td> <td>1.0</td> <td>This is the global application file.You can use this file to define global variables (Variable that can be accessed from any Web page in the Web application.) It is mostly used to define the overall application event related to application & session object.<a href="/w/index.php?title=Global.asax&action=edit&redlink=1" class="new" title="Global.asax (page does not exist)">Global.asax</a>, used for application-level logic<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>ascx</td> <td>1.0</td> <td>User Control, used for User Control files logic<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>ashx</td> <td>1.0</td> <td>Custom <a href="/wiki/HTTP_handler" title="HTTP handler">HTTP handlers</a> do not have a user interface. </td></tr> <tr> <td>asmx</td> <td>1.0</td> <td><a href="/wiki/Web_service" title="Web service">Web service</a> pages. From version 2.0 a Code behind page of an asmx file is placed into the app_code folder. </td></tr> <tr> <td>aspx</td> <td>1.0</td> <td>An ASP.NET Web Forms page that can contain Web controls and presentation and business logic. <a rel="nofollow" class="external free" href="http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx">http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx</a> </td></tr> <tr> <td>axd</td> <td>1.0</td> <td>When enabled in <a href="/w/index.php?title=Web.config&action=edit&redlink=1" class="new" title="Web.config (page does not exist)">web.config</a> requesting trace.axd outputs application-level <a href="/wiki/Tracing_(software)" title="Tracing (software)">tracing</a>. Also used for the special webresource.axd handler, which allows control/component developers to package a component/control complete with images, script, css, etc. for deployment in one file (an 'assembly') </td></tr> <tr> <td>browser</td> <td>2.0</td> <td>Browser capabilities files stored in <a href="/wiki/XML" title="XML">XML</a> format; introduced in version 2.0. ASP.NET 2 includes many of these by default, to support common Web browsers. These specify which browsers have which abilities, so that ASP.NET 2 can automatically customize and optimize its output accordingly. Special .browser files are available for free download to handle, for instance, the W3C Validator, so that it properly shows standards-compliant pages as being standards-compliant. Replaces the harder-to-use BrowserCaps section that was in machine.config and could be overridden in <a href="/w/index.php?title=Web.config&action=edit&redlink=1" class="new" title="Web.config (page does not exist)">web.config</a> in ASP.NET 1.x. </td></tr> <tr> <td>config</td> <td>1.0</td> <td><a href="/w/index.php?title=Web.config&action=edit&redlink=1" class="new" title="Web.config (page does not exist)">web.config</a> is the only file in a specific Web application to use this extension by default (machine.config similarly affects the entire Web server and all applications on it), however ASP.NET provides facilities to create and consume other config files. These are stored in <a href="/wiki/XML" title="XML">XML</a> format. </td></tr> <tr> <td>cs/vb/fs</td> <td>1.0</td> <td>Code files (cs indicates C#, vb indicates Visual Basic, fs indicates F#). Code behind files (see above) predominantly have the extension "<code>.aspx.cs</code>" or "<code>.aspx.vb</code>" for the two most common languages. Other code files (often containing common "library" classes) can also exist in the Web folders with the cs/vb extension. In ASP.NET 2 these should be placed inside the App_Code folder where they are dynamically compiled and available to the whole application. </td></tr> <tr> <td>cshtml</td> <td>4.1</td> <td>Views (mixed C# and HTML using <a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a> syntax) </td></tr> <tr> <td>dbml</td> <td>3.5</td> <td><a href="/wiki/Language_Integrated_Query" title="Language Integrated Query">LINQ to SQL</a> data classes file </td></tr> <tr> <td>edmx</td> <td>3.5</td> <td><a href="/wiki/ADO.NET_Entity_Framework" class="mw-redirect" title="ADO.NET Entity Framework">ADO.NET Entity Framework</a> model </td></tr> <tr> <td>master</td> <td>2.0</td> <td>Master page file. Default file name is Master1.master </td></tr> <tr> <td>resx</td> <td>1.0</td> <td>Resource files for <a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">internationalization and localization</a>. Resource files can be <i>global</i> (e.g., messages) or <i>local</i>, which means specific for one aspx or ascx file. </td></tr> <tr> <td>sitemap</td> <td>2.0</td> <td>Sitemap configuration files. Default file name is web.sitemap </td></tr> <tr> <td>skin</td> <td>2.0</td> <td>Theme skin files. </td></tr> <tr> <td>svc</td> <td>3.0</td> <td><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> service file </td></tr> <tr> <td>vbhtml</td> <td>4.1</td> <td>Views (mixed VB and HTML using <a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a> syntax) </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Directory_structure">Directory structure</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=15" title="Edit section: Directory structure"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In general, the ASP.NET directory structure can be determined by the developer's preferences. Apart from a few reserved directory names, the site can span any number of directories. The structure is typically reflected directly in the URLs. Although ASP.NET provides means for intercepting the request at any point during processing, the developer is not forced to funnel requests through a central application or front controller. </p><p>The special directory names (from ASP.NET 2.0 on) are:<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p> <dl><dt>App_Code</dt> <dd>This is the "raw code" directory. The ASP.NET server automatically compiles files (and subdirectories) in this folder into an assembly accessible in the code of every page of the site. App_Code is typically used for data access abstraction code, model code and business code. Also any site-specific http handlers and modules and Web service implementation go in this directory. As an alternative to using App_Code the developer may opt to provide a separate assembly with precompiled code.</dd> <dt>App_Data</dt> <dd>The App_Data ASP.NET Directory is the default directory for any <a href="/wiki/Database" title="Database">database</a> used by the ASP.NET Website. These databases might include Access (mdb) files or <a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">SQL Server</a> (mdf) files. The App_Data is the only directory with Write Access enabled for the ASP.NET web application.:<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup></dd> <dt>App_GlobalResources</dt> <dd>Holds resx files with localized resources available to every page of the site. This is where the ASP.NET developer typically stores localized messages, etc. used on more than one page.</dd> <dt>App_LocalResources</dt> <dd>E.g., a file called CheckOut.aspx.fr-FR.resx holds localized resources for the French version of the CheckOut.aspx page. When the UI culture is set to French, ASP.NET automatically finds and uses this file for localization.</dd> <dt>App_Offline.htm</dt> <dd>A file (not a directory) that disables the application by returning the contents of the file for any application request.</dd> <dt>App_Themes</dt> <dd>Adds a folder that holds files related to themes, which is a new ASP.NET feature that helps ensure a consistent appearance throughout a Web site and makes it easier to change the Web site's appearance when necessary.</dd> <dt>App_WebReferences</dt> <dd>holds discovery files and <a href="/wiki/Web_Services_Description_Language" title="Web Services Description Language">WSDL</a> files for references to <a href="/wiki/Web_service" title="Web service">Web services</a> to be consumed in the site.</dd> <dt>Bin</dt> <dd>Contains compiled code (<a href="/wiki/.dll" class="mw-redirect" title=".dll">.dll</a> files) for controls, components, or other code that you want to reference in your application. Any classes represented by code in the Bin folder are automatically referenced in your application.</dd></dl> <div class="mw-heading mw-heading2"><h2 id="Performance">Performance</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=16" title="Edit section: Performance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ASP.NET aims for performance benefits over other script-based technologies (including Classic ASP) by compiling the server-side code the first time it is used to one or more <a href="/wiki/Dynamic_link_library" class="mw-redirect" title="Dynamic link library">DLL</a> <a href="/wiki/Computer_file" title="Computer file">files</a> on the <a href="/wiki/Web_server" title="Web server">Web server</a>. These dll files or assemblies contain Microsoft Intermediate Language (MSIL) for running within the <a href="/wiki/Common_language_runtime" class="mw-redirect" title="Common language runtime">common language runtime</a>; this provides a performance boost over pure scripted languages and is similar to the approach used by Python and not dissimilar to <a href="/wiki/JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JavaServer Pages</a>.<sup id="cite_ref-macdonald7-8_18-0" class="reference"><a href="#cite_note-macdonald7-8-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> This compilation happens automatically the first time a page is requested (which means the developer need not perform a separate compilation step for pages). </p><p>This feature provides the ease of development offered by scripting languages with the performance benefits of a compiled binary. However, the compilation might cause a noticeable but short delay to the user when the newly edited page is first requested from the Web server, but not again unless the requested page updates further. </p><p>The ASPX and other resource files are placed in a virtual host on an <a href="/wiki/Internet_Information_Services" title="Internet Information Services">Internet Information Services</a> server (or other compatible ASP.NET servers; see Other implementations, below). The first time a client requests a page, the .NET Framework parses and compiles the file(s) into a .NET assembly and sends the response; subsequent requests are served from the DLL files. By default ASP.NET compiles the entire site in batches of 1000 files upon first request. If the compilation delay is causing problems, the batch size or the compilation strategy may be tweaked. </p><p>Developers can also choose to pre-compile their "codebehind" files before deployment, using Microsoft Visual Studio, eliminating the need for <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a> in a production environment.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> This also eliminates the need of having the source code on the Web server. It also supports pre-compile text. </p> <div class="mw-heading mw-heading2"><h2 id="ASP.NET_compared_with_Classic_ASP">ASP.NET compared with Classic ASP</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=17" title="Edit section: ASP.NET compared with Classic ASP"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ASP.NET WebForms simplifies developers' transition from <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> application development to Web development by offering the ability to build pages composed of <i><a href="/wiki/Widget_(computing)" class="mw-redirect" title="Widget (computing)">controls</a></i> similar to a Windows <a href="/wiki/User_interface" title="User interface">user interface</a>. A Web control, such as a <i>button</i> or <i>label</i>, functions in very much the same way as its Windows counterparts: code can assign its properties and respond to its events. Controls know how to render themselves: whereas Windows controls draw themselves to the screen, web controls produce segments of <a href="/wiki/HTML" title="HTML">HTML</a> and <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> that form parts of the resulting page sent to the end-user's browser. </p><p>ASP.NET WebForms encourages the programmer to develop applications using an <a href="/wiki/Event-driven_programming" title="Event-driven programming">event-driven</a> <a href="/wiki/Graphical_user_interface" title="Graphical user interface">GUI</a> model, rather than in conventional Web-<a href="/wiki/Scripting_programming_language" class="mw-redirect" title="Scripting programming language">scripting</a> environments like ASP and <a href="/wiki/PHP" title="PHP">PHP</a>. The framework combines existing technologies such as JavaScript with internal components like "<a href="/wiki/ViewState" class="mw-redirect" title="ViewState">ViewState</a>" to bring persistent (inter-request) state to the inherently <a href="/wiki/Stateless_server" class="mw-redirect" title="Stateless server">stateless</a> Web environment. </p><p>Other differences compared to <a href="/wiki/Active_Server_Pages" title="Active Server Pages">Classic ASP</a> are: </p> <ul><li>Compiled code means applications run faster with more design-time errors trapped at the development stage.</li> <li>Significantly improved run-time error handling, making use of <a href="/wiki/Exception_handling" title="Exception handling">exception handling</a> using try-catch blocks.</li> <li>Similar metaphors to Microsoft Windows applications such as controls and events.</li> <li>An extensive set of controls and class libraries, as well as user-defined controls, allow the rapid building of applications. Layout of these controls on a page is easier because most of it can be done visually in most editors.</li> <li>ASP.NET uses the multi-language abilities of the .NET <a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a>, allowing Web pages to be coded in VB.NET, C#, F#, Delphi.NET, etc.</li> <li>Ability to cache the whole page or just parts of it to improve performance.</li> <li>Ability to use the <a href="#Code-behind_model">code-behind</a> development model to separate business logic from presentation.</li> <li>Ability to use true <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented</a> design for programming pages and controls</li> <li>If an ASP.NET application <a href="/wiki/Memory_leak" title="Memory leak">leaks memory</a>, the ASP.NET runtime unloads the AppDomain hosting the erring application and reloads the application in a new AppDomain.</li> <li><a href="#Session_state">Session state</a> in ASP.NET can be saved in a <a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> database or in a separate process running on the same machine as the Web server or on a different machine. That way session values are not lost when the Web server is reset or the ASP.NET worker process is recycled.</li> <li>Versions of ASP.NET prior to 2.0 were criticized for their lack of standards compliance. The generated HTML and JavaScript sent to the client browser would not always validate against <a href="/wiki/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a>/<a href="/wiki/Ecma_International" title="Ecma International">ECMA</a> standards. In addition, the framework's browser detection feature sometimes incorrectly identified Web browsers other than Microsoft's own <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> as "downlevel" and returned HTML/JavaScript to these clients with some of the features removed, or sometimes crippled or broken. In version 2.0 however, all controls generate valid HTML 4.0, XHTML 1.0 (the default) or XHTML 1.1 output, depending on the site configuration. Detection of standards-compliant Web browsers is more robust and support for <a href="/wiki/Cascading_Style_Sheets" class="mw-redirect" title="Cascading Style Sheets">Cascading Style Sheets</a> is more extensive.</li> <li>Web Server Controls: these are controls introduced by ASP.NET WebForms for providing the UI for the Web form. These controls are state-managed controls and are <a href="/wiki/WYSIWYG" title="WYSIWYG">WYSIWYG</a> controls.</li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=18" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Citations">Citations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=19" title="Edit section: Citations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/aspnet/web-forms/what-is-web-forms">"What is Web Forms"</a>. <i>docs.microsoft.com</i>. 15 June 2023.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.microsoft.com&rft.atitle=What+is+Web+Forms&rft.date=2023-06-15&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Faspnet%2Fweb-forms%2Fwhat-is-web-forms&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/bb386448.aspx">"ASP.NET View State Overview"</a>. <i>msdn.microsoft.com</i>. 4 December 2014.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=msdn.microsoft.com&rft.atitle=ASP.NET+View+State+Overview&rft.date=2014-12-04&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb386448.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/aspnet/core/choose-aspnet-framework?view=aspnetcore-2.1">"Choose between ASP.NET and ASP.NET Core"</a>. <i>docs.microsoft.com</i>. 10 April 2024.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.microsoft.com&rft.atitle=Choose+between+ASP.NET+and+ASP.NET+Core&rft.date=2024-04-10&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Faspnet%2Fcore%2Fchoose-aspnet-framework%3Fview%3Daspnetcore-2.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFStaff2001" class="citation news cs1">Staff (November 2001). <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/ms973868.aspx#introwebforms_topic1">"Overview of ASP.NET and Web Forms"</a>. <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2011-06-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Overview+of+ASP.NET+and+Web+Forms&rft.date=2001-11&rft.au=Staff&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms973868.aspx%23introwebforms_topic1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-macdonald63-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-macdonald63_5-0">^</a></b></span> <span class="reference-text">(<a href="#CITEREFMacDonaldSzpuszta2005">MacDonald & Szpuszta 2005</a>, p. 63)</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/dd547590(v=vs.110).aspx">"Web Application Projects versus Web Site Projects in Visual Studio"</a>. 26 August 2013.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Web+Application+Projects+versus+Web+Site+Projects+in+Visual+Studio&rft.date=2013-08-26&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fdd547590%28v%3Dvs.110%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-QuickstartAspNet-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-QuickstartAspNet_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://quickstarts.asp.net/QuickStartv20/aspnet/doc/pages/codebehind.aspx">"Code Behind vs. Code Inline"</a>. <i>Microsoft .NET Framework</i>. <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101111014406/http://quickstarts.asp.net/QuickStartv20/aspnet/doc/pages/codebehind.aspx">Archived</a> from the original on 11 November 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-11-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft+.NET+Framework&rft.atitle=Code+Behind+vs.+Code+Inline&rft_id=http%3A%2F%2Fquickstarts.asp.net%2FQuickStartv20%2Faspnet%2Fdoc%2Fpages%2Fcodebehind.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="//stackoverflow.com/questions/3284710/aspx-designer-cs-how-does-it-work">"aspx.designer.cs how does it work?"</a>. <i>StackOverflow</i>. September 10, 2015.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=StackOverflow&rft.atitle=aspx.designer.cs+how+does+it+work%3F&rft.date=2015-09-10&rft_id=%2F%2Fstackoverflow.com%2Fquestions%2F3284710%2Faspx-designer-cs-how-does-it-work&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-msdnMicrosoftSyntax-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-msdnMicrosoftSyntax_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/k33801s3.aspx">"ASP.NET Web Page Syntax Overview"</a>. <i>Microsoft .NET Framework</i>. <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2010-11-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft+.NET+Framework&rft.atitle=ASP.NET+Web+Page+Syntax+Overview&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fk33801s3.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-state-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-state_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-state_10-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-state_10-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://support.microsoft.com/kb/307598">"INFO: ASP.NET State Management Overview"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-10-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=INFO%3A+ASP.NET+State+Management+Overview&rft_id=http%3A%2F%2Fsupport.microsoft.com%2Fkb%2F307598&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20071014005507/http://www.extremeexperts.com/Net/Articles/ViewState.aspx">"ViewState in ASP.NET"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.extremeexperts.com/Net/Articles/ViewState.aspx">the original</a> on 14 October 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-10-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ViewState+in+ASP.NET&rft_id=http%3A%2F%2Fwww.extremeexperts.com%2FNet%2FArticles%2FViewState.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/aa479501.aspx">"Encrypting Viewstate in ASP.NET"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2009-07-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Encrypting+Viewstate+in+ASP.NET&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Faa479501.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/en-us/library/wtxbf3hh.aspx">"ASP.NET Master Pages"</a>. <i>microsoft.com</i>. Microsoft. 4 December 2014.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=microsoft.com&rft.atitle=ASP.NET+Master+Pages&rft.date=2014-12-04&rft_id=http%3A%2F%2Fmsdn2.microsoft.com%2Fen-us%2Flibrary%2Fwtxbf3hh.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/2027ewzw%28v=vs.100%29.aspx">"Global.asax Syntax"</a>. <i>microsoft.com</i>. Microsoft.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=microsoft.com&rft.atitle=Global.asax+Syntax&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2F2027ewzw%2528v%3Dvs.100%2529.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/aa479318.aspx">"Turning an .ascx User Control into a Redistributable Custom Control"</a>. <i>microsoft.com</i>. Microsoft. 24 June 2011.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=microsoft.com&rft.atitle=Turning+an+.ascx+User+Control+into+a+Redistributable+Custom+Control&rft.date=2011-06-24&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Faa479318.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/en-us/library/ex526337.aspx">"ASP.NET Web Project Folder Structure"</a>. <i>microsoft.com</i>. Microsoft. 4 December 2014.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=microsoft.com&rft.atitle=ASP.NET+Web+Project+Folder+Structure&rft.date=2014-12-04&rft_id=http%3A%2F%2Fmsdn2.microsoft.com%2Fen-us%2Flibrary%2Fex526337.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20111027181628/http://aspnet4.com/asp-net-tutorial/asp-net-directory-structure/">"ASP.NET Directory Structure"</a>. <i>aspnet4.com</i>. Archived from <a rel="nofollow" class="external text" href="http://aspnet4.com/asp-net-tutorial/asp-net-directory-structure/">the original</a> on 2011-10-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-06-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=aspnet4.com&rft.atitle=ASP.NET+Directory+Structure&rft_id=http%3A%2F%2Faspnet4.com%2Fasp-net-tutorial%2Fasp-net-directory-structure%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> <li id="cite_note-macdonald7-8-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-macdonald7-8_18-0">^</a></b></span> <span class="reference-text">(<a href="#CITEREFMacDonaldSzpuszta2005">MacDonald & Szpuszta 2005</a>, pp. 7–8)</span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/bb398860.aspx#PerformingPrecompilation">"ASP.NET Web Site Project Precompilation Overview: Performing Precompilation"</a>. <i>Microsoft Developer Network</i>. 4 December 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">13 January</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft+Developer+Network&rft.atitle=ASP.NET+Web+Site+Project+Precompilation+Overview%3A+Performing+Precompilation&rft.date=2014-12-04&rft_id=https%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb398860.aspx%23PerformingPrecompilation&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading3"><h3 id="Sources">Sources</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=20" title="Edit section: Sources"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMacDonaldSzpuszta2005" class="citation book cs1">MacDonald, Matthew; Szpuszta, Mario (2005). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/proaspnet20inc200000macd"><i>Pro ASP.NET 2.0 in C# 2005</i></a></span> (1st ed.). Apress. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-59059-496-4" title="Special:BookSources/978-1-59059-496-4"><bdi>978-1-59059-496-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Pro+ASP.NET+2.0+in+C%23+2005&rft.edition=1st&rft.pub=Apress&rft.date=2005&rft.isbn=978-1-59059-496-4&rft.aulast=MacDonald&rft.aufirst=Matthew&rft.au=Szpuszta%2C+Mario&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fproaspnet20inc200000macd&rfr_id=info%3Asid%2Fen.wikipedia.org%3AASP.NET+Web+Forms" class="Z3988"></span></li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ASP.NET_Web_Forms&action=edit&section=21" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1237033735">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}</style><div class="side-box side-box-right plainlinks sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/60px-Wikibooks-logo-en-noslogan.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/80px-Wikibooks-logo-en-noslogan.svg.png 2x" data-file-width="400" data-file-height="400" /></span></span></div> <div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/.NET_Development_Foundation" class="extiw" title="wikibooks:.NET Development Foundation">.NET Development Foundation</a></b></i></div></div> </div> <ul><li><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/aspnet/web-forms/">Official documentation</a></li> <li><a rel="nofollow" class="external text" href="https://www.asp.net/web-forms">Web Forms on www.asp.net</a></li> <li><a rel="nofollow" class="external text" href="https://msdn.microsoft.com/en-us/library/ms973868.aspx">Introduction to ASP.NET and Web Forms</a> (an early 2001 document)</li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby=".NET" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:.NET_Framework" title="Template:.NET Framework"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:.NET_Framework" title="Template talk:.NET Framework"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:.NET_Framework" title="Special:EditPage/Template:.NET Framework"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id=".NET" style="font-size:114%;margin:0 4em"><a href="/wiki/.NET" title=".NET">.NET</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/Microsoft_.NET_strategy" title="Microsoft .NET strategy">.NET strategy</a></li> <li><a href="/wiki/List_of_.NET_libraries_and_frameworks" title="List of .NET libraries and frameworks">Libraries and frameworks</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a> (Core)</li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> <ul><li><a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">Version history</a></li></ul></li> <li><a href="/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li> <li><a href="/wiki/DotGNU" title="DotGNU">DotGNU</a></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/XNA_Framework" class="mw-redirect" title="XNA Framework">XNA Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_architecture" title="Software architecture">Architecture</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR)</li> <li><a href="/wiki/COM_Interop" title="COM Interop">COM Interop</a></li> <li><a href="/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> (FCL)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_component" title="Software component">Components</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a> <ul><li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li></ul></li> <li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> <ul><li><a class="mw-selflink selflink">Web Forms</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li> <li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li> <li><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li></ul></li> <li><a href="/wiki/Avalonia_(software_framework)" title="Avalonia (software framework)">Avalonia</a></li> <li><a href="/wiki/ClickOnce" title="ClickOnce">ClickOnce</a></li> <li><a href="/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a> (XAML)</li> <li><a href="/wiki/Language_Integrated_Query" title="Language Integrated Query">Language Integrated Query</a> (LINQ)</li> <li><a href="/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Microsoft Silverlight</a></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li> <li><a href="/wiki/Parallel_Extensions" title="Parallel Extensions">Parallel Extensions</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF) <ul><li><a href="/wiki/WCF_Data_Services" title="WCF Data Services">WCF Data Services</a></li></ul></li> <li><a href="/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a> (WinForms)</li> <li><a href="/wiki/Windows_Identity_Foundation" title="Windows Identity Foundation">Windows Identity Foundation</a> (WIF)</li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a> (WPF)</li> <li><a href="/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">Windows Workflow Foundation</a> (WF)</li> <li><a href="/wiki/.NET_Remoting" title=".NET Remoting">.NET Remoting</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_tool" title="Programming tool">Tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Decompiler" title="Decompiler">Decompilers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Reflector" title=".NET Reflector">.NET Reflector</a></li> <li><a href="/wiki/JetBrains" title="JetBrains">dotPeek</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Obfuscation_(software)" title="Obfuscation (software)">Obfuscators</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dotfuscator" title="Dotfuscator">Dotfuscator</a></li> <li><a href="/wiki/Redgate" title="Redgate">SmartAssembly</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li> <li><a href="/wiki/ILAsm" title="ILAsm">ILAsm</a></li> <li><a href="/wiki/.NET_Compiler_Platform" class="mw-redirect" title=".NET Compiler Platform">.NET Compiler Platform</a></li> <li><a href="/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a> (NGen)</li> <li><a href="/wiki/XAMLPad" class="mw-redirect" title="XAMLPad">XAMLPad</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDEs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a> <ul><li><a href="/wiki/Microsoft_Blend" title="Microsoft Blend">Blend</a></li> <li><a href="/wiki/Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Express</a></li></ul></li> <li><a href="/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li> <li><a href="/wiki/SharpDevelop" title="SharpDevelop">SharpDevelop</a></li> <li><a href="/wiki/Xamarin_Studio" class="mw-redirect" title="Xamarin Studio">Xamarin Studio</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li> <li><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></li> <li><a href="/wiki/Xamarin" title="Xamarin">Xamarin</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:.NET" title="Category:.NET">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">List</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:.NET" class="extiw" title="commons:Category:.NET">Commons</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Microsoft_development_tools" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Microsoft_development_tools" title="Template:Microsoft development tools"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Microsoft_development_tools" title="Template talk:Microsoft development tools"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Microsoft_development_tools" title="Special:EditPage/Template:Microsoft development tools"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Microsoft_development_tools" style="font-size:114%;margin:0 4em">Microsoft development tools</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Development<br />environments</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Visual_Studio_Code" title="Visual Studio Code">Code</a></li> <li><a href="/wiki/Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Express</a></li> <li><a href="/wiki/VSTS_Profiler" title="VSTS Profiler">Team System Profiler</a></li> <li><a href="/wiki/Visual_Studio_Tools_for_Applications" title="Visual Studio Tools for Applications">Tools for Applications</a></li> <li><a href="/wiki/Visual_Studio_Tools_for_Office" title="Visual Studio Tools for Office">Tools for Office</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Others</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Blend" title="Microsoft Blend">Blend</a></li> <li><a href="/wiki/Microsoft_Expression_Web" title="Microsoft Expression Web">Expression Web</a></li> <li><a href="/wiki/FxCop" title="FxCop">FxCop</a></li> <li><a href="/wiki/GW-BASIC" title="GW-BASIC">GW-BASIC</a></li> <li><a href="/wiki/Microsoft_MACRO-80" title="Microsoft MACRO-80">MACRO-80</a></li> <li><a href="/wiki/Microsoft_Macro_Assembler" title="Microsoft Macro Assembler">Macro Assembler</a></li> <li><a href="/wiki/MSBuild" title="MSBuild">MSBuild</a></li> <li><a href="/wiki/Microsoft_Pascal" title="Microsoft Pascal">Pascal</a></li> <li><a href="/wiki/QuickBASIC" title="QuickBASIC">QuickBASIC</a> <ul><li><a href="/wiki/QBasic" title="QBasic">QBasic</a></li></ul></li> <li><a href="/wiki/QuickC" title="QuickC">QuickC</a></li> <li><a href="/wiki/Microsoft_Robotics_Developer_Studio" title="Microsoft Robotics Developer Studio">Robotics Developer Studio</a></li> <li><a href="/wiki/Roslyn_(compiler)" title="Roslyn (compiler)">Roslyn</a></li> <li><a href="/wiki/Microsoft_SharePoint_Designer" title="Microsoft SharePoint Designer">SharePoint Designer</a> <ul><li><a href="/wiki/Microsoft_FrontPage" title="Microsoft FrontPage">FrontPage</a></li></ul></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic</a></li> <li><a href="/wiki/Microsoft_WebMatrix" title="Microsoft WebMatrix">WebMatrix</a></li> <li><a href="/wiki/Windows_App_SDK" title="Windows App SDK">Windows App SDK</a></li> <li><a href="/wiki/Windows_App_Studio" title="Windows App Studio">Windows App Studio</a></li> <li><a href="/wiki/Microsoft_Windows_SDK" title="Microsoft Windows SDK">Windows SDK</a> <ul><li><a href="/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li> <li><a href="/wiki/ILAsm" title="ILAsm">ILAsm</a></li> <li><a href="/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a></li> <li><a href="/wiki/WinDiff" title="WinDiff">WinDiff</a></li> <li><a href="/wiki/XAMLPad" class="mw-redirect" title="XAMLPad">XAMLPad</a></li></ul></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Languages</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Dynamics_AX" class="mw-redirect" title="Microsoft Dynamics AX">Dynamics AX</a></li> <li><a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">BASIC</a></li> <li>Visual Basic <ul><li><a href="/wiki/Visual_Basic_(classic)" title="Visual Basic (classic)">legacy</a></li> <li><a href="/wiki/Visual_Basic_.NET" class="mw-redirect" title="Visual Basic .NET">VB.NET</a></li> <li><a href="/wiki/Visual_Basic_for_Applications" title="Visual Basic for Applications">VBA</a></li> <li><a href="/wiki/VBScript" title="VBScript">VBScript</a></li></ul></li> <li><a href="/wiki/Bosque_(programming_language)" title="Bosque (programming language)">Bosque</a></li> <li><a href="/wiki/Microsoft_Visual_C%2B%2B" title="Microsoft Visual C++">Visual C++</a> <ul><li><a href="/wiki/C%2B%2B/CX" title="C++/CX">C++/CX</a></li> <li><a href="/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a></li> <li><a href="/wiki/Managed_Extensions_for_C%2B%2B" title="Managed Extensions for C++">Managed C++</a></li> <li><a href="/wiki/C%2B%2B/WinRT" title="C++/WinRT">C++/WinRT</a></li></ul></li> <li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/C/AL" title="C/AL">C/AL</a></li> <li><a href="/wiki/Dafny" title="Dafny">Dafny</a></li> <li><a href="/wiki/Dexterity_(programming_language)" title="Dexterity (programming language)">Dexterity</a></li> <li><a href="/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a></li> <li><a href="/wiki/F*_(programming_language)" title="F* (programming language)">F*</a></li> <li><a href="/wiki/Visual_FoxPro" title="Visual FoxPro">Visual FoxPro</a></li> <li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a> <ul><li><a href="/wiki/Visual_J%2B%2B" title="Visual J++">J++</a></li> <li><a href="/wiki/Visual_J_Sharp" title="Visual J Sharp">J#</a></li></ul></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> <ul><li><a href="/wiki/TypeScript" title="TypeScript">TypeScript</a></li> <li><a href="/wiki/JScript" title="JScript">JScript</a></li></ul></li> <li><a href="/wiki/IronPython" title="IronPython">IronPython</a></li> <li><a href="/wiki/IronRuby" title="IronRuby">IronRuby</a></li> <li><a href="/wiki/Lean_(proof_assistant)" title="Lean (proof assistant)">Lean</a></li> <li><a href="/wiki/P_(programming_language)" title="P (programming language)">P</a></li> <li><a href="/wiki/Microsoft_Power_Fx" title="Microsoft Power Fx">Power Fx</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li> <li><a href="/wiki/Project_Verona" title="Project Verona">Project Verona</a></li> <li><a href="/wiki/Q_Sharp" title="Q Sharp">Q#</a></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic</a></li> <li><a href="/wiki/Microsoft_Visual_Programming_Language" title="Microsoft Visual Programming Language">VPL</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">XAML</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">APIs and<br />frameworks</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Native</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_API" title="Windows API">Windows API</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">XNA</a></li> <li><a href="/wiki/DirectX" title="DirectX">DirectX</a> <ul><li><a href="/wiki/Managed_DirectX" title="Managed DirectX">Managed DirectX</a></li></ul></li> <li><a href="/wiki/Universal_Windows_Platform" title="Universal Windows Platform">UWP</a></li> <li><a href="/wiki/Xbox_Development_Kit" title="Xbox Development Kit">Xbox Development Kit</a></li> <li><a href="/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a></li> <li><a href="/wiki/WinUI" class="mw-redirect" title="WinUI">WinUI</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="/wiki/.NET" title=".NET">.NET</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> <ul><li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li> <li><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li> <li><a class="mw-selflink selflink">Web Forms</a></li></ul></li> <li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a> <ul><li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li></ul></li> <li><a href="/wiki/.NET_MAUI" class="mw-redirect" title=".NET MAUI">MAUI</a></li> <li><a href="/wiki/Windows_CardSpace" title="Windows CardSpace">CardSpace</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Communication Foundation</a></li> <li><a href="/wiki/Windows_Identity_Foundation" title="Windows Identity Foundation">Identity Foundation</a></li> <li><a href="/wiki/Language_Integrated_Query" title="Language Integrated Query">LINQ</a></li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Presentation Foundation</a></li> <li><a href="/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">Workflow Foundation</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="/wiki/Device_driver" title="Device driver">Device drivers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Windows_Driver_Kit" title="Windows Driver Kit">WDK</a></li> <li><a href="/wiki/Windows_Driver_Frameworks" title="Windows Driver Frameworks">WDF</a> <ul><li><a href="/wiki/Kernel-Mode_Driver_Framework" title="Kernel-Mode Driver Framework">KMDF</a></li> <li><a href="/wiki/User-Mode_Driver_Framework" title="User-Mode Driver Framework">UMDF</a></li></ul></li> <li><a href="/wiki/Windows_Hardware_Lab_Kit" title="Windows Hardware Lab Kit">Windows HLK</a></li> <li><a href="/wiki/Windows_Driver_Model" title="Windows Driver Model">WDM</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Database</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">SQL Server</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/SQL_Server_Express" title="SQL Server Express">Express</a></li> <li><a href="/wiki/SQL_Server_Compact" title="SQL Server Compact">Compact</a></li> <li><a href="/wiki/SQL_Server_Management_Studio" title="SQL Server Management Studio">Management Studio</a></li> <li><a href="/wiki/Business_Intelligence_Development_Studio" title="Business Intelligence Development Studio">Business Intelligence Development Studio</a></li> <li><a href="/wiki/MSDE" title="MSDE">MSDE</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">SQL services</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Analysis_Services" title="Microsoft Analysis Services">Analysis</a></li> <li><a href="/wiki/SQL_Server_Reporting_Services" title="SQL Server Reporting Services">Reporting</a></li> <li><a href="/wiki/SQL_Server_Integration_Services" title="SQL Server Integration Services">Integration</a></li> <li><a href="/wiki/SQL_Server_Notification_Services" title="SQL Server Notification Services">Notification</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Visual_FoxPro" title="Visual FoxPro">Visual FoxPro</a></li> <li><a href="/wiki/Microsoft_Access" title="Microsoft Access">Microsoft Access</a></li> <li><a href="/wiki/Access_Database_Engine" title="Access Database Engine">Access Database Engine</a></li> <li><a href="/wiki/Extensible_Storage_Engine" title="Extensible Storage Engine">Extensible Storage Engine</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Source control</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Visual_SourceSafe" title="Microsoft Visual SourceSafe">Visual SourceSafe</a></li> <li><a href="/wiki/Azure_DevOps_Server#TFVC" title="Azure DevOps Server">Team Foundation Version Control</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Testing and<br />debugging</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CodeView" title="CodeView">CodeView</a></li> <li><a href="/wiki/OneFuzz" title="OneFuzz">OneFuzz</a></li> <li><a href="/wiki/Playwright_(software)" title="Playwright (software)">Playwright</a></li> <li><a href="/wiki/Microsoft_Script_Debugger" title="Microsoft Script Debugger">Script Debugger</a></li> <li><a href="/wiki/WinDbg" title="WinDbg">WinDbg</a></li> <li><a href="/wiki/XUnit.net" title="XUnit.net">xUnit.net</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Delivery</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Active_Setup" title="Active Setup">Active Setup</a></li> <li><a href="/wiki/ClickOnce" title="ClickOnce">ClickOnce</a></li> <li><a href="/wiki/Npm_(software)" class="mw-redirect" title="Npm (software)">npm</a></li> <li><a href="/wiki/NuGet" title="NuGet">NuGet</a></li> <li><a href="/wiki/Vcpkg" title="Vcpkg">vcpkg</a></li> <li><a href="/wiki/Web_Platform_Installer" title="Web Platform Installer">Web Platform Installer</a></li> <li><a href="/wiki/Windows_Installer" title="Windows Installer">Windows Installer</a> <ul><li><a href="/wiki/WiX" title="WiX">WiX</a></li></ul></li> <li><a href="/wiki/Windows_Package_Manager" title="Windows Package Manager">Windows Package Manager</a></li> <li><a href="/wiki/Microsoft_Store" title="Microsoft Store">Microsoft Store</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Microsoft_development_tools" title="Category:Microsoft development tools">Category</a></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Web_frameworks" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Web_frameworks" title="Template:Web frameworks"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Web_frameworks" title="Template talk:Web frameworks"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Web_frameworks" title="Special:EditPage/Template:Web frameworks"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Web_frameworks" style="font-size:114%;margin:0 4em"><a href="/wiki/Web_framework" title="Web framework">Web frameworks</a></div></th></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div> <ul><li><a href="/wiki/Comparison_of_server-side_web_frameworks" title="Comparison of server-side web frameworks">Comparison</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/.NET" title=".NET">.NET</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> <ul><li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li> <li><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li> <li><a class="mw-selflink selflink">Web Forms</a></li></ul></li> <li><a href="/wiki/Blazor" title="Blazor">Blazor</a></li> <li><a href="/wiki/DotNetNuke" class="mw-redirect" title="DotNetNuke">DNN</a></li> <li><a href="/wiki/Base_One_Foundation_Component_Library" title="Base One Foundation Component Library">BFC</a></li> <li><a href="/wiki/MonoRail_(software)" title="MonoRail (software)">MonoRail</a></li> <li><a href="/wiki/Umbraco" title="Umbraco">Umbraco</a></li> <li><a href="/wiki/WebSharper" title="WebSharper">WebSharper</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CppCMS" title="CppCMS">CppCMS</a></li> <li><a href="/wiki/Drogon_(software)" title="Drogon (software)">Drogon</a></li> <li><a href="/wiki/Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Adobe_ColdFusion" title="Adobe ColdFusion">ColdFusion</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ColdBox_Platform" title="ColdBox Platform">ColdBox Platform</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CL-HTTP" title="CL-HTTP">CL-HTTP</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Haskell" title="Haskell">Haskell</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Servant_(web_framework)" title="Servant (web framework)">Servant</a></li> <li><a href="/wiki/Snap_(web_framework)" title="Snap (web framework)">Snap</a></li> <li><a href="/wiki/Yesod_(web_framework)" title="Yesod (web framework)">Yesod</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AppFuse" title="AppFuse">AppFuse</a></li> <li><a href="/wiki/Grails_(framework)" title="Grails (framework)">Grails</a></li> <li><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">GWT</a></li> <li><a href="/wiki/ICEfaces" title="ICEfaces">ICEfaces</a></li> <li><a href="/wiki/JHipster" title="JHipster">JHipster</a></li> <li><a href="/wiki/JWt_(Java_web_toolkit)" title="JWt (Java web toolkit)">JWt</a></li> <li><a href="/wiki/Jakarta_Faces#JSF_and_Ajax" title="Jakarta Faces">Mojarra</a></li> <li><a href="/wiki/Play_Framework" title="Play Framework">Play</a></li> <li><a href="/wiki/Remote_Application_Platform" title="Remote Application Platform">Remote Application Platform</a></li> <li><a href="/wiki/JBoss_Seam" title="JBoss Seam">Seam</a></li> <li><a href="/wiki/Apache_Sling" title="Apache Sling">Sling</a></li> <li><a href="/wiki/Spring_Framework#Model-view-controller_framework" title="Spring Framework">Spring</a></li> <li><a href="/wiki/Stripes_(framework)" title="Stripes (framework)">Stripes</a></li> <li><a href="/wiki/Apache_Struts" title="Apache Struts">Struts</a></li> <li><a href="/wiki/Apache_Tapestry" title="Apache Tapestry">Tapestry</a></li> <li><a href="/wiki/Vaadin" title="Vaadin">Vaadin</a></li> <li><a href="/wiki/Vert.x" title="Vert.x">Vert.x</a></li> <li><a href="/wiki/Apache_Wicket" title="Apache Wicket">Wicket</a></li> <li><a href="/wiki/WaveMaker" title="WaveMaker">WaveMaker</a></li> <li><a href="/wiki/ZK_(framework)" title="ZK (framework)">ZK</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Angular_(web_framework)" title="Angular (web framework)">Angular</a>/<a href="/wiki/AngularJS" title="AngularJS">AngularJS</a></li> <li><a href="/wiki/Backbone.js" title="Backbone.js">Backbone.js</a></li> <li><a href="/wiki/Google_Closure_Tools" title="Google Closure Tools">Closure</a></li> <li><a href="/wiki/Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a></li> <li><a href="/wiki/Ember.js" title="Ember.js">Ember.js</a></li> <li><a href="/wiki/Express.js" title="Express.js">Express.js</a></li> <li><a href="/wiki/Ext_JS" title="Ext JS">Ext JS</a></li> <li><a href="/wiki/Fastify" title="Fastify">Fastify</a></li> <li><a href="/wiki/Htmx" title="Htmx">htmx</a></li> <li><a href="/wiki/JQuery" title="JQuery">jQuery</a></li> <li><a href="/wiki/Knockout.js" class="mw-redirect" title="Knockout.js">Knockout.js</a></li> <li><a href="/wiki/Meteor_(web_framework)" title="Meteor (web framework)">Meteor</a></li> <li><a href="/wiki/MooTools" title="MooTools">MooTools</a></li> <li><a href="/wiki/NestJS" title="NestJS">NestJS</a></li> <li><a href="/wiki/Next.js" title="Next.js">Next.js</a></li> <li><a href="/wiki/Nuxt.js" title="Nuxt.js">Nuxt.js</a></li> <li><a href="/wiki/Node.js" title="Node.js">Node.js</a></li> <li><a href="/wiki/OpenUI5" title="OpenUI5">OpenUI5</a></li> <li><a href="/wiki/Prototype_JavaScript_Framework" title="Prototype JavaScript Framework">Prototype</a></li> <li><a href="/wiki/React_(software)" title="React (software)">React</a></li> <li><a href="/wiki/Remix_(web_framework)" title="Remix (web framework)">Remix</a></li> <li><a href="/wiki/Sencha_Touch" title="Sencha Touch">Sencha Touch</a></li> <li><a href="/wiki/SproutCore" title="SproutCore">SproutCore</a></li> <li><a href="/wiki/Svelte" title="Svelte">Svelte</a></li> <li><a href="/wiki/Vue.js" title="Vue.js">Vue.js</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Perl" title="Perl">Perl</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Catalyst_(software)" title="Catalyst (software)">Catalyst</a></li> <li><a href="/wiki/Dancer_(software)" title="Dancer (software)">Dancer</a></li> <li><a href="/wiki/Maypole_framework" class="mw-redirect" title="Maypole framework">Maypole</a></li> <li><a href="/wiki/Mojolicious" title="Mojolicious">Mojolicious</a></li> <li><a href="/wiki/WebGUI" title="WebGUI">WebGUI</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/PHP" title="PHP">PHP</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CakePHP" title="CakePHP">CakePHP</a></li> <li><a href="/wiki/CodeIgniter" title="CodeIgniter">CodeIgniter</a></li> <li><a href="/wiki/Drupal" title="Drupal">Drupal</a></li> <li><a href="/wiki/EZ_Publish" title="EZ Publish">eZ Publish</a></li> <li><a href="/wiki/Fat-Free_Framework" title="Fat-Free Framework">Fat-Free</a></li> <li><a href="/wiki/Neos_Flow" title="Neos Flow">Flow</a></li> <li><a href="/wiki/FuelPHP" title="FuelPHP">FuelPHP</a></li> <li><a href="/wiki/Grav_(CMS)" title="Grav (CMS)">Grav</a></li> <li><a href="/wiki/Gyroscope_(software)" title="Gyroscope (software)">Gyroscope</a></li> <li><a href="/wiki/Horde_(software)" title="Horde (software)">Horde</a></li> <li><a href="/wiki/Joomla" title="Joomla">Joomla!</a></li> <li><a href="/wiki/Laminas" title="Laminas">Laminas</a></li> <li><a href="/wiki/Laravel" title="Laravel">Laravel</a></li> <li><a href="/wiki/Li3_(software)" title="Li3 (software)">li₃</a></li> <li><a href="/wiki/Midgard_(software)" title="Midgard (software)">Midgard</a></li> <li><a href="/wiki/MODX" title="MODX">MODX</a></li> <li><a href="/wiki/Phalcon_(framework)" title="Phalcon (framework)">Phalcon</a></li> <li><a href="/wiki/PHP-Fusion" title="PHP-Fusion">PHP-Fusion</a></li> <li><a href="/wiki/PHP-Nuke" title="PHP-Nuke">PHP-Nuke</a></li> <li><a href="/wiki/Pop_PHP_Framework" title="Pop PHP Framework">Pop PHP</a></li> <li><a href="/wiki/PRADO_(framework)" title="PRADO (framework)">PRADO</a></li> <li><a href="/wiki/ProcessWire" title="ProcessWire">ProcessWire</a></li> <li><a href="/wiki/Qcodo" title="Qcodo">Qcodo</a></li> <li><a href="/wiki/Silverstripe_CMS" title="Silverstripe CMS">Silverstripe</a></li> <li><a href="/wiki/Symfony" title="Symfony">Symfony</a></li> <li><a href="/wiki/TYPO3" title="TYPO3">TYPO3</a></li> <li><a href="/wiki/WordPress" title="WordPress">WordPress</a></li> <li><a href="/wiki/XOOPS" title="XOOPS">XOOPS</a></li> <li><a href="/wiki/Yii" title="Yii">Yii</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Zope#BlueBream" title="Zope">BlueBream</a></li> <li><a href="/wiki/CherryPy" title="CherryPy">CherryPy</a></li> <li><a href="/wiki/CubicWeb" title="CubicWeb">CubicWeb</a></li> <li><a href="/wiki/Django_(web_framework)" title="Django (web framework)">Django</a></li> <li><a href="/wiki/FastAPI" title="FastAPI">FastAPI</a></li> <li><a href="/wiki/Flask_(web_framework)" title="Flask (web framework)">Flask</a></li> <li><a href="/wiki/Grok_(web_framework)" title="Grok (web framework)">Grok</a></li> <li><a href="/wiki/Nevow" class="mw-redirect" title="Nevow">Nevow</a></li> <li><a href="/wiki/Pyjs" title="Pyjs">Pyjs</a></li> <li><a href="/wiki/Pylons_project#Pylons_Framework" title="Pylons project">Pylons</a></li> <li><a href="/wiki/Pylons_project#Pyramid" title="Pylons project">Pyramid</a></li> <li><a href="/wiki/Quixote_(web_framework)" title="Quixote (web framework)">Quixote</a></li> <li><a href="/wiki/TACTIC_(web_framework)" title="TACTIC (web framework)">TACTIC</a></li> <li><a href="/wiki/Tornado_(web_server)" title="Tornado (web server)">Tornado</a></li> <li><a href="/wiki/TurboGears" title="TurboGears">TurboGears</a></li> <li><a href="/wiki/Web2py" title="Web2py">web2py</a></li> <li><a href="/wiki/Zope#Zope_2" title="Zope">Zope 2</a></li> <li><i><a href="/wiki/Category:Python_(programming_language)_web_frameworks" title="Category:Python (programming language) web frameworks">more</a></i>...</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Merb" title="Merb">Merb</a></li> <li><a href="/wiki/Padrino_(web_framework)" title="Padrino (web framework)">Padrino</a></li> <li><a href="/wiki/Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a></li> <li><a href="/wiki/Sinatra_(software)" title="Sinatra (software)">Sinatra</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Rocket_(web_framework)" title="Rocket (web framework)">Rocket</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Lift_(web_framework)" title="Lift (web framework)">Lift</a></li> <li><a href="/wiki/Play_Framework" title="Play Framework">Play</a></li> <li><a href="/wiki/Scalatra" title="Scalatra">Scalatra</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AIDA/Web" title="AIDA/Web">AIDA/Web</a></li> <li><a href="/wiki/Seaside_(software)" title="Seaside (software)">Seaside</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other languages</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Oracle_Application_Express" title="Oracle Application Express">Application Express</a> (<a href="/wiki/PL/SQL" title="PL/SQL">PL/SQL</a>)</li> <li><a href="/wiki/Grails_(framework)" title="Grails (framework)">Grails</a> (<a href="/wiki/Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a>)</li> <li><a href="/wiki/OpenACS" class="mw-redirect" title="OpenACS">OpenACS</a> (<a href="/wiki/Tcl" title="Tcl">Tcl</a>)</li> <li><a href="/wiki/Phoenix_(web_framework)" title="Phoenix (web framework)">Phoenix</a> (<a href="/wiki/Elixir_(programming_language)" title="Elixir (programming language)">Elixir</a>)</li> <li><a href="/wiki/Shiny_(web_framework)" title="Shiny (web framework)">Shiny (web framework)</a> (<a href="/wiki/R_(programming_language)" title="R (programming language)">R</a>)</li> <li><a href="/wiki/SproutCore" title="SproutCore">SproutCore</a> (<a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>-<a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>)</li> <li><a href="/wiki/Yaws_(web_server)" title="Yaws (web server)">Yaws</a> (<a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>)</li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐fb7ms Cached time: 20241124165123 Cache expiry: 544126 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.491 seconds Real time usage: 0.651 seconds Preprocessor visited node count: 2256/1000000 Post‐expand include size: 110015/2097152 bytes Template argument size: 1880/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 3/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 87090/5000000 bytes Lua time usage: 0.280/10.000 seconds Lua memory usage: 6412329/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 513.640 1 -total 36.94% 189.764 1 Template:Reflist 25.09% 128.854 16 Template:Cite_web 21.07% 108.248 7 Template:Navbox 18.35% 94.272 1 Template:.NET_Framework 14.94% 76.735 1 Template:Short_description 13.85% 71.156 1 Template:Infobox_software 12.92% 66.348 1 Template:Infobox 8.83% 45.377 2 Template:Pagetype 5.90% 30.320 2 Template:Harv --> <!-- Saved in parser cache with key enwiki:pcache:idhash:57694788-0!canonical and timestamp 20241124165123 and revision id 1258633047. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=ASP.NET_Web_Forms&oldid=1258633047">https://en.wikipedia.org/w/index.php?title=ASP.NET_Web_Forms&oldid=1258633047</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:ASP.NET" title="Category:ASP.NET">ASP.NET</a></li><li><a href="/wiki/Category:Microsoft_application_programming_interfaces" title="Category:Microsoft application programming interfaces">Microsoft application programming interfaces</a></li><li><a href="/wiki/Category:Microsoft_free_software" title="Category:Microsoft free software">Microsoft free software</a></li><li><a href="/wiki/Category:Microsoft_Visual_Studio" title="Category:Microsoft Visual Studio">Microsoft Visual Studio</a></li><li><a href="/wiki/Category:Template_engines" title="Category:Template engines">Template engines</a></li><li><a href="/wiki/Category:Web_frameworks" title="Category:Web frameworks">Web frameworks</a></li><li><a href="/wiki/Category:2002_software" title="Category:2002 software">2002 software</a></li><li><a href="/wiki/Category:Windows-only_free_software" title="Category:Windows-only free software">Windows-only free software</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 20 November 2024, at 19:45<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=ASP.NET_Web_Forms&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-nfzrr","wgBackendResponseTime":149,"wgPageParseReport":{"limitreport":{"cputime":"0.491","walltime":"0.651","ppvisitednodes":{"value":2256,"limit":1000000},"postexpandincludesize":{"value":110015,"limit":2097152},"templateargumentsize":{"value":1880,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":3,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":87090,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 513.640 1 -total"," 36.94% 189.764 1 Template:Reflist"," 25.09% 128.854 16 Template:Cite_web"," 21.07% 108.248 7 Template:Navbox"," 18.35% 94.272 1 Template:.NET_Framework"," 14.94% 76.735 1 Template:Short_description"," 13.85% 71.156 1 Template:Infobox_software"," 12.92% 66.348 1 Template:Infobox"," 8.83% 45.377 2 Template:Pagetype"," 5.90% 30.320 2 Template:Harv"]},"scribunto":{"limitreport-timeusage":{"value":"0.280","limit":"10.000"},"limitreport-memusage":{"value":6412329,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n [\"CITEREFMacDonaldSzpuszta2005\"] = 1,\n [\"CITEREFStaff2001\"] = 1,\n}\ntemplate_list = table#1 {\n [\".NET Framework\"] = 1,\n [\"Cite book\"] = 1,\n [\"Cite news\"] = 1,\n [\"Cite web\"] = 16,\n [\"Harv\"] = 2,\n [\"Infobox software\"] = 1,\n [\"MS DevTools\"] = 1,\n [\"Reflist\"] = 1,\n [\"Release date and age\"] = 1,\n [\"Short description\"] = 1,\n [\"URL\"] = 1,\n [\"Web frameworks\"] = 1,\n [\"Wikibooks\"] = 1,\n}\narticle_whitelist = table#1 {\n}\n"},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-fb7ms","timestamp":"20241124165123","ttl":544126,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"ASP.NET Web Forms","url":"https:\/\/en.wikipedia.org\/wiki\/ASP.NET_Web_Forms","sameAs":"http:\/\/www.wikidata.org\/entity\/Q55602973","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q55602973","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2018-06-16T08:11:24Z","dateModified":"2024-11-20T19:45:58Z","headline":"web application framework"}</script> </body> </html>