ã¯ããã«
以åã¯ãVisual Studioã§ã®éçºãç°¡çŽ åããããŒã«ã®éçºã«ã€ããŠèããããšã¯ãããŸããã§ããããŸããéçºã«åœ¹ç«ã€ããŸããŸãªãµãŒãããŒãã£ãŠãŒãã£ãªãã£ãäœæããããšããããããŸããã ãããããã€ãã®ããã«ã転æç¹ãæ¥ãŠããŸãã
ãã€ãŠã¯ãå°éçãªãœãªã¥ãŒã·ã§ã³ãéçºããå¿ èŠããããã©ãããã©ãŒã ãéçºããããšãã¿ã¹ã¯ã§ããã
æè»ãªæ§æã®å¯èœæ§ãå¶éããããšãªãããã©ãããã©ãŒã äžã®ãœãªã¥ãŒã·ã§ã³ã®éçºãå¯èœãªéãç°¡çŽ åãããã£ãã®ã§ãã
åé¡ã解決ããã«ã¯ãäž»ã«2ã€ã®æ¹åããããŸããã
- ã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ããŒã«ãéçºãã
- éçºç°å¢ã«çµã¿èŸŒãŸããæ¯æŽããŒã«ãäœæãã
ç¬èªã®ããŒã«
ãã®ã¢ãããŒãã䜿çšãããšãå°æ¥ã¯ã³ãŒãã£ã³ã°ããã«å®è¡ã§ããŸãã ããã¯ééããªãããœãªã¥ãŒã·ã§ã³ã®éçºãç°¡çŽ åããã³é«éåãããšã©ãŒã®å¯èœæ§ãæžãããŸãïŒãã¡ããããã¹ãŠããããã«è¡ãããªãéãïŒã
ããããããŒã«éçºè ãçŽé¢ããäž»ãªå°é£ã¯ãå¿ èŠãšãããå¯èœæ§ããããã¹ãŠã®å¿ èŠãªæ©èœãå¯èœãªéãæäŸããããšã§ãã
åãœãªã¥ãŒã·ã§ã³ã§ã¯ãéèŠãªã¿ã¹ã¯ãçºçããŸãããããŒã«ãäœæãã段éã§ã¯èããããŸããã ãŸãããŠãããŒãµã«ããŒã«ãäœæããå Žåããã®è€éããå¢ããäœæã®ã¿ã€ãã³ã°ã䜿çšã®è€éãã«åœ±é¿ããŸãã
Visual StudioããŒã«
è£å©ããŒã«ã䜿çšããå Žåãå¿ èŠãªåºæ¬ã³ãŒããå¯èœãªéãèªååããã·ã¹ãã ã®æ©èœãæ¡åŒµã§ããããã«ããŸãã
ãããããã®ã¢ãããŒãã䜿çšããã«ã¯ããœãªã¥ãŒã·ã§ã³éçºè ãããé«ãå°éã¬ãã«ãæã£ãŠããå¿ èŠããããŸãã
ç§ã®éžæ
ç§ãæãã€ãããšãã§ããé·æãšçæãæ¯èŒæ€èšããåŸãç§ã¯2çªç®ã®ãªãã·ã§ã³ãéžã¶ããšã«ããŸããã ããã¯ç§ã«ãšã£ãŠæ°ãããã®ã§ãããæ¬åœã«é äºãããŸããã
次ã«ãDSLã䜿çšããŠVisual Studio 2010ã®æ¯æŽããŒã«ãäœæããåºæ¬ã説æããŸãã ããããããã¯ããã®åéã®ãããªãç¬ç«ããç 究ã«ããªããæŒãé²ããã§ãããã
äºå
å§ããåã«ã次ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
åé¡ã®å£°æ
ãŸããäž»ãªå¯èœæ§ã®äž¡æ¹ãè¿°ã¹ããã®ã¡ã«ããºã ãæ¥åžžã®èª²é¡ã解決ããããã«ã©ã®ããã«å¹æçã§ãããã瀺ãããšãã§ããåºç€ã«åºã¥ããäŸãèãåºãå¿ èŠããããŸãã
æåã¯ããã®ã¿ã¹ã¯ã¯åæ©çãªããã«æããŸããããèããŠã¿ããšããã¹ãŠãããã»ã©åçŽã§ã¯ãªãããšã«æ°ä»ããŸããã çæ³ã«æéãè²»ãããåŸãç§ã¯ãŸã æãã€ããŸããã
WCFãµãŒãã¹ãäœæããã¬ãã«ã§ã¯ã©ã€ã¢ã³ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ãéçºããã®ã«åœ¹ç«ã€ã¢ãã«ãäœæããããšãææ¡ããŸãã ãã¡ãããWCFã®æè¡çãªåŽé¢ã«éç¹ã眮ãã®ã§ã¯ãªãããªããžã§ã¯ãã¢ãã«ãšããŠåãäžããŸãã
ãããžã§ã¯ãã®äœæãšãããã°
èªåã§ã¿ã¹ã¯ãèšå®ãããããã以äžèããã«ãç¬èªã®ãããžã§ã¯ããäœæããŸãã
ãã€ãã®ããã«ãå§ãã«ãææã®Visual Studio 2010ãèµ·åããŸãã
ãããžã§ã¯ãäœæãŠã£ã³ããŠã«å ¥ãããããžã§ã¯ãã¿ã€ãDomain-Specific Language DesignerãéžæããŸãã
次ã«ããŠã£ã¶ãŒãã«ãããäœæããã¢ãžã¥ãŒã«ã®ã¿ã€ããéžæããããã«æ±ããããŸãã MinimalLanguageãéžæããŸãã ãã®ã¿ã€ãã®ãããžã§ã¯ãã§ã¯ãäºåã«äœæãããèŠçŽ ã®æå°æ°ãããã«ãããèŠçŽ ãããæ©ãåãé€ãããšãã§ããŸãã
次ã«ããã¡ã€ã«ã®æ¡åŒµåãèšå®ããå¿ èŠããããŸãã ãã®æ¡åŒµæ©èœã䜿çšããŠããã¡ã€ã«ããããžã§ã¯ãã«è¿œå ããŸãã
æåŸã®è²¢ç®ã¯ãäœæäžã®ãããžã§ã¯ãã«é¢ããåèšæ å ±ã§ãã
[å®äº]ãã¯ãªãã¯ãããšãäºåã«äœæãããèŠçŽ ãå«ããããžã§ã¯ããéãããŸããããã¯ãäŸã瀺ãããã«è¡ãããŸãã
ãããžã§ã¯ããããã«ã³ã³ãã€ã«ããŠããã¹ãããŠã¿ãããšãã§ããŸãã
ãã®ã¿ã€ãã®ãããžã§ã¯ãã®ãã¹ããšãããã°ã«ã¯ããããã°ã¹ã¿ãžãªã䜿çšãããŸãã [å®è¡]ãã¯ãªãã¯ãããããããã°ããŠå®è¡ãããšããããžã§ã¯ããã¡ã€ã«ã®ãã¹ãã³ããŒãäœæãããè¿œå ã®ã¹ã¿ãžãªãéããŸãã
ãã®äŸãè©ŠããŠã¿ãŠãã ããã
ãã¹ãŠããããã«ããŸã
衚瀺ããããã®ã¯ãã¹ãŠç§ãã¡ã«ãšã£ãŠç¹ã«æçšã§ã¯ãªããããèªåçã«è¿œå ããããã®ã¯ãã¹ãŠåé€ããŸãã
DSL Explorerã«ç§»åãããã¡ã€ã³ã¿ã€ãã®æšæºã¿ã€ããé€ããã¹ãŠãåé€ããŸãã
çµæã¯æ¬¡ã®ããã«ãªããŸãã
ããŒã«ããã¯ã¹ã®äž»ãªãªããžã§ã¯ãã説æããŸããã
ãã¡ã€ã³ã¯ã©ã¹ -ããŒã¿ãªããžã§ã¯ãã
ååä»ããã¡ã€ã³ã¯ã©ã¹ã¯ãNameããããã£ãå«ãååä»ãããŒã¿ãªããžã§ã¯ãã§ãã ããã«ãã·ã¹ãã ã¯ãã®ããããã£ããªããžã§ã¯ãã®ååãšããŠè§£éãããã®äžæã®ååãèªåçã«çæããŸãã
Geometry Shape-ãã€ã¢ã°ã©ã ã§ããŒã¿ãªããžã§ã¯ããã¬ã³ããªã³ã°ããããã«äœ¿çšãããèŠèŠçè¡šçŸ
ã³ã³ããŒãã¡ã³ãåœ¢ç¶ - 圢ç¶åœ¢ç¶ãšåããå€èŠ³ãç°ãªãã ã
é¢ä¿ã®åã蟌㿠-ãªããžã§ã¯ããæå±é¢ä¿ã«æ¥ç¶ããŸã
åç §é¢ä¿ -ãªããžã§ã¯ãããªããžã§ã¯ãåç §ã¿ã€ãã«æ¥ç¶ããŸã
ç¶æ¿ -æ¥ç¶ã®èŠªã¿ã€ããã€ãŸãããããªããžã§ã¯ãããå¥ã®ãªããžã§ã¯ããžã®ç¶æ¿
ã³ãã¯ã¿ -ãªã³ã¯ããžã¥ã¢ã©ã€ã¶ãŒ
ãã€ã¢ã°ã©ã èŠçŽ ããã -ãªããžã§ã¯ããšãªã³ã¯ãèŠèŠçè¡šçŸã§ãªã³ã¯ããããã«äœ¿çš
åºæ¬çãªãªããžã§ã¯ããšãã®ãããã³ã°ã®äœæ
åœé¢ã®æœèšã®äœæãéå§ããåã«ãæºåèŠçŽ ãäœæããå¿ èŠããããŸãã
- ãã¶ã€ããŒã¯ããªããžã§ã¯ããèŠèŠåãããã¶ã€ããŒã§ãã DSL Explorerã§ã Editorãªããžã§ã¯ããäœæããŸãã ãã®äžã«ãããžã§ã¯ãã®æ¡åŒµåãèšå®ããå¿ èŠããããŸãïŒããã¯FileExtensionããããã£ã§ãïŒãããããwcfwãã«ããŸãã
- å³ã¯ããªããžã§ã¯ããè¡šãäž»èŠãªèŠèŠåèŠçŽ ã§ãã WCFDiagramãšåŒã³ãŸãããã
- ã«ãŒãèŠçŽ ïŒ Domain Class ïŒãäœæããå¿ èŠããããŸãããã®äžã§ã以åã«äœæãããšãã£ã¿ãŒ ïŒããã¯ã«ãŒãã¯ã©ã¹ããããã£ã§ãïŒããã³ãã€ã¢ã°ã©ã ïŒããã¯ã¯ã©ã¹è¡šçŸããããã£ã§ãïŒãæ§æããå¿ èŠããããŸãã ã«ãŒãèŠçŽ ã«ãWCFCollectionããšããååãä»ããŸãããã
- Explorerã®åäœ -DSL Explorerã«äŒŒããã®ã§ããã®ã¿ã€ãã®ãã¡ã€ã«ãæäœãããšãã«è¡šç€ºãããŸãã
ããã¯ããã¡ã€ã«ãä¿åããŠãããžã§ã¯ããã³ã³ãã€ã«ã§ããããã«ããããã«å¿ èŠãªæå°éã®ãªã¹ãã§ãã ãã ããã³ã³ãã€ã«ã®åã«ããã¡ã€ã«ã«å ããããå€æŽã«åŸã£ãŠã³ãŒããåçæããå¿ èŠããããŸãã ãããè¡ãã«ã¯ã ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒã§ [ãã¹ãŠã®ãã³ãã¬ãŒããå€æ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ãã¹ãŠã®ã³ãŒãã¯ã Dslããã³DslPackageãããžã§ã¯ãã® GeneratedCodeãã©ã«ããŒã«ãã* .ttãã¡ã€ã«ïŒT4å€æãèšè¿°ããïŒããçæãããŸãã æ°ãããªããžã§ã¯ããçæããããããããžã§ã¯ããåéããŠéå§ããããšããã§ããŸãã åããããžã§ã¯ãã§ãåããããã°ã¹ã¿ãžãªãèµ·åããŸãã å®éšãããžã§ã¯ãã«é¢é£ãããã¡ã€ã«ããããžã§ã¯ãã«è¿œå ãããããããã¹ãŠåé€ã§ããŸãã ãã¡ã€ã«ã¿ã€ããïŒä»ã®ã¿ã€ããšåæ§ã«ïŒè¿œå ããWCFWizardãšããååã§æ€çŽ¢ããŸãã
ããµãŒãã¹ããèšè¿°ãããªããžã§ã¯ãã®äœæ
ãµãŒãã¹ãªããžã§ã¯ããäœæããããšããå§ããŸãããã ãããè¡ãã«ã¯ãããŒã«ããã¯ã¹ããååä»ããã¡ã€ã³ã¯ã©ã¹èŠçŽ ããã©ãã°ãããWCFServiceããšåŒã³ãŸãã ãªããžã§ã¯ãã®Nameããããã£ãèªåçã«ååŸããŸãããIsElement Nameãã©ã°ã¯ããã®ããããã£ããªããžã§ã¯ãã®ååã§ããããšã瀺ããŠããŸãã
ãã¡ã€ã³ã¯ã©ã¹ãšååä»ããã¡ã€ã³ã¯ã©ã¹ãªããžã§ã¯ãã®åºæ¬çãªããããã£ã説æãããšããæ¥ãŸããã
ç©ä»¶å | 説æ |
ã¢ã¯ã»ã¹ä¿®é£Ÿå | çæãããã¯ã©ã¹ãžã®ã¢ã¯ã»ã¹ã®ã¬ãã«ã |
åºæ¬ã¯ã©ã¹ | åºæ¬ã¯ã©ã¹ã ããã§å¥ã®äœæããããªããžã§ã¯ããéžæã§ããŸããçæãããã³ãŒãã§ã¯ãçŸåšã®ã¯ã©ã¹ãããŒã¹ãªããžã§ã¯ãã«ãã£ãŠæå®ãããã¯ã©ã¹ããç¶æ¿ãããŸãã |
ã«ã¹ã¿ã å±æ§ | ããã¯ãè¿œå ã®å±æ§ããªããžã§ã¯ãã«ããã£ãŠããå Žæã§ãã |
説æ | ãªããžã§ã¯ãã®èª¬æã |
衚瀺å | ãŠãŒã¶ãŒã«è¡šç€ºããããªããžã§ã¯ãã®è¡šç€ºåã |
äºé掟çãçæããŸã | Trueã®å Žåã2ã€ã®ã¯ã©ã¹ïŒéåžž1ã€ïŒãçæãããŸãã1ã€ã¯å¿ èŠãªãã¹ãŠã®å®è£ ãå«ãæœè±¡ã¯ã©ã¹ã§ã2ã€ç®ã¯å éšã«ç©ºã®éšåã¯ã©ã¹ãçæããŸãã ããã«ãããå°æ¥ããŒã¹ã¯ã©ã¹ã§å®£èšãããä»®æ³é¢æ°ãåå®çŸ©ã§ããŸãã |
ã«ã¹ã¿ã ã³ã³ã¹ãã©ã¯ã¿ãŒããããŸã | Trueã®å Žåãæ¡åŒµã¯ã©ã¹ã§å¿ èŠãªã³ã³ã¹ãã©ã¯ã¿ãŒãå®çŸ©ããå¿ èŠããããŸãã ããã¯ããªããžã§ã¯ããäœæãããšãã«è¿œå ã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿ èŠãããå Žåã«äŸ¿å©ã§ãã |
ç¶æ¿ä¿®é£Ÿå | ã¯ã©ã¹ãæœè±¡åããããã¯ã©ã¹ãç¶æ¿ããªãããã«ããããšãã§ããŸãã |
ãåå | ã¯ã©ã¹ãçæããããã®ååãæã€ãªããžã§ã¯ãã®ååã |
åå空é | ã¯ã©ã¹ã®åå空éã |
ãšããããããã¹ãŠã®ããã©ã«ãã®ãã£ãŒã«ãããã®ãŸãŸã«ããŸãã Domain PropertyèŠçŽ ã®è¿œå ã®ããããã£ã説æããŸã
ç©ä»¶å | 説æ |
ã²ãã¿ãŒã¢ã¯ã»ã¹ä¿®é£Ÿå | ããããã£ãžã®èªã¿åãã¢ã¯ã»ã¹æš©ã |
ã»ãã¿ãŒã¢ã¯ã»ã¹ä¿®é£Ÿå | ããããã£ãžã®æžã蟌ã¿ã¢ã¯ã»ã¹ã |
UIã¯èªã¿åãå°çšã§ãã | ããããã£ãèªã¿åãå°çšã§è¡šç€ºããŸãã |
ãã©ãŠã¶ã§ã | ããããã£ããŠãŒã¶ãŒã«è¡šç€ºãããã©ããã |
ããã©ã«ãå€ | ããã©ã«ãã®ãã£ãŒã«ãå€ã |
èŠçŽ åãããã€ã㌠| ããããã£ã®å€ãæäŸããå€éšã¿ã€ãã ããããã£ã®å€ã¯Is Element NameãTrueã§ããå¿ èŠããããŸãã ç¹å®ã®ã¢ã«ãŽãªãºã ã«ãã£ãŠäžæã®ååãçæã§ããŸãã |
èŠçŽ åã§ã | ããããã£ã¯ãªããžã§ã¯ãã®ååã§ãã Trueã®å Žåãåæå€ã¯äžæã«äœæãããŸãã |
çš®é¡ | ã¹ãã¬ãŒãžã«åœ±é¿ãããã£ãŒã«ãã®ã¿ã€ãïŒ
|
çš®é¡ | ããããã£ã®ã¿ã€ãã ãã¡ã€ã³ã¿ã€ãã§å®çŸ©ããããªããžã§ã¯ãã®ãªã¹ãããããããããŠã³ãªã¹ããçæãããŸãïŒ DSL Explorerã§èŠã€ããããšãã§ããŸãïŒã ç¬èªã®ãªããžã§ã¯ããè¿œå ã§ããŸãã |
次ã«ãWCFServiceãWCFCollectionã®èŠªé¢ä¿ã«é¢é£ä»ããå¿ èŠããããŸããããã¯ãWCFServiceãWCFCollectionã«å±ããŠããããšã瀺ããŸãã ãã®ããã åã蟌ã¿é¢ä¿ãWCFCollectionããWCFServiceã«æ¡åŒµããŸãã ãã®çµæãåçã«äŒŒããã®ãåŸãããŸããã
ãWCFCollectionHasWCFServiceããšããååã®ãã¡ã€ã³é¢ä¿ãªããžã§ã¯ããäœæããŸããã ãã®ãªããžã§ã¯ãã¯ãWCFCollectionãšWCFServiceã®é¢ä¿ãæ åœããŸãã ãã®ãªããžã§ã¯ãã®ãã¹ãŠã®ããããã£ã¯Domain Classã«äŒŒãŠãããè¿œå ã®ããããã£ãåå¥ã«èª¬æããŸãã
ç©ä»¶å | 説æ |
éè€ãèš±å¯ããŸã | ãã®ããããã£ãTrueã«èšå®ãããŠããå ŽåãWCFServiceãªããžã§ã¯ãã«è¿œå ã®åã蟌ã¿é¢ä¿ãäœæã§ããŸãã |
åºæ¬é¢ä¿ | ããããã£ãç¶æ¿ããåºæ¬çãªé¢ä¿ã |
åã蟌ã¿äž | æ¥ç¶ãåã蟌ã¿ã§ãããã©ããã瀺ããŸãã |
ãã¡ã€ã³é¢ä¿ã®å³åŽã«ã¯ ãWCFService / 0 .. *ãïŒã¿ã€ãDomain Role ïŒããããŸããããã§ãWCFServiceã¯WCFServiceãªããžã§ã¯ããžã®åç §ãå«ãWCFCollectionãªããžã§ã¯ãã®ããããã£ã®ååã§ãã 0 .. *ã¯ãWCFCollectionã«ã¯ãŒãããç¡éãŸã§ã®WCFServiceãååšããå¯èœæ§ãããããšã瀺ãæ¥ç¶ã®çš®é¡ã§ãã
ãã¡ã€ã³ãªã¬ãŒã·ã§ã³ã·ããã®å·ŠåŽã«ã¯ ãWCFCollection / 1..1ãïŒã¿ã€ãDomain Role ïŒããããŸããWCFCollectionã¯ãWCFCollectionãªããžã§ã¯ããžã®åç §ãå«ãWCFServiceãªããžã§ã¯ãã®ããããã£ã®ååã§ãã 1..1-WCFServiceãWCFCollectionãªããžã§ã¯ããžã®åç §ã1ã€ïŒå¿ é ïŒã ãæã€å¿ èŠãããããšã瀺ãæ¥ç¶ã®çš®é¡ã
ãã¡ã€ã³ããŒã«ã¯ããã³ãã«ã«ååšããããŒã«ã説æããŸãããã®äŸãããããããã«ãåãªããžã§ã¯ãïŒWCFServiceããã³WCFCollectionïŒã¯ãååŽã®æ¥ç¶ã®åäœã説æããç¬èªã®ããŒã«ãæã£ãŠããŸãã
ãã¡ã€ã³ããŒã«ãªããžã§ã¯ãã®äž»ãªç¹åŸŽã説æããŸãã
ç©ä»¶å | 説æ |
åéã¿ã€ã | ãªããžã§ã¯ããåãåãããã®ããŒã®ã¿ã€ããèšå®ã§ããŸãã ãã®å Žåããªã¹ããçæããã®ã§ã¯ãªããã³ã¬ã¯ã·ã§ã³ãçæããŸãã |
ããããã£ãã©ãŠã¶ã§ã | ãŠãŒã¶ãŒã®ããããã£ã®å¯èŠæ§ã決å®ããŸãã |
ããããã£ãžã§ãã¬ãŒã¿ãŒ | ããããã£ãçæããããã©ããã決å®ããŸãã |
ããããã£ã®ã«ã¹ã¿ã å±æ§ | ããããã£ã«å±æ§ãæ·»ä»ã§ããŸãã |
ããããã£ã²ãã¿ãŒã¢ã¯ã»ã¹ | èªã¿åãã¢ã¯ã»ã¹æš©ã |
ããããã£ã»ãã¿ãŒã¢ã¯ã»ã¹ | ã¬ã³ãŒãäžã®ããããã£ã«ã¢ã¯ã»ã¹ããæš©å©ã |
å€é床 | äœæããããªããžã§ã¯ãã®æ°ã瀺ããŸãã
|
äŒæã³ã㌠| ãã³ãã«ãã³ããŒãããšããã³ãã«å ã§ãã®ããŒã«ãææãããªããžã§ã¯ããã³ããŒãããŸãã |
äŒæãåé€ | ãã³ãã«å ã§ãã®åœ¹å²ãææãããªããžã§ã¯ããããã³ãã«ãåé€ããããšãã«åé€ãããŸãã |
ç©ä»¶å | çæãããããããã£ã®ååã |
ããŒã«ãã¬ãŒã€ãŒ | ããŒã«ãå±ãããªããžã§ã¯ãã®ã¿ã€ãã |
ä¿åããããã¹ãŠã®ãã³ãã¬ãŒããå€æããã¿ã³ãã¯ãªãã¯ããŠããœãªã¥ãŒã·ã§ã³ãçµã¿ç«ãŠãŠéå§ããŸãã ããã§ãWCFWizard Explorerãä»ããŠWCFServiceåã®ãªããžã§ã¯ããWCFCollectionã«è¿œå ããååãä»ããããšãã§ããŸãã
ãã£ãŒã衚瀺ãäœæãã
ãªããžã§ã¯ãããã€ã¢ã°ã©ã ã«è¡šç€ºãããããã«ããã«ã¯ããªããžã§ã¯ãã®èŠèŠçè¡šçŸãäœæããå¿ èŠããããŸãã ãããã®ç®çã®ããã«ã ããŒã«ããã¯ã¹èŠçŽ ããããŸãïŒ ãžãªã¡ããªåœ¢ç¶ ã ã³ã³ããŒãã¡ã³ãåœ¢ç¶ ã ã³ãã¯ã¿ ã æåã®2ã€ã¯ã¿ã€ãDomain Classã®ãªããžã§ã¯ããã¬ã³ããªã³ã°ããæåŸã¯Domain Relationshipã«äœ¿çšãããŸãã
ã³ã³ããŒãã¡ã³ã圢ç¶èŠçŽ ãè¿œå ããWCFServiceShapeãšããååãä»ããŸãã ãã®èŠçŽ ã«ã¯ãèŠèŠçè¡šçŸã«é¢äžããå€ãã®ããããã£ããããŸãããçæãããã¯ã©ã¹ã®æ¡åŒµã«ãããããæè»ãªèŠèŠçè¡šçŸãçæããããšãã§ããŸãã
ãªããžã§ã¯ãããã®è¡šçŸã«é¢é£ä»ããã«ã¯ã ãã€ã¢ã°ã©ã èŠçŽ ãããèŠçŽ ã䜿çšããŠãWCFServiceãšWCFServiceShapeéã®æ¥ç¶ãæ¡åŒµããå¿ èŠããããŸãã
ã³ã³ããŒãã¡ã³ãã·ã§ã€ãã«è¿œå ã§ãããã®ãèŠãŠã¿ãŸãããã
- ã³ã³ããŒãã¡ã³ã-ããããã£ã®ã³ã¬ã¯ã·ã§ã³ã衚瀺ããŸãã
- ãã¡ã€ã³ããããã£-ããããã£ã«è¡šç€ºãããããããã£ã
- Expand Collapse Decorator-å éšã³ã³ãã³ããæããããã ãå±éãããã§ããèŠçŽ ã
- ã¢ã€ã³ã³ãã³ã¬ãŒã¿-ç»åã衚瀺ããŸãã
- ããã¹ããã³ã¬ãŒã¿-ããã¹ãåºåã
ããã¹ããã³ã¬ãŒã¿ãè¿œå ããNameDecoratorãšããååãä»ããŸãã 次ã«ããããWCFServiceã®ç¹å®ã®ããããã£ã«é¢é£ä»ããå¿ èŠããããŸãããã®ããã«ã DSL DetailsãŠã£ã³ããŠã䜿çšããŸãã Diagram Element Mapãéžæãããšããã³ãã«ã«é¢ããæ å ±ã衚瀺ãããŸãã [ãã³ã¬ãŒã¿ããã]ã¿ãã«ç§»åããŠãNameDecoratorãã¢ã¯ãã£ãã«ããŸãã WCFServiceããããã£ãçŽæ¥äœ¿çšããããã ããããã£èŠçŽ ã衚瀺ãããã¹ã¯ç©ºã®ãŸãŸã«ã§ããŸããããã®èŠçŽ ã䜿çšããŠãé¢é£ãªããžã§ã¯ããžã®ãã¹ãèšå®ãããã®ããããã£ã衚瀺ã§ããŸãã Displayããããã£èŠçŽ ã§ãååãéžæããŸãã
ããã§ãWCFServiceã¯èªèº«ããã£ãŒãã«è¡šç€ºããããšãåŠç¿ããŸããã
ããŒã«ããã¯ã¹ã«ãªããžã§ã¯ãã眮ã
WCFWizard Explorerã䜿çšããŠãªããžã§ã¯ããè¿œå ã§ããŸãããèŠãç®ã¯ããŸãè¯ããããŸããã Toolboxã䜿çšããŠãªããžã§ã¯ããäœæããæ©èœãè¿œå ããŠã¿ãŸãããã
DSLãšã¯ã¹ãããŒã©ãŒã«ç§»åããŠã ãšãã£ã¿ãŒã§æ°ããããŒã«ããã¯ã¹ã¿ããäœæããŸãããããWCFWizard Elementsãšåä»ããŸãã ããã§ã Toolboxã®èŠçŽ ã®ã°ã«ãŒããäœæããŸãããããã§ã æ¥ç¶ããŒã« ïŒæ¥ç¶çšïŒãšèŠçŽ ããŒã« ïŒãªããžã§ã¯ãçšïŒã®2çš®é¡ã®èŠçŽ ãäœæã§ããŸãã
èŠçŽ ããŒã«ã¿ã€ãã®èŠçŽ ãäœæããWCFServiceToolãšããååãä»ãããªãœãŒã¹ã«æ¢ã«ååšããã¢ã€ã³ã³ããã¢ã€ã³ã³ãååŸããŸãã æãéèŠãªããšã¯ããã©ãã°ã¢ã³ãããããæã«äœæããããªããžã§ã¯ããç¹åŸŽä»ããClassããããã£ãèšå®ããããšã§ãã WCFServiceãéžæããŸãã
ããã§ãæåã®ãªããžã§ã¯ããããŒã«ããã¯ã¹ã«è¡šç€ºããããã£ãŒãã«å®å šã«ãã©ãã°ã¢ã³ãããããã§ããŸãã
ãæ©èœããèšè¿°ãããªããžã§ã¯ãã®äœæ
äžèšã®WCFServiceã®å Žåãšåæ§ã®ã¢ã¯ã·ã§ã³ããWCFFunctionãšããååã§ã®ã¿å®è¡ããŸãã ãããŠãWCFCollectionã«ã§ã¯ãªããWCFFunctionãïŒ åã蟌ã¿é¢ä¿ã䜿çšããŠïŒWCFServiceã«ãã€ã³ãããŸãã ãããŠã次ã®ãããªãã®ãåŸãããŸãã
ããã§ããµãŒãã¹ã«é¢æ°ãè¿œå ã§ããŸããããã€ã¢ã°ã©ã ã«ã¯è¡šç€ºãããŸããã æã«ãããã³ã°ãè¿œå ããŸãã
ã¿ã€ãConnectorã®ãªããžã§ã¯ãïŒããããã£ã§å€éšè¡šç€ºãæ§æã§ããŸãïŒããã©ãã°ãã ãã€ã¢ã°ã©ã èŠçŽ ãããã䜿çšããŠWCFServiceHasWCFFunctionãªããžã§ã¯ãã«é¢é£ä»ããŸãã
ãªããžã§ã¯ãã®åãèšè¿°ãããªããžã§ã¯ããè¿œå ããŠãé¢æ°ã®ãã©ã¡ãŒã¿ãŒãšæ»ãå€ã®åãèšå®ããŸãã
WCFTypeãšããååã®Domain Classãªããžã§ã¯ããè¿œå ãããã®äžã«NamespaceãšTypeãšãã2ã€ã®ããã¹ãããããã£ãäœæããŠãåã®åå空éãšåèªäœãæå®ããŸãã Inheritance Modifierããããã£ãabstractã«èšå®ããŸãã
ãŸããWCFParamTypeïŒé¢æ°ãã©ã¡ãŒã¿ãŒã®ã»ãããè¡šãïŒãšããååã®Domain Classãªããžã§ã¯ããè¿œå ããŸããããã¯ãWCFTypeããç¶æ¿ãããŸãïŒ Base Classãã©ã¡ãŒã¿ãŒãWCFTypeã«èšå®ïŒã
WCFParamTypeã®å Žåã¯ãNameããããã£ãè¿œå ããŠé¢æ°å ã®ãã©ã¡ãŒã¿ãŒåãèå¥ããå³ã«ç€ºãããã«WCFServiceã«é¢é£ä»ããŸãã
次ã«ãWCFFunctionShapeãªããžã§ã¯ãã§ãã³ã³ããŒãã¡ã³ããè¿œå ããŸãïŒParamãšåŒã³ãŸãããïŒã WDSLFunctionãšWCFFunctionShapeã®éã®ãªã³ã¯ã匷調衚瀺ãããDSL Detailsããã«ã«ç§»åããŸãããã [ã³ã³ããŒãã¡ã³ãããã]ã¿ããéžæããå³ã®ããã«æ§æããŸãã
Displayed elements collection pathãã£ãŒã«ãã¯ãïŒãã³ãã«ã䜿çšããŠïŒè¡šç€ºããèŠçŽ ã®ã³ã¬ã¯ã·ã§ã³ãžã®ãã¹ã瀺ãã衚瀺ããããããã£ã®ååãæå®ããŸãã
ããã§ãç°¡åãªã³ãŒãã®çæãéå§ããã®ã«ååãªæ å ±ãåŸãããŸããã
ãã®èšäºã«ã¯ã³ãŒãçæã¯å«ãŸããŠããŸããããããŸããŸãªæ¹æ³ã§å®è¡ã§ãããšèšããŸãã
- T4ã䜿çšããŠçæããŸãã
- ä¿åæã«ã³ãŒãããçŽæ¥çæããŸãã
ããã±ãŒãžã®ãã«ããšãããã€
Visual Studioã«æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããéã®åé¡ãæ確ã«ããŸãã DSLPackageãããžã§ã¯ãããã«ããããšãã€ã³ã¹ããŒã«ããã±ãŒãžã§ããvsixæ¡åŒµåã®ãã¡ã€ã«ãååŸãããŸãã
ãããžã§ã¯ãããããã€ããã«ã¯ã vsixãã¡ã€ã«ãå®è¡ããŠã ã€ã³ã¹ããŒã©ãŒã®æé ãå®è¡ããã ãã§ãã
ãã®çµæãæ¡åŒµæ©èœãVisual Studioã«è¡šç€ºããã æ¡åŒµæ©èœãããŒãžã£ãŒ ïŒ[ ããŒã« ]ã¡ãã¥ãŒã«ãããŸãïŒã§è¡šç€ºã§ããŸãã ããã§åé€ããããšãã§ããŸãã
ãããã«
ç§ã¯ãã®ããŒã«ã®æå°éšåã®ã¿ãã«ããŒããããšãã§ããŸããããããã誰ããç¬ç«ãã詳现ãªç 究ãè¡ãããšã奚å±ããããšãé¡ã£ãŠããŸãã
ãã®ãããã¯ã人ã ã«ãšã£ãŠèå³æ·±ããã®ã§ããå Žåã次ã®ãããªåé¡ãã«ããŒããèšç»ããããŸãã
- ã¡ãã¥ãŒé ç®ã䜿çšããŸãã
- ããŒã¿ã®æ€èšŒã
- ã³ãŒãçæã