Visual Studio 2010以éã®ããŒã«ãããã§ããDevExtremeã«ã€ããŠã§ã ã

DevExtremeã«å«ãŸãããã®ïŒ
- PhoneJSã®äžã§èšåãããŠããŸãã
- ChartJSããŒã¿ãèŠèŠåããããã®JavaScriptã©ã€ãã©ãªã
- Visual Studioã®ãããžã§ã¯ããã³ãã¬ãŒãã
- ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ããã°ããäœæããããã®ãŠã£ã¶ãŒãã
- Visual Studioã«çµ±åãããããžã¥ã¢ã«ãã¶ã€ããŒã
- ãã©ãŠã¶ã§ã¢ããªã±ãŒã·ã§ã³ããããã°ããããã®ã¢ãã€ã«ããã€ã¹ã®ã·ãã¥ã¬ãŒã¿ã
- QRã³ãŒãã«ããããã€ã¹ã§ã®è¿ éãªèµ·åã®æ段
- ã¢ããªã±ãŒã·ã§ã³ããã€ãã£ãã³ã³ããã«ããã±ãŒãžåããããã®ããŒã«ã
éåžžãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã¯ãããŒã¿ããŒã¹ãšããžãã¹ããžãã¯ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ãã å€ãã®Webãã¬ãŒã ã¯ãŒã¯ïŒRuby on RailsãDjangoãYiiãASP.NET MVCãªã©ïŒã«ã¯ãæ¢åã®ããŒã¿ã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãå³åº§ã«çæããããã®scaffoldããŒã«ãå«ãŸããŠããŸãã
DevExtremeã¯ãã¢ãã€ã«ããã€ã¹ïŒiOSãAndroidãWindows Phone 8ãTizenãMicrosoft Surfaceãªã©ïŒãšéåžžã®Webãã©ãŠã¶ãŒã®äž¡æ¹ã§åäœããããããããã«ããã£ãã«ã¢ããªã±ãŒã·ã§ã³ãäœæããåæ§ã®æ©äŒãæäŸããŸãã ããã¯ç¹å¥ãªãžã§ãã¬ãŒã¿ãŒã䜿çšããŠè¡ãããŸãã
泚æãåŠçããããã®ç°¡åãªã·ã¹ãã ãäœæããäŸã䜿çšããŠã圌ã®å®éã®äœæ¥ãèŠãŠã¿ãŸãããã
ODataãµãŒãã¹ã®äœæ
é©åãªã¢ããªã±ãŒã·ã§ã³ã¯ãããã³ããšã³ããšããã¯ãšã³ãã§æ§æãããŸãã ããã¯ãšã³ãã¯ãã·ã³ãµãŒããŒïŒRESTãµãŒãã¹ãªã©ïŒã®åœ¢ã§ãŸããŸãäœæãããŠããŸãã ODataãããã³ã«ã¯ .NETéçºè ã®éã§äººæ°ãããããããŠã£ã¶ãŒãã¯ODataãµãŒãã¹ã«ãã£ãŠè¿ãããã¡ã¿ããŒã¿ã«åºã¥ããŠã³ãŒããçæã§ããŸãã
äžè¬ã«ããŠã£ã¶ãŒãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãçæããå Žåã CORSãŸãã¯JSONPããµããŒãããæ¢è£œã®ODataãµãŒãã¹ã䜿çšã§ããŸãã ãã®äŸã§ã¯ã DevExtreme 13.1 WCF ODataãµãŒãã¹ãããžã§ã¯ããã³ãã¬ãŒãã䜿çšããŠãµãŒãã¹ãäœæããŸããããã¯ãEntity Frameworkã¢ãã«ããè¥å¹²æ¹åãããæšæºãµãŒãã¹ã§ãïŒCORSãšJSONPã
ImageStreamProvider
ãµããŒããè¿œå ã
ImageStreamProvider
ïŒã
ãã®ãããæ°ãããããžã§ã¯ããäœæããŸãã ããšãã°ãCRM.DataServiceãšåŒã³ãŸãã ãœãªã¥ãŒã·ã§ã³åã«ã¯ãåã«CRMãæå®ããŸãã

ãããŒã¿ããŒã¹ããçæããéžæããŸãã

[æ°ããæ¥ç¶]ãã¯ãªãã¯ããŸãã

