
ãã®å®éšãéå§ããåã«ããã®ãããã¯ã«é¢ãã調æ»ãå®æœããŸããã ãã®çµæã¯ããã«ãããŸã ãèè ã«çºèšæš©ãäžããŸãã
- ããŒã1ïŒéå§ç¹
- ããŒã2ïŒé«åºŠãªã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³
- ããŒã3ïŒããã®å人ã®æ¯åã¹ã¿ã€ã«
- ããŒã4ïŒãŠãŒã¶ãŒããŒã¿ã®ååŸïŒä»»æïŒ
- ããŒã5ïŒããŒã¿ã¯ã©ãã«ä¿åããŸããïŒ
ã€ã³ãã
ç¥äººããå§ããŸãããã ç§ã®ååã¯Aleksey Plotnikovã§ã以åãã®ããã°ã§ãã¢ã¯ãã£ãã³ãã¥ããã£ã¡ã³ããŒããšåŒã°ããŠããŸããã ç§ã¯äŒç€Ÿã®åŸæ¥å¡ã§ã¯ãªããããã®éçºè ã§ããªããããããã¯æã容éã®å€§ãããã¬ãŒã³ããŒã·ã§ã³ã§ãã ç§ã¯VB.NETãéçºèšèªãšããŠäœ¿çšããç¬åŠã®ããã°ã©ããŒã§ãããããã€ãã®èšäºã®èè ã2ã3ã®èå³æ·±ããããžã§ã¯ããMSDNãã©ãŒã©ã ã§ã®äœçŸãã®æçšãªåçã§ãã ããããéçºã¯ç§ã«ãšã£ãŠåãªã趣å³ã§ãããšããäºå®ã«ãããããããç§ã¯ãã®ãµã€ã¯ã«ã§ããªããšå ±æããäºå®ã®åºç¯ãªçµéšãæã£ãŠããŸãã
ãšããã§ãã³ã³ãã³ãã«ã€ããŠã äž»ã«UWPã®æ°åè ã«çŠç¹ãåœãŠãŸãããéçºå šè¬ã«çµéšããããŸãã ãã®ãµã€ã¯ã«ã¯ãWPFéçºè ããã³UWP / .Netã®éçºã«ææŠããããšã決ããä»ã®ãã©ãããã©ãŒã ã®éçºè ã«ãšã£ãŠçæ³çã§ãã ãããŠãMSã®ããã¥ã¡ã³ããšã¬ã€ããžã®äžå®ã®åç §ãèãããšãUWPããå§ããŠ.Netã®éçºã«ç²Ÿéãããåå¿è ã§ã段éçãªããã¥ã¢ã«ã ãã§ãªããã©ã€ããã¥ã¡ã³ããèªãã®ãé¢åã§ã¯ãªãåå¿è ã«ãšã£ãŠããã®ãµã€ã¯ã«ã¯ããããæé ãªäŸ¡æ Œã«ãªãã§ãããã ãã ããã©ã€ãããã¯ã«è§Šããããäœããã®çç±ã§ãã¿ããã«å®è¡ããããã¥ã¡ã³ãã®å€±æãã決å®ãåé¿ããããããããçµéšè±å¯ãªéçºè ã«ãšã£ãŠãµã€ã¯ã«ã®ç¹å®ã®ãããã¯ã圹ç«ã€å ŽåããããŸãã
ãããŠãå°æ¥ã®ãããžã§ã¯ãã«ç²Ÿéãå§ããåã«ããµã€ã¯ã«ã®æ§ç¯ã«åºã¥ããŠãããããªãå¿ èŠãªã®ãã«ã€ããŠã®è°è«ã«ããã€ãã®è¡ïŒãŸãã¯ããããããã€ãã®æ®µèœïŒãæ§ããããšæããŸãã æ£çŽã«èšããšãWindowsã¹ãã¢ã®éçºã¯å°ãªããšãæµè¡ã§ã¯ãããŸããã ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãšããŠå®è£ ãããã¯ãŒã«ãªã¢ã€ãã¢ã¯ãiOSã§å€ãã®ãéããAndroidã§äœçŸäžäººãã®ãŠãŒã¶ãŒããããããŸãã
.Netã䜿çšããŠUWPéçºãç 究ããçç±ã¯å°ãªããšãããã€ããããŸãã ãŸããWPFã®éçºè ã§ããã°ã移è¡ã¯å¯èœãªéãã¹ã ãŒãºã§çã¿ã®ãªããã®ã«ãªããŸãã 第äºã«ãä»ã®ã¢ãã€ã«ãã©ãããã©ãŒã ãã©ãã»ã©ã¯ãŒã«ã§ãã£ãŠãããããã¯ãã¢ãã€ã«ãã®ãŸãŸã§ãã
ãŠãããŒãµã«Windowsãã©ãããã©ãŒã ãšããååã¯ããã®ãã©ãããã©ãŒã ã«çµã¿èŸŒãŸããæ©èœãšãã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããæœåšçãªããã€ã¹ã®åºããè¡šããŠããŸãã ãã¡ãããçŸåšWindows 10ãäž»ã«ãã¹ã¯ãããã§äœ¿çšãããŠãããšèšãã®ã¯æ£ããã§ããããããããæ¥éã«å€åããåžå Žã¯ã2ã€ã®ç¹ã§ãã¹ãŠã®å¯èœãªããã€ã¹ã§æã人æ°ã®ããOSãšããŠWindows 10ãæ¯æããŠé»åã®ãã©ã³ã¹ãå€ããããšãã§ããŸãã ã§ã¯ãã¢ãã€ã«ã ãã§ãªããããããããã€ã¹ã§ãèªåé ä¿¡ã䟿å©ãªå ¬éãšæŽæ°ãªã©ã®ãã¢ãã€ã«ãã®å©äŸ¿æ§ã掻çšããŠã¿ãŸãããïŒ
æåŸã«ããã®ãµã€ã¯ã«ãæ§ç¯ããåºç€ãšãªããããžã§ã¯ãã«ã€ããŠè©±ããŸãã
ãã®ãããžã§ã¯ãã®ã¢ã€ãã¢ã¯ãæå·é貚ã®äººæ°ããã£ããã«çãŸãããã®ã§ãããªãåçŽãªã²ãŒã ã§ãã ã²ãŒã ã¯ãCrypto FarmããšåŒã°ãããæ³åã®ãšãããã²ãŒã ããã»ã¹ã¯æå·é貚ãã€ãã³ã°ã«åºã¥ããŠæ§ç¯ãããŸãã ã²ãŒã ãã¬ã€ã®ãã詳现ãªèª¬æã¯ãå¿ èŠã«å¿ããŠãããã®èšäºã®ãµã€ã¯ã«äžã«æ€èšãããŸãã ãã®ãµã€ã¯ã«ã¯UWPã§ã®éçºã«é¢ãããã®ã§ããããã®ã²ãŒã ã«é¢ãããã®ã§ã¯ãªãããšãç解ããããšãéèŠã§ãããããã£ãŠãã²ãŒã ã®ã·ããªãªã ãã§ãªããããŸããŸãªã·ããªãªã«ã§ããã ãæœè±¡çã§é©çšã§ããããã«ããããšããèšäºããµããŒãããã ãã§ãã
èšäºã®éçºããã³å·çäžã«ã次ã®ãããã¯ãåãäžããäºå®ã§ãã
- ãããžã§ã¯ããäœæããŸãã å°æ¥çã«æ倧éã®å©äŸ¿æ§ãšæ¡åŒµæ§ãåŸãããã«ãæåããå¿ èŠãªãã®ã
- ã¹ã¿ãŒãç»é¢ ãã掻æ°ããããããèå³æ·±ãå€ã§ãå éšã§å¹æçã§ãã
- ãã«ããŠãŒã¶ãŒèŠçŽ ã ãŠãŒã¶ãŒèå¥ã ã©ããã£ãŠïŒ ããŒã¿ãä¿åããå Žæ è²»çšã¯ãããã§ããïŒ
- ã¢ããªã±ãŒã·ã§ã³æ§é å¿ èŠãªããŒãžæ°ã ãããã®éã®ç§»è¡ã
- ãã¶ã€ã³ãšã¹ã¿ã€ãªã³ã°ã ã¢ããªã±ãŒã·ã§ã³ã®å€èŠ³ã«é¢ããããã€ãã®èšäºã ã°ã©ãã£ãã¯çŽ æã®æºåããã¹ã¿ã€ãªã³ã°ã³ã³ãããŒã«ãŸã§ã
- ç¬èªã®ã³ã³ãããŒã«ãäœæããŸãã å©çšå¯èœãªãã®ãååã§ã¯ãªããç¬èªã«äœæããå¿ èŠãããå Žåã
- ããã¯ã°ã©ãŠã³ãã€ãã³ãã ã©ã€ãã¿ã€ã«ãšéç¥ã ãã¹ãŠã®UWPã¢ããªã±ãŒã·ã§ã³ã«ååšããå¿ èŠããããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®éèŠãªèŠçŽ ã
- åçåã åçã®çš®é¡ã ã©ã®æ¹æ³ãéžæããå¹æçã«çµ±åãããã
- ããŸããŸãªããã€ã¹ã解å床ãã¢ã¹ãã¯ãæ¯ã§ã®ãããã°ã
- ã¢ããªã±ãŒã·ã§ã³ããã«ãããŠå ¬éããŸãã
- å ¬éåŸã®ãµããŒãã é«ãè©äŸ¡ãšè¯å®çãªã¬ãã¥ãŒãéæããããã«åªåããŸã
ããã¯ã察åŠãäºå®ãããŠãããããã¯ã®å®å šãªãªã¹ãã§ã¯ãªãããããããå€ãã®èšäºã衚瀺ããããšãã«ã¬ãã¥ãŒããããã«çºçããŸãã ãŸããç§ã¯ããã€ãã®èšäºãæ°ããªå°é£ãšééãã«æ§ããããšãèšç»ããŠããŸãã
ãããããããããåºæã§ååã§ãããéçºãéå§ããæéã§ãã
ãããžã§ã¯ããäœæããŸãã æåããäœã眮ãå¿ èŠããããŸããïŒ
èŠåºããèªãã åŸãUWPãããžã§ã¯ããäœæããŠãåé¡ããªããšèããŠãçªç¶ãã®èšäºãã¹ãããããããšã«ããå Žåã¯ãéšåçã«ããæ£ãããªãã§ãããã
äžæ¹ã§ããã®ãããªåçŽãªæ®µéã§é倧ãªééããç¯ãããšã¯éåžžã«å°é£ã§ãã ãããäžæ¹ã§ãæåãããã¹ãŠãæ£ããè¡ãããšã§ã人çãå€§å¹ ã«ç°¡çŽ åã§ããŸãã ããã«ãèšäºã®æåŸã§ããããžã§ã¯ãã®äœæã«é¢ããå人çãªå¥œã¿ãå ±æããŸããããã¯ãçµéšè±å¯ãªéçºè ã«åœ¹ç«ã€å ŽåããããŸãã
ãã·ã¢èªçã®Visual Studio Professional 2017ã§ãããžã§ã¯ããäœæããŸãããã®ãšãã£ã·ã§ã³ã¯ææã§ãããããµãã¹ã¯ãªãã·ã§ã³ã§å ¥æã§ããŸãïŒç§ã®å Žåã®ããã«ïŒããUWPã¢ããªã±ãŒã·ã§ã³ã§ã®å®å šãªäœæ¥ã«ã¯ãªãã·ã§ã³ã§ãã Visual Studioã®å ¬åŒWebãµã€ãããç¡æã®Visual Studio CommunityãããŠã³ããŒãããã ãã§ãã
äœããã®çç±ã§ãå€ãã®åå¿è éçºè ã¯ãã³ãã¥ããã£ã§äœæãããã¢ããªã±ãŒã·ã§ã³ã¯ããã®ãšãã£ã·ã§ã³ã®éçºã§ãéã皌ãããã«ãææãŸãã¯ãã®ä»ã®æ¹æ³ã§å ¬éããããšãçŠæ¢ãããŠãããšä¿¡ããŠããŸãããããã¯çå®ã§ã¯ãããŸãã æ°çŸäžã®åçã®äž»ãªæºãã¢ããªã±ãŒã·ã§ã³éçºã§ãã倧äŒæ¥ã«ãªããŸã§ãMicrosoftããã®äž»åŒµãæããããšãªãCommunityãå®å šã«äœ¿çšã§ããŸãã
ãã®ãããVisual StudioïŒä»¥éVSïŒãèµ·åããŸããäœãå€æŽããŠããªãå Žåã¯ãããã«éå§ç»é¢ã衚瀺ãããŸãã ãã®ç»é¢ã«ã¯ããããžã§ã¯ããéããŠäœæããããã®ã¯ã€ãã¯ã¢ã¯ã»ã¹ãšãéçºè åãã®ææ°ãã¥ãŒã¹ãå«ãŸããŠããŸãã ãã®ç»é¢ã¯ããŒãžã§ã³ããšã«å€ããããããã®é ç®ã¯åç §ããŸãããã以åã®æ¹æ³ã§ã¯ããã¡ã€ã«>ãããžã§ã¯ãã®äœæ...ãã¡ãã¥ãŒã«ç§»åããŸãã éãããŠã£ã³ããŠã§ããã®ããŒãžã§ã³ã®VSã§äœæã§ãããã¹ãŠã®ãããžã§ã¯ãã®ãã³ãã¬ãŒãã®ãªã¹ãããã¿ã€ããšããã°ã©ãã³ã°èšèªã§ãœãŒããããŸãã

