çµæïŒ
-ãœãŒã¹ãèŠãããšã«èå³ããã人ã®ããã«githubã§äžŠã¹æ¿ããŸã
-äœãèµ·ãã£ããã«èå³ãããããå¥ã®è«ççãªã¯ãšã¹ãã«æéãè²»ãã人ã®ããã®ã¯ãšã¹ããžã®ãªã³ã¯ ã

ç«ã¯ããããžã§ã¯ãã®äœæããå±éãŸã§ã®å®å šãªããã»ã¹ã説æããŠããŸãã
åææ¡ä»¶
ã»ãšãã©ãã¹ãŠã®IDEãŸãã¯ããã¹ããšãã£ã¿ãŒã¯ãASP.NET Coreããã³Angular2ã§ã®äœæ¥ã«é©ããŠããŸãã ãã¡ãããASP.NETã®å®å šãªãããã°ã«ã¯Visual Studioãå¿ èŠã§ãããéçºçšã®æ°ããã³ã¢ããŒãžã§ã³ã®ãªãªãŒã¹ã§ã¯å¿ èŠãããŸãããSublime\ Atom \ ...ã®ã³ãŒããæäœããã³ãã³ãã©ã€ã³ããã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããŸãïŒSDKã®ã€ã³ã¹ããŒã«åŸïŒã
dotnet run
ãœãŒã¹ã³ãŒããã€ã³ã¹ããŒã©ãŒãã€ã³ã¿ãŒãã§ã€ã¹ã³ãã³ãã©ã€ã³ã®ããã¥ã¡ã³ãNETããã³SDKã¯ã次ã®å Žæã«ãããŸãã
dotnet.github.io
ããã«ããããã¯ãã¹ãŠWindowsã ãã§ãªããMaxãLinuxãDockerã§ã䜿çšã§ããããã«ãªããŸããã
å€ãã®äººãèŠããšãã«ããããèªç¥çäžååé³ãçµéšããã§ããã
sudo apt-get install dotnet-dev-1.0.0-preview2-003121
ãããžã§ã¯ããäœæãã
æ°ããASP.NETã³ã¢ã¢ããªã±ãŒã·ã§ã³ãäœæããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã
1ïŒ Visual Studioã䜿çšãã
2ïŒã³ã³ãœãŒã«ãã-dotnet new
3ïŒãµãŒãããŒãã£ã®ãžã§ãã¬ãŒã¿ãŒã䜿çšããŸãã
ç¹ã«ç©ºã®ã¢ããªã±ãŒã·ã§ã³ã¯å¿ èŠãããŸããããAngular2ãæ¥ç¶ãããŠãããã§ããã°ãã«ãã¹ã¯ãªãããæ§æãããŠããããããããžã§ã¯ãã®äœæãšæ§æã®ãã¹ãŠã®åé¡ãæãäžããããšã¯ããŸããã
ASP.NET Core JavaScriptãµãŒãã¹ github.com/aspnet/JavaScriptServicesã¯ããã«çæ³çã§ããããã«ãããAngular 2ãReactãKnockoutã®éžæããJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ASP.NET Coreã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
ãããè¡ãã«ã¯ãASP.NET CoreãNode.jsãããã³aspnet-spaãã³ãã¬ãŒããåããyeomanãžã§ãã¬ãŒã¿ãŒãå¿ èŠã§ãã åŸè ã¯æ¬¡ã䜿çšããŠã€ã³ã¹ããŒã«ã§ããŸãã
npm install -g yo generator-aspnetcore-spa
æ°ãããããžã§ã¯ãã®äœæã¯ãæçµçã«ã¯
cd <__> yo aspnetcore-spa
Angular2ãã³ãã¬ãŒãããããžã§ã¯ãã®ååã ãžã§ãã¬ãŒã¿ãŒãéžæããæ§é å šäœãäŸåé¢ä¿ãªã©ãäœæããŸãã ïŒããã«ã¯æ°åãããå ŽåããããŸãïŒã
æåã¯ãç¹ã«ããªããåŸè ã®ãã¡ã³ã§ã¯ãªãå ŽåããŸãã¯ããã³ããšã³ãã§ã»ãšãã©äœæ¥ããŠããªãå Žåããã®ãžã§ãã¬ãŒã¿ãŒã䜿çšããã©ã€ãã©ãªãå€ãããããã«èŠãããããããŸããã ããããå人çã«ã¯ãããã¯æããã©ã³ã¹ã®ãšãããã¿ãŒã³ã®1ã€ã§ãããšããæèŠã§ãã ç¹ã«ã次ã®ããããã£ã匷調ããããšæããŸãã
TypeScript
ãã¡ãããã·ã³ãã«ãªJavaScriptã䜿çšããŠAngular2ã§ã¢ããªã±ãŒã·ã§ã³ãéçºã§ããŸããTypeScriptã䜿çšãããšãOOPã®å ¥åæ§æããªãŒãã³ã³ããªãŒãã䜿ãæ £ããïŒã»ãšãã©ã®ïŒæ§æã䜿çšã§ããŸãã ãŸããAngular2ããŒã ã¯TypeScriptãç©æ¥µçã«äœ¿çšããŠãããTypeScriptã¯Angular2ã®å ¬åŒã®ããã©ã«ãèšèªã§ã¯ãªãïŒãŸãã¯æ¢ã«äœ¿çšãããŠããïŒããã§ãã
Webpack
ããã³ããšã³ãããŒã«ã®æŠãã§ã¯ ã webpackãããã«ãæ°ã«å ¥ãã«ãªãã€ã€ããããã§ãã 絶ãéãªãã³ãŒãå€æŽã䌎ãæ©èœã«æ³šç®ããããšãç¹ã«éèŠã§ãã å®éãéçºè ã¯ãHot Module ReplacementïŒ HMR ïŒã䜿çšããŠãããžã§ã¯ãã絶ããåçµã¿ç«ãŠããããŒãžãæŽæ°ããããšãå¿ããããšããããŸãã 1å°ã®ã¢ãã¿ãŒã§ããã³ããšã³ããèšè¿°ããããšããåŸã2å°ç®ã®ã¢ãã¿ãŒã§ã¯ç®ã®åã§å€åããŠããã®ã§ããããã¹ã¯ããã®å¯èœæ§ãªãã«æ¥œåšã«æ»ãæ°ãããŸããã
ãã®ä»ã®ããŒãã¹
ãµãŒããŒã®äºåã¬ã³ããªã³ã°ãé 延èªã¿èŸŒã¿ãéçºãã«ããšæ¬çªãã«ãã§ã®äŸ¿å©ãªäœæ¥ã
JavaScriptServiceséçºè ã®1人ã®ããã°ã§è©³çŽ°ãèªãããšãã§ããŸãã
blog.stevensanderson.com/2016/05/02/angular2-react-knockout-apps-on-aspnet-core
ãŸãã¯ãASP.NETããŒã ã®æåŸã®å ¬éã¹ã¿ã³ãã¢ããã®1ã€ã®å®éã®äŸãåç §ããŠãã ããã
ãããžã§ã¯ãããŸãšãã
åè¿°ã®ãšããããããžã§ã¯ãããã«ãããŠå®è¡ããã«ã¯ãã³ã³ãœãŒã«ã³ãã³ãã䜿çšã§ããŸãã
dotnet run
ãã®çµæããµã€ããæ§ç¯ãããããŒã«ã«ã§èµ·åãããŸãã
ãŸãã¯ãVisual Studioããåãããšãè¡ããŸãã
ãã«ãåŸã«ããã¹ãŠã®npmã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ãããŠããªããšããéç¥ãããå Žåã
ã»ãšãã©ã®å Žåãããã¯ã¢ãžã¥ãŒã«ã®1ã€ãWindowsã§ãµããŒããããŠããªããšããåé¡ã§ãããäŸåé¢ä¿ã¯å¿ é ã§ã¯ãªããããã¢ããªã±ãŒã·ã§ã³ã¯æ£åžžã«åäœããã¯ãã§ãã
ãã®çµæã3ã€ã®åçŽãªããŒãžãåããå®çšçãªã¢ããªã±ãŒã·ã§ã³ãå¿ èŠã«ãªããŸãã
ä»äºãå§ãã
ãã¬ãŒã ã¯ãŒã¯ã®ä»¥åã®ããŒãžã§ã³ãšæ¯èŒããäž»ãªéããèããŠã¿ãŸãããã
ãããžã§ã¯ãæ§é
JavaScriptServicesãããžã§ã¯ãã®æ§é ã¯Webããã¯æåã®ããã§ãã ã€ãŸããããããnpm + webpackã§ãããgulpãšbowerã¯ãããŸããã ç§ã®ç¥ãéããbowerã¯JavaScriptã©ã€ãã©ãªãŒã«å€ãã®äŸåé¢ä¿ããªããããã¹ã¿ãŒãã¢ãããããžã§ã¯ãã«è¿œå ããªãããšã«æ±ºããŸãããnpmã¯ãã¹ãŠãåŠçããŸãã ãããŠããã¹ãŠã®gulp ïŒãŸãã¯ããªã声 ïŒæ©èœãwebpackã«ãã£ãŠå®è¡ãããããã«ãªããŸãã ã
ãã¡ã€ã«æ§é ã«é¢ããŠã¯ããµãŒããŒãã¡ã€ã«ã«é¢ããŠã¯ãã¹ãŠä»¥åãšåãã§ãããããã³ããšã³ãã§ããã€ãã®éãããããŸãã ããšãã°ãéçãªwwwrootãã¡ã€ã«ããããã©ã«ããŒã«ã¯ãå®éã«ã¯ãã¹ãŠã®JavaScriptãã³ã³ãã€ã«ãããdistãã©ã«ããŒã®ã¿ããããŸãã
Angularã®æåã®ããŒãžã§ã³ãšæ¯èŒãããšãè¡šçŸãšã³ã³ãããŒã©ãŒãååšããªãããšã¯é©ãã¹ãããšã§ãããã¹ãŠãã³ã³ããŒãã³ãå ã«ãããã³ã³ããŒãã³ãã®åHTMLããŒãã«ã¯TypeScriptããŒãããããŸãã
ããã»ã¹ã®ç¹åŸŽ
ãã¡ãããWebpackã¯ã¢ãžã¥ãŒã«ã®ãããã¹ã¯ããã«é¢ããŠéåžžã«æºè¶³ããŠããŸãããã®ãããããã³ããšã³ãéšåã®éçºã¯ã¯ããã«å¿«é©ã§ãã
ãŸããWebPackãšã©ãŒã¯ASP.NETã¬ãã«ã§ãã§ã«å®å šã«è¡šç€ºãããŠãããéåžžã«äŸ¿å©ãªçµ±åã§ããããšã«æ³šæããŠãã ããã 確ãã«ã誀ã£ãç¶æ ïŒããšãã°ãååšããªãã³ã³ããŒãã³ãã®ãã«ã¢ããïŒã®åŸããããã¹ã¯ããã¯æ©èœããŸããã§ããããã®ãããªå Žåã§ããããŒãžãæåã§æŽæ°ããå¿ èŠããããŸãã
ãŸãããã©ãŠã¶ã§TypeScriptãåæ¹èšå ¥ã§ããããšãéåžžã«äŸ¿å©ã§ããããããã¯ãã¹ãŠããã©ã«ãã§ãã§ã«çµã¿èŸŒãŸããŠããŸãã
ãŸã第äžã«ãå¿ èŠãªãã®ã«äŸã䜿ã£ãŠããŒãžãæžãçŽããŸããã Angular2ãšTypeScriptã«ã€ããŠã®ç§ã®ç¥èããŒãã«è¿ããšããäºå®ã«ãããããããããã¯éåžžã«ç°¡åã§ããããšãå€æããŸããã äžè¬çã«ãæ°ããAngularã®æ§æã¯ãå°ãªããšãäžèŠãããšéåžžã«èªã¿ãããããã§ãã ãŸããTypeScriptã§ã€ã³ã¿ãŒãã§ã€ã¹ãã¯ã©ã¹ãããã³ã¿ã€ããèšè¿°ããæ©èœã«ãããéåžžã«ç解ãããããªããŸãã
åçŽãªã³ã³ããŒãã³ãã®äŸïŒ
TypeScriptãåããŠç®ã«ããã»ãšãã©ã®éçºè ã¯ãããã§äœãèµ·ãã£ãŠããã®ããããã«ç解ãããšæããŸãã
ãšã³ãã£ãã£ãã¬ãŒã ã¯ãŒã¯ãšããŒã¿ããŒã¹
Entity Frameworkã®ä»¥åã®ããŒãžã§ã³ã«ç²ŸéããŠããå ŽåãEntity Framework Coreã«åé¡ã¯ãªãã¯ãã§ãã 極端ãªå Žåã¯ã docs.efproject.net / en / latest / intro.htmlã§ããã¥ã¡ã³ãã衚瀺ã§ããŸã
ãŸããEFèªäœãšãããŒã¿ããŒã¹ãæäœããããã®ããŒã«çšã®nugetããã±ãŒãžãé 眮ããŸãïŒåŸè ã®ããŒãžã§ã³ã¯ãŸã å®å®ããŠããŸããïŒã
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools âPre
github.com/gbdrm/HabraQuest/commit/959f4cb6c253dad0cc5e6eb34756ee5cc9c920f9
次ã«ãããŒã«ã³ãã³ããproject.jsonã«è¿œå ããŠããããè¡ãããããéãã ããŒã«èšå®ãèŠã€ããŠè¿œå ããŸã
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
ããããããã³ãã¬ãŒãããŒã«ã«æ¢ã«è¿œå ãããŠããã§ãããã ãã®åŸãäœãå€æŽããå¿ èŠã¯ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãã«ã¯ã©ã¹ãšDbContextãè¿œå ããããããStartup.csã«ç»é²ããŸãã
ãããŠãã¡ããã appsettings.jsonã® ConnectionStringã䜿çšã ã Startup.csã«æ§æã³ãŒããè¿œå ããŸãã
github.com/gbdrm/HabraQuest/commit/7411eb4262bdef9f5fb810f6cf7d5a239221c0b5
次ã®ã¹ãããã§ãã移è¡ã«é¢ããå žåçãªã¹ããŒãªãŒ-æåã®ç§»è¡ãè¿œå ããããŒã¿ããŒã¹ã«æŽæ°ãäŸé ŒããŸãã
Add-Migration Initial Update-Database
ããŒã¹ã¯ãŸã ååšããªãããã2çªç®ã®ã³ãã³ãã®åŸã«äœæããå¿ èŠããããŸãã ããã¯ãVisualãŸãã¯SQL Management Studioã䜿çšããŠSQLãµãŒããŒã«åå ããå Žåã«ååšããããŒã¿ããŒã¹ã調ã¹ãããšã§ç¢ºèªã§ããŸãã
github.com/gbdrm/HabraQuest/commit/09b42dc0a8e45da1f461b38c2b41d79c4fc0b88a
Homeã³ã³ãããŒã©ãŒã«ç°¡åãªã¡ãœãããè¿œå ããŠãããŒã¿ããŒã¹ãžã®æ¥ç¶ãæå°éã«äœ¿çšããŠã¿ãŸãããã ã¡ãœãããè¿œå ããŠãããŒã¯ã³ãè¿ãæ°ãããã¬ãŒã€ãŒãäœæããŸãã
github.com/gbdrm/HabraQuest/commit/e67a322184517aa929d1347f6fd638c6290bf9d3
ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã¢ãã¬ã¹ã®æåŸã«/ home / registernewplayerãè¿œå ããŠããã®ã¡ãœããããã¹ãã§ããŸãã ãã®çµæããã¬ãŒã€ãŒã®ããŒã¯ã³ãååŸããå¿ èŠããããŸãã
Angular 2ã®æåã®ã¹ããã
ãã§ã«ããªããã£ãããã¯ãšã³ããäœæããŠãããããã¯ã©ã€ã¢ã³ãã§äœ¿çšããããšãã§ããŸãã 以äžãè©ŠããŠã¿ãŸãããã
æ°ãããŠãŒã¶ãŒãããŒãžã«ã¢ã¯ã»ã¹ãããšã-ããŒã¯ã³ä»ãã®Cookieããããã©ããã確èªãããªãå Žåã¯ãµãŒããŒãããŠãŒã¶ãŒã«å°ããŸãã ç¬èªã®èªè»¢è»ãäœæããªãããã«ããã«ã¯ãæ¢åã®Cookieã©ã€ãã©ãªã䜿çšããŠã¿ãŠãã ããã ããšãã°ã ng2 cookies ã
ãããè¡ãã«ã¯ãããŒã ã³ã³ããŒãã³ãã«ã€ã³ã¹ããŒã«ããŠæ¥ç¶ããå¿ èŠããããŸãã
github.com/gbdrm/HabraQuest/commit/8c7aadd9607a0c4d0a1039707b08b0c4b720112c
JavaScriptãšæåã®Angularã®ã¹ãã¬ãªã¿ã€ãã®æ¿ããæŠãã®ç§ã®æ°æéã説æããã®ã¯é£ããã§ãã ãã¬ãŒã ã¯ãŒã¯ã®2çªç®ã®ããŒãžã§ã³ã§ã¯ããã¹ãŠãå®å šã«ç°ãªã£ãŠããããšãå€æããŸããã ããã¯ããµãŒãã¹ããŸã 䜿çšããªãããšã«ãããšããäºå®ã§çµãã£ããšããèšããŸããïŒAngular 2ã§ç©æ¥µçã«äœ¿çšãããŠããrxjs observableã«æåã«å¯ŸåŠããããšã«ããŸããïŒãåè£ã®æ¬¡ã®ãªãªãŒã¹ïŒ4çªç®ïŒãŸã§ããã±ãŒãžãæŽæ°ããæ°ãããã©ãŒã ãè¿œå ããŸããïŒãããã¯å€§å¹ ã«ããçŽããããã®ããã»ã¹ã¯ãŸã çµäºããŠããŸããïŒãå¯èœãªéãã³ãŒããç°¡çŽ åããããšã«ããŸããïŒ1ã€ã®ã³ã³ããŒãã³ãã®ããžãã¯ã®ã»ãšãã©ïŒã æåã«äœããè¡ãå¿ èŠããããŸãã次ã«ãè¯ãç¿æ £ã«ã€ããŠèããŸãã ãŸãããµãŒããŒåŽã«ããã€ãã®ã¹ã¿ããè¿œå ããŸããã
github.com/gbdrm/HabraQuest/commit/60c8239a89cae2357d0521973e091781027186ba
èå³æ·±ãæ©èœã®ãã¡ãã¹ã¿ãžãªãŸãã¯ãªã·ã£ãŒããŒãTypeScriptã®æ£ããã€ã³ããŒãã匷åã§ãããã©ããã«ããããããã¡ãœããã®æšæºããã²ãŒã·ã§ã³ãã»ãšãã©ã®å Žåã«æ©èœããŸãã ãã®çš®ã®ç¹æ§ã®ããã«ãã¯ã©ã€ã¢ã³ãåŽã®ã³ãŒããæžãããšã¯ã¯ããã«å¿«é©ã«ãªããã©ããã«èœã¡ãå¯èœæ§ã®ããçš®é¡ã®ã¹ã¯ãªãããæžããŠãããšããæèŠã¯ãªããªããŸãã 代ããã«ãåºæ¬çãªæ§æèŠçŽ ãèªåçã«ãã§ãã¯ããããã¹ãŠãéäžã§å£ããªããšãã確信ããããŸãã ãŸããç Žæããå Žåã§ããwebpackã¬ãã«ã§å¥ã®ãã§ãã¯ãå®è¡ããããã®çµæãåèµ·åããªããŠãããŒãžã«ãšã©ãŒã衚瀺ãããŸãã
確ãã«ããã¡ã€ã«ãä¿åãããã³ã«ããŒãžãåæç»ãéå§ãããšãæã ç·åŒµãå§ããŸãã ããããããã¯ç¿æ £ã®åé¡ã ãšæããŸãã
次ã®ã³ãŒãã¯ãã¹ãŠç¹ã«éèŠã§ã¯ãããŸããã åºæ¬çã«ãããã¯ãããã£ãç¬éã®å®è£ ã§ãã èŠèŽã«ãŸã èå³ãããå Žåã¯ã github.com / gbdrm / HabraQuestãããœãŒã¹ãå ¥æã§ããŸãã
å±é
ããã¯ãšã³ãã¯.Netã§èšè¿°ãããŠãããããAzureã«ã¢ããªã±ãŒã·ã§ã³ããããã€ããŸãã ã¡ãªã¿ã«ãéå»1幎åã«ããã£ãŠãããã§ããããã®å€æŽããããŸããåããŠäœãã©ãã§ç解ãããã¯ããããŸããã ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒã¿ããŒã¹ïŒWebã¢ããª+ SQLïŒã䜿çšããŠæãåºæ¬çãªãµã€ããäœæããã ãã§ååã§ãã
å±éã§ã¯ããã€ãã®ããã«ãéåžžã«ã¹ã ãŒãºã§ã¯ãããŸããã ãŸãããšã©ãŒãªãã§å€±æããããšã¯ãããŸããã ãµã€ãèªäœã¯æ©èœããŸãããæçµçã«ãVisual Studioã¯äžéšã®å€éšTypeScriptã¢ãžã¥ãŒã«ã§ãšã©ãŒã衚瀺ããŸãã ãããŸã§ã®ãšãããç§ã¯ãããäœã§ããããç解ããŠããŸããã 次ã«ããµã€ããéããšããTaskCanceledExceptionïŒã¿ã¹ã¯ããã£ã³ã»ã«ãããŸããããšãããšã©ãŒãçºçããŸãã ããããŸã å®å šã«ã¯æããã§ã¯ãããŸããããåé¡ã¯ãã¹ãã£ã³ã°ã¬ãã«ã®ã©ããã«ããããã§ãã ãããŠããã«å ããŠãç§ã¯ãã€ã°ã¬ãŒã·ã§ã³ã§å°ãéãã ã
æŠããŠãç§ã¯ãã®ã¹ãããã«æºè¶³ããŠããŸããã éåžžã«è©³çŽ°ã§ãããããããã°ããã¹ãŠãæ§æã§ããŸãïŒããŒã¹ã移è¡ïŒã ãã ããæåã¯ããã¹ãŠãæ§ç¯ãããŠã³ããŒããããŸã§ããã°ããïŒæ°åïŒåŸ ã€å¿ èŠããããŸãã ãšã«ãããç§ãç解ããŠããéããæåã¯ãã¹ãŠãããŒã«ã«ã«ã³ããŒãããããããæ¢ã«Azureã«è»¢éãããŠããããã»ã¹ã¯éåžžã«è€éã§ããããã«èŠããŸããããããã¯è©³çŽ°ã§ãã
çµæãçµè«
ãã¹ãŠãèšç»éãã«ãªããŸããã ç§ã¯æ°ãããã¬ãŒã ã¯ãŒã¯ã«å人çã«æºè¶³ããŠããŸããåãã§ãããã«åãæ¿ããŸããã ãã¡ããããŸã ããŸãå®å®ããç¹ã¯ãããŸãããAngular2ã¯ãŸã æ£åŒã«ãªãªãŒã¹ãããŠããŸããã ãããããã¹ãŠããã§ã«ããªãé¢çœãèŠããŠãããæãéèŠãªããšã«ã¯ãæ©èœããŠããŸãã
ããŒã«ã®éçºãããŒãžã®æŽæ°ãããŒã¿ããŒã¹æ§é ã®å¶åŸ¡ãªã©ãæ¥åžžçãªäœæ¥ãæžããããšãã§ããéçºã¢ãããŒãã«éåžžã«æºè¶³ããŠããŸãã
ãŸããå€ãã®ããã°ã質åãããã¥ã¡ã³ãããªã³ã©ã€ã³ã«ããã®ã§ãå žåçãªåé¡ã®è§£æ±ºçã¯ãã§ã«ãã¹ãŠã·ã³ãã«ã«ãªã£ãŠããã¯ãã§ãã
ãã¹ãŠã®çµæã¯æ¬¡ã®å Žæã«ãããŸãã
github.com/gbdrm/HabraQuest
habraquest.azurewebsites.net
å€ãã®ç°ãªããããã¯ãããã®ã§ãããªãåä»ã§ããããšãå€æããŸããã ãã®ãã¡ãããªããæã説æã«èå³ãæã£ãŠããã®ã¯ã©ãã§ããïŒ