ç§ã¯åžžã«åå©çšå¯èœãªå šäœçãªã³ãŒãã®éçºã«èå³ãæã£ãŠããŸãã ããããåå©çšå¯èœãªã³ãŒãã®åé¡ã¯ãå¥ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ç§»æ€ã®æ®µéã§å§ãŸããŸãã ã¢ããªã±ãŒã·ã§ã³ããã©ã°ã€ã³ã«ãã£ãŠå±éãããå Žåããã©ã°ã€ã³ã¯ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³çšã«äœæãããŸãã ããããã¢ããªã±ãŒã·ã§ã³ããžãã¯ããã©ã°ã€ã³ïŒä»¥éãã¢ãžã¥ãŒã«ãšåŒã³ãŸãïŒã«é 眮ããã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ãã³ã³ãããŒã«ãªã³ã¯ããã¢ãžã¥ãŒã«ã«ãã£ãŠç®¡çãããã³ã³ããŒãã³ãã«å€æãããšã©ããªããŸããã ç§ã®æèŠã§ã¯ããã®ãããªã·ããªãªã§æãéèŠãªã¿ã¹ã¯ã¯ãåºæ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãæå°éã«ç°¡çŽ åããã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã®æçãåå¥ã«æžãæããŸãã¯æ¡åŒµããæ©äŒãæäŸããããšã§ãã ã¢ãžã¥ã©ãŒã³ãŒãã®ã¢ã€ãã¢ããçãŸãããã®ã«èå³ããããªããcatãžããããã
ã¢ã€ãã¢
ä»åŸã®ã·ã¹ãã ã®æåã®æ¡ä»¶ã¯ãåã ã®ã¢ãžã¥ãŒã«ãåã³ã³ãã€ã«ããã«ã·ã¹ãã ãåçã«æ¡åŒµã§ããããšã§ãã ããã¯ããã¹ããšã¢ãžã¥ãŒã«ã®äž¡æ¹ã«é©çšãããŸãã
ãœãªã¥ãŒã·ã§ã³ã®ä»»æã®éšåïŒåºæ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãé€ãïŒãæžãæããŠãåçã«çµ±åã§ããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠã¢ãžã¥ãŒã«ãæ¡åŒµããå¯èœæ§ã«å ããŠãä»»æã®ã¢ãžã¥ãŒã«ã§äœ¿çšå¯èœãªãããªãã¯ã¡ãœãããããããã£ãããã³ã€ãã³ãã«åçã«ã¢ã¯ã»ã¹ã§ããããã«ããããšèããŸããã ãããã£ãŠãã¢ã¯ã»ã·ããªãã£ã«ãã£ãŠãããªãã¯ãšããŠããŒã¯ãããŠããåºæ¬çãªIPluginã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããã¯ã©ã¹ã®ãã¹ãŠã®èŠçŽ ã¯ãä»ã®ã¢ãžã¥ãŒã«ããå€éšããèŠããå¿ èŠããããŸãã
ä»»æã®ã¢ãžã¥ãŒã«ãåé€ããŠã€ã³ãã©ã¹ãã©ã¯ãã£ã«è¿œå ã§ããŸãããåæã«ãããã¢ãžã¥ãŒã«ãå¥ã®ã¢ãžã¥ãŒã«ã«çœ®ãæããããšã決å®ããå Žåãåé€ããã¢ãžã¥ãŒã«ã®ãã¹ãŠã®æ©èœãå®è£ ããå¿ èŠããããŸãã ã€ãŸã ã¢ãžã¥ãŒã«ã¯ãAssemblyGuidAttributeå±æ§ã«ãã£ãŠèå¥ãããŸãããã®å±æ§ã¯ããããžã§ã¯ãã®äœææã«èªåçã«è¿œå ãããŸãã ãããã£ãŠãåãèå¥åãæã€2ã€ã®ã¢ãžã¥ãŒã«ã¯ããŒããããŸãã
åã¢ãžã¥ãŒã«ã¯è»œéã§ããå¿ èŠããããŸããããã«ãããããŒã¹ã€ã³ã¿ãŒãã§ã€ã¹ã絶ããæŽæ°ããå¿ èŠããªããªããå¿ èŠã«å¿ããŠãã¢ãžã¥ãŒã«ãã·ã¹ãã ããåé€ãããªã³ã¯ãä»ããŠéåžžã®ã¢ã»ã³ããªãšããŠã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããŸãïŒåç §ïŒã 幞ããªããšã«ãCLRã¯é 延èªã¿èŸŒã¿ïŒLazyLoadïŒãéããŠäŸåã¢ã»ã³ããªãèªã¿èŸŒããããã¢ãžã¥ãŒã«åŒã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¢ã»ã³ããªã¯å¿ èŠãããŸããã
ãããŠæåŸã®æ¡ä»¶ãšããŠãã·ã¹ãã ã¯éçºè ã«æ©èœã®æ®µéçãªæ¡åŒµãæäŸããŠããšã³ããªã®ã¬ãã«ãååã«äœãã¬ãã«ã«ãªãããã«ããå¿ èŠããããŸãã
åæã«ãã·ã¹ãã ã¯ã¢ããªã±ãŒã·ã§ã³ããã¢ããªã±ãŒã·ã§ã³ãžãšç¹°ãè¿ãããã«ãŒãã³ã¿ã¹ã¯ãèªååããå¿ èŠããããŸãã ããªãã¡ïŒ
- ãŠãŒã¶ãŒèšå®ãŸãã¯èšå®ã®äžè¬çãªä¿åãä¿å/èªã¿èŸŒã¿ã
- ã¢ããªã±ãŒã·ã§ã³ã«å¿ããŠãç¶æ ãŸãã¯ãã®ä»ã®ãã©ã¡ãŒã¿ãŒãä¿åããŸãã
- 以åã«æžãããã³ã³ããŒãã³ãã®è»¢é
- ååãªã¬ãã«ã®æš©éãæããªããœãããŠã§ã¢ã®äœ¿çšã®å¶éïŒã¢ã¯ã»ã¹ã¬ãã«ããã³ã³ããŒãã³ããããŒãããã€ã³ã¿ãŒãã§ãŒã¹èŠçŽ ãé衚瀺ã«ããªãïŒã
- ããžãã¯ïŒã¡ãã»ãŒãžãã¥ãŒãRESTãSOAPãµãŒãã¹ãWebãœã±ããããã£ãã·ã³ã°ãOAuth / OpenId / OpenId Connect ...ïŒãå€æŽããå¿ èŠã®ãªãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãšã®çžäºäœçš
解決ç
èç©ããããœãªã¥ãŒã·ã§ã³ãšåã ã®ã³ã³ããŒãã³ããåäžã®ååã«åºã¥ããŠæ©èœããçµæãã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã®å ±éã®ããžã§ã³ããŸãšããããŸããã
- ã¡ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã®æå°èŠä»¶ã
- ã¢ãžã¥ãŒã«ãããŒãããããã®ç¬ç«ãããœãŒã¹ãåããã¢ãžã¥ãŒã«åŒã€ã³ãã©ã¹ãã©ã¯ãã£
- å ±æèšå®ãªããžããª
- ã¢ããªã±ãŒã·ã§ã³ïŒUIããµãŒãã¹ïŒã®å®è£
ããã®ãœãªã¥ãŒã·ã§ã³ã®ç¬ç«æ§ïŒ
- å·çæç¹ã§ã®ãã¹ãïŒ
- ãã€ã¢ãã°
- MDI
- EnvDTEïŒVisual Studioã¢ãã€ã³ïŒ ã [Visual Studio 2015ã§ã¯æ©èœããŸãã]ã
- ASP.NETã³ã³ããŒãã³ãïŒæ¹èšãå¿ èŠ-> IHttpHandlerãOwinMiddlewareïŒã
- WindowsãµãŒãã¹
- å·çæç¹ã§ã®ãã¹ãïŒ
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãšããã°ã©ã èªäœã®äž¡æ¹ããéçºã®ç¬ç«æ§ãæäŸããããã«ã次ã®äž»èŠã³ã³ããŒãã³ããç»å ŽããŸããã
- SALã€ã³ã¿ãŒãã§ãŒã¹ -åºæ¬ããã³æ¡åŒµã€ã³ã¿ãŒãã§ãŒã¹ãåããã¢ã»ã³ããª
- ãã¹ã -ã¢ããªã±ãŒã·ã§ã³ã ïŒVisual Studioã§äœ¿çšããå Žå-EnvDTEã¢ãã€ã³ïŒãèµ·åããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³ã«äŸåããŸãã
- ãã©ã°ã€ã³ - åºæ¬çã« ããã¹ãã®ç¬ç«ããã¢ãžã¥ãŒã«ïŒãã©ã°ã€ã³ïŒã§ãããä»ã®ã¢ãžã¥ãŒã«ã«äŸåããããä»ã®ã¢ãžã¥ãŒã«ã®ã°ã«ãŒãã®åºç€ãå®è£
ãããã§ããŸãã ç¬èªã®ã¿ã¹ã¯ãå®è¡ããéåžžã®ãã©ã°ã€ã³ã«å ããŠããã¹ãèªäœã§ã¢ã¯ãã£ãã«äœ¿çšããã3çš®é¡ã®ãã©ã°ã€ã³ããããŸãã
- LoaderProvider-ç°ãªããœãŒã¹ããä»ã®ã¢ãžã¥ãŒã«ãããŒãã§ãããããã€ããŒã ãã¹ãã§ã¯ããã¡ã€ã«ã·ã¹ãã ããã¡ã¢ãªã«ããŒãããŒããŒãäœæãïŒManaged C ++ã§ã¯åäœããŸããïŒããŠãŒã¶ãŒã®åœ¹å²ã«åºã¥ããŠãããã¯ãŒã¯çµç±ã§èªã¿èŸŒã¿ãŸãïŒãµãŒããŒã¯ç¹å®ã®ã¿ã¹ã¯çšã«äœæãããŠããŸãïŒã ãã ããããã¯åé
åžã§ã¯ãããŸãããçŸåšã®ã¢ãŒããã¯ãã£ã§ã¯ãããšãã°ãnuget.orgãšããœãŒã¹ãšããŠå¥ã®ãã·ã³ã«ãããã€ããããã¹ããšã®ãªã¢ãŒãéä¿¡ã®äž¡æ¹ã䜿çšã§ããŸãã
- SettingsProvider-ãã©ã°ã€ã³èšå®ã®ä¿åãšèªã¿èŸŒã¿ãæ
åœãããããã€ããŒã äžã§æžããããã«ãããã©ã«ãã§ã¯ãæžããããã¹ãã¯XMLã䜿çšããŠããŒã¿ãä¿åããã³ããŒãããŸãããããã¯ãããªãéçºãå¶éããŸããã å®æããã¢ãžã¥ãŒã«ã§ã¯ãäŸãšããŠMSSQLã䜿çšãããããã€ããŒãæããŸããã
- ã«ãŒãã« -ããžãã¹ããžãã¯ã®ã³ã¢ãšäŸåã¢ãžã¥ãŒã«ã®é åã ã³ã¢ã§ã¯ãäŸåã¢ãžã¥ãŒã«ã®åºç€ã ãã§ãªãããã¹ãã®ã¢ããªã±ãŒã·ã§ã³ã®èå¥ãè¡ããŸãïŒå°ãªããšããç°ãªãã«ãŒãã«ã¢ãžã¥ãŒã«ã«ãã£ãŠçµåãããã¢ãžã¥ãŒã«ã®ç°ãªãé åãåããã¹ãã§èµ·åã§ãããããSettingsProviderã§ã®èå¥ã®ããïŒã
- LoaderProvider-ç°ãªããœãŒã¹ããä»ã®ã¢ãžã¥ãŒã«ãããŒãã§ãããããã€ããŒã ãã¹ãã§ã¯ããã¡ã€ã«ã·ã¹ãã ããã¡ã¢ãªã«ããŒãããŒããŒãäœæãïŒManaged C ++ã§ã¯åäœããŸããïŒããŠãŒã¶ãŒã®åœ¹å²ã«åºã¥ããŠãããã¯ãŒã¯çµç±ã§èªã¿èŸŒã¿ãŸãïŒãµãŒããŒã¯ç¹å®ã®ã¿ã¹ã¯çšã«äœæãããŠããŸãïŒã ãã ããããã¯åé
åžã§ã¯ãããŸãããçŸåšã®ã¢ãŒããã¯ãã£ã§ã¯ãããšãã°ãnuget.orgãšããœãŒã¹ãšããŠå¥ã®ãã·ã³ã«ãããã€ããããã¹ããšã®ãªã¢ãŒãéä¿¡ã®äž¡æ¹ã䜿çšã§ããŸãã
æ¢è£œã®åºæ¬ãã«ã
ãããã®èŠä»¶ã®çµæã次ã®åºæ¬çãªã¢ã»ã³ããªã圢æãããŸããã
- SAL.Core-ãã¹ããšã¢ãžã¥ãŒã«ã«æäœéå¿ èŠãªã€ã³ã¿ãŒãã§ãŒã¹ã®ã»ããã
- SAL.Windows - SAL.Coreã«äŸåããŸãã WinFormsãWPFïŒFormãMenuBarãStatusBarãToolBar ...ïŒã¢ããªã±ãŒã·ã§ã³ã®æšæºæ©èœããµããŒããããã¹ãããã³ã¢ãžã¥ãŒã«çšã®ã€ã³ã¿ãŒãã§ã€ã¹ã®ã»ããã
- SAL.Web - SAL.Coreã«äŸåããŸãã ASP.NETã䜿çšããŠèšè¿°ãããã¢ããªã±ãŒã·ã§ã³ããµããŒããããã¹ãããã³ã¢ãžã¥ãŒã«ã®ã€ã³ã¿ãŒãã§ã€ã¹ã®ã»ããïŒã¡ãžã£ãŒãªããžã§ã³ãå¿ èŠïŒã
- SAL.EnvDTE-SAL.Windowsã«äŸåããŸãã Visual Studioãèšè¿°ãããŠããã·ã§ã«ãšå¯Ÿè©±ã§ãããã©ã°ã€ã³ã®æ¡åŒµæ©èœãæäŸããŸãã
ã·ã¹ãã ãæå°éã«æ©èœãããã«ã¯ãSAL.Coreãžã®ãªã³ã¯ãè¿œå ããå¿ èŠã«å¿ããŠæ¡åŒµæ©èœãå®è£ ãŸãã¯äœ¿çšãã察å¿ããã€ã³ã¿ãŒãã§ã€ã¹æ¡åŒµæ©èœã»ãããžã®ãªã³ã¯ãè¿œå ããŸãã ãŸãã¯ãå¿ èŠãªæœè±¡åã䜿çšããŠãæå°éã®ã€ã³ã¿ãŒãã§ã€ã¹ã»ãããåå¥ã«æ¡åŒµããŸãã
ãã¹ããèµ·åãããšãã«æåã«è¡ãããšã¯ãèšå®ãšå€éšãã©ã°ã€ã³ïŒLoaderProviderãšSettingsProviderïŒãèªã¿èŸŒãããã«ãã¹ãã«çµã¿èŸŒãŸããåºæ¬ã¢ãžã¥ãŒã«ãåæåããããšã§ãã
ãã©ã°ã€ã³ãããã€ããŒãæåã«åæåããã次ã«èšå®ãããã€ããŒãåæåãããŸãã ãã¹ãã«çµã¿èŸŒãŸããããŒããŒã¯ãã¢ããªã±ãŒã·ã§ã³ãã©ã«ããŒå ã®ãã¹ãŠã®ãã©ã°ã€ã³ãæ€çŽ¢ããäŸåã¢ã»ã³ããªã®æ€çŽ¢ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããŸãã 次ã«ããã¹ãã«çµ±åãããèšå®ãããã€ããŒãããŠãŒã¶ãŒãããã¡ã€ã«ã«ããXMLãã¡ã€ã«ããèšå®ãèªã¿èŸŒã¿ãŸãã äž¡æ¹ã®ãããã€ããŒã¯éå±€ç¶æ¿ã€ã³ãã©ã¹ãã©ã¯ãã£ããµããŒããã次ã®ãããã€ããŒãçºèŠãããšãæ°ãããããã€ããŒã®èŠªã«ãªããŸãã ãããã€ããŒãå¿ èŠãªãªãœãŒã¹ãèŠã€ããããªãå ŽåããªãœãŒã¹èŠæ±ã¯èŠªãããã€ããŒã«å®ãŠãããŸãã
ãã¹ãŠã®ãããã€ããŒã®åæåããã»ã¹ãå®äºãããšããã¹ãŠã®ã«ãŒãã«ãæ®ãã®ãã©ã°ã€ã³ãåæåãããŸãã ä»ã®ã¢ãžã¥ãŒã«ãšã¯ç°ãªããã«ãŒãã«ãã©ã°ã€ã³ã¯æåã«åæåãããä»ã®ãã©ã°ã€ã³ã®ããŒãããã£ã³ã»ã«ããæ©èœãåããä»ã®ãã©ã°ã€ã³ã®ããŒãã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããæ©äŒãåŸãŸãã
ãã®åäœã¯ãä»ã®ã¿ã€ãã®ãã©ã°ã€ã³ãããŒãããéå±€ã芳å¯ããå¿ èŠãããå Žåããã¹ãäžã§æžãçŽãããšãã§ããŸãã çŸåšãããŒãã¢ãžã¥ãŒã«ã®ã·ãŒã±ã³ã¹ãã«ãŒãã«ã«ç§»åããããšãèããŠããŸãã
ã¢ã»ã³ããªãããŠã³ããŒããã
æšæºã®LoaderProviderã¯ããªãã¬ã¯ã·ã§ã³ãéããŠãIPluginãå®è£ ãããã¹ãŠã®ãããªãã¯ã¯ã©ã¹ãæ¢ããŸãããããã¯æ£ããã¢ãããŒãã§ã¯ãããŸããã å®éã«ã¯ãã³ãŒãã§ç¹å®ã®ã¯ã©ã¹ãåŒã³åºããããããªãã¬ã¯ã·ã§ã³ãä»ããŠç¹å®ã®ã¯ã©ã¹ãåŒã³åºããããã®ã¯ã©ã¹ããµãŒãããŒãã£ã¢ã»ã³ããªãåç §ããªãå Žåã AssemblyResolveã€ãã³ãã¯çºçããŸããã ã€ãŸããã¢ãžã¥ãŒã«ã€ã³ãã©ã¹ãã©ã¯ãã£ããã¢ã»ã³ããªãåé€ãããªã³ã¯ãè¿œå ããããšã§éåžžã®ã¢ã»ã³ããªãšããŠäœ¿çšã§ããŸããSAL.dllã®å¿ èŠæ§ã¯ãªããªããŸãã ãã ããåºæ¬çãªã¢ãžã¥ãŒã«ãããã€ããŒã¯ãçŸåšã®ãã©ã«ããŒãšãã¹ãŠã®ã¢ã»ã³ããªãªããžã§ã¯ããã¹ãã£ã³ãããšããååã«åºã¥ããŠå®è£ ãããŠããããããã¹ãŠã®åç §ã¢ã»ã³ããªã®AssemblyResolveã€ãã³ãã¯ãã¢ãžã¥ãŒã«ã®èªã¿èŸŒã¿æã«çºçããŸãã
ãã®åé¡ã解決ããããã«ãåçŽãªããŒãããŒããŒçšã®ããã€ãã®ãªãã·ã§ã³ãäœæããŸããããåäœã¯ç°ãªããŸãã äžéšã§ã¯ãäºåã«ã¢ã»ã³ããªã®ãªã¹ããæå®ããå¿ èŠããããäžéšã§ã¯ãã©ã«ããŒèªäœãã¹ãã£ã³ããå¿ èŠããããŸãã
å°æ¥ããã®åé¡ã解決ããããã®ãªãã·ã§ã³ã®1ã€ãšããŠã以äžã§èª¬æããPEReaderã¢ã»ã³ããªã䜿çšã§ããŸãã
SAL.Core
éçºãç°¡çŽ åããããã®æœè±¡ã¯ã©ã¹ã«å®è£ ãããåºæ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãšå°ããªã³ãŒãã ãã¬ãŒã ã¯ãŒã¯ã®ãã¬ãŒã ã¯ãŒã¯ã®æå°ããŒãžã§ã³ãšããŠã.NET Framework v2.0ããŒãžã§ã³ãéžæãããŸããã æäœéå¿ èŠãªããŒãžã§ã³ãéžæãããšããã®ããŒãžã§ã³ã®ãã¬ãŒã ã¯ãŒã¯ããµããŒãããä»»æã®ãã©ãããã©ãŒã ã§ããŒã¹ã䜿çšã§ããŸãããŸããäžäœäºææ§ïŒèµ·åæã«ã©ã³ã¿ã€ã ãéžæïŒã«ããã.NET CoreãŸã§ã®ããŒã¹ã䜿çšã§ããŸãïŒãããŸã§ã¯é€ãïŒã
çè«çã«ã¯ãåºåºã¯ã©ã¹ã¯ãããããç¶æ³ã§äœ¿çšã§ããããã«ããããã®åºæ¬çãªåºç€ã§ããå¿ èŠããããŸãã å®éã«ã¯ã確å®ã«æ¡åŒµããå¿ èŠãããæ¡ä»¶ããããŸãã ãã®å Žåãæœè±¡ã¯ã©ã¹ã®ã³ãŒãå šäœãæžãæããŠãç¬èªã®å®è£ ã§ã€ã³ã¿ãŒãã§ãŒã¹ãæ¡åŒµã§ããŸãã ãããã£ãŠããã®ã¢ã»ã³ããªã§ã¯å¯èœãªéãæå°éã®ã³ãŒãã§ãã
å·çæç¹ã§ã¯ãåºæ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãç¶æ¿ããå¯äžã®ãã¹ãã¯WinServiceã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãã§ãã
SAL.Wndows
ããã¯ãWinFormsããã³WPFã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãèšè¿°ããããã®åºç€ãæäŸããåºæ¬ã¯ã©ã¹ã®ã»ããã§ãã ãã®æ§é ã«ã¯ãæœè±¡ã¡ãã¥ãŒãããŒã«ããŒããŠã£ã³ããŠãæäœããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãå«ãŸããŠããŸãã
SAL.EnvDTE
æ¡åŒµã®èŠ³ç¹ãããVisual Studioã®ã¢ãã€ã³ãšããŠã®ãã¹ãã¯SAL.Windowsã€ã³ã¿ãŒãã§ã€ã¹ãæ¡åŒµããVSåºæã®æ©èœãè¿œå ããŸãã äŸåãã©ã°ã€ã³ãVisual Studioãšçžäºäœçšããã«ãŒãã«ãèŠã€ããããªãå Žåãéãããæ©èœã§åŒãç¶ãåäœã§ããŸãã
SAL.Coreã€ã³ã¿ãŒãã§ãŒã¹ããµããŒããããã¹ãŠã®èšè¿°ãã¹ãã¯ã次ã®æ©èœãèªååããŸãã
- çŸåšã®ãã©ã«ããŒãããã©ã°ã€ã³ãããŠã³ããŒããã
- ãŠãŒã¶ãŒãããã¡ã€ã«ã®XMLãã¡ã€ã«ãããã©ã°ã€ã³èšå®ãä¿åããã³èªã¿èŸŒã¿ã
- ã¢ããªã±ãŒã·ã§ã³ïŒSAL.WindowsïŒãéããšãã«ã以åã«éãããã¹ãŠã®ãŠã£ã³ããŠã®äœçœ®ãšãµã€ãºã埩å ããŸãã
ãããã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ã¯ã次ã®ãã¹ããå®è£ ãããŠããŸãã
- ãã¹ãMDI - DockPanel Suiteã³ã³ããŒãã³ãã䜿çšããŠèšè¿°ããããã«ãããã¥ã¡ã³ãã€ã³ã¿ãŒãã§ã€ã¹ã
- ãã¹ããã€ã¢ãã° -WindowsããŒã«ããŒãä»ããå¶åŸ¡ãåãããã€ã¢ãã°ã€ã³ã¿ãŒãã§ãŒã¹ã
- ãã¹ãEnvDTE -Visual Studioã®ã¢ãã€ã³ãEnvDTEããŒãžã§ã³ã§ãã¹ãæžã¿ïŒ8,9,10,12ã
- ãã¹ãWindowsãµãŒãã¹ -ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãã€ã³ã¹ããŒã«ãã¢ã³ã€ã³ã¹ããŒã«ãããã³å®è¡ã§ããWindowsãµãŒãã¹ãšããŠã®ãã¹ãïŒPowerShellã¯ãµããŒããããŠããŸããïŒã
ã€ãã³ããã°ã¯ãæšæºã®System.Diagnostics.TraceãéããŠå®è£ ãããŸãã MDIãDialogãããã³WinServiceãã¹ãã§ã¯ãapp.configã«ç»é²ããããªã¹ããŒã¯ãåä¿¡ããã€ãã³ããã·ã³ã°ã«ãã³çµç±ã§ã¢ããªã±ãŒã·ã§ã³ã«éãè¿ãããšããŸããã€ãã³ãã¯ãã€ãã³ãã«å¿ããŠãã°ãŠã£ã³ããŠïŒOutputãŸãã¯EventListïŒã«è¡šç€ºãããŸãã devenv.exeã®å Žåããã¬ãŒã¹ãªã¹ããŒãapp.configã«ç»é²ããããšãã§ããŸããããã®å Žåããã¹ãã¢ã»ã³ããªãããŒãããŠããã¢ãã€ã³ãšããŠããŒãããŸãã ãããã£ãŠããã¬ãŒã¹ãªã¹ãã¯ããã°ã©ã ã§ã³ãŒãã«è¿œå ãããŸãïŒVS Output ToolBarãŸãã¯ã¢ãŒãã«ãŠã£ã³ããŠã«è¡šç€ºãããŸãïŒã
èšè¿°ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãããHTTPã¢ããªã±ãŒã·ã§ã³ã®æ¹åã§éçºã§ããŸããããã®ããã«ã¯ãå°ãªããšãèªèšŒãæ¿èªãããã³ãã£ãã·ã¥ãæäŸããã¢ãžã¥ãŒã«ã®äžéšãå®è£ ããå¿ èŠããããŸãã 以äžã§èª¬æããTTManagerã¢ããªã±ãŒã·ã§ã³ã®å ŽåãWEBãµãŒãã¹çšã®ç¬èªã®ãã¹ããå®è£ ãããå¿ èŠãªãã¹ãŠã®æ©èœãå®è£ ãããŸããããæ®å¿µãªãããæ±çšã¢ããªã±ãŒã·ã§ã³ãšããŠã§ã¯ãªããç¹å®ã®ã¿ã¹ã¯çšã«äœæãããŸããã
ãã®ã³ã°ããŠåå¥ã®ã¢ãžã¥ãŒã«ã«åå²ãããã®ã¢ãããŒãã«ãããæ°ããç°å¢ã§èµ·åãããšãã«ããã«ããã¯ãç°¡åã«ç¹å®ã§ããŸãã ããšãã°ãWindows 10ã«ã¢ãžã¥ãŒã«ã®é åãå±éãããšããä»ã®ããŒãžã§ã³ã®OSãããèªã¿èŸŒã¿ã«æéããããããšãããããŸããã ç§ã®å€ãWinXPãã·ã³ã§ãã35ã¢ãžã¥ãŒã«ã®ããŒãã«ã¯æ倧5ç§ããããŸãã ããããWin10ã§ã¯ã1ã€ã®ã¢ãžã¥ãŒã«ãããŒãããããã»ã¹ã«éåžžã«é·ãæéãããããŸããã
ç¬ç«ããã¢ãŒããã¯ãã£ã®ãããã§ãåé¡ã®ã¢ãžã¥ãŒã«ãå³åº§ã«ããŒã«ã©ã€ãºããããšãã§ããŸããã ïŒãã®å Žåãåé¡ã¯Windows 10ã§v2.0ã©ã³ã¿ã€ã ã䜿çšããŠããŸããïŒã
æ¢è£œã®ã¢ãžã¥ãŒã«
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®æåã®ããŒãžã§ã³ã¯2009幎ã«ç»å ŽããŸããã ãã¹ãçšãšä»äºçšã®ç°¡åãªã¿ã¹ã¯ã®å®è¡ãé«éåããããã«ãããŸããŸãªã¿ã¹ã¯ãèªååããå€æ°ã®å€æ§ã§ç¬ç«ããã¢ãžã¥ãŒã«ãèç©ãããŠããŸãïŒãã¹ãŠã®ç»åã¯ã¯ãªãã¯å¯èœã§ãã¢ãžã¥ãŒã«ã¯ãããžã§ã¯ãããŒãžã§ããŠã³ããŒãã§ããŸãïŒã
WebãµãŒãã¹/ Windows Communication Foundationãã¹ãã¯ã©ã€ã¢ã³ã
ãã®ã¢ããªã±ãŒã·ã§ã³ã®äžå¿ã«ããã®ã¯ãVisual Studio-WCFãã¹ãã¯ã©ã€ã¢ã³ãã«ä»å±ããã¢ããªã±ãŒã·ã§ã³ã§ãã ç§ã®æèŠã§ã¯ãå ã®ãœãŒã¹ã«ã¯å€ãã®äžå¿«ãªç¬éããããŸãã WCFãžã®ç§»è¡æãŸã§ã«ãç§ã¯ãã§ã«éåžžã®WebService'ahã§å€ãã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŠããŸããã ILSpyãä»ããŠããã°ã©ã ã®ååãç 究ããåŸãWCFã ãã§ãªãWSã¯ã©ã€ã¢ã³ãã®æ©èœãæ¡åŒµããããšã«ããŸããã ãã®çµæãã¡ã€ã³ããã°ã©ã ãåæããŠã次ã®é«åºŠãªæ©èœãåãããã©ã°ã€ã³ãäœæããŸããã
- WebServiceã¢ããªã±ãŒã·ã§ã³ã®ãµããŒãïŒSoapããããŒãé€ãïŒã
- å€ããã€ã³ãã£ã³ã°ã䜿çšããŠãµãŒãã¹ããã¹ãããæ©èœïŒéããããšãããããã·ã¯ã©ã¹ã¯èªåçã«æŽæ°ãããŸããããUIããã®èŠæ±æã«ã®ã¿æŽæ°ãããŸãïŒ
- Visual Studioããã®ç¬ç«ïŒILMergeã«ããäŸåã¢ã»ã³ããªã®çµã¿åããïŒ
- è¿œå ããããã¹ãŠã®ãµãŒãã¹ãããªãŒåœ¢åŒã§è¡šç€ºããŸãã1ã€ã®ãµãŒãã¹ã®ã¿ã§ã¯æ©èœããŸããã
- ããªãŒã®ãã¹ãŠã®ããŒãã®æ€çŽ¢æ©èœã
- ãµãŒãã¹ãªã¯ãšã¹ããã©ãŒã ã«ã¿ã€ããŒãè¿œå ããããªã¯ãšã¹ãã®å®äºã«ããã£ãæéã远跡ãã
- ãã¹ããã©ãŒã ãŸãã¯ã¢ããªã±ãŒã·ã§ã³å šäœãéããŠéããšãã®éä¿¡ããããã©ã¡ãŒã¿ãŒã®å埩ãè¿œå ããŸããã
- ã¡ãœãããã¹ããã©ãŒã ã®ãã¿ã³ãã¯ãªãã¯ããŠããã©ã¡ãŒã¿ãŒããã¡ã€ã«ã«ä¿åããã³ããŒãããæ©èœãè¿œå ããŸããã
- ã¡ãœãããã©ã¡ãŒã¿ãèªåä¿åããã³ããŒãããæ©èœãè¿œå ãããŸããïŒPlugin.Configurationã¢ãžã¥ãŒã«âå ¥åå€ã®èªåä¿åãå¿ èŠã«ãªããŸã[False]ïŒ
- SvcConfigEditor.exeã䜿çšããŠ.configãã¡ã€ã«ãç·šéããæ©èœãå£ããŠããŸã
RDPã¯ã©ã€ã¢ã³ã
ç¹°ãè¿ããŸãããããã°ã©ã ã®äž»ãªãœãŒã¹ã¯M $ããã°ã©ããŒã§ããã ãã®ããã°ã©ã ã¯RDCManããã°ã©ã ã«åºã¥ããŠããŸãããã¡ã€ã³ããã°ã©ã ãšã¯ç°ãªããæ¥ç¶ããããµãŒããŒãŠã£ã³ããŠããã€ã¢ãã°ã€ã³ã¿ãŒãã§ãŒã¹ã«åã蟌ãããšã«ããŸããã ãŸãããªã¢ãŒãèšå®ãªããžããªã¯ãé¢ä¿ãããã¹ãŠã®ååã®ãµãŒããŒã®ãªã¹ããææ°ã®ç¶æ ã«ä¿ã€ã®ã«åœ¹ç«ã¡ãŸããã
PEæ å ±
ãã®ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã«ã¯ãä»ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯èŠã€ããããªãã£ãæ°ããèªååã®ã¢ã€ãã¢ããããŸãã ãã®ãããªã¢ããªã±ãŒã·ã§ã³ãäœæããç®çã¯æ¬¡ã®ãšããã§ãã
- ã»ãšãã©ã®ãã£ã¬ã¯ããªãšã¡ã¿ããŒã¿ããŒãã«ãå«ãPEãã¡ã€ã«ã®ã³ã³ãã³ãã衚瀺ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãïŒãã ããRT_DIALOGãªãœãŒã¹ã®åºåã¯å ã®ãã®ãšã¯å€§ããç°ãªããŸãïŒã
- PE / CLIãã¡ã€ã«ã®æ§é ã«ããæ€çŽ¢
- ãã¡ã€ã«ã·ã¹ãã ããã ãã§ãªããWinAPI LoadLibraryé¢æ°ãä»ããŠPEãã¡ã€ã«ã®èªã¿èŸŒã¿ãæå¹ã«ããŸãã LoadLibraryãä»ããŠããŒãããå Žåãã¢ã³ããã¯ãããPEãã¡ã€ã«ãèªã¿åãæ©äŒãããã RVAãèšç®ããå¿ èŠã¯ãããŸããã
å®è¡ãã¡ã€ã«ã«ç¹å®ã®æ©èœãå®è£ ãããŠããããšãäœåºŠãå€æããŸãããããã®æ©èœã¯æ代é ãã§ãããã誰ã䜿çšããŠããŸããã§ããã ç¹å®ã®ãªããžã§ã¯ãã®äœ¿çšã«ã€ããŠãç°ãªãèšèªã®ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒããæ€çŽ¢ããªãããã«ããããã«ããã®ã¢ããªã±ãŒã·ã§ã³ãäœæãããŸããã ããšãã°ãäžè¬çãªãªããžããªã«ã¢ã»ã³ããªãããããã®ã¢ã»ã³ããªãã1ã€ã®ã¡ãœãããåé€ããããšã«ããŸããã ãã®æ¹æ³ãååã«ããä»ã®ãããžã§ã¯ãã®çŸåšã®äŸåãã«ãã§äœ¿çšãããŠãããã©ããã調ã¹ãæ¹æ³ã¯ïŒ ãã¹ãŠã®ãœãŒã¹ã³ãŒãã確èªããããã«äŸé ŒãããããœãŒã¹ç®¡çæ€çŽ¢ã§æ€çŽ¢ããããã³ã³ãã€ã«ãããã¢ã»ã³ããªå ã§åãååã®ã¡ãœãããæ€çŽ¢ãããã§ããŸãã 次ã®2ã€ã®ã³ã³ããŒãã³ãã§æ§æãããŸãã
- PEReaderã¢ã»ã³ããªïŒå®å šã§ãªãããŒã¯ã³ãªãã§èšè¿°ïŒããã®ãœãŒã¹ã³ãŒãã¯GitHubã§å©çšå¯èœã§ãã
- SAL.Windowsæœè±¡åã¬ã€ã€ãŒã䜿çšãããSALã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã©ã°ã€ã³ã§ããã¯ã©ã€ã¢ã³ãéšåã
PEãDEXãELFãããã³ByteCodeãã¡ã€ã«ã®éå±€ãæ€çŽ¢ããããã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«å®å šã«é©åããå¥ã®ã¢ãžã¥ãŒã«ReflectionSearchãäœæãããŸããã ãªãã¬ã¯ã·ã§ã³ãä»ããŠãªããžã§ã¯ããæ€çŽ¢ããããžãã¯å šäœããã®ã¢ãžã¥ãŒã«ã§åãé€ãããå®è¡å¯èœããã°ã©ã ãèªã¿åãããã®ã¢ãžã¥ãŒã«å ã®ããã€ãã®ãããªãã¯ã¡ãœããã®ãããã§ãã³ãŒãã®åå©çšæ§ãå®çŸããããšãã§ããŸããã
æ®ã
åå¥ã®ã¢ã€ãã ããšã«æ¢è£œã®ã¢ãžã¥ãŒã«ã®ãªã¹ãå šäœã説æããªãããã«ãæ®ãã®ã¢ãžã¥ãŒã«ã1ã€ã®ãªã¹ãã§èª¬æããŸãã
- ELFã€ã¡ãŒãžæ å ± -PEæ å ±ãšåæ§ã«ELFãã¡ã€ã«ãå解ããŸãã GitHubã®ElfReader
- ByteCodeïŒ.classïŒæ å ± JVM .classãã¡ã€ã«ãéã¢ã»ã³ãã«ããŸãã GitHubã®ByteCode Reader
- DEXïŒDavlikïŒæ å ±-Androidã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããDEX圢åŒã®å解ã GitHubã®DexReader
- Reflection Search-ãªãã¬ã¯ã·ã§ã³ãä»ããŠãªããžã§ã¯ããæ€çŽ¢ããããã®ã¢ã»ã³ããªã 以åã¯PE Infoã¢ãžã¥ãŒã«ã®äžéšã§ããããä»ã®ã¢ãžã¥ãŒã«ã®åºçŸã«ãããPEãELFãDEXãByteCodeã¢ãžã¥ãŒã«ã®ãããªãã¯ã¡ãœããã䜿çšããŠå¥ã®ã¢ãžã¥ãŒã«ã«è»¢éãããŸããã
- .NETã³ã³ãã€ã© -çŸåšã®AppDomainã®ãªã¢ã«ã¿ã€ã .NETã³ãŒãã³ã³ãã€ã©ã ã³ãŒãïŒTextBoxïŒãèšè¿°ããã³ã³ãã€ã«æžã¿ã¢ããªã±ãŒã·ã§ã³ããã¹ãããã³ã³ãã€ã«æžã¿ã³ãŒãããã£ãã·ã¥ããã³ã³ãã€ã«æžã¿ã³ãŒããå¥ã®ã¢ã»ã³ããªãšããŠä¿åããæ©èœãæäŸããŸãïŒHTTP Harvesterã¢ããªã±ãŒã·ã§ã³èªååã®2åç®ã®ç¹°ãè¿ãã§äœ¿çš[以äžã§èª¬æ]ïŒã
- ãã©ãŠã¶ -DOMèŠçŽ ãžã®é«åºŠãªXPathåä¿¡æ©èœïŒ HtmlAgilityPackã«äŒŒãèªå·±èšè¿°å ïŒãåããTridentã®ãã¹ãã£ã³ã°ã ïŒã¢ããªã±ãŒã·ã§ã³èªååHTTPããŒãã¹ã¿ã®3åç®ã®å埩ã§äœ¿çšãããŸã[以äžã§èª¬æ]ïŒã
- æ§æ -ãã©ã°ã€ã³èšå®ãç·šéããããã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãSAL.Windowsã䜿çšããå ŽåãUIãä»ããŠãã¹ãŠã®èšå®ã«ã¢ã¯ã»ã¹ã§ããããã§ã¯ãªãããã§ãã
- ã¡ã³ã㌠-å€éšåŒã³åºãã«äœ¿çšã§ãããããªãã¯UIãã©ã°ã€ã³èŠçŽ ã«è¡šç€ºããŸãã
- DeviceInfo-äºææ§ã®ããããã€ã¹ããSMARTå±æ§ãèªã¿åãããšãã§ããå®å šã§ãªãããŒã¯ã³ãªãã§åäœããã¢ã»ã³ããªã ãã¹ãŠã®ããŒã¿ãååŸããã«ã¯ãWinAPIé¢æ°DeviceIOControlã䜿çšãããŸã ãã¢ã»ã³ããªèªäœã®ãœãŒã¹ã³ãŒãã¯GitHubã§å ¥æã§ããŸã ã
- åäžã€ã³ã¹ã¿ã³ã¹ -ã¢ããªã±ãŒã·ã§ã³ãåäžã€ã³ã¹ã¿ã³ã¹ã«å¶éããŸãïŒããŒäº€æã¯.NET Remotingãä»ããŠå®è¡ãããŸãïŒã
- SQLèšå®ãããã€ã㌠-MSSQLããèšå®ãä¿åããã³ããŒãããããã®ãããã€ããŒã ïŒã³ãŒãã¯ADO.NETãšã¹ãã¢ãããã·ãŒãžã£ã§æžãããŠãããçµ±äžã®ç¯å²ãåºããããåã ã®DBMSã«ã€ããŠã¯ãã¹ãã¢ããã¡ã€ã«ã®ç¬èªã®å®è£ ãèšè¿°ããå¿ èŠããããŸãïŒã
- SQL Assembly scripter-.NETã¢ã»ã³ããªããMicrosoft SQL Serverã¹ã¯ãªãããäœæããŠãMSSQLã«ãããŒãžã³ãŒããã€ã³ã¹ããŒã«ããŸãïŒå®å šã§ãªãã¢ã»ã³ããªã§ã¯ãã¹ããããŠããŸããïŒã
- Winlogon-ãã®ã¢ãžã¥ãŒã«ã¯ã SENSã€ã³ã¿ãŒãã§ã€ã¹ã®ãããªãã¯ã€ãã³ããæäŸããŸãã æåã®ããŒãžã§ã³ã¯Winlogonã䜿çšããŠããŸãããããµããŒããããªããªããŸããã
- EnvDTE.PublishCmd-ãã®ã¢ãžã¥ãŒã«ã®è©³çŽ°ãããã§èª¬æããŸãã ã
- EnvDTE.PublishSql-æåå ¬éã®ååŸã«ãADO.NETãä»ããŠä»»æã®SQLã¯ãšãªãå®è¡ãããã³ãã¬ãŒãå€ã衚瀺ããŸãã
æ®ãã¯ããã«ãããŸã ïŒåèšã§çŽ30ã®ã¢ãžã¥ãŒã«ãæçš¿ãããŠããŸãïŒã ãã¹ãŠã®ã¢ãžã¥ãŒã«ã®ç»åã¯ãã¡ã ã
æ¢è£œã®ãœãªã¥ãŒã·ã§ã³
ã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ã§è€åäœå šäœãæ§ç¯ããããšã®å©äŸ¿æ§ã瀺ãããã«ãããŸããŸãªååã«åºã¥ããŠæ§ç¯ãããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããã€ã玹ä»ããŸãã
- ã¢ãžã¥ãŒã«éã®å®å šãªç¬ç«æ§
- ã«ãŒãã«ã¢ãžã¥ãŒã«ãžã®éšåçãªäŸåé¢ä¿
TTManager
åºæ¬çã«ã¿ã¹ã¯ã®ããŸããŸãªãœãŒã¹ã䜿çšããæ©èœãæã€åçæ¡åŒµã·ã¹ãã ã䜿çšããã¿ã¹ã¯ã·ã¹ãã çšã®ã¢ããªã±ãŒã·ã§ã³ã ãã®çµæãããŸããŸãªãœãŒã¹ããã¿ã¹ã¯ãäœæããšã¯ã¹ããŒã/ã€ã³ããŒãã衚瀺ã§ããçµ±äžãããã€ã³ã¿ãŒãã§ã€ã¹ãäœæãããŸãã çŸåšããœãŒã¹ãšããŠMSSQLãWebServiceããã³Megaplanã¿ã¹ã¯ïŒåºåã§ã¯ãªãïŒã®éšåçã«REST APIããµããŒãããŠããŸãã WebServiceã¯ãSAL.Webåºæ¬ã¯ã©ã¹ã䜿çšããŠãåæ§ã®æ¹æ³ã§äœæãããŸãã ãã®ãããWebServiceèªäœããœãŒã¹ãšããŠMSSQLãMegaplanããŸãã¯WebServiceã䜿çšã§ããŸãã
ä»çµã¿
ã«ãŒãã«ã¢ããªã±ãŒã·ã§ã³ãã©ã°ã€ã³ããã¹ãŠã®ã¿ã¹ã¯ãœãŒã¹ãã©ã°ã€ã³ïŒDALïŒã®é 延èªã¿èŸŒã¿æ€çŽ¢ã ããŒã¿ã«ã¢ã¯ã»ã¹ããããã®è€æ°ã®ãã©ã°ã€ã³ãèŠã€ãã£ãå Žåãã¯ã©ã€ã¢ã³ãã¯äœ¿çšããããã©ã°ã€ã³ãéžæããããæ±ããããŸãïŒSAL.Windowsã§ã®ã¿ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ãªããã¹ãã§-ãšã©ãŒã§ã¯ã©ãã·ã¥ããŸãïŒã äŸåãã©ã°ã€ã³ã¯ãã«ãŒãã«ã¢ãžã¥ãŒã«ãä»ããŠéžæããDALãã©ã°ã€ã³ã«ã¢ã¯ã»ã¹ããŸãã
èå³æ·±ãç¹
ãã®äŸã§ã¯ãã«ãŒãã«ãã©ã°ã€ã³ã¯ä»ã®äŸåãã©ã°ã€ã³ããã®ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠæœè±¡åãããŠããŸãã ãã®å Žåãå¥ã®ã«ãŒãã«ã¢ãžã¥ãŒã«ãèšè¿°ããïŒãŸãã¯çŸåšã®ã¢ãžã¥ãŒã«ãæžãæããïŒããšãã§ããŸãã ãŸãã¯ãäžè¬çãªãã©ã°ã€ã³ãæžãæããŠãã¿ã¹ã¯ã®è€æ°ã®ãœãŒã¹ãåæã«æäœã§ããããã«ããŸãã
ã¿ã¹ã¯ã®ã¹ããŒã¿ã¹ã«é¢ããåé¡ã解決ããããã«ãäžéšã®DALãã©ã°ã€ã³å
ã«ã¹ããŒã¿ã¹ã®ãããªãã¯ã¹ãçž«ãä»ããããŠããŸãïŒãŸãã¯ãã¿ã¹ã¯ã®ãœãŒã¹ããååŸãããŸãïŒååšããå ŽåïŒïŒã ãã®å Žåã1ã€ã®ãœãŒã¹ããå¥ã®ãœãŒã¹ãžã®ããŒã¿è»¢éã«åé¡ã¯ãããŸããã
HTTPããŒãã¹ã¿ãŒ
ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæ¢è£œã®ãã©ã°ã€ã³ã䜿çšããŠãTridentãŸãã¯WebRequestãéããŠãµã€ãã解æã§ããŸãã 解æã«ã¯ããã€ãã®ã¬ãã«ã®æœè±¡åãå©çšå¯èœã§ãã æäžäœã¬ãã«ã§ã¯ãDOMã䜿çšããå¿çãŸãã¯ãµãŒããŒããã®å¿çãéããŠè§£æããè¿œå ã®ãã©ã°ã€ã³ãäœæã§ããŸãã äžèšã®ã¬ãã«ã§ã¯ãã©ã³ã¿ã€ã ã§.NETã³ãŒããèšè¿°ã§ããŸããããã¯ããã©ã°ã€ã³ã.NETã³ã³ãã€ã©ããä»ããŠã³ã³ãã€ã«ãããã©ã³ã¿ã€ã ã§Tridentã«è¡šç€ºãããããŒãžã®çµæã«é©çšãããŸãã æé«ã¬ãã«ã«ã¯ããã©ã€ãã³ãã«è¡šç€ºããããµã€ãã®ããŒãžäžã®èŠçŽ ã®UIã«ãã衚瀺ãå«ãŸããŸãã ãããŠããã³ãã¬ãŒãã®xpathïŒèªå·±èšè¿°ããŒãžã§ã³ïŒãé©çšããåŸãããNETã³ã³ãã€ã©ããã©ã°ã€ã³ãã.NETã³ãŒããåŠçãŸãã¯å®è¡ããããã«ããŠãããŒãµã«ãã©ã°ã€ã³ã«è»¢éããŸãã
ä»çµã¿
ãã®ã¢ãžã¥ãŒã«ã¯ãã«ãŒãã«ãã©ã°ã€ã³ã«å¿ããŠãæ¢è£œã®åºåã€ã³ã¿ãŒãã§ã€ã¹ãšããŒã¿ãããŠã³ããŒãããããã®åºæ¬çãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ãããããéžæããããã«æäŸãããŸãã ãã°ãèšé²ããæ©èœãåããTridentãŸãã¯WebRequestã ã«ãŒãã«ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã ãã§ãªããåã ã®ã¢ãžã¥ãŒã«ããšã«ããŒãªã³ã°ã¿ã€ããŒãæäŸããŸãã
åºåã€ã³ã¿ãŒãã§ã€ã¹ã¯ãããŒãã«å ã®æåŸã®ãªãŒãã³äœçœ®ãä¿åããæ©èœãåãããããŒã¿åºåã³ã³ãããåããæšæºã®GridViewãæäŸããŸãã ããã©ã«ãã§ã¯ãã³ã³ããã¯ç»åãŸãã¯ããã¹ãããŒã¿ã®è¡šç€ºããµããŒãããŠããŸãã
èå³æ·±ãç¹
ãã®å Žåãã€ã³ã¿ãŒãã§ã€ã¹ã§ã«ãŒãã«ãã©ã°ã€ã³ããå€ãããšã¯ãªãããã¹ãŠã®äŸåãã©ã°ã€ã³ã¯ãããŒãããããã©ã°ã€ã³ã®é åã§ç¹å®ã®ã«ãŒãã«ãã©ã°ã€ã³ãèŠã€ããããšãæåŸ ããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯3åã®å埩ã§äœæãããŸããïŒSAL.Windowsã®ã¿ïŒïŒ
- ã«ãŒãã«ãã©ã°ã€ã³ã§èª¬æãããŠããTridentãæäœããããã®åºæ¬çãªã³ã³ãããŒã«ãšã¡ãœããã®é åã䜿çšããŠããã©ã°ã€ã³ãèšè¿°ããæ©äŒãäœãããŸããã
- ããã§ãPlugin.Compilerã§çæããã³ç·šéãããã©ã³ã¿ã€ã ã³ãŒãã䜿çšããŠããã©ã°ã€ã³ã®ã³ãŒãã眮ãæããããšãã§ããŸã
- Trientã§ãUIãä»ããŠHTMLããŒããžã®ãã¹ãæå®ã§ããããã«ãªããŸããã ãã®çµæãã©ã³ã¿ã€ã ãŸãã¯ãªã³ã©ã€ã³ã³ãŒãã®ããŒ/å€é åãæäŸãããŸããå€ã¯ã HtmlAgilityPackã®å®è£ ãšåæ§ã®HTMLèŠçŽ ãžã®ãã¹ã§ãã
ãã§ã«å€ããŠåé€ãããŠãããã®
- Office 2010ã®ãã¹ããåé€ããŸãããã³ã³ããã¹ãã¡ãã¥ãŒããTTManagerã®ã¿ã¹ã¯ãäœæããããã ãã«äœæãããŸããããæŸèæãè±å¯ã§æ©èœãå¶éãããŠããããããããªããµããŒãã¯å®çšçã§ã¯ãããŸããã§ããã
- ATLçµç±ã§EnvDTEã«ãŠã£ã³ããŠãäœæããæ©èœãåé€ããŸããã VS 2007ããåã¯ãã¹ã¿ãžãªã§ãŠã£ã³ããŠãäœæããæ©èœã¯ãATLãšCOMã«ãã£ãŠã®ã¿å®çŸãããŠããŸããã ãã®åŸããã¹ãŠã.NETã§å®è¡ã§ããããã«ãªããŸããã
- ã¢ãã€ã³ãšããŠå®è£ ãããEnvDTEã®éæšå¥šãã¹ã
æ¢ç¥ã®ãã°
EnvDTEãã¹ãã¯ãè±èªã®ã¹ã¿ãžãªã§ã®ã¿æ€èšŒãããŠããŸãã ããŒã«ã©ã€ãºçã§åé¡ãçºçããå ŽåããããŸãïŒVS11ã§ãã·ã¢èªã®ããŒã«ã©ã€ãºããã¹ãããåŸïŒ
WinlogonïŒSENSïŒãã©ã°ã€ã³ãããŒãããããŠãŒã¶ãŒãã¢ãã€ã³ãããŒãžã£ãŒãä»ããŠãã¹ããã¢ã³ããŒãããããšã決å®ããå ŽåãEnvDTEãã¹ãã¯ã¹ã¿ãžãªãéããŸãã ïŒWindows 10ã«å¯Ÿå¿ïŒã
ãªããªã ãã¹ãã¯å®å šãªæ¡åŒµãšããŠã§ã¯ãªããã¢ãã€ã³ãšããŠèšè¿°ãããŠãããããEnvDTEã«åºã¥ãä»ã®è£œåãšã®äºææ§ã¯ãããŸããã
ä»åŸã®éçºã®äºæž¬ã¯äœã§ãã
çµã¿èŸŒã¿ã¯ã©ã¹System.Web.Caching.Cacheããã³System.Runtime.Caching.MemoryCacheã«å ããŠããã£ãã·ã¥æ©èœã䜿çšããå Žåã¯ããªã¢ãŒããã£ãã·ã¥ã䜿çšã§ããŸãã ããšãã°ãAppFabricã ãã£ãã·ã³ã°çšã®åºæ¬çãªã¯ã©ã€ã¢ã³ãã€ã³ã¿ãŒãã§ã€ã¹ãèšè¿°ããããšã«ãããåã¿ã€ãã®ãã£ãã·ã¥ã«å¯Ÿå¿ããã¢ãžã¥ãŒã«ã®é åãéçºããå¿ èŠã«å¿ããŠç®çã®ã¢ãžã¥ãŒã«ãéžæã§ããŸãïŒçºè¡æç¹ã§ã¯ããã§ã«èšè¿°ãããŠããŸãããã¬ã€ã¢ãŠããããŠããŸããïŒã
äœææã®ã¢ãžã¥ãŒã«ã¯ããã¡ã€ã«ã·ã¹ãã ãããã¡ã€ã«ã·ã¹ãã ããã¡ã¢ãªã«ããŒãããXMLãã¡ã€ã«ãTOCãšããŠäœ¿çšããŠãããã¯ãŒã¯çµç±ã§æŽæ°ã§ããŸãã ãããªãéçºã«ããããã¡ã€ã«ã·ã¹ãã ãããªããžããªãšããŠäœ¿çšã§ããã ãã§ãªããnugetããªããžããªãšããŠäœ¿çšããããã¢ãžã¥ãŒã«ããªã¢ãŒãã§å®è¡ã§ãããã¹ããå®è£ ãããã§ããŸãã
ãŠãŒã¶ãŒã®ããŒãœãã©ã€ãºã¯ãããŒã«ãšã¯ã¬ãŒã ã®äž¡æ¹ã§å¯èœã§ãã ãã ããOpenIdãOAuthãOpenId Connectã䜿çšããå Žåãå€ãã®ãããã€ããŒããããåãããã€ããŒã¯System.Security.Principal.IIdentityïŒåœ¹å²ããŒã¹ã®èªèšŒã䜿çšããå ŽåïŒãŸãã¯System.Security.Claims.ClaimsIdentityïŒã¯ã¬ãŒã èªèšŒã䜿çšããå ŽåïŒãååŸããå¿ èŠããããŸãã ãããã£ãŠãLinedInã®ã¯ã©ã€ã¢ã³ããäœæãããšãåã³ã³ãã€ã«ããã«ä»»æã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸãã
ã¡ãã»ãŒãžãã¥ãŒã䜿çšããå ŽåãServiceBusã®æ©èœãå®è¡ããã¢ãžã¥ãŒã«ãšäžé£ã®ã€ã³ã¿ãŒãã§ã€ã¹ãèšè¿°ã§ããŸããç¹å®ã®ãã¥ãŒãå®è£ ããã¢ãžã¥ãŒã«ã¯ãã¡ãã»ãŒãžã®éåä¿¡ãæ¢ã«æ åœããŠããŸãã
SSISãŸãã¯BizTalkãµãŒãã¹ãšåæ§ã«ããããªãã¯ã¢ãžã¥ãŒã«ã¡ãœãããåçã«ãã€ã³ãããããã®UIã€ã³ã¿ãŒãã§ã€ã¹ãäœæã§ããŸãã