ããŠãããŒãµã«Windowsã¢ããªã±ãŒã·ã§ã³ãã»ã¯ã·ã§ã³ãšæäžäœã®ãã³ãã¬ãŒãã空ã®ã¢ããªã±ãŒã·ã§ã³ïŒãŠãããŒãµã«Windowsã¢ããªã±ãŒã·ã§ã³ïŒããå¿ èŠã§ãã ã¡ãªã¿ã«ãWinRTãšããç¥èªã§ç€ºãããŠããWindows 8 / 8.1çšã®ã¢ããªã±ãŒã·ã§ã³ãéçºããŠããå Žåããã³ãã¬ãŒãã®ãªã¹ãã¯ç©ºã®ã¢ããªã±ãŒã·ã§ã³ã«éå®ãããŠããªãã£ãããšãæãåºããŠãã ããã ããŒã¿ã«åºã¥ããŠãããžã§ã¯ãããã°ããäœæããããšãæå³ããè¿œå ã®ãã«ãããŒãžã¢ããªã±ãŒã·ã§ã³ãã³ãã¬ãŒãããããŸããã
ç§ã®æèŠã§ã¯ããããã®ãã¯ã€ãã¯ããã³ãã¬ãŒãã®ååšã¯ãWindowsã¹ãã¢ãããµããããäœåãã®é åçã§ãªãåãã¿ã€ãã®ã¢ããªã±ãŒã·ã§ã³ã®äœæã«ã€ãªãã£ãééãã§ãããããã«ããã€ã¡ãŒãžãå°ãæãªãããããšãèªããªããã°ãªããŸããã äžæ¹ãWindowsã¹ãã¢ã¯ç»å Žããã°ããã§ãã³ã³ãã³ããéåžžã«äžè¶³ããŠããŸããã
ç®çã®ãããžã§ã¯ããã³ãã¬ãŒããéžæãããããã®ååãå Žæãååãéžæããå¿ èŠããããŸãããä»åã¯è§£æ±ºçã§ãã VSã®ãœãªã¥ãŒã·ã§ã³ã¯ãããã€ãã®ãããžã§ã¯ããçµ±åããããšã§ããããã«ã€ããŠã¯ã以äžã®èšäºã®ããããã§åå¥ã«èª¬æããŸãã ååãšããŠããããžã§ã¯ãã®åæäœæã®æ®µéã§ã¯ããããžã§ã¯ãã®ååãšãœãªã¥ãŒã·ã§ã³ã®ååã¯åããŸãŸã«ããŠããããšãã§ããŸãã ãããšã¯å¥ã«ãããªã«æåã§ãããžã§ã¯ãã®ååã«èšåãã䟡å€ããããŸãã ååãšããŠãã¿ã€ãã«ã«ãã·ã¢èªã®ããã¹ãã䜿çšãããã¹ããŒã¹ã䜿çšãããããããšãçŠæ¢ãã人ã¯ããŸããããå€ãããã°ã©ããŒã®å·ã¯ãã®ãããªã¢ã¯ã·ã§ã³ããå€ããå·ã€ãå§ããŸãã ãããžã§ã¯ãã«ã©ãã³èªã§ã¹ããŒã¹ãªãã®ååãä»ããããšã§ããããžã§ã¯ãã®ä¿åãšåæã«é¢ããæœåšçãªåé¡ã確å®ã«é²ãããšãã§ããŸãããã®ããããããè¡ãããšããå§ãããŸãã
ãŸãããããžã§ã¯ãäœæãŠã£ã³ããŠã®å³äžé ã«ãã2ã€ã®ãã§ãã¯ããŒã¯ãã©ããããã決ããããšãæ®ã£ãŠããŸããã æåã®ïŒããœãªã¥ãŒã·ã§ã³ã®ãã£ã¬ã¯ããªãäœæãããïŒã¯ãäºåã«æºåããã®ã§ã¯ãªãããããžã§ã¯ãã®ã¿ãŒã²ããã®å ŽæãšããŠå ±æãã©ã«ããŒãéžæããå Žåã«åœ¹ç«ã¡ãŸãã éåžžã«äŸ¿å©ãªæ©èœã§ãããããã©ã«ãã§ããŒã¯ãããŠããã®ã¯ç¡é§ã§ã¯ãããŸããã ãããŒãžã§ã³ç®¡çã·ã¹ãã ã«è¿œå ããšåŒã°ããè¿œå ãã©ã¡ãŒã¿ãŒã®2çªç®ã®é ç®ã¯æªãã§ãã¯ã®ãŸãŸã«ããŠãããèšäºã®åŸåã§ãã®çç±ã説æããŸãã
ãããã£ãŠãåæãããŠãããOKããã¿ã³ãæŒããããšããããžã§ã¯ãã®æ§é ãå匷ãå§ããããšãã§ããããã«æããŸãããããã§ã¯ãããŸããã UWPã¢ããªã±ãŒã·ã§ã³ã®ã¿ãŒã²ããããŒãžã§ã³ãšæå°ããŒãžã§ã³ãéžæããããã®å¥ã®ãã€ã¢ãã°ããã¯ã¹ããããŸãã

