èªè»¢è»ã®çºæã¯ç§ã®ãæ°ã«å ¥ãã®åš¯æ¥œã§ã¯ãããŸããã ããã«ãã»ãšãã©ã®æ°ãããœãããŠã§ã¢æè¡ã¯åäžçŽåã®ã¢ã€ãã¢ã«åºã¥ããŠãããšããäºå®ãç¥ã£ãŠããŸãã ãããã£ãŠãç§ã®å€¢ã®å®çŸã«ã€ããŠåããŠèããŠãç§ã¯æ¬å±ã«åãããå€å žã®äžã€ãæã«å ¥ããããšæã£ãã
æåã¯Bertrand Meyerã®èæžããœãããŠã§ã¢ã·ã¹ãã ã®ãªããžã§ã¯ãæåèšèšãïŒ1000ããŒãžãšããéãã¬ã³ã¬ã§ãããä»ã¯èª°ãç°¡åã§ããïŒïŒã§ãã ç§ãèªãã ããã«ãããããŸãã«ç§ãå¿ èŠãšãããã®ã§ãããšããæèŠã匷ãŸã£ãã æ³åããŠã¿ãŠãã ãããç°¿èšçšã®ã¢ããªã±ãŒã·ã§ã³ã®äœæãéå§ããåŸã ã«å€ãã®æ©èœãè¿œå ãããã°ããããŠããèŠãŠåããšãããã°ã©ã ã¯ãã§ã«è»éã¹ããŒã·ã§ã³ãå¶åŸ¡ããããšãããã£ãŠããŸãã
ãã¡ããããã®ãžã§ãŒã¯ã«ã¯ãžã§ãŒã¯ããããŸãããåºæ¬çã«ã¯æ¬åœã§ããå®éã®ã·ã¹ãã ã«ã¯äž»ãªæ©èœããããŸããã ããã®ã·ã¹ãã ã¯äœãããŸããïŒããã¶ã€ããŒãå°ããã¹ãæåŸã®è³ªåã§ãã ãã®ããšãæåã«åŠãã ã®ã§ããã°ããã¯ã©ã¹ããããªããžã§ã¯ãããšããèšèãæ¬åœã«å¥œãã ã£ããšããŠãããããããªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã¯äœã®é¢ä¿ããªãã§ãããã ããã«ããã ç§èªèº«ã¯ããã«ã€ããŠèªããŸã§ç¥ããŸããã§ããã
ç§ã¯ãã¯ã©ã¹ã¿ãŒããã·ã¹ãã ãã³ã³ãã€ã«ããã¢ã€ãã¢ã«ç¹ã«èå³ããããŸãããããããç§ã®ç解ãšèœåãæ倧éã«æŽ»çšããŠãããžã§ã¯ãã«å€æããããšããŸããã ãã®çµæã.NETã®æ±çšæ§ã®ãããã§ãåœåæå³ããŠãããããããã«æ®éçãªã·ã¹ãã ãåŸãããŸããã ããšãã°ããNetãã¯ã©ã¹ã¿ãŒããã1ã€ã®ã¢ãŒããã¯ãã£ãã³ãã¬ãŒãã«åŸã£ãŠãããŸããŸãªçš®é¡ïŒwebãwinFormsãConsoleãRemotingãµãŒãã¹ãªã©ïŒã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããéœåžå šäœãæ§ç¯ã§ããããšãããããŸããã
äžè¬ã«ãããã¯ãå€ãæœè±¡çã§æ®åããŠããã¹ããŒã ãã³ã¢ïŒãšã³ãžã³ãã·ã§ã«ïŒ+ã¢ãžã¥ãŒã«ãã®å¥ã®ããŒãžã§ã³ã§ãã æ®å¿µãªããããã®å®è£ ã«ã¯ã1ã€ã®é倧ãªç æ°ããã°ãã°çºçããŸããããã¯ãäœããã®åœ¢ã§ã¢ãžã¥ãŒã«ãã«ãŒãã«ãšçµ±åãããããšã§ãã ãã®ãããã·ã¹ãã å ã®é¢ä¿ã®æ°ã¯ãæ°ããé¢æ°ã®è¿œå ãšãšãã«ææ°é¢æ°çã«å¢å ããŸãã éçºè ãæ¯åå€æŽãå ããããšã¯ãŸããŸãé£ãããªããã¡ã³ããã³ã¹ã®ã³ã¹ãã¯æ¥éã«å¢å€§ããŠããŸãããããŠãå¿ ç¶çã«éçºè ãããã°ãããã§ã«è¶ é«äŸ¡ãªã·ã¹ãã ã®å¶åŸ¡ã倱ãæãæ¥ãŸãã
ããã«å¯Ÿããå¯äžã®è§£æ±ºçããããŸããäžæ¹ã§ã¯ã¹ã¿ã³ãã¢ãã³ã¢ãžã¥ãŒã«ã§ãããããäžæ¹ã§ã¯ã¢ãžã¥ãŒã«ã®å 容ããã·ã§ã«ãå®å šã«ç¬ç«ããŠããŸãã ãã¢ãžã¥ãŒã«=ã¯ã©ã¹ã¿ãŒããæ¡çšããåŸãåè¿°ã®ç æ°ã«æ©ãŸããããåºç¯å²ã«é©çšãããäŒæ¥ã®åé¡ãââ解決ããã®ã«é©ããããŒã«ã®ããªãšãŒã·ã§ã³ãæäŸããŸãã
ãœãªã¥ãŒã·ã§ã³ã¯2ã€ã®éšåã§æ§æãããŸãã
1.äŒç€Ÿãéçºãããã¹ãŠã®ç°çš®ïŒwebãwinFormsãConsoleãRemoting Servicesãªã©ïŒã¢ãžã¥ãŒã«ã«å ±éã®èªåŸã¢ãžã¥ãŒã«API ...
2.åã¿ã€ãã®ã¢ããªã±ãŒã·ã§ã³ïŒWeb-ç¬èªãwinForms-ç¬èªãªã©ïŒããšã«1ã€ã®ã°ã©ãã£ã«ã«ã·ã§ã«ããããã®ã³ã³ããŒãã³ããžã®ã¢ã¯ã»ã¹ãæäŸãããã®APIãä»ããŠã³ã³ããŒãã³ããšã®äœæ¥ãæŽçããŸãã
ãœãªã¥ãŒã·ã§ã³ã®æŠç¥å³ã次ã®å³ã«ç€ºããŸãã