ããšãã°ãããç¥ãããŠããNorthwindã䜿çšããŸãã
å¿ èŠãªããŒãã«ãéžæããŸãïŒã«ããŽãªã顧客ãåŸæ¥å¡ã泚æã®è©³çŽ°ã泚æãé éæ¥è ããµãã©ã€ã€ãŒã

ã§ãã ãã§ã«ãã©ãŠã¶ã§ãµãŒãã¹ãéãïŒã³ã³ããã¹ãã¡ãã¥ãŒã®[ãã©ãŠã¶ã§è¡šç€º]ïŒããã¹ãŠãæ£åžžã«æ©èœããããšã確èªã§ããŸãã

ã¢ããªã±ãŒã·ã§ã³ã®çæã«é²ã¿ãŸãã
ã¢ããªã±ãŒã·ã§ã³äœæ
ããŒã¿ãåããæ¢è£œã®ãµãŒãã¹ãã§ããã®ã§ã DevExtreme 13.1 Multi-Chanel Applicationãã³ãã¬ãŒãã䜿çšããŠæ°ãããããžã§ã¯ããè¿œå ããå¿ èŠããããŸãã [ãã¡ã€ã«] > [ è¿œå ] > [ æ°ãããããžã§ã¯ã]ãéžæããŸãã

ã¢ããªã±ãŒã·ã§ã³ãåäœããå¿ èŠã®ãããã©ãããã©ãŒã ãéžæããŸãã ãã¹ãŠã«æ³šæããŸãã

次ã«ãäºåå®çŸ©ãããã¬ã€ã¢ãŠãã®1ã€ã瀺ããŸãã SlideOutã«ããŸãã

次ã®ã¹ãããã§ããŠã£ã¶ãŒãã¯ããŒã¿ãœãŒã¹ã®éžæãææ¡ããŸãã ODataãµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³èªäœãšåããœãªã¥ãŒã·ã§ã³ïŒåœç€Ÿã®ãã®ãªã©ïŒã«ããå ŽåãããŒã¿ãœãŒã¹ã¯èªåçã«æå®ãããŸãã äœããã®ãªã¢ãŒããµãŒãã¹ã䜿çšããå Žåã¯ãURLãæåã§æå®ããå¿ èŠããããŸãã
[æ€åº]ãã¯ãªãã¯ããŠæ¥ç¶ã確èªããŸãã ããã§ãã¢ãã«ãšãã¥ãŒãçæããããã«å¿ èŠãªããŒãã«ãéžæã§ããŸãã

[ãã¥ãŒã®çæ]åã§ã¯ãUIã§äœ¿çšãã3ã€ã®ãšã³ãã£ãã£ã®ã¿ãããŒã¯ããããšã«æ³šæããŠãã ããã æ®ãã¯ããŒã¿ãæäœããããã«ã®ã¿å¿ èŠã§ãã
ããã¥ãŒçæãªãã·ã§ã³ãã»ã¯ã·ã§ã³ã®ã¹ã€ããã䜿çšãããšããã¥ãŒã®åé¢ã®çšåºŠãéžæã§ããŸãã ãçæããããã¥ãŒããã©ãããã©ãŒã ã«äŸåããªãå ±æãããžã§ã¯ãã«è¿œå ããããšæå®ãããšããã¹ãŠã®ãã©ãããã©ãŒã ã§å ±æãã¥ãŒãã¡ã€ã«ã䜿çšãããã³ãŒãã®éè€ãåé¿ãããŸãã
äžæ¹ãç°ãªããã©ãããã©ãŒã ã§å€èŠ³ãã«ã¹ã¿ãã€ãºããå Žåã¯ããããžã§ã¯ãããšã«åå¥ã«ãã¡ã€ã«ãçæããã®ãçã«ããªã£ãŠããŸãã ãã ããå ±æãããžã§ã¯ããããã©ãããã©ãŒã ãããžã§ã¯ãã«ãã¡ã€ã«ãã³ããŒãããšãäžéšã®ãã¥ãŒã¯äžè¬çã§ãäžéšã¯ç¹å®ã®ãã®ã«ãªããŸãã
[å®äº]ãã¯ãªãã¯ããŠãçæãå®äºããŸãã
ãã®çµæã次ã®ãããžã§ã¯ããååŸã§ããŸãã
- CRM.Mobile
- CRM.Desktop
- CRM.Shared
- CRM.Win8
- CRM.Win8Phone
ãããã¯åæ§ã®ãã©ã«ããŒãšãã¡ã€ã«æ§é ãæã£ãŠããŸããããå°ã詳ããèŠãŠã¿ãŸãããã
- ããŒã¿ -å ±æãããžã§ã¯ãã«ã®ã¿ååšãããšã³ãã£ãã£ïŒè£œåãã«ããŽãªãªã©ïŒã®ç£èŠå¯èœãªã¢ãã«ãå«ãŸããŸãã
- js-ã©ã€ãã©ãªïŒjQueryãKnockoutãPhoneJSãªã©ïŒã®ãã¡ã€ã«ã
- css-ãã©ãããã©ãŒã ã«å¿ããŠã¢ããªã±ãŒã·ã§ã³ãçè²ããããã®çµã¿èŸŒã¿ããŒãã¹ã¿ã€ã«ã
- ã¬ã€ã¢ãŠã -äºåå®çŸ©ãããã¬ã€ã¢ãŠãã®ã»ããã
- view-ã¢ããªã±ãŒã·ã§ã³ç»é¢ïŒåç»é¢ã«ããŒã¯ã¢ãããã¡ã€ã«ãšã³ãŒããã¡ã€ã«ïŒ
ã«ãŒãã«ã¯ãã€ã³ããã¯ã¹ãã¡ã€ã«ãšæ§æãã¡ã€ã«ããããŸãã
CRM.Mobileéå§ãããžã§ã¯ããäœæããŠã F5ãæŒããŸãããã
ãã©ãŠã¶ãŒãèµ·åããã·ãã¥ã¬ãŒã¿ãŒã§ã¢ããªã±ãŒã·ã§ã³ãéããŸãã ãã®äžã§ã補åããµãã©ã€ã€ãŒã泚æã«é¢ããæ å ±ã衚瀺ããã³ç·šéã§ããŸãã

