ASP.NET MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ ASP.NET WebForms рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреЛрдбрд╝рдирд╛

рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ ASP.NET WebForms рдПрдкреНрд▓реАрдХреЗрд╢рди рд╣реИ рдФрд░ ASP.NET MVC рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХрд╛ рдкрддрд╛ рд╣реИ: www.my-awesome-site.com рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ MVC www.my-awesome-site.com/mvc-stuff рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕- ASP.NET рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (WebFormsApplication) рдФрд░ ASP.NET MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ (MvcApplication) рд╣реИрдВред

рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
1. WebFormsApplication рдХреЗ рд▓рд┐рдП ASP.NET MVC рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
2. MvcApplication рдкрд░ WebFormsApplication рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ
3. Application_Start рдХреЗ рд╕рдорд╛рди MvcApplication рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ
4. WebFormsApplication рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ Application_Start рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ
5. рд░реЗрдЬрд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, MvcApplication рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рджреГрд╢реНрдп рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
4. ...
5. рд▓рд╛рдн !!!



1. WebFormsApplication рдХреЗ рд▓рд┐рдП ASP.NET MVC рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде nuget рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: Get-Project WebFormsApplication | рд╕реНрдерд╛рдкрд┐рдд-рдкреИрдХреЗрдЬ AspNetMvc

2. WebFormsApplication рдореЗрдВ MvcApplication рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВред рдпрд╣ рд╕рд░рд▓ рд╣реИ - рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ ... рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ

3. Application_Start рдХреЗ рд╕рдорд╛рди MvcApplication рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ
Global.asax MvcApplication Code
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { Start(); } public static void Start(string prefix = null) { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); // let's register routs with prefix RouteConfig.RegisterRoutes(RouteTable.Routes, prefix); BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterAuth(); } } 


рдпрд╣рд╛рдБ "рдкреВрд░реНрд╡рд╕рд░реНрдЧ" рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЗрд╕реЗ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╣рдо рд░реВрдЯрдХреЙрдиреНрдлрд┐рдЧ рдХреНрд▓рд╛рд╕ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░рд░реВрдЯреНрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╡рд╣ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗред

рд░реВрдЯрдХреЙрдиреНрдлрд┐рдЧ MvcApplication Code
 public class RouteConfig { public static void RegisterRoutes(RouteCollection routes, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith("/")) { prefix += "/"; } routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: prefix + "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } 


4. WebFormsApplication рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ Application_Start рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рд╕реЗ рдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ
Application_Start Global.asax WebFormsApplication Code
 void Application_Start(object sender, EventArgs e) { // Code that runs on application startup BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterOpenAuth(); // Here we add MVC app MvcApplication.MvcApplication.Start("mvc-stuff"); } 


5. Visual Studio рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдЬрд░ рдЬреЗрдирд░реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (MVC рдХреЗ рд▓рд┐рдП рд░реЗрдЬрд░ рд╕рд┐рдВрдЧрд▓ рдлрд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВ)

6. рд░реЗрдЬрд░ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, MvcApplication рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рджреЗрдЦреЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
MvcApplication рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд░реЗрдЬрд░ рдЬреЗрдирд░реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреЗрдЯ-рдкреНрд░реЛрдЬреЗрдХреНрдЯ MvcApplication рдХреЗ рд╕рд╛рде рдирдЧреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛-рдкреИрдХреЗрдЬ рд░реЗрдЬрд╝рд░рдЬреЗрдирд░реЗрдЯрд░ред рдкреАрд╡реАрд╕реА
рдЕрдм рд╡рд╛рдВрдЫрд┐рдд рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдЧреБрдг рд╕реЗрдЯ рдХрд░реЗрдВ рдХреНрд░рд┐рдпрд╛: рдХреЛрдИ рдирд╣реАрдВ, рдХрд╕реНрдЯрдо рдЙрдкрдХрд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ: RazorGeneratorред рдЙрд╕рдХреЗ рдмрд╛рдж, ViewName.generated.cs рдирд╛рдордХ рдлрд╛рдЗрд▓реЗрдВ рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХреА рдЬрд╛рдПрдВрдЧреА

рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред

рдпрд╣рд╛рдБ рдХреБрдЫ рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ
рд░реЗрдЬрд░ рдЬрдирд░реЗрдЯрд░
RazorGenerator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ MVC рд░реЗрдЬрд╝рд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд░реЛрдХреЗрдВ
ASP.NET MVC - WebForms рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
ASP.NET MVC - рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреИрд╕реЗ рд▓реЗрдВ?
рд╣рд╛рд░реНрдордиреА рдореЗрдВ ASP.NET WebForms рдФрд░ ASP.NET MVC
рдЕрдкрдиреЗ рд╡реЗрдм рдлреЙрд░реНрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ MVC рдЬреЛрдбрд╝реЗрдВ

Source: https://habr.com/ru/post/In153387/


All Articles