æ°ãããã¬ãŒã ã¯ãŒã¯ã§ãã§ã«ããªãã¯ãŒã«ã ãšæãå Žåã¯ãèšäºãèªãåã«ãã¹ãã«åæ Œããããšãã§ããŸãã ãªã³ã¯ ãã¹ãŠã®ãããžã§ã¯ãã³ãŒãã¯githubã§è¡šç€ºã§ããŸãã
æåã®éšåã¯æ¬¡ã®ãšããã§ãã
- .NET Coreããã³ASP.NET Coreãšã¯äœã§ããïŒ
- ã¢ããªã±ãŒã·ã§ã³äœæã®åºæ¬ãšãã®æ§é
- æ°ããè¶³å ŽèŠçŽ ã®è¿œå
- çµã¿èŸŒã¿ã®äŸåæ§æ³šå ¥ã®åºæ¬
- Azureã§ã®å±é
çšèªã§ç解ããŸãã æãäžæçãªç¹ã®1ã€ã¯ãå€ãASP.NET MVCãã¬ãŒã ã¯ãŒã¯ãšæ°ããASP.NET Coreã®é¢ä¿ãããã³.NETãš.NET Coreã®éãã§ãã æåŸããå§ããŸãããã .NET Coreã¯ãäžè¬çãªãœãããŠã§ã¢éçºãã©ãããã©ãŒã ã§ãã å®éãããã¯.NETæšæºã®å¥ã®å®è£ ã§ãïŒä»ã®å®è£ ã¯.NETãMonoã§ãïŒã ãã®å®è£ ïŒ .NET Core ïŒã®éããšæ©èœã¯æ¬¡ã®ãšããã§ãã
- ãªãŒãã³ãœãŒã¹
- ã¯ãã¹ãã©ãããã©ãŒã
- æè»ãªã€ã³ã¹ããŒã«-ã¢ããªã±ãŒã·ã§ã³å ã«é 眮ã§ããåããã·ã³ã«è€æ°ã®ããŒãžã§ã³ãé 眮ã§ããŸã
- ãã¹ãŠã®äœæ¥ã·ããªãªã¯ãã³ã³ãœãŒã«ããŒã«ã䜿çšããŠãµããŒããããŸãã
ASP.NET Coreã«é²ã¿ãŸãããã ããã¯ãMicrosoftã®æ°ããWebã¢ããªã±ãŒã·ã§ã³éçºãã¬ãŒã ã¯ãŒã¯ã§ãããæ¢åã®ASP.NET MVCãã¬ãŒã ã¯ãŒã¯ã®åèšèšã®çµæãšããŠçãŸããŸããã ASP.NET Coreã¯.NET Coreã«åºã¥ããŠããå¿ èŠã¯ãªãããšãç解ããå¿ èŠããããŸãã å€ãè¯ã.NETã«åºã¥ããŠASP.NET Coreã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã ãã®ãªãã·ã§ã³ã¯ãæ°ãããããžã§ã¯ããäœæããããã®æšæºãã€ã¢ãã°ã«ãããŸãã
ã§ã¯ãASP.NET Coreã®æ©èœãšä»¥åã®ASP.NETãšã®éãã¯äœã§ããïŒ ãããã®ããã€ãã¯æ¬¡ã®ãšããã§ãã
- å¿ èŠãªã¢ãžã¥ãŒã«ãã¢ã»ã³ããªãããè¯ãå¶åŸ¡ããèœåã ããšãã°ãIISãSystem.Web.dllãžã®ç·å¯ãªãã€ã³ãã¯ãããŸãã
- äŸåæ§æ³šå ¥ã®çµã¿èŸŒã¿æ©èœ
- ãªãŒãã³ãœãŒã¹
ããã«ãCoreã¢ããªã±ãŒã·ã§ã³ã¯ä»ã®ã¿ã€ãã®ã¢ããªã±ãŒã·ã§ã³ãšçµ±åãããŸããã ããã§ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«åŒã³åºãããMainã¡ãœãããåãæ¹æ³ã§å«ãŸããããã«ãªããWebã¡ãœãããåçŽã«èµ·åãããŸãã æå°éã®ã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } }
Statupã¯ã©ã¹ã¯ãããçšåºŠãGlobal.asaxã®æ°ããããŒãžã§ã³ãšããŠèšè¿°ã§ããŸãïŒããã¯ãASP.NETã®ä»¥åã®ããŒãžã§ã³ã§ã®ã¢ããªã±ãŒã·ã§ã³å šäœã®ã°ããŒãã«æ§æã®ããã®ã¯ã©ã¹ã§ãïŒã 倧ãŸãã«èšããšãäŸåæ§æ³šå ¥ãšãã®ãµãŒãã¹çšã®ã³ã³ãããŒãæ§æããã«ã¯ConfigureServicesã¡ãœãããå¿ èŠã§ãããèŠæ±åŠçãã€ãã©ã€ã³ãæ§æããã«ã¯Configureã¡ãœãããå¿ èŠã§ãã
å®éã®å®è£ ã«åãââããããŸããã
ãã¹ãŠã®é©æ°ãããããç解ããããã«ã.NET Coreã«åºã¥ããASP.NET Coreã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã
äœæ¥ã楜ã«ããããã«ãWebã¢ããªã±ãŒã·ã§ã³ãéžæããèªèšŒãåå¥ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãã«å€æŽããŸãã ãããã£ãŠãVisual Studioã¯ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªãã¹ãŠã®ã³ãŒããæ¢ã«çæããŸãã
ASP.NET Coreã®æ°æ©èœã詳ããèŠãŠã¿ãŸãããã éçºã®èŠ³ç¹ããèŠããšãã³ã³ã»ããå šäœã¯åããŸãŸã§ãã ãããžã§ã¯ãæ§é ã¯ãMVCãã¿ãŒã³ã«åºã¥ããŠããŸãã ããã©ã«ãã§ããŒã¿ãåŠçããã«ã¯ãEntity Frameworkã䜿çšããŸããããžãã¯ã¯ã³ã³ãããŒã©ãŒã¯ã©ã¹ã§èšè¿°ããããã¬ãŒã³ããŒã·ã§ã³ã¬ãã«ã§ã¯cshtmlæ§æ+æ°ããã¿ã°ãã«ããŒãããã䜿çšããŸãã
Program.csã¯ã©ã¹ãšStartup.csã¯ã©ã¹ã確èªããŠã¿ãŸãããããããã¯å®éã«ã¯äžèšãšåãããã«èŠããŸãã ãã¡ãããStartupã¯ã©ã¹ã¯å®å šã«ç©ºã§ã¯ãããŸããããæ§æã®èªã¿åããåºæ¬çãªãã°ã®èšå®ãã«ãŒãã£ã³ã°ãããŒã¿ããŒã¹ã¢ãã«ãžã®ãã€ã³ãã®ããã®æ©èœãæ¢ã«å«ãŸããŠããŸãã
ããŒã¿ããŒã¹ã¢ãã«ã«ããã¹ããäœæããŠåæ Œããããã®ãšã³ãã£ãã£ãè¿œå ããŸãã 次ã®ãšã³ãã£ãã£ã䜿çšããŸããäžé£ã®ãã¹ã質å-TestPackageã質åèªäœïŒãã¹ãïŒ-TestItemããã¹ãçµæ-TestResultã äŸã¯ããã«ãããŸã ã EntityFramework Coreãæ¢ã«ã»ãšãã©ã®æ©èœããµããŒãããŠãããCode First移è¡ãå®å šã«äœ¿çšã§ããããšãå¬ããæããŸãã
ããžãã¯ãè¿œå
ããŒã¿ããŒã¹ã¢ãã«ãã§ããã®ã§ãã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã®äœæãéå§ã§ããŸãã 管çé åãäœæããæãç°¡åãªæ¹æ³ã¯ãscaffoldingã¡ã«ããºã ã䜿çšããããšã§ãã ãããè¡ãã«ã¯ãã³ã³ãããŒã©ãŒãã©ã«ããŒãå³ã¯ãªãã¯ãã[è¿œå ]â[æ°ããè¶³å Žã¢ã€ãã ]ãéžæããŸãã
ãEntity Frameworkã䜿çšãããã¥ãŒãæã€MVCã³ã³ãããŒã©ãŒããéžæããŸãã ãã®ãã³ãã¬ãŒãã䜿çšãããšãç¹å®ã®ã¢ãã«ãå¶åŸ¡ããããã®ã³ã³ãããŒã©ãŒãšãã¥ãŒããã°ããäœæã§ããŸãã TestPackageãšTestItemã«å¯ŸããŠãã®ããªãã¯ãè¡ããŸãã ãã®çµæãã·ã¹ãã çšã®æ¢è£œã®ãããã¿ã€ã管çããã«ãã§ããŸããã ãããžã§ã¯ããéå§ããŠãããã®ã³ã³ãããŒã©ãŒã®ããŒãžã«ç§»åããã¢ãã¬ã¹ã®æ«å°Ÿã«ãControllerããšããåèªãä»ããã«ååãè¿œå ããã ãã§ãïŒäŸïŒ/ testpackagesïŒã ãã¡ããããã¹ãŠãå®ç§ã§ã¯ãªããããããã€ãã®ãã€ã³ããå®äºããŠãã䟿å©ã«ããå¿ èŠããããŸãã
ã¢ãã«ãšããã䜿çšããåçŽãªæ©èœãäœæãããããã¹ãã«åæ Œããããã»ã¹ã«é²ãããšãã§ããŸãã äžè¬çã«ããã¹ãŠãã·ã³ãã«ã«èŠããŸãã ãµãŒããŒã¯è³ªåãšãªãã·ã§ã³ãéä¿¡ããçããéãè¿ããŸãã ãµãŒããŒã¯ãããä¿åããŸãã ãã¹ãã®æåŸã«ãçµæã衚瀺ããŸãã ãã®åäœã®ã³ãŒããè¿œå ããŸã ã
äžè¬çã«ããã¹ãã«å¿ èŠãªãã®ã¯ãã¹ãŠæã£ãŠããŸãã
ASP.NET Coreã§ã®äŸåæ§æ³šå ¥ã®åºæ¬
ASP.NETã®æ°ããŒãžã§ã³ã®éèŠãªé©æ°ã¯ãçµã¿èŸŒã¿ã®äŸåæ§æ³šå ¥ã¡ã«ããºã ã§ããããŸãã 2016幎ã«ã¯ãäŸåé¢ä¿ãå®è£ ããã¡ã«ããºã ããã¬ãŒã ã¯ãŒã¯ã«è»¢éã§ãããšããäºå®ã«èª°ãé©ããªãã§ãããã ãã®ã¢ãããŒãã䜿çšããã«äœæãããæ·±å»ãªã¢ããªã±ãŒã·ã§ã³ã¯ã»ãšãã©ãããŸããã ASP.NET Coreã®DIã¯éåžžã«åºæ¬çã«å®è£ ãããŠããŸãããåæã«äŸåé¢ä¿ç®¡çã®åé¡ã®ã»ãšãã©ã解決ã§ããŸãã
ã³ã³ããã¯ãã¹ã¿ãŒãã¢ããã¯ã©ã¹ã®ConfigureServicesã¡ãœããã§æ§æãããŸãã äŸïŒ
// Add framework services. services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser, IdentityRole<Guid>>() .AddEntityFrameworkStores<ApplicationDbContext, Guid>() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>();
ããŒã¿ããŒã¹ã®ã³ã³ããã¹ããšIdentityãã¬ãŒã ã¯ãŒã¯ã«ã¯ãäžè¬çãªç»é²æ¹æ³ã§ã¯ãªããè¿œå ã®ç»é²æ¹æ³ãããããšã«æ°ä»ããããããŸããã ããã«ãããããæè»ã«æ§æã§ããŸãã æ¡åŒµã¡ãœããã¯ããã®ãµãŒãã¹ç»é²ã¢ãããŒãã«éåžžã«ããŸãé©åããŸãã
ãµãŒãã¹ãç»é²ããåŸãã³ãŒãïŒã³ã³ãããŒã©ãŒãªã©ïŒããååŸããæãç°¡åãªæ¹æ³ã¯ãç»é²æžã¿ã®åã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«ãã©ã¡ãŒã¿ãŒãè¿œå ããã ãã§ãã ãã®ãããªã³ã³ãããŒã©ãŒã¯ãããã©ã«ãã§scaffoldingã«ãã£ãŠäœæãããŸãã
å±éãã
å±éããæãç°¡åãªæ¹æ³ã®1ã€ã¯ãMicrosoft Azureã§ãã æãåºæ¬çãªèšå®ã§ååã«æ©èœããŸãã ãµãŒããŒãžã®ãµã€ãã®ãããã€ã¯ããããžã§ã¯ããã¡ã€ã«ã®ã³ã³ããã¹ãã¡ãã¥ãŒããæ°åã¯ãªãã¯ããã ãã§ç°¡åã§ãã
çµè«
ãå€å žçãªã.NETãã¬ãŒã ã¯ãŒã¯ã®æªæ¥ã¯ãŸã ç¥ãããŠããŸãããããã«ãããããããããå®å®ããŠãã¹ããããŠãããããããªãé·ãéååšããå¯èœæ§ããããŸãïŒããã«ã¡ã¯ãPython 2ïŒããã§ã«.NETã§å€ã-ããã14æ³ã§ãïŒã
çŸåšã®ããŒãžã§ã³ã®ãã¬ãŒã ã¯ãŒã¯ãšããŒã«ã®å®å®æ§ã¯éåžžã«æ¥œãããã®ã§ãã å®å šã§ã¯ãããŸããããäž»ãªããšã¯ãã³ãŒããå®å šã«èšè¿°ã§ããããšã§ãã Microsoftãã¬ãŒã ã¯ãŒã¯ã¯ããã€ãã®ããã«ã以åã®ããŒãžã§ã³ã«æ £ããŠããã°ã次ã®ããŒãžã§ã³ã®åå以äžãæ¢ã«ç¥ã£ãŠãããšããäºå®ã«æéãåããŸãã åªããASP.NETéçºè ã«ãšã£ãŠã¯ãããã¥ã¡ã³ãããŸã£ããèªãŸãã«Coreã§æžãå§ããããšãã§ããŸãããå€ãã®ããšã¯ç解ãããŸããã çå®ã¯ãéåžžã®ASP.NETã§æžãã®ã¯é£ããããšã§ãã圌ãã¯ããã«è¯ãããšã«æ £ããŸãã
ãŸããStackOverflowã«é¢ãã質åã®æ°ãé©ãã¹ããã®ã§ãã åºæ¬çãªããšã«é¢ä¿ãã質åã¯ãASP.NET Coreãã¬ãã£ãã¯ã¹ã§æ¢ã«å®å šã«ã°ãŒã°ã«æ€çŽ¢ãããŠããŸãã å€ãã®å Žåããããã®çãã¯Githubãšããã¬ãŒã ã¯ãŒã¯èªäœã®éçºè ã®è°è«ã«ãããŸããããã¯ã.NETã®äžçã«ãšã£ãŠãŸã£ããæ°ããäœéšã§ãã éåžžã«çãããŠé¢çœãã
ãœãŒã¹ã³ãŒã
ãã¹ããåãã