çµæã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããèŠèŠèŠçŽ ïŒãŠã£ãžã§ããïŒã«ã€ããŠå°ã詳ãã説æããŸãã
ããŒã¿ã®ãªã¹ãã衚瀺ããã«ã¯ã dxListã䜿çšãããŸãã ã¢ã€ãã ã®ãã³ãã¬ãŒããã°ã«ãŒãåãããããŒã¿ã®è¡šç€ºãããã³ã¹ã¯ããŒã«ããŠæŽæ°ãèªã¿èŸŒã¿ãè¡ãããã®ãã«ããŠã³ãªã©ã®ã¢ãã€ã«UIã€ãã£ãªã ããµããŒãããŠããŸãã
å ¥åãã£ãŒã«ãã¯ã次ã®ãŠã£ãžã§ããã§è¡šãããŸãã
- dxTextBox-ããã¹ãããŒã¿ã®å Žåã
- dxNumberBox-æ°åã®å Žåã
- dxSwitch-è«çå€ãåãæ¿ããïŒtrueãfalseïŒ
- dxLookup-ãªã¹ãããéžæããããŒã¿å ¥åã
ãŠã£ãžã§ããã®å®å šãªãªã¹ãã¯ããã¥ã¡ã³ãã«ãããŸã ã
ãããã°
ç¹å®ã®ãã©ãããã©ãŒã ã§ã®ã¢ããªã±ãŒã·ã§ã³ã®åäœã確èªããããã«ãã·ãã¥ã¬ãŒã¿ãŒã®ããããŒãžã®å·ŠåŽã«ããã«ãçšæãããŠããŸãããã®ããã«ã§ã¯ãäŸãã°iOS7ãæ¥ã äºæ³ãããTizen㧠ãã¢ããªã±ãŒã·ã§ã³ã®ããŒããšã·ãã¥ã¬ãŒã¿ãŒã®ã¹ãã³ãå€æŽã§ããŸãã Androidããã³Windows Phone 8ã®ããŒããå©çšã§ããŸãã
ãããã¯åãæ¿ãããã«ã®äžã«ã¯ãã¯ã©ãŠããããã·ãµãŒããŒãä»ããŠã¢ãã€ã«ããã€ã¹äžã®ã¢ããªã±ãŒã·ã§ã³ããããã°ããããã®QRã³ãŒãããããéçºè ã®ãã·ã³ãžã®ããã¢ã·ã³ã°ãã¢ã¯ã»ã¹ãå¯èœã§ãã
QRã³ãŒãã«ã¯ãããã€ã¹ã®ãã©ãŠã¶ãŒãŸãã¯Courierã¢ããªã±ãŒã·ã§ã³ïŒ iTunesããã³Google Playã§å©çšå¯èœïŒã§éãããšãã§ããç¹å¥ãªURLãå«ãŸããŠããŸãã Courierãä»ããèµ·åã¯ãæ©èœçã«ã¯ãã€ãã£ãããã±ãŒãžããã«ãããŠããã¹ããŒããã©ã³/ã¿ãã¬ããã«ã€ã³ã¹ããŒã«ããã®ãšäŒŒãŠããŸãããæéãç¯çŽã§ããŸãã
ä»ã®ãã©ãããã©ãŒã çšã®ã¢ããªã±ãŒã·ã§ã³ã¯ããããã®ãããžã§ã¯ãã«ãããåçŽã«èµ·åããŸããCRM.Desktopã¯ãã©ãŠã¶ãŒãèµ·åããCRM.Win8ã¯Windowsã¹ãã¢ã¢ããªã±ãŒã·ã§ã³ãå šç»é¢ãŸãã¯ãšãã¥ã¬ãŒã¿ãŒã§èµ·åããCRM.Win8Phoneã¯Windows Phone 8ãšãã¥ã¬ãŒã¿ãŒã§èµ·åããŸãïŒãã ãã SDKãã€ã³ã¹ããŒã«ãããŠããŸãïŒã