ããªããVSã®WPFãŸãã¯ä»ã®ãããžã§ã¯ãã®éçºè ã§ããããã§ã«åã®æ®µèœããããã³ãå§ããŠããå Žåã¯ãç®ãèŠãŸããŸããæœåšçãªãŠãŒã¶ãŒã®æ°ãšéçºäœæ¥ã®åŽåã«å€§ãã圱é¿ããéåžžã«éèŠãªéžæãããããã§ãã ã»ãšãã©ã®ããã¥ã¢ã«ã§ã¯ãäœãå€æŽããããããã¯ãå®å šã«ç解ããã«ãOKããã¯ãªãã¯ããã ãã§æäŸãããŠããããšã«éåžžã«é©ããŠããŸãã ç§ã¯ãèªè ã®ããã§ã¯ãªããç§èªèº«ã®ããã«ããã®åé¡ãæ éã«ç 究ããŸããããããŠä»ãããªããšç§ã®èããå ±æããŠããŸãã
質åãèŠã€ããããšãããšãã«é ã«æµ®ãã¶æãæçœãªããšã¯ããã®ãŠã£ã³ããŠå ã®ãªã³ã¯ãã¯ãªãã¯ããããšã§ããããã«ããããããã®ãã©ã¡ãŒã¿ãŒã®èª¬æãèšèŒãããããã¥ã¡ã³ãããŒãžã衚瀺ãããŸãã æ®å¿µãªããšã«ãããªãããã®ãã¬ãŒã ã¯ãŒã¯ã«èªåèªèº«ãè¿œã蟌ãå¿ èŠãããã®ã¯ãªãã§ããããšãã質åã«å®éã«ã¯çããªããããªãæçšãªããŒãžã§ããããããã®ãã¬ãŒã ã¯ãŒã¯ã®æèçãªéžæãã¯ããã«å®¹æã«ããŸããã
ãã®ãã¬ãŒã ã¯ãŒã¯ãåºçŸããåå ã«ã€ããŠã®è³ªåã«çããããšããå§ããŸãã ãã€ã¯ããœããã®ããŒã±ãã£ã³ã°æ åœè ã¯ã1ã€ã®OSã1ã€ã®ååã§ãªãªãŒã¹ãããããè£å®ããŠæ¹åããããŒãžã§ã³çªå·ã®ã¿ã衚瀺ããå¿ èŠããããšèšã£ãŠããŸãã ãŸãããããã®æ°å€ã¯ãã·ã¹ãã ã«é¢ããæ å ±ã«ã®ã¿è¡šç€ºãããç¹ã«ç®ç«ã€ããšã¯ãããŸããã ãã®çµæãæ®éã®ãŠãŒã¶ãŒãç¥ã£ãŠããããšã¯ãWindows 10ãèªåã®ã³ã³ãã¥ãŒã¿ãŒïŒãŸãã¯ãµããŒããããŠããä»ã®ããã€ã¹ïŒã«ã€ã³ã¹ããŒã«ãããŠããããšã ãã§ãããäœããã®çç±ã§å®æçã«æŽæ°ãããŸãã ããã¯éåžžã«è³¢æãªæ±ºå®ã§ãããªããªããWindows 10ã®æåã§ã»ãšãã©å¿ãããããã«ãã§ãããWindows 10ã®ãŸãŸã§ãããäžè¬çãªçµ±èšã®å©çã®ããã«æ©èœããããã§ãã éçºè ãšããŠããããéåžžã«æçã§ãããªããªããæéã®çµéãšãšãã«ãã¢ããªã±ãŒã·ã§ã³ã®æœåšçãªãŠãŒã¶ãŒã®è»éãæé·ããã ãã ããã§ãã
æ®å¿µãªããããã®ã¢ãããŒãã®æéã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ°æ©èœã®äœ¿çšãæ éã«ç£èŠããŠãå¹ åºãWindows 10ãã«ãã§æ倧éã®äºææ§ã確ä¿ããå¿ èŠãããããšã§ãããåç¥ã®ããã«ããã«ã16299ã§ã®ã¿äœ¿çšå¯èœãªæ©èœã¯ã¢ã»ã³ããª10240ã®ãŠãŒã¶ãŒãšé£æºããŸãã
ãããããªãäžé£ã®ããŒãžã§ã³ãå¿ èŠãªã®ãã¯çããŸããã§ããã æå°ããŒãžã§ã³ãšã¿ãŒã²ããããŒãžã§ã³ã®éžæã¯ãã¢ããªã±ãŒã·ã§ã³ãWindows 10ã®ããŸããŸãªã¢ã»ã³ããªã«æå°éã®ç ç²ã§é©å¿ãããããšãã§ããããã§ãã æ倧ã®ã«ãã¬ããžã®ããã«æ©èœãç ç²ã«ããå¿ èŠã¯ãããŸãããéã«ãæ°ããæ©èœã®ããã«ã«ãã¬ããžãç ç²ã«ããå¿ èŠã¯ãããŸããã åã ã®ã¢ã€ãã ãã©ãã ãç ç²ã«ããæºåãã§ããŠããããéžæããããã«æ±ããããŸããããããã«ããŠãç ç²ã«ããªããã°ãªããŸããã åæããŒãžã§ã³ããææ°ããŒãžã§ã³ãŸã§ã®æ倧ç¯å²ãéžæããæ倧ã®ã«ãã¬ããžãšãã¹ãŠã®æ©èœãååŸãããšããŠããã³ãŒãã®é©å¿ã«å€ãã®æéãå²ãå¿ èŠããããéçºããã»ã¹ãå€§å¹ ã«äŒžã³ãŠè€éã«ãªããŸãã
æ³šïŒ ã¢ãããã£ãã³ãŒã-ãããã¯ããã®æ©èœãŸãã¯ãã®æ©èœã䜿çšã§ãããã©ããã決å®ããããã°ã©ã å ã®ç¹å¥ãªæ¡ä»¶ã§ãã ãã®æ¡ä»¶ã«ãããäžæ¹ã§ã¯å©çšå¯èœãªæ°ããæ©èœã䜿çšããããšãã§ããä»æ¹ã§ã¯ããããã®æ©èœããŸã å©çšã§ããªãWindowsã®ããŒãžã§ã³ã§ãšã©ãŒãªãã§ã¢ããªã±ãŒã·ã§ã³ãåäœãããããšãã§ããŸãã ã¢ãããã£ãã³ãŒãã®äŸã¯ããã®ã·ãªãŒãºã®ä»åŸã®èšäºã«æ²èŒãããäºå®ã§ããã§ã¯ãã¿ãŒã²ããããã³æå°ããŒãžã§ã³ãšããŠäœãéžæããå¿ èŠããããŸããïŒ ã¿ãŒã²ããããŒãžã§ã³ã®å Žåãå¯èœãªéãé«ãå€ãéžæããããšããå§ãããŸãã Windows 10ãæŽæ°ãããã³ã«ãæ°ããæ©èœã衚瀺ãããã ãã§ãªããå€ãæ©èœãæ¹åãããããšãç解ããããšãéèŠã§ãã åæã®ã¢ã»ã³ããªã察象ãšããã¢ããªã±ãŒã·ã§ã³ã¯ã察象ã®ã¢ã»ã³ããªã®APIãæ£ç¢ºã«äœ¿çšããŸãã ãããã£ãŠãææ°ããŒãžã§ã³ãã¿ãŒã²ãããšããŠéžæãããšãæ°ããæ©èœã ãã§ãªããããåªãããããçŸä»£çãªå€ãæ©èœãååŸã§ããŸãã ãããç¥ã£ãŠãã¿ãŒã²ãããšããŠä»¥åã®ã¢ã»ã³ããªãéžæããææã決å®ããããšãã§ããŸãã ãããŠãããã¯ã䜿çšããäºå®ã®ã¡ã«ããºã ãææ°ã®ãã«ãã§æ©èœããªããªã£ãå Žåã«ã®ã¿å¿ èŠã§ãã
ããšãã°ãã¢ããªã±ãŒã·ã§ã³ãå¥ã®ãã©ãããã©ãŒã ãã転éãããå Žåããåã«å€ãAPIæ©èœã«åºã¥ããŠãã¯ã©ã³ããã䜿çšããŠããå Žåã«ããããçºçããå¯èœæ§ããããŸãã 念ã®ãããã¿ãŒã²ããããŒãžã§ã³ãæ倧å€ãšããŠèªèãããã¹ãã§ã¯ãªãããšãä»ãå ããŸãã ãã¡ãããã¢ããªã±ãŒã·ã§ã³ã¯ä»åŸã®ããŒãžã§ã³ã®Windowsã§ãåŒãç¶ãé©åã«åäœããŸãããç®çã®APIã®ããŒãžã§ã³ãåç §ããŸãã
æå°ããŒãžã§ã³ã«ç§»ããŸãããã çŸåšãçµ±èšçã«æã人æ°ã®ããããŒãžã§ã³ã§ããWindowsã®ããŒãžã§ã³ãšåãã«èšå®ããããšããå§ãããŸãã ãã®ãããç¹å®ã®ããŒãžã§ã³ã®ã³ãŒãã®äºææ§ããã§ãã¯ãããšããäœåãªæéãçããæ倧ã®ãŠãŒã¶ãŒãç²åŸããŠããŸãã åœç¶ããŠãŒã¶ãŒã以åã®ãã«ãã§ã¹ã¿ãã¯ããŠããããšã確å®ãªå Žåã¯ããããæå°ãšããŠéžæããå¿ èŠããããŸãã ãã ããã¿ãŒã²ããããŒãžã§ã³ãšæå°ããŒãžã§ã³ã«åããã®ãéžæããããšã¯ãæè¯ã®ã¢ã€ãã¢ã§ã¯ãããŸããã Windowsã®æŽæ°ã¯é«éã§ããã ãã§ãªãããã®çµæããã¹ãŠã®å€ãã³ã³ãã¥ãŒã¿ãŒã«å¯Ÿå¿ããŠããããã§ã¯ãªããããã¢ããªã±ãŒã·ã§ã³ãåäžã®ã¢ã»ã³ããªã«é§åããããšã¯æ£åœãªè§£æ±ºçã§ã¯ãããŸããã
æåŸã«ããã¹ãŠã®ãã¬ãªã¥ãŒããå®æããäœæããããããžã§ã¯ãã®å 容ã®åŠç¿ãéå§ã§ããŸãã [ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒ]ãŠã£ã³ããŠã§ãã¡ã€ã«ãšãã©ã«ããŒã確èªã§ããŸãã
ãããç解ããŸãããïŒ
- ãã©ã«ããŒè³ç£ ã èšç»ã©ãããåçãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹ããã®ãã©ã«ããŒã«ä¿åããå¿ èŠããããŸãã ããã©ã«ãã§ã¯ããã®ãã©ã«ãã«ã¯ããŽãšããŠæ©èœããå¿ é ã®ãããç»åãå«ãŸããŠããŸãããããã«ã€ããŠã¯ããã®ã·ãªãŒãºã®ããããã®èšäºã§è©³ãã説æããŸãã ãšããã§ããããã®ãªãœãŒã¹ããã®ä»ã®ãªãœãŒã¹ããã®ãã©ã«ããŒã«ä¿åããå¿ èŠã¯ãããŸããã å®éã®ãšããããªãœãŒã¹ã®ãããã©ã«ããŒãšãµããã©ã«ããŒã®æ°ã«å¶éã¯ãããŸããã
- App.xamlãã¡ã€ã«ãšãã®é¢é£App.xaml.cs / vbã¯ãWPFã®ã¢ããªã±ãŒã·ã§ã³ãšã»ãŒåãæ©èœãå®è¡ããŸãã App.xamlã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ãç»é²ã§ããã ãã§ãªããRequestedThemeããããã£ã§åªå ããŒãïŒæãããŸãã¯æãïŒãæå®ã§ããŸãã ã³ãŒããã¡ã€ã«ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ãå¶åŸ¡ã§ããŸãã UWPã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã®ãããã¯ã¯éåžžã«åºç¯å²ã§ããã ããã§ãã®å 容ã«ã€ããŠè©³ããèªãããšãã§ããŸã ã ãŸããApp.xaml.cs / vbãã¡ã€ã«ã䜿çšããŠã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³å€æ°ããã¹ãããããšãã§ããŸãããããã¯æ¢ã«äœ¿çšããããã°ã©ãã³ã°ãã¿ãŒã³ã«äŸåããŠããŸãã ããšãã°ãMVVMã¯UWPã«äŒŒãŠããŸãããããã¯äœ¿çšããŸããããçµéšè±å¯ãªéçºè ã«ã¯åŒ·ããå§ãããŸãã
- App1_TemporaryKey.pfxãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã«çœ²åããäžæ蚌ææžã§ãããããã€ã¹ã§å®è¡ã§ããããã«ããããã«å¿ èŠã§ãã 圌ã«ã€ããŠãã以äžç¥ãå¿ èŠã¯ãããŸããã 圌ãšä»äºãããå¿ èŠã¯ãããŸããã
- MainPage.xamlãã¡ã€ã«ããã³é¢é£ããMainPage.xaml.cs / vbã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ããŒãžã§ãã WPFã¢ããªã±ãŒã·ã§ã³ãšã®éãã¯ãããã§ã¯ãŠã£ã³ããŠã§ã¯ãªãããŒãžã§äœæ¥ããŠããããšã§ãã UWPã¢ããªã±ãŒã·ã§ã³ã®ãŠã£ã³ããŠã¯ã»ãšãã©ã®å Žå1ã€ã§ãããã¢ããªã±ãŒã·ã§ã³ã®ããŒãžãããã«ããŒãããããã©ãŠã¶ãŒã§ãµã€ãã®ããŒãžãããã²ãŒãããããã«åãæ¿ããããšãã§ããŸãã UWPã®ããŒãžãšããã²ãŒã·ã§ã³ã«ã€ããŠã¯ãä»åŸã®èšäºã§è©³ãã説æããŸãã
- æåŸã«èªåçã«çæããããããžã§ã¯ããã¡ã€ã«ã¯Package.appxmanifestãã¡ã€ã«ã§ãã ããã¯ããç解ã®ãšããããããžã§ã¯ãã®ãããã§ã¹ãã§ãããäž»ãªå®£èšãå«ãŸããŠããŸãã ãã®ãã¡ã€ã«ã«ã¯ãããã«ã¯ãªãã¯ã§åŒã³åºããã䟿å©ãªãšãã£ã¿ãŒããããŸãã ãã®ãšãã£ã¿ãŒã§ã¯ãéèŠãªã¢ããªã±ãŒã·ã§ã³ãã©ã¡ãŒã¿ãŒã®èšå®ãããŽã®å Žæã®èšå®ãã¢ããªã±ãŒã·ã§ã³ã®æ©èœã®èšå®ãããã³äœ¿çšããå¥çŽã®å®£èšãè¡ãããšãã§ããŸãã ãã®ãµã€ã¯ã«ã®éçšã§ãããŸããŸãªãããã§ã¹ãèšå®ãå®æçã«åç §ãããããããã詳现ã«èª¿ã¹ãŸãã ãŸããããã¥ã¡ã³ãã«ã¯ãã©ã®ãããã§ã¹ããã©ã¡ãŒã¿ãŒã§ã©ã®ããŒãããŒã¯ããå¿ èŠããããã瀺ãããŠããããšãå€ãããšã«æ³šæããŠãã ããã ãããã®å Žåãããã¥ã¡ã³ãã¯ãããã§ã¹ãã®ããã¹ãããŒãžã§ã³ãåç §ããŸãã ãããã§ã¹ããã¡ã€ã«ãå³ã¯ãªãã¯ããŠ[...ã§éã]ãéžæãã[ãšãã£ã¿ãŒïŒããã¹ãïŒXML]ãéžæãããšéãããšãã§ããŸãã
æ°ããäœæããããããžã§ã¯ãã¯å®å šã«æ©èœãããF5ããæŒããšéå§ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšã[ã¹ã¿ãŒã]ã¡ãã¥ãŒã®ã€ã³ã¹ããŒã«æžã¿ã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ãã«è¡šç€ºãããããããèµ·åããããšãã§ããŸãã
æåŸã«èšåãããã®ã¯ããããžã§ã¯ããããŒãžã§ã³ç®¡çã·ã¹ãã ã«è¿œå ããããšã§ãã 人æ°ã®ããããŒãžã§ã³ç®¡çã·ã¹ãã ïŒä»¥äžGitãšåŒã³ãŸãïŒã¯ããã€ããããŸãããåå¿è ã®éçºè ã«ã¯Team Servicesãæé©ã§ãã ããã¯ããªã¢ãŒãã¹ãã¬ãŒãžã§ã¢ããªã±ãŒã·ã§ã³ãå ¬éããããããŒã ãéçºãããããããã®ç¡æã®ããŒã«ã§ãã ãããžã§ã¯ãã§äžç·ã«äœæ¥ããããã³ãŒããã©ã³ããåå¥ã®ãã«ããäœæããããããããªåŒ·åãªæ©èœãå¿ èŠã§ãªãå Žåã§ããåæãšããã¯ã¢ããã®æ©èœãéå°è©äŸ¡ããããšã¯éåžžã«å°é£ã§ãã

