FïŒã¯ã人æ°ã®ããæ©èœã¹ã¿ã€ã«ã®ããã°ã©ãã³ã°èšèªã§ãããVisual Studio for .NETã³ã³ãœãŒã«ã¢ããªããã³ã©ã€ãã©ãªã§ã¯ããã©ã«ãã§ãµããŒããããŠããŸãããUIã¢ããªã§ã¯ãµããŒããããŠããŸããã WinUI 3.0ã§ã¯ãXamlã¢ããªã§FïŒã®ãã¡ãŒã¹ãã¯ã©ã¹ã®ãµããŒããæå¹ã«ããæ©äŒããããŸãã
3.0ããŒãããããã£ã¹ã«ãã·ã§ã³ã®åé¡ã§ãWinUIãæ¹åããè¯ãæ©äŒãšããŠFïŒãµããŒãã®æ¹åãææãããŸããã
ããã«ãããXamlã¢ããªã¯æãé©åãªå Žæã§FïŒã䜿çšã§ããããã«ãªããŸããããšãã°ãããžãã¹ããžãã¯ã§ã¯ãFïŒã®ç°¡æœãããã¹ã容ææ§ãåã·ã¹ãã ãæ£ç¢ºæ§ã®ä¿èšŒã®æ©æµãåããããšãã§ããŸãã
| æ©èœ| åªå
床|
| ïŒ---------- | ïŒ------- |
| ã¢ããªã®ããžãã¹ããžãã¯ã«FïŒã䜿çšã§ããããã«ãã| ããªããã°ãªããªã|
| Xamlã¢ããªã§VisualStudio FïŒããŒã«ã䜿çšã§ããããã«ãã| ããªããã°ãªããªã|
| FïŒãµã³ãã«ãæäŸãã| ãã¹ã|
| éšåã¯ã©ã¹ã®èåŸã«ããXamlããŒãžã³ãŒãã«FïŒã䜿çšã§ããããã«ãã| ã§ãã|
| èšèªã®æ··åãšãããã³ã°ãæå¹ã«ããŸãïŒããšãã°ãããŒã¿ãšããžãã¯ã®å Žåã¯FïŒãUI +ãã€ã³ãã£ã³ã°ã®å Žåã¯CïŒïŒ| ã§ãã|
| FïŒãããžã§ã¯ããã³ãã¬ãŒããæäŸãã| ã§ãã|
æ¢åã®xlangãµããŒãã¯ïŒæ°ãããµã³ãã«ã§ïŒååã§ããïŒ
ã©ã®ãããªçš®é¡ã®ãã³ãã¬ãŒããŸãã¯ãµã³ãã«ã圹ç«ã¡ãŸããïŒ
ããã«ã¯ãXamlããŒãžã³ãŒãããã€ã³ããã¡ã€ã«ã®ãµããŒããå«ããå¿ èŠããããŸããïŒ
ããã«ã¯ããããžã§ã¯ãã§ã®èšèªã®æ··åãå«ãŸããå¯èœæ§ããããŸããïŒ
ïŒ736ã®è€è£œ
ïŒ736ã®è€è£œ
ããã¯ããŒããããããã¥ã¡ã³ãã«è¿œå ããããã®PRã§ã-ããã远跡ããããã®åé¡ããããŸãð
@jesbisãŸããŸãã FïŒãå€ãã»ã©è¯ãã§ãã 人ã ã幞ãã«ä¿ã¡ãWinUI3.0ãå¯èœãªéãå€ãã®Microsoftéçºãã©ãããã©ãŒã ãç¶²çŸ ããããã«ããŸãã ð
FïŒ2ã€ã®éèŠãªã¢ãããŒãããããŸãã
1ïŒFïŒïŒå¯å€ïŒã¬ã³ãŒããXAMLãã€ã³ãã£ã³ã°ãã¬ã³ããªãŒã«ãã/ Gjallarhorn;
2ïŒãšã«ããã·ã¥ã¹ã¿ã€ã«
äž¡æ¹ãšããµããŒãããããµã³ãã«ããããŸãã ãã¶ãå°æ¥çã«ã¯1ã€ã®ãã¬ã³ãã ãããã£ãšäœ¿ãããããã«ãªãã§ãããã
.NET 5ã®UIçšã®FïŒãããžã§ã¯ããã³ãã¬ãŒããå¿ èŠã«ãªããŸã
1ã€ã®ãããžã§ã¯ãã§FïŒãšCïŒãçµã¿åãããŠäœ¿çšââããã®ã¯çŽ æŽãããããšã§ãã ããŒã¿ã«ã¯FïŒã䜿çšããUI /ã³ãã³ãã«ã¯CïŒã䜿çšããŸãã
FïŒã®ã¿+ GUIã¯ãã¹ã¿ã³ãã¢ãã³ã§å®å
šã«æ©èœããã¯ãã§ãã
ããšãã°ãAFïŒã®ã¿ã®ãœãªã¥ãŒã·ã§ã³ã¯ãAzure Function + FïŒããã¬ã³ãŒããæ¶è²»ãããããTwoWayã§TextBoxã«ãã€ã³ããããªã©ã®äºææ§ããããŸãã
FïŒã§ã®UI /ã³ãã³ãã¯éåžžã«ã·ã³ãã«ã§ã¯ãŒã«ã«èŠããŸãïŒ
@jesbis
- ã¢ããªã®ããžãã¹ããžãã¯ã«FïŒã䜿çšã§ããããã«ãã| ããªããã°ãªããªã
- èšèªã®æ··åãšãããã³ã°ãæå¹ã«ããŸãïŒããšãã°ãããŒã¿ãšããžãã¯ã®å Žåã¯FïŒãUI +ãã€ã³ãã£ã³ã°ã®å Žåã¯CïŒïŒ| ãã¶ã......ã ãã
ãããã¯åãããã«èŠããWinUIãåç §ããCïŒãããžã§ã¯ããä»»æã®.Netãããžã§ã¯ããåç §ã§ããããã«ããããšã§æ瀺ãããŸãã ããã¯åœç¶ã®ããšã§ãïŒnugetããã±ãŒãžãã€ã³ã¹ããŒã«ããããšã§WinUIã«ã¢ã¯ã»ã¹ã§ãããšä»®å®ããŸãïŒã
ïŒãã ãã5ããåããããžã§ã¯ãå ã§èšèªãæ··åããŠäžèŽãããããšãæå³ããå ŽåãCïŒãšFïŒã®é åºãç°ãªããããããã¯äžå¯èœã§ããïŒ
- Xamlã¢ããªã§VisualStudio FïŒããŒã«ã䜿çšã§ããããã«ãã| ããªããã°ãªããªã
ãããæ確ã«ã§ããŸããïŒ ãXamlãã¯çŸæç¹ã§ã¯éåžžã«æ··ä¹±ããŠããŸãã ãXamlããããŒã¯ã¢ããèšèªãæå³ããå Žåãããã¯ããããã¿ã€ããããã€ããŒã§è§£æ±ºãããè€éãªåé¡ã§ãïŒä»¥äžã®ãªã³ã¯ãåç §ïŒã ãã ãããXamlã¢ããªãããWinUIã¢ããªããæå³ããå Žåãããã¯1ã®äžéšã«ãããŸããã
- éšåã¯ã©ã¹ã®èåŸã«ããXamlããŒãžã³ãŒãã«FïŒã䜿çšã§ããããã«ãã| ãã¶ã......ã ãã
https://github.com/dotnet/wpf/issues/162ã§ãéšåã¯ã©ã¹/ XAMLã¿ã€ããããã€ããŒ/ BAMLã³ã³ãã€ã«ã®èª¬æãåç §ããŠ
çŸåšãFïŒã§UWPUIãæ§ç¯ããããšã¯ã§ããŸããã ïŒWin UI 3.0ã§èšç»ãããŠããããã«ïŒUIã¬ã€ã€ãŒå šäœãåºè·ããããšã§ãããã¯å°ãªããšãå¯èœã«ãªããŸããç§ã¯ãããåŸ ã¡æãã§ããŸãã
1ïŒæ¢åã®xlangãµããŒãã¯ïŒæ°ãããµã³ãã«ã§ïŒååã§ããïŒ
å人çã«ã¯ããã§å€§äžå€«ã§ããåºæ¬çãªãã³ãã¬ãŒããããã§ãããã
2ïŒã©ã®ã¿ã€ãã®ãã³ãã¬ãŒããŸãã¯ãµã³ãã«ã圹ç«ã¡ãŸããïŒ
åºæ¬çãªãµã³ãã«ã¯è¯ãåºçºç¹ã«ãªããŸãã
3ïŒããã«ã¯XamlããŒãžã³ãŒãããã€ã³ããã¡ã€ã«ã®ãµããŒããå«ããå¿
èŠããããŸããïŒ
å€ãã®FïŒéçºè
ã¯ãUIã®æ§ç¯ã«MVUã¢ãããŒãã奜ããšæããŸãã
å
žåçãªXAML + MVVMã¯å¯å€æ§ã«äŸåããŠãããUWPã«åºæã®Fabolousã®ãããªãã®ã倧ããªã»ãŒã«ã¹ãã€ã³ãã«ãªããšæããŸãïŒç§ã®æèŠã§ã¯ïŒã
åºæ¬çã«Elm / MVUæœè±¡åã®ããã«åå¿ããŠããäžè¬çã«ãªããŸãã
4ïŒããã«ã¯ããããžã§ã¯ãã§ã®èšèªã®æ··åãå«ãŸããå¯èœæ§ããããŸããïŒ
ãããä¹±éã«ãªãããšãæ³åã§ããŸãã FïŒã¯ãã¡ã€ã«ã®é åºã«ãã£ãŠç°ãªããŸãã
.NET CoreããµããŒãããããšã¯ãFïŒããµããŒãããããšãå®å šã«æå³ããããšã«æ³šæããŠãã ããã ãããã£ãŠãããšãã°.NET Core 3.0ã®ãµããŒããç®æšã§ããå ŽåãFïŒãµããŒããããã«äŒŽããŸãã ãã ããããã¯ãèšèšè ãªã©ã®ããŒã«ãµããŒãã®ã¬ãã«ãæå³ãããã®ã§ã¯ãããŸããã
FïŒïŒå¯å€ïŒã¬ã³ãŒãXAMLããã€ã³ãã«é©ããŠããŠãUIã³ãã³ããå«ãŸããŠããäŸãããå ŽåãDesignerã¯CïŒã®åãããŒã«ã§åäœããFïŒã«ãã³ãŒãããã€ã³ãã+ããŒã¿ãªããžã§ã¯ãããããšæããŸãã ã
äŸïŒé¡§å®¢ãè«æ±æžãè«æ±æžã¢ã€ãã ãããè«æ±æžç»é¢ã®WinUIGUIãå®è¡ããæ¹æ³ã [æ°ããè«æ±æž]ãã¿ã³ã䜿çšããŠã[顧客]ã[è«æ±æžã¢ã€ãã ã®è¿œå /åé€]ãéžæããŸãã
FïŒã§ã¢ãã«åããããŒã¿ãUIã«ãã€ã³ãããButtonã³ãã³ããFïŒé¢æ°ã«ãã€ã³ãããæ¹æ³ã¯ïŒ
@TonyHenrique .Net UIïŒWPF / UWP / Xamarin /
çŽç²ã«èšèšã®ããã«xamlã䜿çšããã¿ã€ããããã€ããŒã«UIãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãèš±å¯ãããããšããå§ãããŸãïŒWPFã®FsXamlã®ããã«ïŒã
WinUI XAML FïŒã¿ã€ããããã€ããŒã¯ãUIã³ãŒããã€ãã³ãããã³ããŒã¿ãã€ã³ãã£ã³ã°ã³ãŒãããåé¢ããããã®
ããã«ãããéåžžã®WinUIXAMLãã¶ã€ã³ã¿ã€ã ãšãã£ã¿ãŒã䜿çšã§ããããã«ãªããŸãã
ïŒãšã«ããã·ã¥ã§ç§ãå¿é
ããŠããã®ã¯ãã³ãŒãå
ã«æ··åšãã倧ãããŠè€éãªUIã®å Žåãå€ãphpã¹ãã²ããã£ã³ãŒãã®ããã«èŠããåŸåãããããšã§ãã
ã®ã£ã©ã«ãã«ã³ãããã§ãã ç§ãã¡ã«æé©ãªãã®ãéžæããã®ã¯FïŒããŒã 次第ã§ãïŒ
ããã§ãé©åãªUI /ã³ãŒãåé¢ãµã³ãã«ã䜿çšããŠãªãªãŒã¹ããŠãã ãããWinUI.xamlãã¡ã€ã«ãš.fsãã¡ã€ã«ã«ã¯ãåè¿°ã®ããã«ã顧客ãè«æ±æžãè«æ±æžã¢ã€ãã ãã¢ã€ãã ã®è¿œå /åé€ãã¿ã³ã®3ã€ã®ã¬ãã«ã®ã¢ã€ãã ãå«ããŠã£ã³ããŠããããŸãã ã äŸãã°ã
ãããš_AzureFunctions FïŒãããžã§ã¯ããã³ãã¬ãŒã_ã䜿çšãããšãæ°ãããããžã§ã¯ãã§FïŒã«å®å šã«åãæ¿ããã®ãç°¡åã«ãªããšæããŸãã
å®è¡ã§ãããã1ã€ã®ããšã¯ãCïŒ/ FïŒã³ãŒãã§XAMLãªãã©ã«ãèš±å¯ããããšã§ãã
ããã«ããã次ã®ãããªã³ãŒããæå¹ã«ãªããŸã
let myButton title = <Button Text=title />
ç§ã®ãããªXAMLãã¡ã³ã«ã¯ãªãã¿ããããReactã³ãŒãã®ããã«ãèŠããŸãã
ããããç§ã¯æèŠã宣èšããçŽ æŽããã/å¯è©±çãªæ¹æ³ã«æºè¶³ããŠããŸãã
@tonyhenriqueç§ã¯åæã
@isaacabraham WinUI XAMLã¿ã€ããããã€ããŒã§ElmishMVUã䜿çšããå¥ã®XAMLãã¡ã€ã«ã§UI宣èšã䜿çšããããšã¯å¯èœã§ããïŒ ããã«ãããéåžžã®XAMLãšãã£ã¿ãŒã䜿çšã§ããŸãããFïŒã®äžå€æ§ãšåã®å®å šæ§ããããŸãã
ããã決å®ããMSã«ã€ããŠã¯ãå€ãã®å©ç¹ããããŸãã éžæããæ¹æ³ïŒå¯å€ã¬ã³ãŒããgjallahornããŸãã¯elmishãåå¥ã®XAMLãã¡ã€ã«ã«ãã€ã³ããããã©ããïŒã«é©åãªFïŒGUI VisualStudioãããžã§ã¯ããã³ãã¬ãŒãããããšäŸ¿å©ã§ãã
ç§ã¯ãããèŠãããšæã£ãŠããŸãã
WinUIã«ã€ããŠã³ã¡ã³ãããããšã¯ã§ããŸããããçµã¿èŸŒã¿ã®VS XAMLãã¶ã€ããŒãšXAMLã¿ã€ããããã€ããŒã䜿çšããçŽç²ãªFïŒãœãªã¥ãŒã·ã§ã³ã®WPFã¢ããªããããŸãã ä»æ¥ã¯ããããElmishWPFã©ã€ãã©ãªã䜿çšããŸãããFSharp.ViewModuleã䜿çšããŸããã
ãã³ãã¬ãŒãã«é¢ããŠã¯ãç§ã¯ãããã«ã€ããŠè€éãªæ°æã¡ãæã£ãŠããŸãã 第äžã«ããããã¯ããŒã±ãã£ã³ã°ãšæèãé«ããããã®ããŒã«ãšããŠã¯æçšã§ãããå€æŽããã®ã¯é£ãããæè»æ§ããããŸããã IMHOã®ããè¯ã解決çã¯ããããããããã³ãã¬ãŒããnugetããã±ãŒãžïŒVSã«çµåãããã®ã§ã¯ãªãã³ãŒãã«çŠç¹ãåœãŠããã®ïŒã§ããç§ãã¡ã¯ãã®IMHOãã移è¡ããŸããïŒãŸãã¯ç§»è¡ããå¿ èŠããããŸãïŒã
ããã¯ãããããMSãã®æ±ºå®ãªã®ããã³ãã¥ããã£äž»å°ã®æ±ºå®ãªã®ããšããããšã«ãçŽçµããŸãã ãããã©ã®ããã«èŠãããã決å®ããããã«MSã«é Œãã®ã§ã¯ãªããä»ã®èª°ããåŸ ã£ããé Œã£ããããã«ç©æ¥µçã«äœããäœæããŠã¿ãŸãããã
ãã®åé¡ã«ã€ããŠã®ããªãã®ææ ®æ·±ãã³ã¡ã³ããã@mdtauk @TonyHenrique @charlesroddie @JaggerJo @cartermp @ Happypig375 @isaacabrahamãªã©ãããããšãããããŸããïŒ ç§ã¯ãUWP XamlããŒã ãFïŒãµããŒãã«æè³ãããã©ãããšãã®æ¹æ³ã決å®ããã®ãæ¯æŽããŠããŸãã FïŒã¢ããªãäœæãããšãã«æã圹ç«ã€ãµããŒãã®çš®é¡ã¯äœã§ããïŒ
@kathyang ïŒç§ã«ãšã£ãŠæã圹ç«ã€ã®ã¯ãVisual Studio 2019çšã®FïŒWinUI GUIãããžã§ã¯ããã³ãã¬ãŒããçšæããããšã§ããããã«ã¯ã WinUI XAMLã¿ã€ããããã€ããŒããããéåžžã®XAMLãšãã£ã¿ãŒã䜿çšã§ããŸãããGjallarhornã«FïŒã³ãŒãããã€ã³ãããããŸããããã³/ãŸãã¯ãšã«ããã·ã¥ã
@kathyangå¿ èŠãªåºæ¬çãªããšã¯ãUWPãnugetããã±ãŒãžãä»ããŠã€ã³ã¹ããŒã«ã§ããããã«ããããšã§ãã ããã«ãããä»»æã®.Netèšèªããã®UWPãã¥ãŒã䜿çšã§ããããã«ãªããŸãã
ãã«ãã¿ã€ãã®ãããã€ããŒãäœæããäœæ¥ã¯ãããããã§ããã詳现ãªè°è«ãå¿ èŠã«ãªããŸãã ã³ãã¥ããã£ã3ã€ã®ã¿ã€ããããã€ããŒãç¶æããæ¹æ³ãç解ããã®ã¯å°é£ã§ããç¹ã«ãçŸåš@ReedCopseyããããè¡ã£ãŠããã®ã¯1人ã§ããããã§ãïŒFsXaml WPFã¿ã€ããããã€ããŒã䜿çšïŒã åå¥ã«éçºãããUWPã¿ã€ãã®ãããã€ããŒã¯ãè¿ãå°æ¥ãäœæ¥ãæ£åœåããããã®äœ¿çšæ³ããããŸããã ããŸããŸãªXamlãã¬ãŒããŒãçµ±åã§ããå Žåã¯ãåãæ§é ãå ±æããWPF / UWP / XFã®åãããã€ããŒãäœæã§ããŸãã FïŒã®äœ¿çšæ³ã«ã¯åãåªå é äœããªãããããããã®ã¿ã€ããããã€ããŒã¯ãèãããããã¹ãŠã®XamlããµããŒãããå¿ èŠã¯ãããŸããïŒCïŒéçºè ã¯ãViewãããžã§ã¯ãã§ã³ãŒããæšå¥šããªãããšãå€ããXamlã§ã³ãŒãã®ãããªæ©èœãå¿ èŠã«ãªããŸãïŒã
@TonyHenriqueãåçããããšãããããŸãïŒ ãªãã·ã§ã³ã§ããŒã ãšå ±æããŸãã
@charlesroddieããã¯ã¿ã€ããããã€ããŒã®è¯ãç¹ã§ãã ããªãã¯ç§ã®ããã«æ確ã§ãã-ããªããèšã£ããšããããããªãã«å¹³åäœãå¥ã®æäœãè¡ããUWPã¯nugetããã±ãŒãžçµç±ã§ã€ã³ã¹ããŒã«ã§ããããã«ãããããã¯ãä»»æã®.NETèšèªããUWPãã¥ãŒã䜿çšããããšãã§ããããã«ãªããŸããããã®ïŒ
@kathyang Microsoft.UI.Xamlã¯æ£ããã¿ã€ãã®ãã®ã§ãïŒååã¯å¥ãšããŠïŒã ãããä»»æã®.Netãããžã§ã¯ãã§æ©èœãããããšãã§ãããã¹ãŠã®UWPãã¥ãŒã¯ã©ã¹ãå«ãŸããŠããå Žåã¯ãFïŒãµããŒãã®ã¡ã€ã³ã¹ãããã«ãªããŸãã
çŸåšãMicrosoft.UI.Xamlã¯ç¹å¥ãªUWPãããžã§ã¯ãã§æ©èœããŸãïŒFïŒçšã®ãã®ãããªãããžã§ã¯ãã¯ãããŸããïŒãã.Net Standardãããžã§ã¯ãïŒ The namespace UI is not defined
ïŒã§ã¯æ©èœããŸããã
çæ§ã®æçãªç¥èã«æè¬ããŸãïŒ ç§ãã¡ã®ããŒã ã¯ããã«ã€ããŠè©±ãåããWinUI2.2ãšWinUI3ãããã³ãããã®ãªãªãŒã¹ã«å«ãŸããå€ãã®éèŠãªæ©èœã«çŠç¹ãåãããŠãããããçŸæç¹ã§ã¯ããã«æè³ããããã®ãªãœãŒã¹ããªããšå€æããŸããã WinUI 3ãåºè·ãããXAMLãã¬ãŒã ã¯ãŒã¯ãOSããåãé¢ããããšãç§ãã¡ãšã³ãã¥ããã£ã¯äžç·ã«ãããåæ€èšã§ããŸãã ãã®åé¡ã«needs-winui-3ã©ãã«ãè¿œå ããŸãããã®ãã£ã¹ã«ãã·ã§ã³ã§ã¯ãFïŒãµããŒãã«é¢ããã³ã¡ã³ããåŒãç¶ãå ±æããŠãã ãããããããã°ãåŸã§ãã®åé¡ã«æ»ã£ããšãã«ããªãã®å£°ãèãããŸãã
æãåèã«ãªãã³ã¡ã³ã
FïŒ2ã€ã®éèŠãªã¢ãããŒãããããŸãã
1ïŒFïŒïŒå¯å€ïŒã¬ã³ãŒããXAMLãã€ã³ãã£ã³ã°ãã¬ã³ããªãŒã«ãã/ Gjallarhorn;
2ïŒãšã«ããã·ã¥ã¹ã¿ã€ã«
äž¡æ¹ãšããµããŒãããããµã³ãã«ããããŸãã ãã¶ãå°æ¥çã«ã¯1ã€ã®ãã¬ã³ãã ãããã£ãšäœ¿ãããããã«ãªãã§ãããã
.NET 5ã®UIçšã®FïŒãããžã§ã¯ããã³ãã¬ãŒããå¿ èŠã«ãªããŸã