ãã®ãããã³ãŒãã1è¡ãæžããã«ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ãååŸããŸããã ãã¡ãããããžãã¹ã¢ããªã±ãŒã·ã§ã³ã®å žåçãªã¢ããªã±ãŒã·ã§ã³ã®å€èŠ³ã¯ããªãã·ã³ãã«ã§ãããDevExtremeã§ã¯UIã奜ã¿ã«åãããŠå€æŽããã³ã«ã¹ã¿ãã€ãºã§ããŸãã
å€èŠ³ã®æ¹å
ããã²ãŒã·ã§ã³ããŒ
æåã«ç®ãåŒãã®ã¯ãããã²ãŒã·ã§ã³ããã«ã®ã¢ã€ãã ã泚æããšãé éæ¥è ãã®ã¢ã€ã³ã³ããªãããšã§ãã ããã¯ãæšæºã»ããã«ã¯ãordersãããã³ãshippersããšããååã®ã¢ã€ã³ã³ããªããšããäºå®ã«ãã£ãŠèª¬æãããŠããŸãïŒå®å šãªãªã¹ãã¯ãã¢ã¢ããªã±ãŒã·ã§ã³Kitchen Sinkã«ãããŸã ïŒã
泚æã®å Žåã¯ãç»åãMoneyãã䜿çšãããµãã©ã€ã€ã®å Žåã¯ãCarãã䜿çšããããšãã§ããŸãã ãããè¡ãã«ã¯ã
navigation
é åã®crm.config.jsãã¡ã€ã«ã®CRM.Mobileãããžã§ã¯ãã§ã察å¿ãããªããžã§ã¯ãã®
icon
ãã£ãŒã«ããå€æŽããå¿ èŠããããŸãã
iconSrc
ããããã£ã䜿çšããŠãç¬èªã®ç»åãèšå®ã§ããŸãã
GitHubã®diffãåç §ããŠãã ããã
泚æãªã¹ã
ãã¹ãŠã®æ³šæã¯ã次ã®ã«ããŽãªã«åé¡ã§ããŸãã
- æ°èŠæ³šæïŒæ°èŠïŒ-é éæ¥ïŒShippedDateïŒããã³ãããŒãžã£ãŒïŒEmployeeIDïŒã瀺ãããŠããªã泚æã
- åŠçäžã®æ³šæïŒé²è¡äžïŒ-é éæ¥ã¯æå®ãããŠããªããããããŒãžã£ãŒã¯æå®ãããŠãã泚æã
- åºè·æžã¿æ³šæâé éæ¥ã瀺ãããŠãã泚æã
dxTabsãŠã£ãžã§ããã¯ãããã3ã€ã®ã°ã«ãŒããèŠèŠåããã®ã«é©ããŠããŸãã ããŒã¯ã¢ããã«è¿œå ããŸãã ããã«ã¯ãªãã¯ããŠCRM.Sharedãããžã§ã¯ãããviews / order / orders.dxviewãã¡ã€ã«ãéããšãããžã¥ã¢ã«ãšãã£ã¿ãŒãéããŸãã
圌ãé©åãªãããžã§ã¯ããšé©åãªãããã¯ã«èšå®ãããŠããããšã確èªããŠãã ããã