ãã®ãããæ°ããäœæããã¢ããªã±ãŒã·ã§ã³ãTeam Servicesã§å ¬éããŸãã ãããè¡ãã«ã¯ãVSã®å³äžé ã§ããããŒãžã§ã³ç®¡çã·ã¹ãã ã«è¿œå > Gitããšããç¢æãã¯ãªãã¯ããå¿ èŠããããŸãã éãããŠã£ã³ããŠãTeam Explorer-Synchronizationãã§ãPublish Git repositoryããã¯ãªãã¯ããŸãã
ãã®åŸã®æäœãã¹ã ãŒãºã«è¡ãã«ã¯ãTeam Services Webãµã€ãã«ç»é²ãããã®ã·ã¹ãã ã«ç¬èªã®ãã¡ã€ã³ãæã£ãŠããå¿ èŠããããŸãã ããã¯éåžžã«ç°¡åã§ãã ã¡ã€ã³ã®åæãŠã£ã³ããŠã§[詳现]ãªã³ã¯ãã¯ãªãã¯ãããšãTeam Services Webãµã€ãã«ç§»åããŸãã ãã®ãµã€ãã§ãç¡æã§å§ããããéžæããæ瀺ã«åŸã£ãŠãã ããã ãã¡ã€ã³ãäœæãããšããããžã§ã¯ãã®è¿œè·¡ãå€æŽã®å±¥æŽã®è¡šç€ºãããŒã ã®å²ãåœãŠãªã©ãè¡ãããšãã§ããããã«ãªããŸããããµã€ããéããŠVSã«æ»ãã ãã§ãã
æºåäœæ¥ã®åŸããGitãªããžããªã®å ¬éããéžæãããšãã¢ã«ãŠã³ãããã¡ã€ã³åãéžæããŠãããžã§ã¯ããå ¬éããã ãã«ãªããŸãã ãã¹ãŠãããŸããã£ãå ŽåãåæãŠã£ã³ããŠã«ãVSããçŽæ¥å®è¡ã§ããã¢ã¯ã·ã§ã³ã®ãªã¹ãã衚瀺ãããŸãã ãå€æŽããšãåæãã®é ç®ã«æãé¢å¿ããããŸãã
å®éããããžã§ã¯ãå šäœãGitã«ãŸã ã¢ããããŒãããŠããŸããã ãŸãããããžã§ã¯ãã®äœæãå«ãããããžã§ã¯ãã«å ãããããã¹ãŠã®å€æŽãä¿®æ£ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããå€æŽãã»ã¯ã·ã§ã³ã«ç§»åããŠãè¡ãããå€æŽã®èª¬æãå ¥åããããã¹ãŠã³ãããããã¯ãªãã¯ããŸãã Team Servicesã䜿çšãããšããããžã§ã¯ãã«å ããããå€æŽã®å±¥æŽã远跡ããå¿ èŠã«å¿ããŠåæã®ãã€ã³ãã«æ»ãããè¿œå ããå 容ãšææã確èªã§ãããããå°æ¥ã®éçºããã»ã¹ã®é©åãªãã€ã³ãããã°ããèŠã€ããã®ã«åœ¹ç«ã€èª¬æãéžæããŠãã ããã ããšãã°ãã³ãããã®èª¬æã§ããããžã§ã¯ãã®äœæããæå®ã§ããããã«ãªããŸããã
ãã¹ãŠã®å€æŽãã³ãããããããGitãšåæããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããåæãã»ã¯ã·ã§ã³ã«ç§»åããé©åãªãªã³ã¯ãéžæããŸãã åæã¯äž¡æ¹ã®æ¹æ³ã§æ©èœããŸããå€æŽãã³ãããããŠå¥ã®ã³ã³ãã¥ãŒã¿ãŒã«ã¢ããããŒããããšãåæã®æç¹ã§å€æŽããã®ã³ã³ãã¥ãŒã¿ãŒã«èªã¿èŸŒãŸããŸãã 以åã«Gitã«ã¢ããããŒããããããžã§ã¯ããã¡ã€ã«ãçŽå€±ããå Žåã«ã䟿å©ã§ãã ããŒã«ã«ã³ãããããã«ãããžã§ã¯ããåæããã ãã§ãå ã«æ»ããŸãã
ãã®ãããã¯ã§ã¯ãUWPãããžã§ã¯ãã®äœæã¯çµäºãããšèŠãªãããšãã§ããŸããããã®èšäºã®ã·ãªãŒãºã¯ã©ã€ããããžã§ã¯ãã®éçºãšäžŠè¡ããŠæžãããŠãããããç§ã¯ãã®èšäºããUWPã䜿çšããããã»ã¹ã§éçºãããããžã§ã¯ãã®åæã»ããã¢ããã«é¢ããå人çãªæšå¥šäºé ã§è£è¶³ããããšã«ããŸããã
以äžã®æ å ±ã¯WPFéçºè åãã§ãããå人çãªçµéšã§ãããåç §ãšããŠäœ¿çšãã¹ãã§ã¯ãããŸããã
å®éããããžã§ã¯ãã®æåã®éšåã§ãããŒãžã§ã³ç®¡çã·ã¹ãã ã«è¿œå ããã§ãã¯ããã¯ã¹ãç¡èŠããããšããå§ãããããšã¯ç¡é§ã§ã¯ãããŸããã§ãããããããžã§ã¯ãå ã§äœãå€æŽããã«ãã®ããã»ã¹ã説æããŸããã ç§èªèº«ã¯ããããžã§ã¯ãã«ããã€ãã®çµéšããŒã¹ã®è¿œå èŠçŽ ãè¿œå ããåŸã«ã®ã¿å ¬éããŸãã
æåã«ã ConvertersAndStyleãã©ã«ããŒããããžã§ã¯ãã«è¿œå ãããããã«ã³ã³ããŒã¿ãŒãšãªãœãŒã¹ãã£ã¯ã·ã§ããªãå«ããã¡ã€ã«ãé 眮ãããŸãã
- Converters.cs / vbãã¡ã€ã«ã¯éåžžã®ãã¯ã©ã¹ããã¡ã€ã«ã§ãããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããã³ã³ããŒã¿ãŒãé 眮ãããŸãã
- ConverterDictionary.xamlãã¡ã€ã«ã¯ãããªãœãŒã¹ãã£ã¯ã·ã§ããªãã¿ã€ãã®ãã¡ã€ã«ã§ãããã®ãã¡ã€ã«ã«ã¯ã ã³ã³ããŒã¿ãŒãžã®ãªã³ã¯ãèšè¿°ããŸãã ã»ãšãã©ã®ã³ã³ããŒã¿ã¯ã¢ããªã±ãŒã·ã§ã³å šäœã§äœ¿çšããããããåã ã®ããŒãžã®ãªãœãŒã¹ã§ã¯ãªãã1ã€ã®ãã¡ã€ã«ã§å®çŸ©ããããšããå§ãããŸãã
- ApplicationStyle.xamlãã¡ã€ã«ããªãœãŒã¹ãã£ã¯ã·ã§ããªã§ãããã¢ããªã±ãŒã·ã§ã³ã¹ã¿ã€ã«ã«é¢é£ãããã¹ãŠã®ãªãœãŒã¹ãå®çŸ©ããŸãã
ãããããåç¥ã®ããã«ãæ©èœã«åºã¥ããŠãã©ã«ããŒãšãã¡ã€ã«ã®ååãéžæããŸããã éœåã®è¯ãååãä»ããããšãã§ããŸãã
ãªãœãŒã¹ãã¡ã€ã«ãè¿œå ããåŸãApp.xamlãã¡ã€ã«ã«ãããã®æ瀺ãè¿œå ããå¿ èŠããããŸãã
<Application x:Class="CriptoFarm.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:CriptoFarm" RequestedTheme="Light"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ConvertersAndStyle/ConverterDictionary.xaml"/> <ResourceDictionary Source="ConvertersAndStyle/ApplicationStyle.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
ããã§ãã¢ããªã±ãŒã·ã§ã³å ã®ã©ãããã§ããããã®ãã¡ã€ã«ãããªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã
2çªç®ã«æ³šæãããã®ã¯ãç»åçšã«åå¥ã®ãã©ã«ããŒãå²ãåœãŠãããšã§ãã å€ãã®å Žåãåçãžã®ãã¹ãæåã§èšè¿°ãããããããã·ã³ãã«ã§çŽæçãªãã©ã«ããŒãšãã¡ã€ã«ã®ååã䜿çšããŸãã ãããžã§ã¯ãã«ç»åãä¿åããããã®ã¡ã€ã³ãã©ã«ããŒã¯Imagesãšããååã§ã Assetsãã©ã«ããŒã¯ãããŽãã¿ã€ã«ãã¢ããªã±ãŒã·ã§ã³ãªã¹ããããã³ã¹ãã¢ã«è¡šç€ºãããããŽã«ã®ã¿äœ¿çšããŸãã
次ã«ãããŒã«ã©ã€ãºçšã®ã¢ããªã±ãŒã·ã§ã³ãæºåããŸãã ãããè¡ãã«ã¯ãå°ãªããšã2ã€ã®ãã©ã«ããŒãäœæããŸãã æåã®æ¯åœèªïŒãã®å Žåã¯ãã·ã¢èªïŒã¯ãruãã2çªç®ã¯åœéèª-ãenããšåŒã°ããŸãã ãã®å Žåããã©ã«ããŒåã¯éèŠãªåœ¹å²ãæãããå¥ã®ååãä»ããå¿ èŠã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®èšèªã«ããŒã«ã©ã€ãºããäºå®ãããå Žåã¯ãè¿œå ã®èšèªçšã®ãã©ã«ããŒãè¿œå ããããšãã§ããŸãã ããŸããŸãªèšèªã§å©çšå¯èœãªãã©ã«ãåã®å®å šãªãªã¹ãã¯ã ããã«ãããŸã ã
åãã©ã«ãã«ãã¿ã€ããResource FileïŒ.reswïŒãã®ãã¡ã€ã«ãè¿œå ããå¿ èŠããããŸããããã©ã«ãåã®ãŸãŸã«ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã©ã€ãºãšãããã®ãã¡ã€ã«ã®åŠçæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ãã·ãªãŒãºã®å¥ã®èšäºã§èª¬æããŸãã
ãããŠãããããã¹ãŠã®æäœã®åŸãã¢ããªã±ãŒã·ã§ã³ãããŒãžã§ã³ç®¡çã·ã¹ãã ã«å ¬éããããšãã§ããŸãããã®åŸããããžã§ã¯ãã¯ããã«äœæ¥ã§ããç¶æ ã«ãªããŸãã
ã·ãªãŒãºã®æ¬¡ã®èšäºã¯ãç¬èªã®ã¹ã¿ãŒãç»é¢ã®äœæã«å°å¿µããŸãããã®ãããã¯ã«é¢ããæ¢åã®èšäºãèæ¯ã«ãäœãæ°ãããã®ãããããããããšãé¡ã£ãŠããŸãã