MS_VSSolutionStructure - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒ.NETéçºïŒ
Visual Studio ã®ãããœãªã¥ãŒã·ã§ã³ãã»ããããžã§ã¯ããã®æ§æãæ€èšããéã®
ãã€ã³ãã«ã€ããŠèª¬æããã
Visual Studio ã§ã¯ãéçºããããã°ã©ã ãã
ãœãªã¥ãŒã·ã§ã³ã»ãããžã§ã¯ããšããåäœã§ç®¡çããã
-
ïŒã€ã®ããã°ã©ã ã¯ãïŒïŒè€æ°ã®ã¢ã»ã³ããªïŒEXE ã DLL ãã¡ã€ã«ïŒãã
æ§æãããå Žåãããã -
ïŒã€ã® Web ãµã€ãã»Web ã¢ããªã±ãŒã·ã§ã³ãã
ïŒïŒè€æ°ã®ã¢ã»ã³ããªãã³ã³ãã³ã ãã¡ã€ã«ããæ§æãããã -
ãŸããåã¢ã»ã³ããªãã³ã³ãã¥ãŒã¿ã«ã€ã³ã¹ããŒã«ããããã®
ãã»ããã¢ãã ããã°ã©ã ãã»ãWeb ã»ããã¢ãã ããã°ã©ã ããªã©ãããã
è£è¶³ïŒ3 ã€ã®åäœã®å¯Ÿå¿é¢ä¿ïŒ: æ··ä¹±ããããã®ã§å ã«æŽçããã
ãœãªã¥ãŒã·ã§ã³ïŒ*.slnïŒ âŠ 1 ã€ä»¥äžã®ãããžã§ã¯ããæãããäœæ¥åäœã â ãããžã§ã¯ãïŒ*.csprojïŒ âŠ 1 ã€ã®ã¢ã»ã³ããªãäœãããã«ãåäœã â ã¢ã»ã³ããªïŒ*.dllïŒ âŠ 1 ã€ã®ãé 眮ã»ããŒãžã§ã³ç®¡çåäœãåå 1 ãããžã§ã¯ã = 1 ã¢ã»ã³ããªã§ããã
ãœãªã¥ãŒã·ã§ã³ã¯ãã«ãã¯ããããææç©ãã®ãã®ã§ã¯ãªãã
.NETã¢ã»ã³ã㪠ã䜵ããŠåç §ã
- ãããžã§ã¯ãã®ãã«ãã«é¢ããæ§ææ å ±ãä¿æããŠããã
- ïŒã€ã®ã¢ã»ã³ããªãäœæããã«ã¯ãïŒã€ã®ããããžã§ã¯ãããå¿ èŠã«ãªãã
- ïŒã€ã®åºæ¬çãªãããžã§ã¯ãã¯ïŒã€ã®ã¢ã»ã³ããªãåºåããïŒEXEãDLLïŒã
-
*.csprojïŒC# çšïŒã*.vbprojïŒVB çšïŒãªã©ã®æ¡åŒµåãæã€ã -
Windows ã¢ããªã±ãŒã·ã§ã³ã® VB ãããžã§ã¯ãã®ããããã£ã®äŸ
-
ã¢ããªã±ãŒã·ã§ã³
- ã¢ã»ã³ããªå
- åå空é
- ã¢ããªã±ãŒã·ã§ã³ã®çš®é¡
- ã¢ã€ã³ã³
- ã¹ã¿ãŒãã¢ãã ãã©ãŒã
- ãã¬ãŒã ã¯ãŒã¯
- ããããã£
- ,etc.
-
ã³ã³ãã€ã«
- ãã«ãåºåãã¹
- 詳现ã³ã³ãã€ã« ãªãã·ã§ã³
- Option Explicit,Strict,Compare
- èŠåã»ãšã©ãŒã®è¡šç€º
- ,etc.
-
ãããã°
ãããã°æã®åäœã®èšå®ãããã- ã¹ã¿ãŒãã¢ãã
- ã³ãã³ãã©ã€ã³åŒæ°
- ,etc.
-
åç §
ã¢ã»ã³ããªã COM ã³ã³ããŒãã³ããªã©ã
ãããžã§ã¯ãã§äœ¿çšããã³ã³ããŒãã³ãã®åç §èšå®ãèšå®ããã -
ãªãœãŒã¹
ãããžã§ã¯ãã®ãªãœãŒã¹ãèšå®ããã- æåå
- ã€ã¡ãŒãž
- ã¢ã€ã³ã³
- ãªãŒãã£ãª
- ãã¡ã€ã«
- ,etc.
-
èšå®
app.config ã®ãŠãŒã¶ ã»ããã£ã³ã°æ å ±ãèšå®ããã -
眲å
ã¢ã»ã³ããªã«å³å¯åãªã©ã®ã¢ã»ã³ããªçœ²åããããããã -
ã»ãã¥ãªãã£ãçºè¡
ClickOnce ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããèšå®ãããã
-
è£è¶³: ãããã®èšå®ã¯ããããã MSBuild ã®
ããããã£ãšããŠ.csprojã«æžãããã
GUI ã¯ãã®ç·šéç»é¢ã«éããªãã
SDK 圢åŒã®ãããžã§ã¯ãã§ã¯.csprojãéåžžã«çããªã£ãããã
çŽæ¥ç·šéããæ¹ãéãå Žé¢ãå€ãã
- ã¢ãžã¥ãŒã«åäœã®å€æŽ
- é åžåäœã®å€æŽïŒã¢ã»ã³ããªã§ã®é åžïŒ
-
å šäœã®ãã«ãã«é¢ããæ§ææ å ±ãä¿æããŠããã
-
è€æ°ã®ã¢ã»ã³ããªããæ§æãããã¢ããªã±ãŒã·ã§ã³ãäœæã§ããã
-
ãã®ãããªæ§æãè¡ãå Žåã以äžã®ïŒéãã®æ¹æ³ãããã
- è€æ°ã®ã¢ã»ã³ããªããããžã§ã¯ãã§ãŸãšããïŒãã€ããªåç §ïŒã
- è€æ°ã®ãããžã§ã¯ãããœãªã¥ãŒã·ã§ã³ã§ãŸãšããïŒãããžã§ã¯ãåç §ïŒã
-
*.slnã®æ¡åŒµåãæã€ã -
ãœãªã¥ãŒã·ã§ã³ã®ããããã£ã®äŸ
è£è¶³ïŒææ°åïŒ: .NET SDK 10 以éã§ã¯ã
*.slnxãšããæ°ãã XML 圢åŒã®ãœãªã¥ãŒã·ã§ã³ ãã¡ã€ã«ãå°å ¥ãããã
åŸæ¥ã®.slnã¯ç¬èªåœ¢åŒã§ GUID ãå€ãã
ããŒãž ã³ã³ããªã¯ããèµ·ãããããšããåé¡ããã£ããã
.slnxã¯ãããžã§ã¯ãã®ãã¹ãåæããã ãã®çŽ çŽãª XML ã«ãªã£ãŠããã<Solution> <Project Path="src/App/App.csproj" /> <Project Path="src/Lib/Lib.csproj" /> </Solution>
- ãã«ãåäœã®å€æŽ
- é åžåäœã®å€æŽïŒMSI ã§ã®é åžïŒ
äžè¬çã«å°èŠæš¡éçºã®å Žåã¯åå²ãå°ãªãããŠãå€§èŠæš¡éçºã®å Žåã«åå²ãæ€èšããã
-
管çã容æã«ãªãã
-
éçºäœæ¥ã®åæ ãå¯èœã«ãªãã
-
éšååçã«ããå·®ãæ¿ãã容æã«ãªãã
-
ä¿®æ£ç®ææ¯ããã«ãç¯å²ãçµãäºãã§ããã
-
ã¢ã»ã³ããªã MSI ã§ã®é åžã容æã
-
ããã»ã¹ãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³åå²ã«ããã
é害ç¯å²ãå°ãªãã§ããã
-
管çãç ©éã«ãªãã
-
éçºäœæ¥ã®åæ ãã§ããªããªãã
-
éšååçã«ããå·®ãæ¿ããã§ããªããªãã
-
ä¿®æ£ç®ææ¯ããã«ãç¯å²ãçµãäºãã§ããªããªãã
-
è€æ°ã®ã¢ã»ã³ããªã MSI ã
çµã¿åãããé åžãå¿ èŠã«ãªãã -
ããã»ã¹ãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³åå²ã«ããã
ããã»ã¹ééä¿¡ãå¿ èŠã«ãªãã
è£è¶³ïŒãã®è¡šã®èªã¿æ¹ïŒ: ã¡ãªãããšãã¡ãªããã
åãé ç®ã®è£è¿ãã«ãªã£ãŠããç¹ãèŠç¹ã§ããã
åæã¯ãåå²ããªãå Žåã®ãã¡ãªãããã䞊ã¹ãŠããã®ã§ã¯ãªãã
åå²ããããå Žåã®ãã¡ãªããã䞊ã¹ãŠãããšèªãã®ãæ£ãããåå²ããªã ââââââââââââââââââââ¶ åå²ããã ã»ãã«ããé ã ã»ç®¡çãç ©é ã»å·®ãæ¿ãã§ããªã ã»åç §é¢ä¿ã远ããªã ã»åæ ãã«ãã ã»ãã«ãé åºãè€éè£è¶³ïŒå®åäžã®ç®å®ïŒ: çŸåšã®äžè¬çãªæéã¯
**ããããžã§ã¯ãã¯å°ãªãã»ã©è¯ãã**ã§ããã
- ãããžã§ã¯ãæ°ã¯ãã«ãæéã«çŽçµããïŒ1 ãããžã§ã¯ã = 1 ã³ã³ãã€ã«ïŒ
- ã¢ã»ã³ããªå¢çã¯å®è¡æã®ã³ã¹ãã§ãããïŒåã®ããŒããJITïŒ
- ãã¬ã€ã€ããšã«ãããžã§ã¯ããåãããã ãã§ã¯èšèšäžã®æå³ãèã
ïŒãã©ã«ããšinternalã§è¶³ããããšãå€ãïŒåããã¹ãæç¢ºãªçç±ããããšãã«ã ãåããããšããã®ãååã
åããçç± äŸ å¥ã ã«é åžãã NuGet ããã±ãŒãžã«ãããä»ã·ã¹ãã ãžæäŸãã åç §ã®åãã匷å¶ããã ãã¡ã€ã³å±€ãã€ã³ãã©å±€ãåç §ããªãããšãä¿èšŒãã ã¿ãŒã²ãããéã äžæ¹ã¯ netstandard2.0ã仿¹ã¯net8.0ãã¹ããããžã§ã¯ã æ¬äœãšäžç·ã«é åžããªã
-
Web ã¢ããªã±ãŒã·ã§ã³ãWeb ãµã€ãæ¯ã«
ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã¯ç°ãªãã -
Web ã¢ããªã±ãŒã·ã§ã³ãWeb ãµã€ã
ïŒã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ïŒãæ ŒçŽããã¯ãŒã«ããã»ã¹ïŒããã»ã¹ïŒãéžæã§ããã
è£è¶³ïŒææ°åïŒ: ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã¯
.NET Core 以éååšããªãïŒäœæã§ããªãïŒã
以äžã¯ .NET Framework ïŒ IIS åæã®è©±ã§ããã
.NET Framework .NETïŒCore ç³»ïŒ åé¢ã®åäœ AppDomainïŒ1 ããã»ã¹å ã§è€æ°ïŒ ããã»ã¹ ã¢ã»ã³ããªã®ã¢ã³ããŒã AppDomain åäœã§å¯èœ AssemblyLoadContextã§å¯èœWeb ã®åé¢ IIS ã®ã¢ããªã±ãŒã·ã§ã³ ããŒã« ïŒ AppDomain ããã»ã¹ïŒKestrelïŒåäœ ASP.NET Core ã§ã¯ 1 ã¢ã㪠= 1 ããã»ã¹ãåºæ¬ã§ããã
åé¢ã¯ã³ã³ãããã¢ããªã±ãŒã·ã§ã³ ããŒã«ã®ç²åºŠã§èããããšã«ãªãã
- Server.Transfer ã¯äžå¯èœã
- Response.Redirect, Link ãªã©ã® Get ã¡ãœããã¯å¯èœã
- ã¯ãã¹ããŒãž ãã¹ãããã¯ãªã©ã® POST ã¡ãœããã¯å¯èœã
以äžã®ç¶æ 管çæè¡ã¯ãç°ãªãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ãšæ å ±å ±æã§ããªãã
-
Application ãªããžã§ã¯ã
-
éç倿°
-
Cache ãªããžã§ã¯ã
-
Session ãªããžã§ã¯ã
-
ãã®ä»
- ViewState ã¯åäž WebForm ç»é¢å ã§ã®ã¿æçšã
- HttpContext ã¯ãServer.Transfer ç»é¢é·ç§»ã®éã§æçš
以äžã®ç¶æ 管çæè¡ã¯ãç°ãªãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ãšæ å ±å ±æã§ããã
- QueryString
- Cookie
- Hidden
- Cookie èªèšŒãã±ãã
ASP.NET2.0 ãã ASP.NET ã® Forms èªèšŒã®èªèšŒãã±ããã- è€æ°ã®ãµã€ãéã§å ±æããä»çµã¿ãçšæããã
- è€æ°ã®ãµã€ãéã§å©çšã§ããããã«ãªã£ãã
åç¶æ 管çæè¡ã«ã€ããŠã¯ãã³ãã©ãåç §ã
è£è¶³ïŒãã®åé¡ã®æ¬è³ªïŒ: å ±æã§ãããã®ãšã§ããªããã®ã®éãã¯ã
ã©ãã«ç¶æ ã眮ãããŠãããã§æ±ºãŸãããå ±æã§ããªãããµãŒãã®ã¡ã¢ãªïŒããã»ã¹å ïŒã«çœ®ã Application / éç倿° / Cache / SessionïŒInProcïŒ ãå ±æã§ãããã¯ã©ã€ã¢ã³ããæã¡éã¶ QueryString / Cookie / Hidden / èªèšŒãã±ãããããã£ãŠ Session ããå€ã«åºãã°ãå ±æã§ããã
SQL Server ã»ãã·ã§ã³ ã¹ããŒããRedisïŒåæ£ãã£ãã·ã¥ïŒã
䜿ãã°ããã»ã¹ããŸãããã
ãã㯠.NET Coreã®Dockerã³ã³ããå ã§è¿°ã¹ã
ãã³ã³ããã¯è€æ°ã€ã³ã¹ã¿ã³ã¹ã«å¢ããã®ã§ç¶æ ãå€åºãããã
ãšãã話ãšãŸã£ããåãæ§å³ã§ããã
-
ãããžã§ã¯ãã«å¯ŸããŠåç §èšå®ãè¡ãã
-
ãã«ãé ãèªåçã«ç®¡çãããããŒãžã§ã³ã®äžäžèŽãªã©ãèµ·ããé£ã䜿ãæãã
-
åç §å ã®ãããžã§ã¯ãã®å€æŽã»å·®ãæ¿ãã容æãªã®ã§ã
FIX ããŠããªãã¢ãžã¥ãŒã«ã«å¯ŸããŠã¯ãããžã§ã¯ãåç §ã䜿çšããã
-
ã¢ã»ã³ããªã«å¯ŸããŠåç §èšå®ãè¡ãã
-
åç §å ã®ãã€ããªã®å€æŽã»å·®ãæ¿ããé¢åãªã®ã§ã
FIX ããã¢ãžã¥ãŒã«ã«å¯ŸããŠã¯ãã€ããªåç §ã䜿çšããã
è£è¶³ïŒçŸåšã¯ 3 ã€ç®ã®éžæè¢ãããïŒ: ãFIX ãããã©ãããã§
䜿ãåãããšããåæã®æŽçã¯åŠ¥åœã ãã
çŸåšã¯ NuGet ã®PackageReferenceã
ãã€ããªåç §ã®äžäœäºæãšããŠäœ¿ããã
æ¹åŒ åãå Žé¢ äŸåã®è§£æ±º ãããžã§ã¯ãåç § åããœãªã¥ãŒã·ã§ã³å ãåæã«éçºãã ãã«ãé ãèªå ãã€ããªåç §ïŒHintPathïŒ æå ã® DLL ãçŽæ¥æã æåïŒæšç§»çäŸåãèªåã§ïŒ PackageReference å¥ãªãªãŒã¹ ãµã€ã¯ã«ã®å ±ééšå èªåïŒæšç§»çäŸåãè§£æ±ºïŒ ãã€ããªåç §ã¯æšç§»çäŸåãèªåã§ç®¡çããå¿ èŠãããããã
çŸåšã¯ NuGet åããã®ãçŽ çŽã§ãã
ïŒç€Ÿå ãªã NuGet ãã©ã€ããŒãã»ãªããžããªïŒã
- ïŒã€ã® Web ã¢ããªã±ãŒã·ã§ã³ã»Web ãµã€ãã¯ã
ïŒã€ã® IIS ã®ã¢ããªã±ãŒã·ã§ã³ãšå¯Ÿå¿ããã - è€æ°ã® Web ã¢ããªã±ãŒã·ã§ã³ã»Web ãµã€ãã
ïŒã€ã® IIS ã®ã¢ããªã±ãŒã·ã§ã³ã«çºããããšã¯ã§ããªãã
ïŒã€ã® Web ã¢ããªã±ãŒã·ã§ã³ã»Web ãµã€ããè€æ°ãããžã§ã¯ãã«ãŸãšããæ¹æ³
è£ã¯ã¶çãªæ¹æ³ã ãšæããŸããã»ã»ã»ã
- ãã€ã¯ããœãã ãµããŒã ãªã³ã©ã€ã³
ããŒã éçºçšã«è€æ°ã®ãããžã§ã¯ããã ASP.NET ã¢ããªã±ãŒã·ã§ã³ãäœæããæ¹æ³
http://support.microsoft.com/default.aspx?scid=kb;ja;JP307467
è£è¶³ïŒææ°åïŒ: ASP.NET Core ã§ã¯
Razor ã¯ã©ã¹ ã©ã€ãã©ãª (RCL) ã«ããã
View ãããŒãžãéçãã¡ã€ã«ãå¥ãããžã§ã¯ãã«çœ®ããŠåæã§ããã
åæããè£ã¯ã¶çããšããŠããæ§æããæšæºæ©èœã«ãªã£ããWebApp.csproj ⊠ãã¹ã â åç § Feature.A.csprojïŒRCLïŒâŠ Views / wwwroot ãå«ã â åç § Feature.B.csprojïŒRCLïŒ
Web ã¢ããªã»ãµã€ãéã§ SessionCookieãCookie èªèšŒ Ticket ãå ±æããæ¹æ³ïŒASP.NETïŒ
äžèšã®ããã«ãµã€ããçºããªããŠããSessionCookieãCookie èªèšŒ Ticket ãå ±æã§ããã°ã
-
Web ãµã€ããæ¬çªç°å¢ã«é 眮ããæ¹æ³ã«ã¯ã
- ãã¡ã€ã«ã»ãã©ã«ãã®ã³ããŒ
- ããªã³ã³ãã€ã«åŸã®ãã¡ã€ã«ã»ãã©ã«ãã®ã³ããŒ
- ã»ããã¢ãã ããã°ã©ã ã«ããã€ã³ã¹ããŒã«
ãªã©ãããã
-
Web ã¢ããªã±ãŒã·ã§ã³ãæ¬çªç°å¢ã«é 眮ããæ¹æ³ã«ã¯ã
- çºè¡ãWeb Deploy
- ã»ããã¢ãã ããã°ã©ã ã«ããã€ã³ã¹ããŒã«
ãªã©ãããã
- ã¢ã»ã³ããªãçæãããŠããªãç¶æ
ã§ã¢ããªã±ãŒã·ã§ã³ãé
åžããéã®
åæèŠæ±æã« JIT ã³ã³ãã€ã«ãå®è¡ãããã - JIT ã³ã³ãã€ã«ã«ããã¢ã»ã³ããªãçæããããã®åŸã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã
- JIT ã³ã³ãã€ã«ã«ããçæãããã¢ã»ã³ããªã¯ã
%windir%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesã§ç¢ºèªã§ããã
ããªã³ã³ãã€ã«åŸã®ãã¡ã€ã«ã»ãã©ã«ãã®ã³ããŒ
- äºåã³ã³ãã€ã«ã«ããã¢ã»ã³ããªãçæããŠããããšã§
åæèŠæ±æã® JIT ã³ã³ãã€ã«ãäžèŠã«ã§ããã - ãã®å ŽåãWeb ãµã€ãã®ãã¡ã€ã« ã·ã¹ãã äžã«ã¢ã»ã³ããªãçæãããã
- ããªã³ã³ãã€ã«ã«ããçæãããã¢ã»ã³ããªã¯ã
çæããã Web ãµã€ãã®ãã©ã«ãã®çŽäžã«ãããbinããã©ã«ãã§ç¢ºèªã§ããã
è£è¶³ïŒWeb ãµã€ããš Web ã¢ããªã±ãŒã·ã§ã³ã®éãïŒ: ãã®ç¯ã
2 ã€ãåããŠèª¬æããŠããã®ã¯ããããžã§ã¯ãã®çš®é¡ãéãããã§ããã
Web ãµã€ã Web ã¢ããªã±ãŒã·ã§ã³ ãããžã§ã¯ã ãã¡ã€ã« ç¡ãïŒãã©ã«ãããã®ãŸãŸãããžã§ã¯ãïŒ ããïŒ .csprojïŒã³ã³ãã€ã« å®è¡æïŒååèŠæ±æã« JITïŒ ãã«ãæïŒ1 ã€ã® DLL ã«ïŒ é 眮 ãœãŒã¹ïŒ .aspx.csïŒããšã³ããŒbinã® DLL ïŒ.aspxWeb ãµã€ã圢åŒã¯ãœãŒã¹ ã³ãŒããæ¬çªã«çœ®ãããããã
ã»ãã¥ãªãã£ã»æ§èœã®äž¡é¢ã§çŸåšã¯äœ¿ãããªãã
詳现㯠ASP.NETã®æ§æïŒWebãµã€ãã»Webã¢ããªïŒãåç §ã
Web ã»ããã¢ãã ããã°ã©ã ã«ãã Web ãµã€ãã®ã€ã³ã¹ããŒã«ãå¯èœã
Tags: ç§»è¡, .NETéçº