ããŒã«ããã¯ã¹ã§ãdxTabsãŠã£ãžã§ãããèŠã€ããŠããã¥ãŒã¬ã€ã¢ãŠãã«ãã©ãã°ããŸãã

ããããã£ã§ããŠã£ãžã§ãããªãã·ã§ã³ãå€æŽããŸãã
items: tabs
ã
selectedIndex: selectedTabIndex
ã
itemClickAction: handleTabClick

ã³ãŒãorders.jsã®ãã¡ã€ã«ã§ã¯ã泚æãã°ã«ãŒãã«åå²ããããžãã¯ãå®è£ ããŠããŸãã å®å šãªå·®åãåç §ããŠãã ããã
補åãªã¹ã
çŸåšã補åã®ãªã¹ãã«ã¯ååã®ã¿ãå«ãŸããŠããŸãã ããã§ãããšãã°9.99ãã«ã®åœ¢åŒã§äŸ¡æ Œãè¿œå ããããšã¯è«ççã§ãã ãããè¡ãã«ã¯ããã¥ãŒ/補å/products.dxviewã§ãããŒã¯ã¢ãããå€æŽããŸãïŒ
<div class="list-item" data-bind="text: Globalize.format(UnitPrice(), 'c')"></div>
ãµãã©ã€ã€ãŒãªã¹ã
ãã®ç»é¢ã§ã¯ã詳现ã«ã€ããŠãµãã©ã€ã€ã®é£çµ¡å ã®è©³çŽ°ãæå®ã§ããŸãã
Northwindã«ã¯ãåãã³ããŒã®é»è©±çªå·ããããŸãã ããã䜿çšããŸãã shippers.dxviewãã¥ãŒã«é£çµ¡å çªå·ãè¿œå ããŸãã
<div class="list-item" data-bind="text: Phone"></div>
泚æã®è©³çŽ°ãªãã¬ãŒã³ããŒã·ã§ã³
ããã§ã¯ã泚æã«é¢ããäžè¬æ å ±ã«å ããŠã泚æã«å«ãŸãã補åã衚瀺ãããšäŸ¿å©ã§ãã ãããè¡ãã«ã¯ã泚æ補åã®ããŒã¿ãœãŒã¹ãã³ãŒãorder-details.jsã§ãã¡ã€ã«ã«è¿œå ããŸãã
orderDetailsSource: { store: CRM.db.Order_Details, filter: ["OrderID", Number(params.id)], expand: "Product", paginate: false, map: function(item) { return new CRM.Order_DetailsViewModel(item); } },
補åã®ãªã¹ããèŠèŠçã«è¡šçŸããã«ã¯ã dxListãŠã£ãžã§ããã䜿çšããŸãã ããã¯ãããžã¥ã¢ã«ãã¶ã€ããŒã䜿çšããŠããŸãã¯æåã§å®è¡ã§ããŸãã ãã®çµæã次ã®ããŒã¯ã¢ãããååŸããå¿ èŠããããŸãã
<h2 class="dx-detail-item-label">Order items</h2> <div class="dx-fieldset order-details"> <div data-bind="dxList: { dataSource: orderDetailsSource, scrollingEnabled: false }" style="background: none;"> <div data-bind="dxAction: '#ProductDetails/{Product.ProductID}'" data-options="dxTemplate : { name: 'item' }"> <div data-bind="text: Product.ProductName"></div> <div> Quantity: <span data-bind="text: Quantity"></span> </div> <div> Total price: <span data-bind="text: TotalPriceFormatted"></span> </div> </div> </div> </div>
å®å šãªå·®åãåç §ããŠãã ããã
å€æŽãã2çªç®ã®ããšã¯ã
Employee
ãã£ãŒã«ãã«æ å ±ã衚瀺ããããšã§ãã åŸæ¥å¡ã®ååã§ã¯ãªããåŸæ¥å¡ã®ååã瀺ãæ¹ãé©åã§ãïŒãžã§ãã¬ãŒã¿ã®ãã¥ãŒãªã¹ãã£ãã¯ãã¿ã€ãã«ãã£ãŒã«ãã®éžæã«å€±æããŸããïŒã ãããä¿®æ£ããã«ã¯ã
Employee
ãã£ãŒã«ãã®order-details.dxviewãã¥ãŒã§ã
data-bind="text: order.Employee.Title"
ã
data-bind="text: order.Employee.LastName"
ãŸãã
泚æç·šéãã¥ãŒïŒorder-edit.dxviewïŒããã³ã³ãŒãorder-edit.jsã®ãã¡ã€ã«ã«ãåæ§ã®å€æŽãå ããå¿ èŠããããŸãã
Employee
ãã£ãŒã«ãã®order-details.dxviewã§ã¯ã
LastName
ã
displayExpr
ãšããŠæå®ãã
employeesSource
ãªããžã§ã¯ãã®order-edit.jsã§ã¯ã
select
ãã£ãŒã«ãã§
LastName
ã
select
ãŸãã
ãã®ã¢ããªã±ãŒã·ã§ã³ã®ã«ã¹ã¿ãã€ãºã¯å®äºãããšèŠãªãããŸãã ãã ããå¿ èŠã«å¿ããŠãããžãã¯ãšãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äž¡æ¹ã§ããæ·±ãå€æŽãå ããããšãã§ããŸãã
ãã€ãã£ãããã±ãŒãžããã«ããã
DevExtremeã䜿çšããŠã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããæåŸã®ã³ãŒãã¯ããã€ãã£ãããã±ãŒãžã®ã¢ã»ã³ããªãšããã€ã¹ãžã®ã€ã³ã¹ããŒã«ã§ãã
DevExtremeã§ã¯ã次ã®ãã©ãããã©ãŒã çšã®ããã±ãŒãžããã«ãã§ããŸãã
- iOS
- Android
- Windows Phone 8
- ãã£ãŒã³
- Phonegapãã«ã

