Dmitry Robsmanã¯ãã¬ãã¢ã³ãã«ãããã€ã¯ããœããã®æ¬ç€Ÿã§12幎éåããŠããŸãã 圌ã¯ASP.NETããŒã ã®æåã®éçºè
ã§ããã 圌ã¯ãåçèšèªïŒDLRãIronPythonãIronRubyïŒã®ããŒã ãšVisual Studioã®ããŒã ã®ãããŒãžã£ãŒã§ãããCïŒãVB.NETãFïŒã®ä»äºãããŠããŸããã 圌ã®æåãªå人ãããžã§ã¯ãã«ã¯ãå®å
šã«ãããŒãžã³ãŒãã§èšè¿°ãããCassini WebãµãŒããŒãšASP.NET RSSããŒã«ãããããããŸãã
ããã©ãããã©ãŒã ãã§ã¯ã圌ã®åºæŒã¯é·ãææã§å§ãŸããŸããã ãžãŒã³ãºã®ãšã³ãžãã¢ãšéçåžœã圌ã®ããžãã¹ã«æ¬åœã«æ
ç±ãåŸãã现éšãŸã§ç解ããŠããç·æ§ã ç§ã¯åœŒã«ããªãã圌ã«å°ã
ããã£ã質åã«çãã
ããã«é Œãã ã
ç§ã¯ããªãã®ä»äºãžã®æè¬ãäŒããããã«é ŒãŸããŸããã ASPã¯.NETã®åŒ·ã¿ã®1ã€ã§ãããšäººã
ã¯èšããŸããããããããé¡ãããŸãïŒ ãšãŠãããããã§ã:)
ãŸããç¹å¥ãªè³ªåïŒãªããã€ã¯ããœããã§åããŠããã®ã§ããïŒãã€ã¯ããœããã§ã¯ãäž»ãªãã®ã¯äººã§ãã åžžã«æ°ããããšãåŠã¶äººãããŸãã ãŸããå°èŠæš¡äŒæ¥ã§ã¯ãå人ã®æé·ã«ã¯ç¬èªã®äžéããããŸãã ããã«ãç§ã®ä»äºãäœçŸäžäººãã®äººã
ã«å©çãããããããšãæ°ã«å
¥ã£ãŠããŸãã ããã§ç§ã¯å®éã«äžçãå€ããäœããããããšãã§ããŸãã
Microsoftã¯ASP.NETèªäœãä»ã®ãã©ãããã©ãŒã ã«ç§»æ€ããäºå®ã§ããïŒASP.NETã¯ãIISçšã«æåã«äœæãããå Žåã§ããã©ãã§ããã¹ãã§ããŸãã
Microsoftèªäœã®ä»¥åã®éçºã«å ããŠãASP.NETã®éçºã«äŸåããŠããæ¢åã®æè¡ã¯äœã§ããïŒ JSPãJSFãªã©ã®Javaæšæºãšã®çŽæ¥çãã€å¯æ¥ãªé¡äŒŒæ§ã远跡ã§ããããããããã®ãã¯ãããžãŒãASP.NETã®éçºã«ã©ã®ããã«åœ±é¿ããããç¥ããããšæããŸããç§ã®ç¥ãéããJSPã¯Classic ASPã®åŸã«å§ãŸããŸããã å®éãJSPã¯åãªãã¯ã©ã·ãã¯ASP + Javaã§ãã ãããŠãASP.NETã®ã©ã€ãã«ã¯ãã¡ããPHPã§ãã
é Œãã«ããããšãæ£ç¢ºã«èšãã®ã¯é£ããã ããããJSPã¯ç¢ºãã«å€§ããªè²¢ç®ãããŸããã§ããã é·ãéãå€ãã®ã¢ã€ãã¢ã空ãèã£ãŠããŸãã MVCã¯éåžžã«é·ãéååšããŠããŸãã ãããŠãASP.NETã§ã®äœæ¥ã§ãç§ãã¡ã¯æåã«Classic ASPã®ã¬ãã¹ã³ãåŠã³ãããã«ã€ããŠãåŠã³ãŸããã ç§ãã¡ã¯å±±ã®ã³ãŒããæžãçŽããããŸããŸãªã¢ã€ãã¢ãã¢ãããŒãã§å€æ°ã®å埩ãè¡ããŸããã åœåãããã¯9ã10幎åã§ãèšèªã¯XSLTã«åºã¥ããŠããŸããã åºç€ã®äž-ãã€ãã©ã€ã³äžããã£ãã·ã¥äžãã¹ã±ãŒãªã³ã°äž-MVCãWebFormsãªã©ãæ§ç¯ããŸãã
ASP.NETã®ãããªå€§èŠæš¡ãªæŠå¿µãèšç»ããã³èšèšããããã»ã¹ã¯äœã§ããïŒ ãã®ãããªéèŠãªã¿ã¹ã¯ãã©ã®ããã«è°è«ãã倧èŠæš¡ãªããŒã ã§ã¢ã€ãã¢ã亀æããŸããïŒäžè¬çã«ããã¹ãŠã®ã¢ã€ãã¢ã¯ãååãšããŠãåã
ã®å°é家ã®é ã®äžã«è¡šç€ºãããŸãã ããããã人ã
ã¯ç¹å¥ãªæç¶ããªãã§äºãã«è©±ãåãã ãã§ã倧ããªãããžã§ã¯ãå
šäœãçºå±ããŸãã
ç§ã®ããŒã ã¯äž»ã«ASP.NETã§äœæ¥ããŠããŸãã ASP.NET Data Servicesã¯å¥ã®ããŒã ãAzureã¯å¥ã®ããŒã ãSilverlightãå¥ã®ããŒã ã§ãã ããããå€ãã®ç°ãªãããŒã ã«ãã£ãŠäœæããããããžã§ã¯ãããããŸãã ç§ãã¡ã¯åœŒãå
šå¡ãšã³ãã¥ãã±ãŒã·ã§ã³ãåããäžç·ã«åé²ããŸãã ããã«ãç§ãã¡ãå€ãã®ããšãäŒããæèŠã亀æããé£åã°ã«ãŒãããããŸãã ããã¯ãããšãã°Sharepointã§ãã
ç§ãã¡ã«ã¯å€ãã®ã¢ã€ãã¢ããããäžéšã¯æé€ãããäžéšã¯éçºãããŠããŸãã äžè¬ã«ãããã°ã©ãã¯èªåã®ä»äºã®äŸ¡å€ãã©ã®ããã«èªèããããå€ãã®ã³ãŒããæžãããšãã®ç¶æ³ãã©ã®ããã«èŠããã«é¢ããŠ2ã€ã®ã¿ã€ãã«åããããŸããããªãªãŒã¹ã«ã¢ã€ãã¢ãå«ããªãããšã«ããŸããã
人ã¯èªåã®åŽåã®ææãå®ããã©ããªåœ¢ã§ãããããçªãåºãããšããŸãã ãããŠãããäžæ¹ã¯åœŒãçºèŠããããšãåãã§ããŸã-ããã¯å¿
èŠãªãã®ã§ãå察åŽã«è¡ããŸãããã ç§ã¯ããã2çªç®ã®ã¿ã€ãã«å±ããŸãã ãããŠãäœæ¥ã®éçšã§ãããŒã ãã©ããã§ééã£ãããšãããããšãç解ããã®ã«åœ¹ç«ã€çµæã«è³ã£ãå Žåãç§ãã¡ã¯ããã«ã€ããŠæºè¶³ããŠããŸãã
CïŒãšãã©ãããã©ãŒã ãéçºããããã®é·å¹Žã®ã³ã³ã»ããããããŸããããããšãWebéçºã®ç¶æ³ãçºçãããšãã«æ©èœãè¿œå ãããŸããïŒMicrosoftã®èšèªã¯ã次ã®ã¢ããªã±ãŒã·ã§ã³ãé²åãããŸããã CïŒã«ã¯ã¢ã«ãããã¯ãªåŽé¢ããããŸã-ããŒã ã¯ããã°ã©ãã³ã°èšèªãšããŠæ£ç¢ºã«éçºããŠããŸãã ã¯ãããã¡ãããé·æçãªæŠå¿µãååšããŸããã1幎åŸã«ã¯çŸåšã®ãã®ãšã¯ç°ãªãå ŽåããããŸã:)
ãã©ãããã©ãŒã ãšèšèªã®æŽæ°ãé »ç¹ã«åºãã®ã¯ãªãã§ããïŒ 4.0ãã6ãæåŸã«ããŒãžã§ã³4.5ãåŸ
ã€ã¹ãã§ããïŒãã¯ãããžãŒã®å€åã¯æåã«éãããŒã¹ã§çºçãããã®åŸãé床ãäœäžããŠå®å®ããŸãã æéã®çµéãšãšãã«ãæ°ãããã®ãè¿œå ããŠãå€ããã®ãå£ããªãããšããŸããŸãéèŠã«ãªã£ãŠããŸãã
ãããŠãç§ãã¡ãåžå ŽããªãŒãããŠãããšã¯æããŸããã 競äºã¯éåžžã«éãåããŠããŸãã æè¿ãªãªãŒã¹ãããPHPã®ããŒãžã§ã³ã¯ããã€ã§ããïŒ ç§ãã¡ã¯éåžžã«å€§ããªè£œåãæã£ãŠããã®ã§ãããããããŸãã«ãå€ãã®ã¢ããããŒããåºãŠããããã§ãã ããããLINQã§ã¯ãèšèšãã§ãŒãºã¯3幎ç¶ããŸãã-ããã»ã©éããããŸããã
Frameworkã®ãªãªãŒã¹ã®é åºãšå°æ¥ã®ããŒãžã§ã³ã®çªå·ã«ã€ããŠã¯ç¥ããŸããããService Packã¯é·ãåŸ
ã€å¿
èŠã¯ãããŸããã
CïŒã®æªæ¥ãã©ãèŠãŠããŸããïŒ MSã¯ãWebãŸãã¯ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã§ãã©ã®åéã§ããã宣äŒããäºå®ã§ããïŒ ããšãã°ããã¹ã¯ãããçšãšWebçšã®ãã©ãããã©ãŒã ãªãªãŒã¹ã®åå¥ãªãªãŒã¹ã®ãã©ã¯ãã£ã¹ãå°å
¥ããããã«ãå°æ¥ã®ããŒãžã§ã³ã§èšç»ããŠããŸããïŒCïŒããã³VBã®ä»¥åã®ããŒãžã§ã³ã§ã¯ãLINQã¯ããã°ã©ãã³ã°èšèªã«ã¯ãŸã ãªãæ°ãããã®ã§ããã ããŒãžã§ã³2010ã§ã¯ãCïŒã§ããåçãªæ©èœãè¿œå ããŸãã å°æ¥çã«ã¯ãCompiler as a Serviceã®æŠå¿µã«åŸã£ãŠäœããè¡ããŸãã
ãã¹ã¯ãããããã³Webã¢ããªã±ãŒã·ã§ã³ã®åé¡ã¯äžè¬çã§ãã ã¯ããããçš®ã®ããã©ã°ãã¯è«ççã§ãããå®éã«ã¯ããã¹ã¯ããããšWebã®éã«ç·ãåŒãããšã¯ããã»ã©ç°¡åã§ã¯ãããŸããã ããšãã°ãã°ã©ãã£ãã¯ã¹ã¯ãä»ã®ããŒã¿ãšåæ§ã«ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã§åŠçã§ããŸãã ãã¡ãã¡ã§åãæ¹æ³ã§è¡ããããããéçºè
ã¯èªåã®ç¥èãšçµéšãã©ãã«ã§ãç°¡åã«é©çšã§ããŸãã 害ãäžããªãããã«ãããã®é åãåé¢ããããšã¯ãå°é£ã§ã...
ãæ©èœãã«ã¯èè
ãããŸããïŒ ããšãã°ã誰ãã©ã ãåŒãæ¡åŒµã¡ãœãããææ¡ããŸãããïŒ LINQã玹ä»ããã®ã¯èª°ã§ããïŒLINQã¯Anders Halesbergãæãä»ããŸããã Lambdaãšæ¡åŒµæ©èœã圌ã®ããŒã ãçã¿åºããLINQã«åãçµã¿ãŸããã
ASP.NETã§åçæ§é ãå®è£
ããäž»ãªçç±ã¯äœã§ããïŒASP.NETããã¹ãŠã®ãŠãŒã¶ãŒã®åé¡ã«å¯Ÿããçãã«ãªãããã«ããããšæããŸãã æè¿ããã€ãããã¯ãªãã¶ã€ã³ã¯äºæ¬¡çãªé¢šãåããŸããã ãããŠãã€ã³ã¿ãŒãããã«ãšã£ãŠã¯ãããçšåºŠã®äœ¿çšã¯çã«ããªã£ãŠããŸãã ã¯ãã圌ãã«ã¯é·æãšçæã®äž¡æ¹ããããŸãã ãããã人ã
ããããã䜿çšãããå Žåã¯ãASP.NETã䜿çšããŠãããå®è¡ããå¿
èŠããããŸãã
IronRubyãšIronPythonã®ãªãªãŒã¹ãçºè¡šããããšããããã¯Visual StudioïŒ2010ïŒïŒã«å«ãŸããŸããïŒãããšãå¥ã®è£œåã§ããïŒãVisual Studioã§ããšãVisual Studioããå¥ã
ã«ãã®é
ä¿¡ã®å¢çã¯æ¶å»ãããŸãã ããšãã°ãé
ä¿¡ã«jQueryãå«ããŸãã ç§ãã¡ã¯äººã
ã奜ããªãã®ã«éäžããŠããŸãã IronPythonãšIronRubyã¯2010幎ãããã¯ã·ã³ã°ã«åå ããŸãããPythonã¯RubyãããåªããŠããŸããããããããããããã¯ã¹ã«å
¥ããããšã¯è«ççã§ãããã äžéšã®ãã€ã¯ããœãã補åã§ã䜿çšãããŠããŸãã
MVC ASP.NETãªãªãŒã¹ããã€ãªãªãŒã¹ããäºå®ã§ããïŒ Entity Frameworkã䜿çšããAPS.NETã¢ããªã±ãŒã·ã§ã³ã®å®éã®äŸã¯ãããŸããïŒããŒã¿çã¯ãã§ã«ãªãªãŒã¹ãããŠãããæçµãªãªãŒã¹ã¯æ°ãæã§ãã ãªãªãŒã¹ãæ¥å¹Žã®ç¬¬1ååæããåŸã«è¡ãããå Žåãç§ã¯éåžžã«é©ããŠããŸãã ãŠãŒã¶ãŒã®å¿çã«ãã£ãŠæ±ºå®ãããæºåã®çšåºŠã ãããŠã圌ãã¯ãã§ã«æºè¶³ããŠãããšèšããŸãã ç§ãã¡ã®èšç»ã«ã¯ãŸã ããã€ãã®æ¹åããããŸããã
Entity Frameworkã¯SP1ã§ããç»å Žããªãã£ããããããã€ãã®å€§ããªãããžã§ã¯ããåŸ
ã€ã®ã¯ææå°æ©ã§ãã ããããããšãã°ããã¬ãŒã ã¯ãŒã¯ã¯ã倧èŠæš¡ãªèªåè»æ
å ±ã¢ããªã±ãŒã·ã§ã³ãéçºããããã«JMãã¡ããªã§äœ¿çšããããšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³çšã®ã³ã³ããŒãã³ããäœæããããã«Sunguardã䜿çšãããŸããã
ãã©ãããã©ãŒã å
šäœã®éçºæŠç¥ïŒå®éšã代æ¿ããŸãã¯ææãªæè¡ïŒã§MVCã¯ã©ã®ãããªäœçœ®ãå ããŠããŸããïŒå®éãMVCãæè¿ç»å Žããããšãå€ãã¯ç¥ããŸããã 圌ã¯ã»ãŒ30æ³ã§ãïŒ ã€ãæè¿ããã®ã¢ãããŒããäžè¬çã«ãªããŸããã MVCãäœæããASP.NETã®ããã±ãŒãžã¯ååšããŠããŸããããèããŠããŸããã§ããã ASP.NETã¯ããŸã ååšããWebFormsã§å§ãŸããŸããã ããããWebFormsãïã奜ãŸãªããšããå°æ°æŽŸããããŸã-圌ãã®ããã«ç§ãã¡ã¯MVCãããŸãã ã€ãŸããASP.NETã«ç»å Žããçç±ã¯ãåã«éèŠã®ååšã§ãã ãããŠäººã
ã¯å¹žãã§ãã
ãã¡ãããããã¯å®éšä»¥äžã®ãã®ã§ãã ããã¯WebFormsã«ä»£ãããã®ã§ãããææãªæè¡ã§ãã MVCãšWebFormã®äž¡æ¹ãååšããããšãèšç»ããŠããŸãããäž¡æ¹ã®ãã¡ã³ãæ¯æŽããŸãã
äžè¬ã«ãå°ãªããšãæ°å人ã®ããã°ã©ããŒãããçµç¹ã¯ãåžžã«ç¬èªã®ãã¬ãŒã ã¯ãŒã¯ãäœæããããšããŠããããšã«æ°ä»ããŸããã ããã¯ãã£ãšé¢çœãããã§ã:)
MVCïŒãã¬ãŒã ã¯ãŒã¯ã§ã¯ãšãªãã©ã¡ãŒã¿ãŒãåŠçããæ©èœïŒã§æ§ç¯ããããµã€ãããããã³ã°ããã®ã¯ã©ããããé£ããã§ããããïŒMVCäžã«æ§ç¯ããããµã€ãã®ã»ãã¥ãªãã£ã¯ããã®ãµã€ãã®äœææ¹æ³ã«äŸåããŸã:)éçºè
èªèº«ãããå€ãã®è²¬ä»»ãè² ããŸãã ããããç§ãã¡ã¯ãã¡ããããã«ã€ããŠå€ãã®ããšãèããŠããŸããæããªééããé²ãããã®ãŠãŒãã£ãªãã£ãäœæããŠããŸãã åæ°æ©èœã«ã¯ãè
åšã®ã¢ããªã³ã°æé ãè¡ãããŸãã ãã ããã¢ãŒããã¯ãã£äžã®åé¡ã«åãçµãå¿
èŠããããŸãã ã»ãã¥ãªãã£ã¯ããã»ã¹ã§ãããçµæã§ã¯ãããŸããã
çŸåšãŸã§ãFïŒèšèªã«é¢ããæ
å ±ã¯ã»ãšãã©ãããŸããã 察å¿ããæ§æãã©ãã«ãèšè¿°ãããŠããªããããCïŒã®äžéšã®ããšãå®è¡ã§ããŸããã å¯äžã®æå¹ãªæ¹æ³ã¯ããã³èªèº«ã«åœŒã®ãŠã§ããµã€ãã§è³ªåããããšã§ãã å®å
šãªããã¥ã¡ã³ããMSDNã«è¡šç€ºãããã®ã¯ãã€é ã§ããïŒããã¯å®å
šã«çå®ã§ã¯ãããŸãããããŒã ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãã£ãã«ããããå人çã«æžãå¿
èŠã¯ãããŸããã ã¯ããMSDNã«ã¯FïŒã«é¢ããã»ã¯ã·ã§ã³ããããŸãã Visual Studio 2010ã«å«ãŸãããããååãªæ
å ±ããããŸãã ããããã©ãã«ãçããèŠã€ãããªã質åãããå Žåã¯ãdmitryr @ microsoft.comã«é£çµ¡ããŠãã ããã
Silverlightã«é¢ãã質åã Flashã®ä»£ããã«äœ¿çšãããã®ã§ããã移æ€æ§ã«åé¡ããããŸãã Monoãååšããããšã¯æããã§ããããŸã çã§ãããç§ãç解ããŠããããã«ãNovellã®Linuxã§ã®ã¿åäœããããšãä¿èšŒãããŠããŸãã 移æ€æ§ãåäžããåŸåã¯ãããŸããïŒæ±è² ã¯ãã¢ãã€ã«ãã©ãããã©ãŒã -é»è©±ãªã©ã§ãã ã¢ã-ã¯ãã圌ã¯ãããããŸã çã§ãã ãããããã²ã«ïŒãã²ã«ã»ãã»ã€ã«ã¶ïŒã¯éåžžã«ç©æ¥µçã«åãçµãã§ããŸãã ç§ãã¡ã¯ãSilverlightããã¹ãŠã®ãã©ãããã©ãŒã äžã«ããããšãééããªãæãã§ããŸãã ãããŠããã²ã«ã¯ããã®ããã«å¯èœãªãã¹ãŠãè¡ããšæããŸãã æ£çŽãªãšããã圌ããã£ãŠããããšä»¥äžã®ããšãããããšããèããŠããŸããã§ãã:)
ASP.NETã¯Server Coreã§åäœããŸããïŒ ãã®OSã§å©çšã§ããDBMSã¯äœã§ããïŒSQL Serverã®ç¹å¥ãªããŒãžã§ã³ã¯ãããŸããïŒ ãŸãã¯ããã¹ãŠCompact SQLã«éå®ãããŠããŸããïŒã¯ããServer Coreã§åäœããŸãã ããã¯ãWebã¢ããªã±ãŒã·ã§ã³çšã®åããã©ãããã©ãŒã ã§ãã ã©ã®ããŒãžã§ã³ã®SQLãååšãããæ£ç¢ºã«ã¯ããããŸããã ãããã.NETã¯ç¢ºå®ã«ãªããŸã-çŸåšãäœæ¥äžã§ãã
æ°å¹ŽåŸã«JavaScriptã¯ã©ã®ããã«ãªããŸããïŒãªããã€ã³ã¿ãŒãããã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã¯2ã€ã®åŸåããããŸãã
-ãã©ãŠã¶ã¯ãã¹ãŠãè¡ããŸãã
-ããšãã°ãSilverlightãFlashã®ããã«ããã©ãŠã¶ãŒã§å®è¡ã§ããªãããšã®äžéšã¯ãµã€ãã§è¡ãããŸãã
ã©ã®ã¢ãããŒããåã€ãã¯èšãã®ãé£ããã§ãã JavaScriptãšSilverlightã®äž¡æ¹ããµããŒãããŠããŸãããããã¯ãã¹ãŠéåžžã«éèŠã§ãã ã©ã®ã¢ãããŒãã§ãããã¹ãŠãè¿
éãã€å®å®ããŠæ©èœããããšãéèŠã§ãããããã«å€ãã®æè³ãè¡ããŸãã
ã¹ã¯ãªããïŒã Microsoftã®Google Web Toolkitã¯è¡šç€ºãããŸããïŒèå³æ·±ã質åã§ãã Silverlightãšãšãã«IronRubyãšIronPythonãäœæãã誰ããèªåã®åã³ã®ããã«äœ¿çšã§ããããã«ããŸãã ä»ã®ããã€ãã®èšèªãšåæ§ã«ãSilverlightã䜿çšãããã©ãŠã¶ãŒå
ã§ããããåŠçã§ããŸãã ããããäžè¬ã«ç¿»èš³ãããã³ãŒãã¯ãããã°ãéåžžã«å°é£ã§ãã ã§ããããGWTã®ãããªãã®ãèšç»ããŠãããšã¯èšããŸãã...
ã¯ã©ã€ã¢ã³ãåŽã®éçºã«é¢ããŠãVisual Studio 2010ã¯ã©ããªããŸããïŒããäžåºŠèšããŸãããVisual Studio 2010ã«å«ãŸããç¹å®ã®ãã®ãèªä¿¡ãæã£ãŠãªã¹ãããã®ã¯ææå°æ©ã§ã...ããããããšãã°ãWPF Control ToolkitããããŸã-WPFã«ã¯ããŸããŸãªã³ã³ãããŒã«ããããŸãã
ãã¡ããã€ã³ã¿ãã¥ãŒã§ãã ããããªãŒãªã©ã®å°é家ãšã®ã©ã€ãã³ãã¥ãã±ãŒã·ã§ã³ã¯æ¬åœã«æ¥œãã¿ã§ãã ãããŠãç§ãã¡ããã®ãããªäŒè°ãå®æçã«è¡ãããšãã§ããããšãé¡ã£ãŠããŸãã