äŒæ¥æ å ±ã·ã¹ãã ãšãã®ã¢ãžã¥ãŒã«ã®ææ¡ãããã¢ãŒããã¯ãã£ã
1.ã¢ãŒããã¯ãã£ã¢ãžã¥ãŒã«ãã³ãã¬ãŒã
ã°ã©ãã£ã«ã«ã«ãã¢ãžã¥ãŒã«ã®æ§é ã¯æ¬¡ã®ããã«è¡šãããšãã§ããŸãã

Cluster .Net Reflectionãä»ããŠã·ã§ã«ïŒCMFãªã©ïŒãã¢ãžã¥ãŒã«ïŒdllã¢ã»ã³ããªå ïŒã§æ€çŽ¢ãããªãŒãã³ïŒãããªãã¯ïŒæœè±¡ã¯ã©ã¹ãå®è£ ããŸãã ãã®ã¯ã©ã¹ããCMFã¯ãã¢ãžã¥ãŒã«ã«å«ãŸããæ©èœãWebãã¡ãµãŒãããããã©ããããWebã·ã§ã«ã«ç»é²ã§ãããã©ãããã«åºã¥ããŠãåŠç¿ãããŸãã
ã¯ã©ã¹ã¿ãŒã®ã¿ã¹ã¯ã¯ãæå³ã«é¢é£ããé©çšããããªããžã§ã¯ãã¢ãã«ãçµåããããšã§ãã ããã¯ããœãããŠã§ã¢ããã±ãŒãžã®æ©èœã管çããããã®ç®¡çåäœã§ãã
Webãã¡ãµãŒã -ããã¯ãCMFããã®ã¢ãžã¥ãŒã«ã«å«ãŸããWebã¢ããã¿ãŒãåŠç¿ãããããä»ããŠåäœãããªãŒãã³ã€ã³ã¿ãŒãã§ãŒã¹ãæã€ã¯ã©ã¹ã§ãã
Webã¢ããã¿ã¯ãã¢ããªã±ãŒã·ã§ã³ãªããžã§ã¯ãã¢ãã«ã®äžéšãæäœããããã®ã°ã©ãã£ã«ã«Webã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããã¯ã©ã¹ã§ãã ããšãã°ãèšäºã®ãªã¹ãã衚瀺ããŸãã ASP.NETã«ç²ŸéããŠãã人ã¯ãå¥ã®ascxãã¡ã€ã«ã ãã§ãªãã¢ã»ã³ããªå ã«ããascxã³ã³ãããŒã«ãšèããããšãã§ããŸãã
åæ§ã«ãwinFormsã®ãã¡ãµãŒããšã¢ããã¿ãŒã䜿çšã§ããŸãã ãã®å Žåãã¢ããã¿ãŒã¯ãã©ãŒã ã¯ã©ã¹ã«ãªãããµãŒããŒããã°ã©ãã£ã«ã«ã·ã§ã«ã«ãRemotingãä»ããŠã¯ã©ã€ã¢ã³ãã«è»¢éããããã§å®è¡ã§ããŸãã ãããå®è£ ããã¢ã€ãã¢ã¯ãRSDN Webãµã€ãã®7幎åã®èšäºãå€å±€ã¢ããªã±ãŒã·ã§ã³ã§ã®Remotingã®äœ¿çšãã«ãããŸãã
ããŒã¿æ§é ã®å€æŽãšããã«é¢é£ããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã®å¿ èŠãªå€æŽã¯ãç°ãªãããã°ã©ã ã®ã³ãŒããžã®ä»å ¥ãå¿ èŠãšããã1ã€ã®ã¢ã»ã³ããªå ã§ã®ã¿è¡ãããããšã«æ³šæããŠãã ããã
ã¢ãžã¥ãŒã«ã®ãã詳现ãªèª¬æã¯ã ãããžã§ã¯ãWebãµã€ãã®éçºè ã¬ã€ãã«ããããœãŒã¹ã³ãŒããèšèŒãããŠããŸãã
2.ã°ã©ãã£ã«ã«ã·ã§ã«ã
ã·ã§ã«ã®äž»ãªã¿ã¹ã¯ã¯ããŠãŒã¶ãŒãã¢ãžã¥ãŒã«ã®æ©èœã«ã¢ã¯ã»ã¹ã§ããããã«ããããšã§ãã ã¢ã¶ã€ã¯ã®ãããªã·ã§ã«ã«ãããããæäŸããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãåéãããŸãã ããšãã°ãWebã·ã§ã«ïŒCMFïŒã¯ãHTMLã€ã³ã¿ãŒãã§ã€ã¹ãwinForms-shell-ãã©ãŒã ãªã©ã䜿çšããŠäœæ¥ãæŽçããŸãã...ã·ã§ã«ã«å¯Ÿããã¢ãžã¥ãŒã«ã®è¿œå /åé€ã¯ããã¡ã€ã«ã®ããŒããæåã§æ§æããããšãªããããã°ã©ã ã«ãã£ãŠæä»çã«è¡ãããŸãã çè«çã«ã¯ãããã¯ã¢ãŒããã¯ãã£ã®æ¯èŒçåçŽãªéšåã§ãããååãšããŠãé©çšããããªããžã§ã¯ãã¢ãã«ã®å€æŽã«ãã圱é¿ãåããªãã¯ãã§ã...
ãã®ãããªã¢ãŒããã¯ãã£ã¯ãäŒæ¥ã€ã³ã¿ãŒãã§ã€ã¹ãåäžã®èªèšŒãããã³å±éãšãã3ã€ã®åé¡ãåæã«è§£æ±ºããŸãã ãããã£ãŠããããã®åé¡ã¯ãã¹ãŠã¢ããªã±ãŒã·ã§ã³ã¢ãžã¥ãŒã«ïŒã¢ããªã±ãŒã·ã§ã³ïŒããåé€ããããããå€§å¹ ã«ç°¡çŽ åãããŸãã
ãããã€ã¡ã³ãã«é¢ããŠã¯ãwinFormsã®å Žåãã·ã§ã«ã®ã¿ãã¯ã©ã€ã¢ã³ããã·ã³ã«é 眮ããã ãã§ååã§ããGUIã¢ãžã¥ãŒã«ãå«ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¿ããã£ã³ã°ã¯ãµãŒããŒäžã«é 眮ãããŸãã ãããã£ãŠãwinFormsã¢ããªã±ãŒã·ã§ã³ã®å±éãšä¿å®ã§ãããWebã¢ããªã±ãŒã·ã§ã³ãšäœã®éãããããŸããããµãŒããŒäžã®1ãæã§ã®ã¿å€æŽãè¡ãå¿ èŠããããã·ã¹ãã 管çã®ç°¡çŽ åïŒã³ã¹ãåæžïŒãå®çŸããŸãã
æãèå³æ·±ãã®ã¯ããµã€ãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãããã³äŒæ¥ã®çµ±åãœãªã¥ãŒã·ã§ã³ã®æ ¹æ¬çãªéããæ¶å»ãããããšã§ãããããã¯ãã¹ãŠåãã¢ãžã¥ãŒã«ã«åºã¥ããŠããããã§ãã ãã®ãããããšãã°ãååºãµã€ãããå§ããŠãåŸã ã«ã·ã¹ãã å šäœã®ãã©ãããã©ãŒã ã«å€ããŠãã·ã¹ãã ã®ã¢ãŒããã¯ãã£ãå€æŽããã«æ§æãæ¡åŒµããããšãå¯èœã§ãã
ããããå®è£ äžã«å€§ããªèœãšãç©Žã«ééããŸããã ãã®ãããªã¢ãŒããã¯ãã£ã¯.NETã®æ±çšæ§ã®ãããã§ã®ã¿å¯èœã§ãããããããåªåã«ãããããããç§ã¯ASP.NETãããã«çµã¿èŸŒãããšãã§ããŸããã§ããã ãã£ããã¯ãäžæ¹ã§ãascxã³ã³ãããŒã«ããã³dllã¢ã»ã³ããªãaspxããŒãžãããåŒãè£ããããšãã§ããªãããšã§ããäžæ¹ããããã®éã«åãå€ãäžå¯èœãªããŒããªã³ã¯ããããŸãã Webäžã®winFormsïŒASP.NETã®äž»ãªã¢ã€ãã¢ïŒã®æŠå¿µãæåŸãŸã§åŒãåºãããšããè©Šã¿ã¯ãã©ããããããå®äºããŸããã§ããã
ãã®çµæãCMF OpenKit.netãèšèšãããšããASP.NETãã¯ãããžãŒãšèŠãªããããã®ã匷å¶çã«æåŠãããŸããã ããã«ã¯ããã©ã¹ãšãã€ãã¹ã®äž¡æ¹ã®ãã€ã³ãã䌎ããŸããã æ¬ ç¹ã¯ãCMFã¢ãžã¥ãŒã«ã®éçºè ãããââã°ã©ã ã§ãã¬ãŒã ã¯ãŒã¯ã«çµã¿èŸŒãŸããã³ã³ãããŒã«ãã䜿çšã§ããªãããšã§ãã å©ç¹ã¯ãéçºè ãã³ãŒããã³ã³ãã€ã«ããæ©èœãä¿æããªãããASP.NET
äžè¬çã«ãwinFormsã®æŠå¿µãWebã«åãå ¥ãããšããèãã¯ãç§ã«ã¯ããªãçãããããã§ãã winFormsã¢ããªã±ãŒã·ã§ã³ã§ã¯ãååãšããŠã³ã³ããŒãã³ãGUIãªãã§ã¯å®è¡ã§ããŸããã ããããHTMLãCSSãJavaScriptãåããWebã§ã¯...ïŒ ããããªãã ããšãã°ãã€ã³ã¿ãŒãã§ã€ã¹ããªããã£ãããµãŒããŒã³ã³ãããŒã«ã«ãã©ãã·ã¥ãããªã©ãéèŠã§ãªãåŽé¢ãåçŽåãããšããã¯ãããžå šäœãéåžžã«è€éã«ãªããŸãã ãã ããå€æããããã«ãASP.NETã®ç¥èããªããŠãã.Netã§Webã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåã¯éåžžã«å¯èœã§ãã ã¢ãžã¥ãŒã«éçºè ãOpenKit管çè ãASP.NETã®ç¥èããŸã£ããå¿ èŠãšããŸããã
ãã®çµæãæªç¥ã®æ¹æ³ãšæªç¥ã®æ¹æ³ã§èšè¿°ãããå€æ°ã®ç°ãªãã¢ããªã±ãŒã·ã§ã³ã®ä»£ããã«ãããããç°ãªãã¿ã€ãã®æ°åã®ã¢ãžã¥ãŒã«ããããŸããã1ã€ã®æšæºã«åŸã£ãŠ1ã€ã®èšèªïŒJavaScriptãå«ãŸãªãïŒã§èšè¿°ããã1ã€ãŸãã¯2ã€ã®ã°ã©ãã£ã«ã«ã·ã§ã«ã§çµåãããåãã¢ãŒããã¯ãã£ãåããŠããŸãã ã¡ã³ããã³ã¹ã³ã¹ãã¯æå°éã«æããããåŸåããããäŒæ¥æ å ±ã·ã¹ãã å šäœãç°¡çŽ åããããããã¡ã³ããã³ã¹ã®ä¿¡é Œæ§ãšã³ã¹ããäœäžããŸãã
å°èŠæš¡ãªäŒæ¥ã«ãšã£ãŠããã®ãœãªã¥ãŒã·ã§ã³ã¯ERPããã³åæ§ã®ã·ã¹ãã ã®äœã³ã¹ãã®ä»£æ¿åã«ãªãå¯èœæ§ããããŸãã ãã®éçºè ã¯ãäžæ¹ã§ã¯éå°ãªæ©èœãè³Œå ¥ãããœãªã¥ãŒã·ã§ã³ã®äžååãªæè»æ§ãéå°ã«æ¯æãããšãªããä»æ¹ã§ã¯å€çš®å€æ§ãªããã°ã©ã ããã®ããããã¯ãŒã¯èªååããåé¿ããããšãªãããã®äŒæ¥ã§æ¬åœã«å¿ èŠãªæ©èœã®ã¿ãç¬èªã«äœæã§ããŸãã
PSæ azineïŒå šäœçãªãšãã«ã®ãŒã³ã¹ãã®åæžã«ããå€ãã®åªåã泚ãããšãã§ããå質ã äœæ¥ã容æã«ããããã°ã©ã ãäœæããäžå¿ èŠãªè³ªåã«çããå¿ èŠããªãããã«ãäœæããå 容ãææžåããå¿ èŠããããŸãã ïŒLarry WallãSteve McConnellã®Perfect CodeãåŒçšãMã2005ãpã810ïŒ