Androidãã©ãããã©ãŒã çšã«ã¢ããªãããã¯ããŸãããã ãããè¡ãã«ã¯ããããžã§ã¯ããCRM.Mobileãã§å³ã¯ãªãã¯ããŠã衚瀺ãããã¡ãã¥ãŒã§ãBuild native packages ...ããéžæããå¿ èŠããããŸãã ãã®åŸããã€ã¢ãã°ãéãããã®å©ããåããŠãã€ãã£ãããã±ãŒãžãåéããŸãã
AndroidãéžæïŒ

次ã«ãAndroidçšã®æ¢åã®éçºè 蚌ææžã䜿çšããããæ°ãã蚌ææžãçæã§ããŸãã æ°ãã蚌ææžãäœæããã«ã¯ã管çè æš©éã§Visual Studioãå®è¡ãããŠããå¿ èŠããããŸãã

ããã§ãããã±ãŒãžã®æ§ç¯ãéå§ããçµæã®APKãã¡ã€ã«ãAndroidããã€ã¹ã«ã€ã³ã¹ããŒã«ã§ããŸãã

次ã«ããBuild another packageããã¯ãªãã¯ããŠä»ã®ãã©ãããã©ãŒã çšã«ãã«ããããããFinishããã¯ãªãã¯ããŠIDEã«æ»ããŸãã
ãŸãšã
DevExtremeã䜿çšããŠãVisual Studioã§ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ããã°ããäœæããæ¹æ³ã瀺ããŸããã IDEã®èµ·åãããã¢ããªã±ãŒã·ã§ã³ã¹ãã¢ã«ããŠã³ããŒãããæºåãã§ããŠããã€ã³ã¹ããŒã«ããã±ãŒãžã®ã¢ã»ã³ããªãŸã§ã15åãããããŸããã§ããïŒ
äœæããããœãªã¥ãŒã·ã§ã³ïŒ GitHubã§å©çšå¯èœïŒã«ã¯ãããŒã¿ã«ã¢ã¯ã»ã¹ããããã®RESTãµãŒãã¹ãšããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒããã³å€æ°ã®ã¢ãã€ã«ããã€ã¹ïŒiPhoneããMicrosoft SurfaceãŸã§ïŒã®å®è¡å¯èœãªãããžã§ã¯ãã¹ã±ã«ãã³ãå«ãŸããŠããŸãã
ãOverboardãã¯å€ãã®èå³æ·±ããã®ãæ®ããŸãããããšãã°ã ChartJSãã€ã¢ã°ã©ã ã®ããžã¥ã¢ã«ãã¶ã€ããŒã«ã€ããŠã¯ãŸã£ãã話ããŸããã§ããã 次ã®èšäºã§ãããä¿®æ£ããããšæã£ãŠããŸãããä»ã®ãšããã¯å ¬åŒã®DevExtremeããŒãžãšDevExtremeã©ãŒãã³ã°ã»ã³ã¿ãŒãžã®ãªã³ã¯ãå床æäŸããŸãã