Riderãããžã§ã¯ãïŒJetBrainsã®.NET IDEïŒã¯ããããªãã¯EAPããŒãžã§ã³ã«å°éããŸãããéçºè ã®1人ã§ããAndrey Akinshinã«è©³çŽ°ãå°ãããšãã§ãã ããããRiderã¯ãNo Slidesããšããæ°å·ã®å¯äžã®ãããã¯ã§ã¯ãããŸããã§ããã 圌ã«å ããŠã圌ãã¯è©±ããïŒ
- AndreyãéçºããŠããBenchmarkDotNetã©ã€ãã©ãªã«ã€ããŠ
- ãªãŒãã³ãœãŒã¹ãšã¯ãã¹ãã©ãããã©ãŒã ãžã®ãã€ã¯ããœããã®åã
- .NETã®äžçã®äžè¬çãªæ¡ä»¶ã«ã€ããŠããããŠãã¡ãã
- .NETäŒè°DotNext ïŒ ã€ãã§ã« ã ä»é±éææ¥ã«ã¢ã¹ã¯ã¯ã§éå¬ãããŸãïŒã«ã€ããŠ
ãã€ãã®ããã«ãã«ããã®äžã«ã€ã³ã¿ãã¥ãŒã®å®å šãªè»¢åããããŸãã
ã©ã€ããŒ
-ã¢ã³ãã¬ã€ãçããã¯ãããªãã¯EAPãæã£ãŠãããšèããŸããã ããªãã¯ãã®ãããžã§ã¯ãã«1幎以äžåãçµãã§ããŸã-ããªãã®æ°æã¡ãæããŠãã ããã
-ããŒã ãšããŠãç§ãã¡ã¯éåžžã«è¯ãæ°æã¡ãæã£ãŠããŸãïŒç§ãã¡ã¯çãã©ã€ããŒã«åº§ã£ãŠã90ïŒ ã®æéãæžã蟌ã¿ãŸãã ç§ãã¡ã¯Riderã®æå€ã®ãŠãŒã¶ãŒã§ãããªããªããå°ãªããšãäœããæžãããšãå¯èœã«ãªã£ãæåã®ããŒãžã§ã³ãã䜿çšãå§ããããã§ãã
ã©ã€ããŒã¯ãšãŠãæ°ã«å ¥ã£ãŠããŸããRiderã¯éåžžã«ã¯ãŒã«ãªIDEã§ãããäž»ã«èªåèªèº«ã®ããã«éšåçã«éçºããŠããããã§ãã ã€ãŸããäžå¿«ãè¿·æããŸãã¯äžå¯èœãªããšã¯ãã¹ãŠãããŒã å šäœã芳å¯ããŠããããšã§ãããç§ãã¡å šå¡ãæ¯æ¥ãããã®ããšã«èŠããã§ããŸãã ãã°ãããããšã誰ãã®æãããããªãããã®æ©èœãä¿®æ£ããŸãã Riderã¯ReSharperãšIntelliJ IDEAã®ã³ãŒãããŒã¹ã«ãåºã¥ããŠããããããã¯ãããã10幎以äžã«ããã£ãŠéçºãããéåžžã«ã¯ãŒã«ãªè£œåã§ãããããããã«å€ãã®æ©èœãããããããããéåžžã«é«åºŠã«æé©åãããŠããŸãã Riderã§ã¯ããã¹ãŠããŸã æºåãã§ããŠããŸããããæºåãã§ããŠãããã®ã¯éåžžã«ããŸãæ©èœããç§ãã¡ã¯ãããæ¬åœã«äœ¿ãããã§ãã
-ReSharperã¯ãããã»ã¹å ãŸãã¯å¥ã®ããã»ã¹ã§Visual Studioãšé£æºããŸããïŒ
-ããã»ã¹å ã§åäœããŸãããããã¯å€§ããªåé¡ã§ãããªããªãã幎ã¯2016幎ã§ãããVisual Studioã¯äŸç¶ãšããŠ32ãããããã»ã¹ã§ãããå€ãã®ãŠãŒã¶ãŒãReSharperãé ããšäžå¹³ãèšã£ãŠããããã§ãã ReSharperã®é床ã¯äœäžããã以åãšåãããã«åäœããããã«é«éã«åäœããŸãããæ°ããããŒãžã§ã³ãè¿œå ããããã³ã«Studioã®ã¡ã¢ãªæ¶è²»éãå¢å ãããã®32ãããããã»ã¹ã®äžéšãšããŠè¿ã¥ããŠããŸãã ãŸãããã¬ãŒãã«é¢ããŠã¯ãRiderã¯ãããå®èšŒããŠããŸããStudioããã»ã¹ããæãåºãããã¹ãŠãé£ã¶ããã«ãªããŸããã
-ãããŠããªãReSharperãã¢ãŠãããã»ã¹ã«ããŸãããïŒ
-ãŸããStudioèªäœãšã®çžäºéçšãšããç¹ã§éåžžã«å°é£ã§ãã次ã«ãRiderã§ã¯ãå®éã«IDEAãšReSharperã®çžäºéçšãå®è£ ããŸããã éåžžã«é·ãééçºããŠããã«ã¹ã¿ã ãããã³ã«ã®å©ããåããŠãããè¡ããå€ãã®èª¿æŽãè¡ããŸããã
ãã°ãããäœæ¥ãè¡ãããéåžžã«äœ¿ããããããã¹ãŠãéåžžã«è¿ éã«æ©èœããŸããããŸã ããã€ãã®åé¡ããããèããããªããäžäŸ¿ãªããšããããŸãã ãŸãã2ã€ã®è£œåãæ¥ç¶ããããšãã§ããŸããããããã®è£œåã¯èªåèªèº«ã§äœæããããããã®è£œåã§äœã§ãå€æŽã§ããŸããããã§ã«éåžžã«å°é£ã§é£ããæè¡çãªäœæ¥ã§ãã ã¹ã¿ãžãªã§ã¯ããããå®è£ ããããšã¯éåžžã«å°é£ã§ãã
-ãããŠãå°ãéã£ãæ¹æ³ã§è¡ãã°ãRiderã®ã¢ãŠãããã»ã¹ã¢ãŒããæ¢ã«äœ¿çšããŠããããšã«ãªãããããã³ã«ããããŸãã ããŠãããªãã倢ãèŠãŠãããªãããã¹ãŠãã¹ã¿ãžãªã«çµ±åããããšã¯å¯èœã§ããããããšããã¹ãŠãããçŽãå¿ èŠããããŸããïŒ
-ãŸããçŽç²ã«æè¡çã«-ã¯ããããã¯å¯èœã§ããæã«ã¯ããã«ã€ããŠèããããšãããããŸãã ãã ããããã¯éåžžã«å€§ããªå°é£ãªäœæ¥ã§ããããšãç解ããå¿ èŠããããŸãã ããã«å¯ŸåŠããå Žåãè²»çšå¯Ÿå¹æãé«ãããšãååã«ç解ããå¿ èŠããããããã«æè³ããåŽåéã¯æçµçã«ã¯å ±ãããã§ãããã
-ããŠãVisual Studioã¯ãŸããŸãå€ãã®ã¡ã¢ãªãæ¶è²»ããåŸåããããŸãã æ¶è²»éãå°ãªããªããšããåææ¡ä»¶ã¯ãªãããªãäœè£ãããã®ãââãšããçåãçããŸãã
-ããŠãææ¥Visual Studioã§äœãèµ·ããã誰ãç¥ããªãã®ã§ãç§ãã¡ã¯ä»ã®ãšããããã«åº§ã£ãŠããŸãã ç§ãèšããããšã¯ãä»æ¥ããã®ãããªèšç»ã¯ãããŸããïŒå®éãReSharperã®äººãå ¬ç¶ãšããã«ã€ããŠè©±ããŠãã-ãããèè ïŒ ã ä»æ¥ãç§ãã¡ã¯ã©ã€ããŒãç©æ¥µçã«èŠãŠããŸãããããç§ãã¡ã®æåªå äºé ã§ãã
-ãŠãŒã¶ãŒã¯ããªãã«äœãæžããŠããŸããïŒ ããªãã¯ãã§ã«ã¯ããŒãºãã¢ãŒãªãŒã¢ã¯ã»ã¹ããã°ã©ã ãæã£ãŠããŸãããç§ã¯ãã®ã¡ã³ããŒã§ããããã°ãå ±åããŸãããç§ã¯äžè¬çã«ã¢ãŒãªãŒã¢ããã¿ãŒã§ãã éããEAPãŠãŒã¶ãŒã¯äœäººããŸãããïŒ
-ã¯ãã Riderã§ç©æ¥µçã«éçºããŠãã人ã¯äœå人ããããšæããŸãã ãã£ãŒãããã¯ã¯èšå€§ã§éåžžã«åªããŠããŸãã
-ãããžãã£ãããšããæå³ã§ã®ãè¯ããããŸãã¯ãé£ã¹ç©ãäžããããšããæå³ã§ïŒ
-ç©æ¥µçãã€å»ºèšçã æ©æã¢ã¯ã»ã¹ããã°ã©ã ïŒEAPïŒã«ãããéçºã®åæ段éã§äœæ¥ããªãã£ãããšãç¹å®ã§ããŸããã
-äŸãæããŠãã ããã
-ããšãã°ãUnityãŸãã¯Xamarinã®ãµããŒãã éåžžã«å€ãã®äººã ããããã®ç®çã®ããã«Riderã䜿çšããããšããŠããŸããã圌ãã®ãã£ãŒãããã¯ã¯ç§ãã¡ã«ãšã£ãŠéåžžã«è²Žéã§ããã ç§ãã¡ã¯æ¯æ¥ããã䜿çšããŠããŸãããUnityãŸãã¯Xamarinã¯ReSharperããŒã å šäœãæ¯æ¥éçºãããã¯ãããžãŒã§ã¯ãããŸããã ãŸãããŠãŒã¶ãŒãå¿ èŠãšãããã®ãä»ã®ç掻ã§æ¬ ããŠãããã®ãçŸåšã®ããŒã«ãããã§æºè¶³ããŠããªããã®ãå®å šã«ç解ããŠããªãç¬éããããŸãã ãã®ç¹ã§ããã£ãŒãããã¯ã¯éåžžã«è²Žéã§ãã
æã ã圌ãã¯ãç§ãã¡ã¯ãã®ããã«ããŠããã¹ãŠãå£ããããšãããã°ã¬ããŒããåãåããŸãã ãŸãã¯ãæ©èœã®ãªã¯ãšã¹ããæ¥ãŸãïŒãã®ãããªæ©èœãããã°çŽ æŽãããã§ãããã ãã®ãã¹ãŠã«è³ãåŸãã人ã ãšã³ãã¥ãã±ãŒã·ã§ã³ãåããã§ããã ãæ©ããããå®è£ ããããšããŸãã
-çŸåšãäœäººãRiderã«åãçµãã§ããŸããïŒ
-ã³ã¢ããŒã -10人匷ã§ãããReSharperããŒã ãšIDEAããŒã ããããåžžã«ååããŠããããšãç解ããå¿ èŠããããŸãã ç¹å®ã®ãã©ãããã©ãŒã ã§ãã°ãèŠã€ããããæ©èœæ§ã«æ¬ ãããããå ŽåããããŸããä»ã®ããŒã ã®ã¡ã³ããŒã«äŒããã©ãããããããããã®åé¡ã«ã€ããŠè©±ãåããŸãã ãããã£ãŠãç§ãã¡ã¯çŸã®ããã«ãããèšãããšãã§ããŸãã
-åœæã®ãWithout Slidesãã§ãDima Zhemerov 㯠ãExtension Pointsã¡ã«ããºã ã«ãã£ãŠIDEAãIDEãããã©ãããã©ãŒã ã«ã©ã®ããã«å€ãã£ããã«ã€ããŠè©±ããŸããã ãŸããSergey Shkredov æ°ã«ãããš ãReSharperã¯å€éãã«ãã§æ¡ä»¶ä»ãã§æ€æ»ãå®è¡ã§ããããã¯ãã¹ãŠTeamCityãªã©ãšçµã³ã€ããŠããŸãã ãããã®2ã€ã®å Žæã§çµ±åãè¡ãããããšãæ£ããç解ã§ããŸããïŒ ã€ãŸããã©ããã£ãŠãã£ãã®ïŒ
-2ã€ã®ããã»ã¹ããããŸãã ç§ãã¡ã¯ãããããããã¯ãšã³ãããå®éã«ã¯ReSharperããããã³ããšã³ããIDEAãšåŒã³ãŸãã ãããã®éã®éä¿¡ã¯ãç¹å¥ãªãããã³ã«ã«åŸã£ãŠå®è¡ãããããã«åŸã£ãŠãæ¬è³ªçã«ããã¥ãŒã¢ãã«ãé§åããŸãã
ããããŠãããã¯ãœã±ããã®äžã«ãããŸããïŒã
-ãœã±ããã®äžã ç§ãã¡ã¯ããŸããŸãªãªãã·ã§ã³ã«ã€ããŠèããŸããããããã¯ç§ãã¡ã«æãæãã€ãããã®ã§ãã æåã¯ãReSharperã®ã¢ãã«å šäœãåããããã£ãã®ã§ãã ããšãã°ãIDEAãJavaããµããŒãããããã«æ§ç¯ããæ§æããªãŒããããŸãããCïŒã®æ§æããªãŒãå®å šã«è¿œãæããå Žåãéåžžã«é«äŸ¡ãªæäœã«ãªããããã©ãŒãã³ã¹ã䌞ã°ãããšã¯ã§ããŸãã...
-ã€ãŸããããŒã¿ãã©ãã£ãã¯ã§ããïŒ
-ã¯ãããããã³ã«ãã©ãã£ãã¯ã¯éåžžã«å€§ãããªããŸãã ãã®ãããç§ãã¡ã¯éåžžã«è»œéãªã¢ãã«ãé§åãããã¥ãŒã¢ãã«ã®ã¿ããŠãŒã¶ãŒã«è¡šç€ºããå¿ èŠããããã®ã®ã¿ãé§åããŠããŸãã UIã®æ å ±ã®ã¿ã
-æ§æããªãŒã¯ReSharperã®åŽã«ãããŸããïŒ
-ã¯ãã ã€ãŸããReSharperã«ã¯ããªãŒããããäœããã®æ¹æ³ã§ãããåŠçãããã¹ãŠã®åæãèæ ®ããåçŽã«IDEAã¯ãããšãã°æ€æ»ãµãã·ã¹ãã ããã®ã¡ãã»ãŒãžãšãšãã«æ°è¡ãã¹ããŒããŸãã
-ãã ãç§ãç解ããŠããããã«ãIDEAã¯ç¹å®ã®èšèªã§æ§ç¯ãé§åããç¹å®ã®ããªãŒã§åäœããŸãã ããã§ãã©ããããäœåºŠãããçŽããªããã°ãªããªãã£ãã§ãããïŒ
-ã¯ãã䜿çšããŠããŸãããããšãã°ãReSharperã誀ãããããšèšã£ããããããã§ã¯èµ€ãç·ã§äžç·ãåŒããŸãã IDEAåŽã§ã¯åæãè¡ããŸããã ãã¹ãŠã®åæã¯ReSharperã«ãã£ãŠè¡ãããŸãã ãããŠãã»ãšãã©ã®éšåã§IDEAãããshow UIãã䜿çšããŸãã
-ã€ãŸããä»ã®èšèªãçµ±åãããŠããIDEAãšçµ±åããŠããŸããã ãã®ãããªçµ±åã®ããã«IDEAã§ã©ã®ãããæžãçŽãå¿ èŠããããŸãããïŒ
-ããããé©ãã»ã©ããã§ã¯ãããŸããã
-ãããŠããããæ©èœããããã«ãReSharperãšIDEAã®ã©ã®éšåã察å¿ããŸãããïŒ
-ããŸãç·šéããå¿ èŠã¯ãããŸããã§ãããAPIãããäœæããã ãã§ãã IDEAã«ã¯ç¬èªã®ã³ãããããããŸãããã»ãšãã©ã®ã³ãããã¯ããã©ã€ããŒãã䜿çšããŠãããªãã¯ã«å€æŽãããšããäºå®ã«é¢é£ããŠããŸãã ä»ã®èšèªã§ã¯ã§ããªãããšãè¡ããããäžéšã®ã¡ãœããã¯æ±ºããŠåŒãåºããããåŒã³åºãå¿ èŠããããŸããã ãããŠãã¡ãããReSharperãLinuxçãšMacçã§Monoäžã§æ£åžžã«åäœããããã«ãæ倧ââã®äœæ¥ãè¡ãããŸããã ã¯ãã¹ãã©ãããã©ãŒã éçºã«ã€ããŠå€ãã®ããšãåŠã³ãŸãã:)æè¿ãRiderã§ã¯ãã¹ãã©ãããã©ãŒã éçºã«é¢ããã»ãããŒãè¡ããŸããã ãããªã¯ãã§ã«å©çšå¯èœã§ã ã
-Homebrewã䜿ã£ãŠMacã«Monoãã€ã³ã¹ããŒã«ãããšãã話ããããŸããããåæã®ãã«ãã®1ã€ã§ãReSharperã¯ãã®ãããªMonoã®è¡šç€ºãæåŠããŸããã ãããããæãé£ããã¿ã¹ã¯ã§ã¯ãªãããšãç解ããŠããŸããããããã¹ãŠä¿®æ£ããããšã§ãã ããããããªãã¯ä»ããã®ã¿ã€ãã®åŠšå®³ã察åŠãããå ¬å ±ã®EAPã«ãããšæããŠããŸããïŒ
-ãŸããç§ãã¡ã¯æãäž»èŠãªæ ªã®å€§éšåãæ»ãéããŸããã ããã§ãRiderã¯å®éã«äœ¿çšã§ããIDEã§ãã ããã§ã¯ããã¹ãŠã®æ©èœãå®å šã«æ©èœããããã§ã¯ãªããã©ããã§äœããèœã¡ãããšããããŸãããã»ãšãã©ã®ã¹ã¯ãªããã¯æ©èœããŸãã
-ãªãªãŒã¹ãé£æåã§ããããšã¯æããã§ãããçŽç²ã«ããªãã®äž»èŠ³çãªãšã³ãžãã¢ãªã³ã°ã®æèŠã«èå³ããããŸããçç£ã«å ¥ãããã«ã¯ãããã«äœãããå¿ èŠããããŸããïŒ ãŸãæåã«äœãå€æŽããŸããïŒ
ãããããšã¯ããŸããããŸãããã ãŸããå®å®æ§ã«åãçµãå¿ èŠããããŸã...
-ãŸã èœã¡ãŠããïŒ
-ç§ãã¡ãèœã¡ãŠããããã§ã¯ãããŸããããæè¿ãããšãã°ãããã«ArchLinuxããããããã«Riderã眮ããŠããŸãããäœããããŸããããŸããã ç§ãã¡ã¯ãããã°ãArchLinuxã§ã®äœæ¥çµéšãããŸããªãããšãç解ããŠããŸããããã¯ãŠãŒã¶ãŒã®å€§éšåã§ã¯ãªãããšããŸããã¯ãªã·ããªãªã§ãã
-ããšãã°ãåãJavaã¯ãã¹ãŠã®Linuxã§èªå®ãããŠããããã§ã¯ãããŸããããã£ã¹ããªãã¥ãŒã·ã§ã³ãã©ãããã¹ããã«ã€ããŠéåžžã«å³å¯ãªèª¬æããããŸãã ç§ã®æèŠã§ã¯ãäºå®ã¯åç §ãã©ãããã©ãŒã ãOracle Linuxã§ãããšããããšã§ããæ¯èŒçèšãã°ãRed Hatã«äŒŒããã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããããã®åŸã®çµæã¯ãã¹ãŠãããŸãã æ®ãã«ã€ããŠã¯ãJavaã¯ä¿èšŒãäžããŸããããã®å Žæã§äœãããŠããã®ã§ããããã ç¬èªã®JVMãæäŸããŠããŸããïŒ
-ã¯ããç§ãã¡ã¯ç§ãã¡èªèº«ã®JavaãšMonoãæã¡éã³ããã®äžã§äœæ¥ããŠããŸãã Linuxã®ãããããããããããããããããã®ããŒãžã§ã³ããµããŒãããããã«ã絶察ã«ã©ãã§ãåäœããã¿ã¹ã¯ã¯ãããŸããããµããŒãããªãæ®ãã®éšåã¯ãã§ããã ãå€ãã®ãŠãŒã¶ãŒã幞ãã«ããŠãIDEã䜿çšã§ããããã«ããŸãã
-.NETã«é¢ããéããäœãæã¡æ©ããŠããŸããïŒ
-ã¢ãã ãŸããmacOSãšLinuxã§ã¯-ç¹å®ã®ããŒãžã§ã³ã®MonoãWindowsã§ã¯å®å šãªãã¬ãŒã ã¯ãŒã¯ã§å®è¡ãããŸã-ãŠãŒã¶ãŒãæã£ãŠãããã®ã§ãã
-圌ãšã®Cã®åé¡ã¯å°ãªãïŒ
-ã¯ããReSharperã¯ããšããšå®å šãªãã¬ãŒã ã¯ãŒã¯äžã§å®è¡ããã補åã§ããããã§ãã ãããŠãã¡ãããLinuxã«ã¯å€ãã®åé¡ããããŸãããMonoèªäœã«å€å€§ãªè²¢ç®ãããMonoã«å€ãã®ããããé©çšããŸãã ããã¯å€§éã®äœæ¥ã§ãã
-ã¢ããã¹ããªãŒã ã§ã¢ããã¹ããªãŒã ã§ããïŒ
ãã¯ãããã¡ãããã äœæãããã¹ãŠã®å€æŽã»ãããããã·ã¥ããããšããŠããŸãã
-ä»å¹Žã¯å€ãã®Monoããã°ãåŒããŸãããïŒ
-å€æ°ã®çéå ¥ãã®ãã°ãèŠã€ãã£ããšæããŸãã ããšãã°ãMonoã§ã¯ããã¥ãŒããã¯ã¹ã䜿çšããäœæ¥ã®å®è£ ãäžååã§ããã Linuxããã³macOSã«ã¯ååšããªãããã«èŠãããã¥ãŒããã¯ã¹ãšããååããããŸãããã.NETã«ã¯ãããŸãã ãããã£ãŠãã©ãã«ãããŠåœŒããšäžç·ã«äœæ¥ããšãã¥ã¬ãŒãããå¿ èŠããããŸããããå®å šã«ãšãã¥ã¬ãŒããããŠããŸããã§ãããNuGetã®ãœãŒã¹ã³ãŒãã§ã¯ãNuGetã®äœæ¥ãå®å šã«å®è£ ããå¿ èŠããããŸãã å éšã§çºçãããã®ç«¶åç¶æ ã2é±éãã£ããããŸããããååä»ããã¥ãŒããã¯ã¹ã ãã§ãªããéåžžã®ãã¥ãŒããã¯ã¹ã§ãçºçããããšãããããŸãããããããé©çšããä¿®æ£ãMonoã«éä¿¡ããŸããã
.NETã®çŸåšãšæªæ¥
-èããŠããã®ãMonoãXamarinãMicrosoftãã®ããããªæããããŠããŸããŸãªã©ã³ã¿ã€ã ïŒMonoãclassicãCoreïŒã«ã€ããŠã®å šè©±-ãããããã®ãã¹ãŠã®éå€ãªåç©åãšäžç·ã«æ®ããæ¹æ³ã§ããïŒ
-çãçãã¯ã©ããããããç§ãã¡ãããã§ãããã ãã®ãã¹ãŠããµããŒãããããšããŠããŸãã ãã¡ãããã»ãšãã©ã®åé¡ã¯CoreCLRã«ãããŸããããã¯ãããããŸã çµããã«éããŠããªããšèšãããããããªãããã§ãã ã€ãæè¿ãMicrosoftã¯æ°ããVisual Studio 2017ãå°å ¥ããããã«äŒŽã£ãŠCoreCLRã®æ°ãããã¥ãŒãã³ã°ãè¡ãããããã§ãã¹ãŠãåã³å€æŽãããŸããã
-åŸ ã£ãŠãããŒãžã§ã³1.0ããããããã«ã€ããŠåœŒãã¯ãããå®å®ããŠãããšèšã£ãŠããããã1.1ããªãªãŒã¹ãããŸãã...
-ãããã2ã€ã®ç°ãªãããšããããŸãã ã©ã³ã¿ã€ã ããããããã«ãã¥ãŒãã³ã°ããããŸãã Rantimeã¯ããã®äžã§å®è¡ãããVMã§ãã ãããŠããã¥ãŒãã³ã°ã¯ããããã¹ãŠåéããæ¹æ³ã§ãã
-ã€ãŸããæ°ãããã¥ãŒãã³ã°ãç»å ŽããŸããã
-ã¯ãã project.jsonãã¡ã€ã«ã«åºã¥ããã®ãããªãããžã§ã¯ã圢åŒããããå€ãã®äººããããèããããããã«åãçµãã ãããŸãããMicrosoftã¯ãã®ãããžã§ã¯ããéåžžã«é·ãéæšé²ãããæªæ¥ã¯jsonã«ããããããããžã§ã¯ããjsonã«ç¿»èš³ããããšè¿°ã¹ãŸããã ãããŠãçªç¶ã圌ãã¯ããããäœããããŸããããªãã£ãã®ã§ãcsprojã«æ»ããŸãããšèšããŸãã äœã¶æãåã«ãproject.jsonã¯æ¢ã«ã¬ã¬ã·ãŒã§ããããµããŒããããªãããšãçºè¡šãããŸãããã代æ¿æ段ã¯ãããŸããã ãããŠåœŒå¥³ã¯ã»ãã®äžé±éåã«çŸããŸããã
-CoreCLRã¹ããŒãªãŒããç§ã®æ°æã¡ãèããŠã¿ããšããã«ãªã¹ããšããèšèãæãæµ®ãã³ãŸãã ååãšã®ããªãã®æ°æã¡ã¯äœã§ããïŒ
-ãã¡ãããéšåçã«ã¯ã.NETã«é¢é£ããŠã€ã³ãã©ã¹ãã©ã¯ãã£ã§å€ãã®ããšãè¡ãããå€åããŠãããããç§ãã¡ã¯ããªãã«åæããŸãã ããããããã§ååã ãšæããŸãã .NETã¯ãã®ãããªãã©ãããã©ãŒã ã§ãããWindowsãšã³ã·ã¹ãã ã®ãã¬ãŒã ã¯ãŒã¯å ã§é·å¹Žã«ããã£ãŠçãç¶ããŠãããããMicrosoftã¯çªç¶æŠç¥ãå®å šã«å€æŽããã¯ãã¹ãã©ãããã©ãŒã ããªãŒãã³ãœãŒã¹ãªã©ã«åãã£ãã
ãããŠãããã1æ¥ã§å®äºããªãããšã¯æããã§ããããã¯èšå€§ãªéã®äœæ¥ã§ãã åãCoreCLRãäœæããã¯ãã¹ãã©ãããã©ãŒã ã«ãããã¹ãŠãæºåž¯é»è©±ãªã©ã§æ©èœããããã«ããŸãã ã¿ããªããããã§ããã ãæ©ããããããšæã£ãŠããããšã¯æããã§ããããã¡ãããééããç¯ãããããèªèããããŒã«ããã¯ããäœããå€ããªããã°ãªããªãããšã¯æããã§ã...
-人ã.NETã§æžããŠãä»æ¥1ã€ã®ããšãèããææ¥å¥ã®ããšãèããŠããã¹ãŠãäœåºŠãããçŽããªããã°ãªããªããŠããæžãçŽãããã«ããã«ããŸãæéããããªãã§ãå¥ã®ãã©ãããã©ãŒã ã«è¡ããŸãã
-ããã¯ãã¹ãŠããŸãã«ããªããéçºããŠãããã®ã«äŸåããŸãã ãã€ãŠæã£ãŠãããã©ãããã©ãŒã ïŒWindowsçšã®å®å šãªãã¬ãŒã ã¯ãŒã¯ïŒã§éçºããŠããå Žåããã®ãããªåé¡ã¯çºçããŸããã ããªãã¯ä»¥åã®ãã¹ãŠã®åé¡ãæ±ããŠããŸãã
ãŸããCoreCLRã§ã®éçºãéå§ããå Žåã¯ãã¿ã€ãã«ã®ããã¬ãã¥ãŒããšããèšèãèŠåãçºãã次ã«äœãèµ·ããããæºåããå¿ èŠããããŸãã
ãã€ã¯ããœããã¯çŸåšãã³ãã¥ããã£ã«è³ãåŸããã®ã«éåžžã«ç©æ¥µçã§ãããããæå 端ãææ°ã®æè¡ã«åº§ã£ãŠã圌ãã®éçºã«åœ±é¿ãäžããããšããŠãã人ã ãããŸãïŒæ°ãããµãã»ããã®äœããæ°ã«å ¥ããªããã°ãä»ã¯åœŒãã«ãã£ãŒãããã¯ãæžãæã§ã ãããŠä»ã®äººã ã¯ãããããã¹ãŠãå®å®ããã®ãåŸ ã£ãŠããŸãã
-ããªãã¯éåžžã«èå³æ·±ããããã¯ã«è§ŠããŸãã-ããã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ãããããªãŒãã³ãœãŒã¹ã§ããããŸãã ããã2ã€ã®å€§ããªãããã¯ã«ã€ããŠè©±ããŸãããã Linuxã«ã€ããŠã¯ãããã«ã€ããŠè§ŠããŸããã.NETãšLinuxã¯ãã°ããã®éäžç·ã«ãããŠããŸããã ãã®éã«è¯ããªã£ãã§ããããïŒ
-ã¯ãïŒ ãŸã第äžã«... LinuxãšMacã§å®è¡ã§ãã2ã€ã®ã©ã³ã¿ã€ã ããããŸã-ãããã¯MonoãšCoreCLRã§ãã ãããã¯ç°ãªãããããããèå³æ·±ããã®ã§ãããç¹å¥ãªæ³šæã«å€ããŸãã
Monoã¯ã2000幎代åé ããéçºããããããžã§ã¯ãã§ãããããå®å®ããŠããã»ã©ããŸããŸãæ·±å»ãªã©ã³ã¿ã€ã ãšèŠãªãããšãã§ããŸãã 5幎ãã10幎åã«ã¢ãã«ç¿»èš³ããããšãã人ãèŠããã ããä»ã¯...ä»ãç§ãã¡ããã¡ããå°ãèŠããã§ããŸãã ããããReSharperã§ã¯ãæ°çŸã®ãããžã§ã¯ãããããããããªããã¿ã¯ãããã®ã®ã2000幎代ã®åãããæžãããæ°çŸäžã®ã¬ã¬ã·ãŒã³ãŒãè¡ãèµ·åããMonoã§æ£åžžã«åäœããŸãã ã€ãŸããéçºãé²è¡äžã§ããããã°ãä¿®æ£ãããŠãããæè¿ã§ã¯éåžžã«è¿ éã«ä¿®æ£ãããŠããŸãã
-ããªãã顧客ã«èŠãŠãããã®ããïŒåœŒãã¯CoreCLRã«åããŠåºçºããŸããïŒ
-ä»ã®ãšããèšãã®ã¯é£ããã§ãã ã³ãã¥ããã£ã¯CoreCLRã«éåžžã«èå³ããããå€ãã®äººã ãéçºãè¿œããããäœããè©Šã¿ãè©Šã¿ãŠããŸãã ããããããã¯ãŸã ãã¬ãã¥ãŒã§ãããCoreCLRãä»ããŠããããçš®é¡ã®ãšã³ã¿ãŒãã©ã€ãºãè¡ãã«ã¯ææå°æ©ã§ãã
-ããºãªã³ã¯ã©ãã§ããïŒ æ°ããã¹ã¿ãžãªãç»å ŽããŸããããã³ã³ãã€ã©ã«ã¯äœããããŸããïŒ
-ããºãªã³ã¯éçºäžã§ãã CïŒ7ã¯è¿æ¥å ¬éäºå®ã§ãããã¬ãã¥ãŒã¯ãæ°ããStudioã§æ¢ã«å©çšå¯èœã§ãã ããºãªã³ã¯ãã¹ãŠé 調ã§ãã
-Roslynã«ä»å±ããCïŒ7-ç®±ããåºããŠããã«ïŒ ãã®éã«ããºãªã³ã¯é²æ©ããŠããŸããïŒ
-ã¯ãã ãã°ãä¿®æ£ããéçºããŸã...å€ãã¬ã¬ã·ãŒã³ã³ãã€ã©ããRoslynã«åãæ¿ããããšã§åŸãæãéèŠãªæ©äŒã¯ãèšèªãããç°¡åã«éçºã§ããããã«ãªã£ãããšã§ãã èšèªã®èŠ³ç¹ããå¿ èŠãªæ©èœãšãå®è£ ãããæ£ç¢ºã«ããããå®è£ ããæ¹æ³ã«ãã£ãšéäžã§ããŸãã å€ãã³ã³ãã€ã©ã§ã¯ãæ°ããæ©èœãè¿œå ããããšã¯éåžžã«å°é£ã§ããããRoslynã䜿çšãããšã¯ããã«ç°¡åã«ãªããŸããã
-ããºãªã³ãèªåã®ã©ããã«ãã©ãã°ããŠãããã«ã€ããŠäœãããããšããŸãããïŒ
-ãŸããã©ãã§ããã ã³ã³ãã€ã©ãšããŠäœ¿çšããŸãã MSãã«ãã®äžã§åäœãããããå©çšããŠæ°ãããããžã§ã¯ããã³ã³ãã€ã«ãããŸãã ããããã¢ãã©ã€ã¶ãŒãæ€æ»ã«é¢ããŠã¯ãReSharperã«ã¯ããã«å€ãã®æ©èœãå®è£ ãããŠããããããããæäŸãããã®ã¯å¿ èŠãããŸããã ç§ã¯äœåããéåžžã«ã¯ãŒã«ãªæ€æ»ãããã€ã³ããªãžã§ã³ãã«èšãã§ãããã ãŸããRoslynã¯2ã®ã¬ãã€ãã®ã¡ã¢ãªãç°¡åã«æ¶è²»ã§ããŸãã ãã®ç¹ã§ãReSharperã³ãŒãããŒã¹ã¯ãã¡ã¢ãªã䜿çšããŠããã«çµæžçã§ããããã£ãã·ã¥ãç©æ¥µçã«äœ¿çšããŸãã ã€ãŸããRoslynãžã®ç§»è¡ã«ããå©çã¯ãªããåé¡ãããã ãã§ãã
-ããã©ãŒãã³ã¹ã«ã€ããŠè©±ããŸãããã CoreCLRãRoslynã¯ãMonoãšåŸæ¥ã®ã¬ã¬ã·ãŒã³ã³ãã€ã©ãæ¯èŒããŸããã ã€ãŸãã2ã€ã®ã©ã³ã¿ã€ã ã¯ãããã©ãŒãã³ã¹ãç°ãªããŸãã ã©ãèŠããŸããïŒ
-èšãã®ã¯ééããªãéåžžã«é£ãã...æè¿ãæ°ããRyuJIT JITã³ã³ãã€ã©ããããŸãã çŸåšãå®å šãªãã¬ãŒã ã¯ãŒã¯ãšCoreCLRã®äž¡æ¹ã§ã64ãããããŒãžã§ã³ã®ã¿ã䜿çšå¯èœã§ãã ãŸããCoreCLR 1.2.0ã§ã¯ãx86ããŒãžã§ã³ãçŽæãããŠããŸãã
RyuJITã¯éåžžã«èå³æ·±ããããžã§ã¯ãã§ãã äžæ¹ã§ãå€ãJITã¯éçºãé£ãããå€ãã®åé¡ãæ±ããŠããã2.0ãªã©ã®.NETã®å€ãããŒãžã§ã³ã«å¯Ÿããå€ãã®ããã¯ãæ±ããŠããããã圌ãããããå§ããã®ã¯è¯ãããšã§ãã ããããã²ã©ãå€æããã®ã¯ãããšãã°ãRyuJITãããã©ãŒãã³ã¹ã®ããã€ãã®é¢ã§å€ãã¬ã¬ã·ãŒJITãããå£ã£ãŠããããšã§ãã ã€ãŸããããã«ãã人ãã¡ã¯ãJITã®é床ãå¯èœãªéãéãããšã匷調ããŸããã ãã®ãããããã€ãã®é©åãªæé©åã¯é©çšãããŸããã
ããããè¯ãé¢ã¯ãRyuJITãéåžžã«ç©æ¥µçã«éçºããŠããããšã§ãã githubã§éåžžã«ç©æ¥µçã«éçºãããŠãããããšãã°ãRyuJITãAVXããã³SSEåœä»€ãæäœããããã®åªããçµ±åãå®çŸã§ããããã«ãã¢ãŒããã¯ãã£ãæ¹åãããŠããŸãã ãããŠæé©åã¯é²åããŠããŸãã GitHub, «, , - , ». , .
â -?
â CoreCLR CoreFX. , «, ». â - , , , , , - , .
â , , , â , , â . .
â , , .NET , - âŠ
â , , .
â , .
â Microsoft. , â GitHub, â ? .NET- â ?
â . Microsoft â GitHub. . , , , , - . issue GitHub, , issue Microsoft, âŠ
â .
â ! , Microsoft. issue . , , , , .
. ASP.NET- Kestrel -10 - . . , âŠ
â .NET- â nginx, Apache?
â â Java, C++, . Kestrel . , : Microsoft, Kestrel.
â ?
-ã¯ãã ore Team , , - , .
Microsoft Open Source
Microsoft, , , , ?
-ã¯ãã Microsoft - , , -. Microsoft , , , .
â ?
â , , Open Source, . , , Microsoft Linux Foundation.
â , : , ?
â , , - , , Linux . , , AzureâŠ
â «»! Microsoft. , , , Azure, , .
â , , , , , . , , Linux.
â business value.
â , Red Hat. Red Hat , .NET â Red HatâŠ
â , : Microsoft Azure, . Linux ( , Windows, ). , Microsoft , Azure.
â , , .
â , ? Linux Open Source.
â . . Microsoft, , - . Apple Google. - .
â â . , Windows Phone .
â ? Windows Store . , . â .
â , .
â , . , Microsoft Xamarin Mobile Development C#.
â DotNext ( ) ( ), . DotNext , , Xamarin.Forms. , . , , , .
â , , . - DotNext -, , , , - , . Xamarin - , , .
C# â , Xamarin , Windows, Android, iOS. , . .
, Google Play App Store, native. , - « », , , , , , , C# â .
â ?
â - . , , - API, API. , . native API, UI, .
Rider, Xamarin, , .
â , , ?
â , « » â . , .
â , .NET ?
â .
â Xamarin ?
â , , , , , Rider 1.0 , .
BenchmarkDotNet
â , JetBrains: , , BenchmarkDotNet . ?
â , .NET Foundation, , .
â , BencmarkDotNet?
â , Roslyn, ColeCLR ( RyuJIT ), Entity Framework, Microsoft , , Cake , .NET. .
â , ?
â , : , . â - -, â .NET Foundation.
â ? , , Java: , , , . ?
â , . Kestrel, , BenchmarkDotNet . â , , âŠ
â , Microsoft . , BenchmarkDotNet â , Microsoft. ?
â , , high performance. , . 20 , , - . BenchmarkDotNet - -, , -, , « ».
â , â , , .
â , , ⊠. Java- JMH, , â JMHâŠ
â , , JMH, «A , B». .
â , , , , . - , . , N , - .
, - , . , , . , . - , , , , , .
â JMH?
-ã¯ãã
â BenchmarkDotNet ? , ?
â . -, , Java .NET , . Java . . Java , , .
â , Java JVM, , - , , . .NET CLR, CLR, Mono â , . JMH, , HotSpot, , . , .NET ?
â . , . , Mono, CoreCLR. , - -. .
, - Mono , , . ãããæåã®ç¬éã§ãã â , , , , , . JMH â , , . . , , .
â BenchmarkDotNet , , JetBrains?
â â , , . â , , . , , , .
, . , Rider , , , - , , , . , , , .
â JMH, , , . , , , , , . - ?
-ã¯ãã BenchmarkDotNet. , , , , .
â footprint?
â , . , memory traffic. , -JIT-, . .
â ? , â , . ?
â , . , .
â - ?
â . , , .
â DotNext ?
â , . DotNext , .
â , ?
â -.
â . â . , â . ?
â , , , . â , , , , .
, Intel , , , -, , AMD, ARM, Samsungâ .
-ã¯ãã , Intel, - âŠ
â ?
â , Intel?
â , « , ». Microsoft, â . Intel?
â -, , Microsoft . Intel , , â âŠ
â , , , Intel . Java , Intel : « intrinsic, , ...»
â .NET, , .
â , Intel Microsoft .
â . . , , , , .
native
â , . .NET, : . - ?
â . .
â ?
, . NGen, â , ahead of time-.
â ? . ? : GCC , 70 . internal representation .
â NGen , , , , , , profile-guided optimization : , - .
â , , , NGen', - ?
â , , , , . , JIT-. , , - , . ⊠, - , .
â , . JIT- . footprint, , , .
â .
â , NGen, , ?
â .NET Native. , Windows-. , , .
.NET, , .NET Native, . , , .NET- native . , , LLVM. C++ , .NET C++, .
â C++?
â .
â managed?
â , . , , , , . Microsoft , , , , , - , - , .
â , Microsoft , , , . : - â ? ? Rider, « IDE, C#-, ». ?
â - , .NET-.
â , - . , , , - -, . . , : Rider?
â . , , , , , preview. , , . . , , .
, -, . , , .
â Microsoft. , Microsoft , . , Microsoft, MS-, . 15 , - . business value , .
-ããã¯æ¬åœã§ãã , â , . 2-4 â .
â : 2-3 , , Stack Overflow, Medium, . , Microsoft ? ?
â . , , Microsoft , .
â . ReSharper, - . Microsoft , . 1.1 1.0 , , 1.0. ?
â , , , , - . CoreCLR, . preview 2, preview 3. preview 2 , , , N , . , preview 3, 1.0. stable- .
- Rider, , . . C# , , - , . , , , , .
ä»é±éææ¥ã«ã¢ã¹ã¯ã¯ã§è¡ãããDotNextã«ã³ãã¡ã¬ã³ã¹ã§ãã¢ã³ãã¬ã€ãšè©±ãããããšãã§ããŸããããã§ã¯ã.NETãã©ãããã©ãŒã ã§ã®ç®è¡æŒç®ã®é床ã«ã€ããŠãã¬ãŒã³ããŒã·ã§ã³ãè¡ããŸãã