Kinzaããã®ä¹ãæããããªã¼åã¿ãã¯Vivaldi + Forest ããã§æ±ºã¾ãï¼

èæ¯ã試è¡é¯èª¤ã®å 容ã«èå³ããªããä¸è¨ã®ãããªããªã¼åã¿ãããã使ãããå ´åã¯ã è¨å®ã®ã¾ã¨ããè¦ã¦ãã ããã
èæ¯
kinzaãããªã¼åã¿ãã§è¡¨ç¤ºã§ããChromiumãã©ã¦ã¶ã¨ãã¦éå®ãã¦ãããã 以åããGoogleã¢ã«ã¦ã³ãã®åæãã§ããªããªããéã«ã
2021/07/09ã«kinzaã®éçºçµäºãã¢ãã¦ã³ã¹ããã¾ããã
ããªã¼åã¿ããæ¢ãã¦ã¾ããã©ã¦ã¶é£æ°ã¨ãªã£ã¦ãã¾ãã¾ããã
Google Chromeã®æ¡å¼µæ©è½ãMicrosoft Edgeã®ç¸¦åã¿ãã¨è©¦ãã¦ã¿ããããã£ããããã®ããªãã®ã§ãã
å
¬å¼ãµã¤ãã«ããåéºãããæ¹ã«ãææ¡ãã¿ããã¼ã¯é表示ã«ãã§ãã¾ããããã§ããµã¤ããã¼ã®ã¦ã£ã³ãã¦ããã«ãããããªã¼åã§ã¿ã管çã§ãã¾ãã ã®è¬³ãæå¥ã«æ¹ãããVivaldiã試ããã¨ã«ãã¾ããã
試è¡é¯èª¤
ç°å¢
- ãã©ã¦ã¶:Vivaldi 4.2.2406.48 (Stable channel) (64-bit)
- OS:Windows 10 OS Version 20H2 (Build 19042.1237)
æ¨æºæ©è½ã®ã¦ã£ã³ãã¦ããã«
Vivaldiã®å
¬å¼ãµã¤ãã« ããªã¼åã¿ã ã¨ãã¦è¼ã£ã¦ããã¦ã£ã³ãã¦ããã«ã試ãã¦ã¿ã¾ãã
- 表示ã®è¨å®ã夿´ãã
1) ãµã¤ããã¼ã®ã¦ã¤ã³ãã¦ããã«ã表示ãã
2) ã¿ããé表示ã«ãã
è¨å® > ã¿ã ã¿ããã¼ã表示 ã®ãã§ãã¯ãå¤ã
- ã¿ããæä½ãã
1) ã¿ããéã
2) ã¿ããå¥ã®ã¿ãä¸ã«ãã©ãã°ãã
ããã§ä»¥ä¸ã®ããã«ãããªã¼åã¿ã風ã®è¡¨ç¤ºã¯ã§ãã¾ãã

Vivaldiã®æ¨æºæ©è½ç¯å²ã®ããªã¼å風表示
ã§ãããã¾ã§ ããªã¼åã¿ã風 ã§ãã
ããªã¼è¡¨ç¤ºã§ããã®ã¯ã¿ãã¹ã¿ãã¯ã®2é層åã ãã§ãã
3é層以ä¸ã®ããªã¼ã«ã¯ãªãã¾ããã
ã¾ããã¿ãã¹ã¿ãã¯ã«ããã«ã¯ãã¿ããã¹ã¿ãã¯ãããã¿ãã¸ãã©ãã°ã¢ã³ãããããããå¿
è¦ãããã¾ãã
ããã§ã¯é¢åãããã§ãã
欲ããã®ã¯ããã§ã¯ãªãã£ãã§ãã
Tree Tabs
次ã«è©¦ããã®ã¯ãVivaldi ããªã¼åã¿ã ã§ã°ã°ãã¨ãããããããTree Tbasã§ãã
- Vivaldiãã©ã¼ã©ã ã®Tree Tabsã®æç¨¿
- Vivaldi ã§ Firefox ã® ããªã¼ã¹ã¿ã¤ã«ã¿ã (Tree Style Tab)ã®æ©è½ãå®è£ ãããæ¹æ³
- Google Chromeã®ä»£æ¿ãã©ã¦ã¶ãVivaldiã§ããªã¼åã¿ãã使ã
Tree Tabs 1.9.2ã ã¨ä»¥ä¸ã®èªã¿è¾¼ã¿ã¨ã©ã¼ã«ãªã
æé éããè§£åãã¦ãmanifest.jsonãç·¨éãã¦ã以ä¸ã®ã¨ã©ã¼ã«ãªãã¾ãã

詳細ã§ã¨ã©ã¼ã¡ãã»ã¼ã¸ã確èªããã¨ä»¥ä¸ã®ã¨ã©ã¼ãåºã¦ãã¾ãã

- Unrecognized manifest key 'sidebar_action'.
- Permission 'tabHide' is unknown or URL pattern is malformed.
manifest.json ãã該å½ç®æãåé¤ããã¨ãèªã¿è¾¼ã¿ã¨ã©ã¼ã«ã¯è§£æ¶ã§ãã¾ãããã
ãããã¦ã§ãããã«ã«ç»é²ãã¦ããã¦ã§ãããã«ãéãã¨ä»¥ä¸ã®ã¨ã©ã¼ã«ãªãåä½ãã¾ããã
ãã®ãµã¤ãã«ã¢ã¯ã»ã¹ã§ãã¾ãã
chrome://extensions/${ID}/sidebar.html ã®ã¦ã§ããã¼ã¸ã¯ä¸æçã«
忢ãã¦ããããæ°ããã¦ã§ãã¢ãã¬ã¹ã«ç§»åããå¯è½æ§ãããã¾ãã
Tree Tabs 2.0.9
Vivaldiãã©ã¼ã©ã ã®Tree Tabsã®2021å¹´5æ29æ¥ã®ã¾ã¨ã
ãã¡ãã§ãªã³ã¯ããã¦ããTree Tabs 2.0.9ã ã¨ãèªã¿è¾¼ã¿ã¯æ£å¸¸ã«ã§ãã¾ããããã¯ããç»é²ããã¦ã§ãããã«ãéãã¨ä»¥ä¸ã®ã¨ã©ã¼ã«ãªãã¾ãã
ãã®ãµã¤ãã«ã¢ã¯ã»ã¹ã§ãã¾ãã chrome://extensions/ dcnbcjkkgmcndgcommhppkgddahipiha/sidebar.html ã®ã¦ã§ããã¼ã¸ã¯ä¸æçã« åæ¢ãã¦ããããæ°ããã¦ã§ãã¢ãã¬ã¹ã«ç§»åããå¯è½æ§ãããã¾ãã
Tree Tabs 2.0.9ãé§ç®ã§ãã
åä½ãããåå ãããããªãã®ã§ãTree Tabsã¯è«¦ãã¾ããã
Forest: Tree Style Tab Manager
Googole Chromeã§ãããªã¼åã¿ãã®æ¡å¼µãæ¢ãã¦ããã¨ãã«ãForest: Tree Style Tab Manager ã試ãããã¨ãããã¾ãã
Tree Tabsã§ã¦ã§ãããã«ã«ç»é²ããã¢ã¤ãã£ã¢ãåèã«ãGoogole Chromeã§è©¦ããæã«æãã䏿ºç¹ãVivaldiãªãè§£æ¶ã§ãããã ãªã¨æã試ãã¦ã¿ã¾ããã
ãã®æ¡å¼µã«ã¯ã以ä¸ã®2ã¤ã®è¡¨ç¤ºã¢ã¼ããããã¾ãã
External
Inline
External

Google Chromeã®ããªã¼åã¿ãã®æ¡å¼µç³»ã§ããããå¥ã¦ã¤ã³ãã¦ã§è¡¨ç¤ºããã¿ã¤ãã®æ¡å¼µã§ãã
ããã¯ã«ãã³æªãã®ã§å«ã§ãã
Inline

ããªã¼åã¿ãã®è¦ãç®ã¯åé¡ãªãã§ãã
ããããForestãæä½ãªãã¨ãã«ã¯ããµã¤ããã¼ãéãããã¾ãã
Webãµã¤ããèªã¿å§ããã¨éãããã¦ãã¾ãã®ã§ãã¿ãã®æä½ãããã¨ããã¨ãã«ã¼ã½ã«ã端ã¾ã§ç§»åãã¦å表示ããå¿
è¦ãããã¾ãã
ãããæ®å¿µã ã£ãã®ã§ãéå»Google Chromeã§æ¡å¼µãæ¢ãã¦ããæã«ã使ç¨ã諦ããçµç·¯ãããã¾ãã
ãã¨ãGoogle Chromeã ã¨ä¸é¨ã®ã¿ããã¼ãæ¶ããªãç¹ã䏿ºã§ããã
Vivaldiã ã¨ã¿ããã¼ãé表示ã«ã§ããã®ã§ãããã¯1ã¤ä¸æºç¹ããªããªãã¾ããã
ã¦ã§ãããã«
Tree Tabsã®ã¦ã§ãããã«åãåèã«ãForest: Tree Style Tab Managerã使ãå ´åããInlineã§ã¯ãªããExternalã«è¨å®ãããã®æ¡å¼µæ©è½ã®URLãã¦ã¨ãããã«ã«ç»é²ããã°åæã«éãããã䏿ºç¹ãè§£æ¶ã§ããã®ã§ã¯ãªããã¨æãã¾ããã
Externalã®ã¦ã¤ã³ãã¦ã®URLãã³ãã¼ãã¦ãã ããã Externalã®URLã®ä¾
chrome-extension://hbledhepdppepjnbnohiepcpcnphimdj/forest_external.html
ãã®URLãã¦ã§ãããã«ã«ç»é²ãã¾ãã

以ä¸ã®ãããªããªã¼åã¿ãã§è¡¨ç¤ºã§ãã¾ããã

3é層以ä¸ã§ãããªã¼åã§è¡¨ç¤ºã§ãã¦ãã¾ãã
ããã§ããªã¼åã¿ãã§æãæµ®ãã¹ãã¤ã¡ã¼ã¸éãã«ãªãã¾ããã
è¨å®ã®ã¾ã¨ã
1) ã¿ããã¼ãé表示ã«ãã
è¨å® > ã¿ã ãã¿ããã¼ã表示ãã®ãã§ãã¯ãå¤ã
2) Forest: Tree Style Tab Managerãã¤ã³ã¹ãã¼ãã
https://chrome.google.com/webstore/detail/forest-tree-style-tab-man/hbledhepdppepjnbnohiepcpcnphimdj?hl=ja
3) Forest: Tree Style Tab Manager ã®è¡¨ç¤ºã¢ã¼ããExternalã«ãã
4) Externalã®ã¦ã¤ã³ãã¦ã®URLãã¦ã§ãããã«ã«ç»é²ãã
chrome-extension://${ID}/forest_external.html
æ°ããã¦ã¤ã³ãã¦ãéãå ´åã®ã³ã
æ°ããã¦ã¤ã³ãã¦ãéããå ´åã«ãæ¢åã¦ã¤ã³ãã¦ã®ã¿ããå¼ãç¶ãã§è¡¨ç¤ºããã¦ãã¾ãããæ°ããã¦ã¤ã³ãã¦å´ã§è¡¨ç¤ºãåãæ¿ãããã¨ã§ã¦ã¤ã³ãã¦ãã¨ã®ã¿ã®ã¿ãã表示ãããã¨ãã§ãã¾ãã
1) cross window management ãéã

æ°ããã¦ã¤ã³ãã¦å´ã® Switch ãã¯ãªãã¯ãã

å°ãç¹
Forest: Tree Style Tab Managerã使ç¨ã§ã以ä¸ã®ç¹ã§å°ã£ã¦ãã¾ãã
ãã¼ã¯ã¢ã¼ãã®ãã¼ãã«åãæ¿ããã®ã¯æå ä»ã®æ©è½ãå«ãã¦æåãã©ã³ã«å¤æ®µã»ã©ã®é åã¯æããªããã®ã§ããªã¼ãã©ã³ã®ã¾ã¾ä½¿ããã¨æãã¾ãã
Forest: Tree Style Tab Managerããæ¢åã®ã¿ããå¥ã®ã¦ã¤ã³ãã¦ã«åé¢ä¸å¯- ã¿ãããã©ãã°ãããããããã¨ãã¦ãâã«ãªã£ã¦ãã¾ãã§ããªãã§ãã
cross window managementãããã¦ã¤ã³ãã¦éã®ã¿ãã®ç§»åã¯ã§ããªãã§ãã
æ°ããã¦ã¤ã³ãã¦ãéãããããã¯ãã¦ã¤ã³ãã¦ãéããã¨ãæ¢åã®ã¦ã¤ã³ãã¦ã®ã¿ããããWindow 1ãã«ãã©ã¼ã«ã¹ãããç¶æ ã«åæã«å¤ãã£ã¦ãã¾ãã(2021/09/29 22:17 追è¨)
ãVS Code Conference Japanãã®ã¾ã¨ã #vscodejp

.NET 5 ãªãªã¼ã¹è¨å¿µã®ã¤ãã³ã ã¯æåèµ·ãããã¦ãããã°ãæ¸ãã®ã«ãããæéãããã£ãã®ã§ãä»åã¯å人çã«æ°ã«ãªã£ãããé¢ç½ãã£ããããã¨ããã®ã¹ã¯ãªã¼ã³ã·ã§ãããããã¯ã¢ãããã¦ã¾ã¨ãã¾ãã
- åç¥å 容
- ãªã¼ããã³ã°
- ã¯ããã¦ã® VS Code and Codespaces
- AI/MLã¨ã³ã¸ãã¢ã«ä¼ããã令åæä»£ã®VS Code使ãããªãè¡ï¼
- ã¢ããªéçºï¼ãã¼ã 管çã§å½¹ç«ã£ãæ¡å¼µæ©è½
- Fortran ãæãä¸çãVS Code ãæ¶ããæ©
- Visual Studio Code æ¡å¼µæ©è½ã®æ´»ç¨
- Remote Development with Podman
- æå¼·ã® Dev Container ãèãã
- LT
- ã¯ãã¼ã¸ã³ã°
- ææ³
åç¥å 容
VS Code Conference Japan
ã¤ãã³ãæ¦è¦
VS Code 5å¨å¹´ã¤ãã³ã ã§ãï¼
Visual Studio Code ããªãªã¼ã¹ããã¦ãããããã 5 å¨å¹´ã«ãªãã®ãè¨å¿µãã¦ãVS Code Meetup 主å¬ã®ãã¸ã¿ã«ã¤ãã³ããéå¬ãããã¾ãï¼ï¼ï¼
Visual Studio Code ã«èå³ãããæ¹ãVisual Studio Code ãæãã¦ããæ¹ãæããã¯ã¨ Visual Studio Code ã«ã¤ãã¦èªãããæ¹ãªã©ãã¿ããªã§éã¾ã£ã¦ 5 å¨å¹´ããç¥ããããï¼ï¼ï¼
ãªã¼ããã³ã°
ç´¹ä»ãããæ¡å¼µæ©è½
è³æ
åç» youtu.be
ãã¤ã¯ãã½ããVS Code Teamã®Alessandro Segala san(@ItalyPaleAle)ããã®ãããªã¡ãã»ã¼ã¸ www.youtube.com
ã¯ããã¦ã® VS Code and Codespaces
Q&A
- Q1.VS Codeå ¬å¼ãµã¤ãã®æ¥æ¬èªåã®äºå®ã¯ããã¾ããï¼ https://code.visualstudio.com/
A1.ã·ã¹ãã çãªåé¡ã§ãç´è¿ã§ã¯é£ãããæ¬ç¤¾ã¸ãã£ã¼ãããã¯ã¯è¡ã£ã¦ããããã¼ã¯ã³ããã·ã¥ãã¦ããã
Visual Studio Codeãã¢ã¯ã»ã·ããªãã£ãæèãã¦ä½ããã¦ããã https://code.visualstudio.com/docs/editor/accessibilityQ2.Visual Studio Codeã®ãã¼ã¸ã§ã³ã¯ãªããªã2ã«ãªããªãã§ããã
A2.ãã¤ä¸ãããã¯åãããªãã
Q3.VS Codeã§C#Eã®ãã¹ã¯ãããã¢ããªã®éçºã¯ã§ããã®ãï¼
A3.ãã£ããã¨ããªãããããªãããªãã https://visualstudio.microsoft.com/ja/ ã§ã¯Visual Studioãå§ããããã
ãã¹ã¯ãããã¢ããªéçºã§ããªãã¯ãªããã©Visual Studio 2019ã®ã»ããæ¥½ã¡ãã§ã #vscodejp
— ããã(Kazuki Ota) (@okazuki) 2020å¹´11æ21æ¥Q4.ãã¤ã¯ãã½ãã社å¡ã¯VSã¨VS Codeã©ã¡ãã使ã£ã¦ã人ãå¤ãã§ããï¼
- A4.VS Codeãå¢ãã¦ããçµ±è¨çãªãã®ã§ã¯ãªããèæã§ã
ç´¹ä»ãããæ¡å¼µæ©è½
è³æ
ã¹ã©ã¤ã
speakerdeck.comåç»
youtu.be
AI/MLã¨ã³ã¸ãã¢ã«ä¼ããã令åæä»£ã®VS Code使ãããªãè¡ï¼
ç¶ãã¯Webã§ã
Q&A
- Q1.Anaconda ããæè¿å¤§è¦æ¨¡ãªåç¨å©ç¨ã§ãéãããããã«ãªã£ããã§ããã£ãï¼
- A1.åãä¸ããªãã
ãã£ãã® Anaconda ã®æåã¨ãã®è©±ã¯ããã§ç¥ã£ãæã #vscodejp https://t.co/0JxSRw0LkP
— ããã(Kazuki Ota) (@okazuki) 2020å¹´11æ21æ¥
ç´¹ä»ãããæ¡å¼µæ©è½
è³æ
ã¹ã©ã¤ã
speakerdeck.comåç»
youtu.be
ã¢ããªéçºï¼ãã¼ã 管çã§å½¹ç«ã£ãæ¡å¼µæ©è½
ç´¹ä»ãããæ¡å¼µæ©è½
- ç´¹ä»ããã¦ããæ¡å¼µæ©è½
éçºç°å¢ç·¨
ãµã¼ãã¼ã¬ã¹ã¢ããªç·¨
ã³ã¼ãã£ã³ã°è£å©
Gitç·¨
ãã®ä»æ¯æ´ç·¨
è³æ
ã¹ã©ã¤ã
www2.slideshare.net
åç»
youtu.be
Fortran ãæãä¸çãVS Code ãæ¶ããæ©
ç´¹ä»ããã¦ããæ¡å¼µ
- Modern Fortran
- FORTRAN IntelliSense
- Fortran Breakpoint Support
- fprettify
- CMake
- Remote - SSH
- Image preview
è³æ
- ã¹ã©ã¤ã
www2.slideshare.net - åç»
youtu.be
Visual Studio Code æ¡å¼µæ©è½ã®æ´»ç¨
ç´¹ä»ãããæ¡å¼µæ©è½
- JavaScript (ES6) code snippets
- Draw.io Integration
- Vetur
- Go
- Swagger Viewer
- REST Client
- Spring Boot Extension Pack
- Docker
- Kubernetes
- Elasticsearch for VSCode
è³æ
ã¹ã©ã¤ã
www2.slideshare.net
åç»
youtu.be
Remote Development with Podman

é¢é£ãªã³ã¯
- ã³ã³ããã¼ã®æ§ç¯ãå®è¡ãããã³ç®¡ç
- podman/Troubleshooting
- How to run Podman on Windows with WSL2
- Docker in Docker
- Dockerã¦ã¼ã¶ã¼ã®ããã®Podmanã¨Buildahã®ç´¹ä»
Q&A
- Q1.ãªãã§RHELã¯Dockerã®ãµãã¼ããè¾ããã®ãï¼
A1. æ·±ãåé¡ããªã³ã¯ ã«ãæ¸ãã¦ããããåºæ¬çã®ã¯ä¼ç¤¾ã®æ¹éã ä¸è¨ã§è¨ãã®ã¯é£ãããæ°ã«ãªãæ¹ã¯èª¿ã¹ã¦ãã ããã
Q2.ã³ã³ããå¨ãã®æ¡å¼µæ©è½ãå¢ãã¦ãã¦é¸ã³æ¹ãé£ãããªã£ã¦ãã¦ãã¨æãã®ã§ãããæ¡å¼µæ©è½ã®ç¸æ§ã¨ããã£ããèãããã§ãã
A2.Remote Developmentã¨Dockerã®æ¡å¼µããå ¥ãã¦ãªãã®ã§ãç¸æ§ã®åé¡ã«ããã£ããã¨ã¯ãªãã
Q3.ãã¤åå¼·ããæéãã¨ã£ã¦ãã¾ããï¼
A3. èµ·ãã¦ãæéã«ãªãã¨ãæ»åºãå®¶äºããã¦ããæéã«ã¹ã©ã¤ããã¿ãèãã¦ããã
Q4. ã¶ã£ã¡ãããRemote Development with podmanãå®éç¨ã§å©ç¨ã§ãããã¨ãæå¾ ã§ããã®ãï¼
- A4. ã¾ã ã¾ã ãæ£ç´Fedoraã§åãããã¨ã¯ã§ããããã¾ã ã¾ã 使ãããªãã¦ããªããDockerã«æ¯ã¹ã¦ãã°ãæ½ãã§ãããããããªãã å°æ¥ãDockerãPodmanã©ã£ã¡ãåªå¢ã«ãªããããããªãã®ã§ãPodmanã®ããã¨ãããç¹å¾´ãç¥ã£ã¦ããã®ãããã¨æãã
ç´¹ä»ãããæ¡å¼µæ©è½
è³æ
- ã¹ã©ã¤ã
speakerdeck.com - åç»
youtu.be
æå¼·ã® Dev Container ãèãã

- é¢é£ãªã³ã¯
è³æ
ã¹ã©ã¤ã
docs.google.comåç»
youtu.be
LT
Emacsããããã®VS Codeææ¦è¨

- Emacsã¯1989å¹´ãã使ã£ã¦ãã
- Visual Studio Codeã¯0.5.0ãã使ã£ã¦ãã
- Emacsã¦ã¼ã¶ã¼ãVS Codeã使ãéã®ãã¼ãã¤ã³ãã¯ãVS Codeã®ããã©ã«ããEmacsãã¼ãã¤ã³ãã宿ä¸ã®çç±ã§VS Codeã¯æ±ºãã¦ä½¿ããªãã23.1%ãã¤ã
Emacsã¦ã¼ã¶ã¼ã®çããã«è³ªåã§ãã
— NAKAMURA Yoshiyuki (䏿 è¯å¹¸) (@nakayoshix) 2020å¹´11æ20æ¥
VS Codeã使ãéã«ã¯ããã¼ãã¤ã³ãã£ã³ã°ã¯ã©ããã¦ã¾ããï¼
- åç»
youtu.be
VS CodeãSQL ã¯ã©ã¤ã¢ã³ãã«ãªã ~ DBã«VS Codeã§æ¥ç¶ãã

- Visual Studio Codeã¯ããã¯ãåãªãããã¹ãã¨ãã£ã¿ã§ã¯ãªã
- SQL Server (mssql)ãAzure DatabasesãPostgreSQLLãMySQL(Jun Han)ã§ãSQLã¯ã©ã¤ã¢ã³ãã¨ãã¦ä½¿ããã
- 詳ããã¯ããã°ã®è¨äº ãèªãã§ããã¶ãå¾ã§ããã¢ã®åç»ãå¾ã§ãããã
è³æ
github.comåç»
youtu.be
ãã®æ¥ã®ããã«æ¡å¼µæ©è½ãä½ã£ã話

- @okazukiããã«
ããã®ãããã¦èªããã¦ãLT忦 - ä»äºã¯çé¢ç®ãªãã®ãä½ã£ã¦ãã®ã§ããã¾ã«ã¯é¢ç½ããã®ãä½ãããâGet Wildéå¤ æ¡å¼µæ©è½
- åä½ããæ§å https://twitter.com/ColloidGel/status/1328337438482329600
ã¹ã©ã¤ã
docs.google.comåç»
youtu.beããã°
ãæ°ã«å ¥ãæ¡å¼µæ©è½ã«ã¤ãã¦

- GitLens
- Prettier
- Code Spell Checker
ã¹ã©ã¤ã
www.slideshare.net
åç»
youtu.be
ãå§ããããã®ã§ REST Client ã使ã£ã¦ã¿ã

- REST Clientã1ããã¹ãã«è¤æ°ãªã¯ã¨ã¹ãæ¸ãã¦ã夿°ã使ãã¦ãã³ã¡ã³ããèªç±ã«æ®ãã¦ãGitã§å ±æã楽
- Visual Studio CodeããAPIãå©ããæç¹ã§ç¥
- VTuberï¼ï¼ï¼
ã¹ã©ã¤ã
www.slideshare.net
åç»
youtu.be
ã¯ãã¼ã¸ã³ã°

VS Code Meetup #8 - å¿å¹´ä¼ & LTä¼

- åç» youtu.be
ææ³
10:00ï½17:00ã¾ã§ã®1æ¥ã¤ãã³ãã§ãããããã£ã¨è¨ãéã ã£ãã
è¦ãªããæ¡å¼µãã¤ã³ã¹ãã¼ã«ãããã®ãããã®ã§ããã£ãã試ç¨ãã¦ããããã
Dev Containerããããã ããããããªãããã
Fortranã®ã»ãã·ã§ã³ã®ä¸ã§åºã¦ãã è¯ãéå
·ã¯ä¸ç観ãå¤ãã ãè¸ã«é¿ããã
LSP(language server protocol)ãããã ã£ããã©ãDev Containerã§ãVS Codeãä¸å¿ã«ãã¦ãä¸ç観ãå¤ãã£ã¦ãã£ã¦ããããã«æãã䏿¥ã ã£ãã
çºè¡¨è ãéå¶ã®æ¹ããããã¨ããããã¾ããï¼
第2ã®è³ã謳ãObsidianã§Markdownãã¡ã¤ã«ã®ãã¤ãªããããè¦ããåãã

- ãããããã¨
- Obsidianã®ç¹å¾´
- ãã¼ã«ã«ã®markdownãã¡ã¤ã«(.md)ãæ±ãã
- ãã¡ã¤ã«éã®é¢ä¿ãã°ã©ããã¥ã¼ã§è¡¨ç¤ºã§ãã
- ããã¯ãªã³ã¯ã表示
- åé¡ç¨ã®ã¿ã°
- å ¬å¼ãµã¤ã
- é¢é£ãªã³ã¯
ãããããã¨
- pukiwikiã®relatedãã©ã°ã¤ã³ã®ããã«ãããã¯ãªã³ã¯ãMarkdownã§ã表示ã§ãããããã®ã«ã
- Scapboxã®ãã¼ã¸ãªã³ã¯ãè¨è¿°ããã¨è¡¨ç¤ºãããé¢é£ãã¼ã¸ã®ãããªãã¨ãMarkdownã§ãã§ããããªããã®ã«ã
- Roam Researchã®ãããªãããã¯ã¼ã¯ã°ã©ãããã¼ã«ã«ã®Markdownãã¡ã¤ã«ã§ãã§ãããããã®ã«ã
- Emacsã®Markdownããªã¢ã«ã¿ã¤ã ãã¬ãã¥ã¼ããã®ã«ãæè»½ãªãã¥ã¼ã¢ã¼ããã£ããããã®ã«ã
Obsidianã®ç¹å¾´
ããããObsidianãªããã§ãããã§ãã
Obsidainã¯ã以ä¸ã®ç¹å¾´ãåããMarkdownã¨ãã£ã¿ã§ãã
- ãã¼ã«ã«ã®Markdownãã¡ã¤ã«(.md)ãæ±ãã
- ãã¡ã¤ã«éã®é¢ä¿ãã°ã©ããã¥ã¼ã§è¡¨ç¤ºã§ã
- ããã¯ãªã³ã¯ã表示ã§ãã
- åé¡ç¨ã®ã¿ã°
#ã¿ã°ã使ãã - ãªã³ã¯ã«
[[wiki-links]]å½¢å¼ã使ãã - ã³ã¼ããããã¯ã®mermaid対å¿ãã¦ãããå³ãåãè¾¼ãã
- æ°å¼ã表示ã§ãã
- ãã¡ã¤ã«ã®åãè¾¼ã¿ã使ã£ã表示ãã§ãã(pukiwikiã®includeãã©ã°ã¤ã³ç¸å½)
- WindowsãmacOSãLinuxã®ã¢ããªã±ã¼ã·ã§ã³ãç¨æããã¦ãã
ãã®ä¸ã§ãä¸ã®4ã¤ãç´¹ä»ãã¾ãã
ãã¼ã«ã«ã®markdownãã¡ã¤ã«(.md)ãæ±ãã
ObsidianãMarkdownãæ¸ãã¨ãã£ã¿ã¨ããååã«ä½¿ããã¨æãã¾ãããããã°ã©ãã¼ãå§ãã¨ãã¦ãæ®æ®µã½ããã¦ã§ã¢ã®éçºã«é¢ããæ¹ã§ããã°ããæ°ã«å ¥ãã®ã¨ãã£ã¿ã§makrdownããã§ã«æ¸ãã¦ããã¨æãã¾ãã
Obsidianã¯ãMarkdownå°ç¨ã¨ãã£ã¿ã«ããããç¬èªDBå½¢å¼ã«æ ¼ç´ããã¿ã¤ãã§ã¯ãªãããã¼ã«ã«ã®Markdownãã¡ã¤ã«(.md)ãæ±ãã¾ãã
ãã®ãããæ®æ®µä½¿ãã®ã¨ãã£ã¿ã§æ¸ãã¦ãObsidianããã¥ã¼ã¢ã¼ã¨ãã¦ä½¿ãã¨ãã£ããã¨ãã§ãã¾ãã
Obsidianã§ã¯ã Vault ã¨ãããã©ã«ãåä½ã§ç®¡çãã¾ãã Vaultã¯è¤æ°ãã©ãã«ã§ãä½ãã¾ãã
ãããã¯ã¼ã¯ã°ã©ããããã¯ãªã³ã¯ãã¿ã°ã¯ã Vault åä½ã«ãªãã¾ãã Vault ãè¤æ°éãã«ã¯ãObsidianãè¤æ°ç«ã¡ä¸ãããã¨ã«ãªãã¾ãã

以ä¸ã®ããã«æå®ãããã¨ã
Vault name:dotnet-doc
Location:D:\workspace
以ä¸ã®ãããªãã£ã¬ã¯ããªã使ããã¾ãã
D:\workspace\dotnet-docs\.obsidian
â config
â graph.json
â workspace
Obsidianã§ä½æãã Markdownãã¡ã¤ã«ã¯ã Vault é
ä¸ã«ã .mdå½¢å¼ ã§ä¿åããã¾ããå¥ã®ã¨ãã£ã¿ã§ä½æãããã¡ã¤ã«ãæã£ã¦ãã¦ãèªèãã¾ãã
ãªã®ã§ãããã¯ãªã³ã¯ããããã¯ã¼ã¯ã°ã©ããè¦ããã¥ã¼ã¢ã¼ã¨ãã¦ä½¿ãã¨ãã£ãä½¿ãæ¹ãã§ãã¾ãã
ãã§ã«ãEmacsãvimãVisual Studio Codeãªã©å¥ã®ã¨ãã£ã¿ã使ã£ã¦ã人ã«ãåªããã§ãã
Emacsã®markdown-modeã§æ¸ãã¦ããªã¢ã«ã¿ã¤ã ãã¬ãã¥ã¼ã¨ãã¦ä½¿ãã«ãããã¨æãã¾ãã
ãã¡ã¤ã«éã®é¢ä¿ãã°ã©ããã¥ã¼ã§è¡¨ç¤ºã§ãã
Obsidianã®å£²ãã®æ©è½ã§ãMarkdownãã¡ã¤ã«éã®é¢ä¿ããããã¯ã¼ã¯ã°ã©ãã§è¡¨ç¤ºãã¦ããã¾ãã
[[wiki-links]] ã使ãã¾ãããé常ã®Markdownè¨æ³ã® [ãªã³ã¯ããã¹ã](ãã¡ã¤ã«å) è²¼ã£ã¦ãããªã³ã¯ã対象ã§ãã
ä¾ãã°ãObsidianã®ãã«ããã°ã©ããã¥ã¼ã§è¡¨ç¤ºããã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
1ã¤ã®ãã¼ãã«ã«ã¼ã½ã«ãåãããã¨ãããã«ã¤ãªãã£ã¦ãããªã³ã¯ã強調ãã¦ããã¾ãã
Ctrlãæ¼ããªãããã«ã¼ã½ã«ãåãããã¨ããã¡ã¤ã«ã®ãã¬ãã¥ã¼ã表示ãããã¨ãã§ãã¾ãã
(ããã¯ããã©ã«ãã§ã¯OFFã«ãªã£ã¦ãã®ã§ã Setting ã® Core Plugins ã§ Page preview ã ON ã«è¨å®å¤æ´ãå¿
è¦ã§ãã)
Obsidainã®ãã«ãã¯Markdownãã¡ã¤ã«ã259åãªã®ã§ãåé¡ãªã表示ã§ãã¦ãã¾ããããã¡ã¤ã«æ°ãå¤ããªãã¨ã©ããªããã ï¼ã¨çåã«æãããããã¾ããã
ãã¡ã¤ã«æ°ã12308åã®.NET Docsã表示ãã¦ã¿ã¾ãã
表示ã§ãã¾ããããããããã§ã¯ãªã«ããªãã ããããã¾ããã
ããããå ´åã¯ããã£ã«ã¿ã¼ã§ãé¢ä¿ããããªãã®ãæ½åºããã¨è¯ãããã§ãã
試ãã«ã async ã§ãã£ã«ã¿ã¼ãã¦ã¿ã¾ããã¹ãããªãã¾ããã
ãã®å¾ããã¦ã¹ã®ãã¤ã¼ã«ãã + ãã¼ã§ãã¡ã¤ã«åãè¦ããã¾ã§ãºã¼ã ããã¨è¯ãããã§ãã
ããã¯ãªã³ã¯ã表示
ç¾å¨ã®è¦ã¦ãããã¡ã¤ã«ããä»ã®ã©ã®ãã¡ã¤ã«ãããªã³ã¯ãè²¼ããã¦ããããå³å´ã®ãµã¤ããã¼ã«ããbacklinks for sync確èªãããã¨ãã§ãã¾ãã
(ããã¯ããã©ã«ãã§ã¯OFFã«ãªã£ã¦ãã®ã§ã Setting ã® Core Plugins ã§ Backlinks ã ON ã«è¨å®å¤æ´ãå¿
è¦ã§ãã)
[[wiki-links]] ã使ãã¾ãããé常ã®Makdownè¨æ³ã® [ãªã³ã¯ããã¹ã](ãã¡ã¤ã«å) è²¼ã£ã¦ãããªã³ã¯ã対象ã§ãã
ã¾ãããµã¼ãããã£ã¼è£½ã®ãã©ã°ã¤ã³ã使ãã¨ããã¡ã¤ã«ä¸ã«ããã¯ãªã³ã¯ã表示ãããã¨ãã§ãã¾ãã
(Setting ã® Tird-party Plugins ã§ã Safe Mode ã OFF ã«ãã¦ã Backlinks in document ãã¤ã³ã¹ãã¼ã«ãã¦ã ON ã«ããã)
åé¡ç¨ã®ã¿ã°
Markdownã®è¨æ³ãå¤ãã¦ãã¾ãã¾ããã #ã¿ã° ã§åé¡ãããã¨ãåºãã¾ããæ¥æ¬èªã®ã¿ã°ã使ç¨ãããã¨ãã§ãã¾ãã
(ããã¯ããã©ã«ãã§ã¯OFFã«ãªã£ã¦ãã®ã§ã Setting ã® Core Plugins ã§ Tag Pane ã ON ã«è¨å®å¤æ´ãå¿
è¦ã§ãã)
ã¿ã°ãã¯ãªãã¯ããã¨ã該å½ç®æãä¸è¦§è¡¨ç¤ºããã¾ãã
å ¬å¼ãµã¤ã
é¢é£ãªã³ã¯
- æ å ±ççºæä»£ã®ã¡ã¢éã¢ããªObsidianï¼ãã©ã°ã¤ã³è§£èª¬
- ã¡ã¢ãã¼ã«Obsidianã®ä½¿ãæ¹
- ãã¼ãã¢ããªObsidianã®ä»ã®ãã¼ã«ã«ã¯ãã¾ããªã便å©ãªæ©è½3ã¤
- ã¡ã¢ã¢ããªObsidianã§å³è¡¨ãèªåçæãã
- Evernote vs Notion vs ScrapBox vs Roam Research vs Obsidian
- Obsidianã¨ãããã¼ãã¢ããªã使ã£ã¦ã¿ã
- Obsidianã®ãããè¯ã
ã.NET Conf 2020 Online - .NET 5 ãªãªã¼ã¹è¨å¿µ ãã¼ãã£ã¼ãã¼ã¯ã¸ãããããã®ã¾ã¨ã #dotnetconf

é¢ç½ããããã«ãªã£ãã®ã§ãæåèµ·ãããã¦ã¿ã¾ããã
- åç¥å 容
- .NET Conf 2020 Online - .NET 5 ãªãªã¼ã¹è¨å¿µ
- èªå·±ç´¹ä»ã¨æ¨ãæ©è½
- ç¥ .NET 5 ãªãªã¼ã¹ï¼
- NET 5 / BCL / C# 9
- ASP.NET Core Blazor
- Entity Framework Core
- Cloud native / Microservices
- Xamarin / .NET MAUI Preview
- Windows åãæ©è½ / ãã®ä»
- çªå¤ç·¨
- ä»å¾éå¬ããã .NET Conf é¢é£ã¤ãã³ã
- è³æ
- ææ³
åç¥å 容
.NET Conf 2020 Online - .NET 5 ãªãªã¼ã¹è¨å¿µãã¼ãã£ã¼ãã¼ã¯
.NET ããããªãæããã¨ã³ã¸ãã¢ã«ãã .NET 5ã®ãªãªã¼ã¹è¨å¿µãã¼ãã£ã¼ãã¼ã¯
ã¯ããã«
ä»å¹´ã® 11 æ 10ï½12 æ¥ã«æ¸¡ã£ã¦éå¬ããã .NET Conf 2020 ã§ã¯ã大注ç®ã®.NET 5 ã®ãã¼ã³ããäºå®ããã¦ãã¾ãï¼
https://www.dotnetconf.net/
.NET 5 ã§ã¯ .NET Core / .NET Framework (ã®ä¸é¨æ©è½) / Mono (Xamarin) ã®çµ±åãè¡ããããã¹ã¯ãããã¢ããªã®éçºããã¯ã©ã¦ãããã¦ã¯ã¢ãã¤ã«åããã¯ãã¾ã IoTãæ©æ¢°å¦ç¿åãã®éçºãªã©ãé常ã«å¹ åºãé åããµãã¼ããã¾ãããä¸äººã§å ¨ã¦ãææ¡ããã®ã¯é常ã«é£ããã§ããã
ããã§ãä»å㯠.NET ããããªãæããã¡ã³ãã¼ã«ãã£ã¦ .NET 5ã®æ³¨ç®æ©è½ãå人çã«æ¨ãããï¼ã¨ããæ©è½ãã¢ãããã¼ãã«ã¤ãã¦è©±ãã¡ããã¾ãï¼ãã¼ã¯ä»¥å¤ã«ãã©ã¤ãã³ã¼ãã£ã³ã°ãããããï¼ï¼
ãã¡ãã Twitter ã§ããã·ã¥ã¿ã°ãä»ãã¦è³ªåã§åå åºæ¥ã¾ããä¸ç·ã« .NET 5ã®ãªãªã¼ã¹ããç¥ããã¤ã¤ãçåç¹ã è§£æ¶ãã¡ããã¾ãããï¼
ã¹ãã¼ã«ã¼ã®ã¿ãªãã¾ï¼æ¬ç§°ç¥ï¼
ä»åã¯ãªã³ã©ã¤ã³éå¬ã®å©ç¹ãçãããæ¥æ¬åå°ãã .NETãæããã¨ã³ã¸ãã¢ãéã¾ãã¾ããï¼ãã®è±ªè¯ã¡ã³ãã¼ã§ã®ãã¼ã¯ã¯äºåº¦ã¨èããªãããï¼ï¼
Akira Inoue (ãã£ãã¯)
@chack411 .NET (ASP.NET) ã好ããé«ãã¦ãã®ã¾ã¾ MS ã«å ¥ã£ãã¨ã³ã¸ã㢠https://www.youtube.com/channel/UCTVaMV_epqpsEkpWuB_FfTQjsakamoto (åæµ·é)
@jsakamoto ASP.NET Core Blazor ããããªãæããã¨ã³ã¸ã㢠https://jsakamoto.github.io/Yuta Matsumura (ç¦å²¡)
@tsubakimoto_s .NET Coreã¨ã¯ã©ã¦ãã®çµã¿åãããªãä½ã§ãæ¥ããªã¨ã³ã¸ã㢠https://tsubalog.hatenablog.com/mitsuba yu (大éª)
@mitsuba_yu æè¿ ASP.NET Coreã«æµ®æ°ãã¦ãã¯ã©ã¤ã¢ã³ãç³»ã¨ã³ã¸ãã¢/ãã¶ã¤ãã¼ https://c-mitsuba.hatenablog.com/shibayan (æ±äº¬)
@shibayan .NET Core ã® ARM64 対å¿ãªã©ããããªé¨åã°ããã«æ°ã«ãªãã¨ã³ã¸ã㢠https://blog.shibayan.jp/
#dotnetconf
.NET Conf 2020 Online - .NET 5 ãªãªã¼ã¹è¨å¿µ

- .NET ããããªãæããã¨ã³ã¸ãã¢ã«ãã.NET ã®ãªãªã¼ã¹è¨å¿µãã¼ãã£ãã¼ã¯ã§ã
- ããã·ã¥ã¿ã°ã¯ #dotnetconf ã§ã
èªå·±ç´¹ä»ã¨æ¨ãæ©è½
- ãã£ãã¯
- Swagger/Open APIãæåããå ¥ã£ã¦ãã OpenAPI Specification on by default
- HttpRepl ããã¯ã¨ã³ãããããã°ããæã«ä¾¿å©
- ãããã¨
- Blazar
- CSSãJavascpitã®ã¢ã¤ã½ã¬ã¼ã·ã§ã³
- ã¾ã¤ãã
- Project Tye
- ã¿ã¤ã°
- WPF
- ZAMLå¨ãã®ãã¶ã¤ã³ãã¥ã¼
- ãã°ãã
- Entity Framework Core
- many to manyãã¤ãã«å¾©æ´»
- EF Coreã®ãã¼ã ã¯éææ§ã®é«ãéçºããã¦ãã®ã§æ¨ããã
- Entity Framework Core
ç¥ .NET 5 ãªãªã¼ã¹ï¼
ã¹ã©ã¤ã
- NET 5 / BCL / C# 9
- ASP.NET Core / Blazor WebAssembly
- Entity Framework Core
- Cloud native / Microservices
- Xamarin / .NET MAUI Preview
- Windows åãæ©è½ / ãã®ä»
åç»
https://youtu.be/HJ802p3syTw?t=444
NET 5 / BCL / C# 9
ãã ãã¼ã¸ã§ã³ã«ã¤ãã¦ã¯.NET Frameworkã®4.8ããã·ã ã¼ã¬ã¹ã«ã¢ããã°ã¬ã¼ãã§ããã¨ããè¨ã訳ã®ããã«ã.NET 5ã«ããã¨ããå Coreãã¯ãããã®ã¯ããããçç±ãã
ãã.NET Frameworkã¯4ã©ã¾ããæ¬¡ã¯5ã ãCoreãçµ±åãã¦ãCoreã¨ããåç§°ãã¨ã£ã¦ã.NETãã·ã³ãã«ã«.NET5ã§ãããæµãã§ãããã»ã»ã»ç¥ããªããã©ãã
ï¼ãããèãããã¾ãããã4ã¯ï¼ã£ã¦.NET Core 4ãããªããã ã£ã¦ãã
ï¼ãWindows 9 ããªãã£ãã§ããããã
ï¼ã触ãã¦ã¯ãããªãé¨åãã
ãã.NET Framework ãã.NET Coreã«ãªã£ã¦ãéçºã§ããé åãåºãã£ãçµæãåã«.NET5ã«ãã¼ã¸ã§ã³1åãããã¾ãããããªãã¦ãä¸èº«ã®ãã¬ã¼ã ã¯ã¼ã¯ãã¢ãããã¼ãããã¦ããã®ã§ä»åããã®ä¼ã¯ã©ããã«ç¹åããããããªãã¦ãããããã®ãã¬ã¼ã ã¯ã¼ã¯ã®é¨åã触ãã¦ãããããã
ãã.NETã®ã©ã³ã¿ã¤ã èªä½ãã¢ãããã¼ããããããã¾ãBCLã£ã¦è¨ããªããªã£ããããããªããæè¿ã¯Rutimeã¨ãããªãã¸ããªã追å ããããã
ããC# 9ã¸ã®ã¢ãããã¼ãã
C# 9.0ã®æ°æ©è½
ASP.NET Core / Blazor WebAssembly
ããASP.NET Coreã3.0ããWPFãWinFormã®ã¯ã©ã¤ã¢ã³ãç³»ã追å ãããããã¡ã¤ã³ã¯WebãASP.NET CoreãBlazarãã
ããWebAssemblyçã5æã«æ£å¼çã«ãªã£ããã5ã¸ã®ã¢ãããã¼ãã®ã¨ãã«ãã©ã¤ãã©ãªãmonoãã.NET 5çã«çµ±åãããã ããã©ã¼ãã³ã¹ããã¡ããã¡ããã£ãã£ã¦ãããã
ãã.NET 5ã¯ãããã©ã¼ãã³ã¹ãçµæ§æ¨ãã¦ãããå®ééãæ©ããªã£ã¦ããããæå¾ å¤ã¯é«ããã
ããASP.NET CoreãBlazorããã®2ã¤ãC#ã§ã®Webã¢ããªã±ã¼ã·ã§ã³éçºã®ã¡ã¤ã³ãã¬ã¼ã ã¯ã¼ã¯ãã
Entity Framework Core
ããæ¨ãã¦ããEntity Framewokr Coreãæã®Entity Frameworkã¯éåãªãã¬ã¼ã ã¯ã¼ã¯ãEF Coreã«ãªã£ã¦ã©ã¤ãã«ä½¿ããããã«ã®ORMã§ã¯ããããæ°è»½ã«ãè¨å®ãå°ãªã使ãã¦ä¾¿å©ãã
ããEFã¯ããã©ã¼ãã³ã¹ããªãã ããã è¨ããã¦ã¦èª²é¡ã ã£ããEF Coreã«ãªã£ã¦è»½éåãããã®ã¯ãããã¨ãã
ããæªã ã«EFãæ¨ãã§ããããªãã®EDMX fileã¨ããEFã¯SQLãããªãã¦Entity SQLã§æ¸ããããMicrosoftã®æªãã¨ãããå ¨é¨ã§ã¦ããã EF Coreã¯ã·ã³ãã«ãªãããã¤ãã¼ã«ãªã£ããã
ããããã©ã¼ãã³ã¹ã ã¨ããã¹ãã®TechEmpower ã®ãã³ããã¼ã¯ãã¹ãã§ã¯ãDBãåæã«ãã¹ããããããDBãç«ã¦ã¦ãããã¤ãã¼å¨ãããã¥ã¼ãã³ã°ãé²ãã§ã¦ãå ¨ä½çã«ããã©ã¼ãã³ã¹ãåºä¸ãããã¦ããããã¡ãããEntity Framework Coreãããã©ã¼ãã³ã¹ãçµæ§ããã£ã¦ããããããã
Cloud native / Microservices
ããCloud Nativeããã¾ããCloud Nativeã£ã¦è¨ããªããªã£ãæ°ããããå人çã«ãã
ãã䏿æã®ããºã¯ã¼ãçãªãªã«ãã ã£ãï¼ç§ã®ãã¼ã åã¯Cloud Nativeãªãã§ããã©ãã
ãããããã¾ãã«ãªã£ã¦ããããªãã
ããMicroServicesã«.NETã¯æ³¨åãã¦ãããã
ããè£äºæ ãããããããããããã§ã¯è©±ããªã(å¾ã§ï¼)ãã
Xamarin / .NET MAUI Preview
ããã¯ã©ã¤ã¢ã³ãç³»XamarinãXamrin Forms 5ã®ãã¢ããã£ããMAUIã¯ã¢ãããã¼ããé²ãã§ãªããããå¾ã»ã©ãã£ããã¨ãã
Windows åãæ©è½ / ãã®ä»
ããMSããã£ã¦ããã®ã§ãWindows OSTåãã¢ããªã±ã¼ã·ã§ã³ã«ç¹åããæ©è½ãã¡ããã¡ããå ¥ã£ã¦ãããã
ããWindowsåãã§ãClickOnceã¿ãããªè©±ã¯å¾åã«ããã¾ããã£ãï¼ã
ããClickOnceã¯ãããã¨ããã大好ããªã®ã§ãã
ãã(ClickOnece)ããæ»ã¬ãã¨æã£ã¦ãéãããã¨æã£ã¦ãæ¡ä»¶ãããã§ããã©ãæ©ä¼ãããã°è©±ãã¾ããããã
NET 5 / BCL / C# 9
ã¹ã©ã¤ã
- Announcing .NET 5.0
- ã¢ããã°ã¬ã¼ãåãããã¥ã¡ã³ã
- ä»å¾ã® .NET Standard ã®æ±ã
- C# 9 ãªãªã¼ã¹ï¼NRT æ¹å / Record types / Code Generator ãªã©ï¼
- What\'s new in C# 9.0
- @ufcpp ã®â¼ãä»å¾ã®ã¤ãã³ãã§è©³ãã話ãã¯ã
åç»
https://youtu.be/HJ802p3syTw?t=1008
Announcing .NET 5.0
ããAnnoucingã®blogè¦ã¾ããï¼ãã£ã¡ãé·ãããããã¼ã°ï¼(èãåããªã)ããããªå°ããã¨æãããããé·ããªã£ã¦ãããã
ããããã ãããã¾ã¨ãããªãç´°ããã¨ãããå ¨é¨ãªã³ã¯å«ãã¦ã¾ã¨ã¾ã£ã¦ããããããè¦ãªãããªã³ã¯1ã¤ãã¤è¦ã¦ããã ãã§ãçè§£ãæ·±ã¾ããã
ããçµæ§éããããåãããã®ä¸ã§æ°ã«ãããã®ãããã¯ã¢ãããã¦ãããã
.NET 5.0 Highlights

ããPerformance is greatly improvedç´ æ´ããããã¨ã§ããããã©ã¼ãã³ã¹ã¯éãã»ããããã©ã¤ãã©ãªãGCã®ã¢ãããã¼ãã ã£ããã ClickOnceã®è©±ãæ¸ãã¦ãããã
ããsingle-file appsãreduced container image sizeããããããã§ãã ãã
ããã³ã³ããã®ã¤ã¡ã¼ã¸ãåçã«ãµã¤ãºãå°ãããªã£ãããããã
ããWindows Arm64 ã¨WebAssemblyãWebAssemblyã¯Blazorã®WebAssemblyã§è¶ éè¦ãªæ©è½ãã
ããããã¾ã§Overviewãã¾ã¨ã¾ã£ã¦ãããã
Tools

ããToolsç³»ã ã¨Windows Forms designerãåºã¦ãããã
ã¾ãæå¤ã«ããã§Formãä½ãããããªããããã¢ããªããã
ããã§ããããVS 2005ã®ããããã§ãã¦ãããªãã
ã¿ãFormsã®designerãªãã£ããããã
ãã.NET Coreæ¥ã¦ãWPFã®designerã®æ¹ãå ã«ãããæåã¯ãªãã£ããVSã®ã¢ãããã¼ãåºã¦ãããã
ã¿ãæªã ã«Formsãä½ã£ããã¨ããªããªã¼ãã
ãã.NET Confã®ãã¼ãã¼ãã§ãScott HanselmanãWindows Formsã§Webview2ã³ã³ããã¼ã«ã使ã£ã¦ãããã¢ã£ã¦è¦ã¾ããï¼ã
ãã Scott HunterãScott HanselmanãScott Guthrieã®3人ãé¸ã¹ãã
ãã話ãè±ç·ãã¦ãã¾ããã©ãç§çã«ã¯ãã®3人ã並ãã ã®ã¯ããããã§ãæ¥æ¬äººçã«ã¿ãã¨ããªãã§Scott Guthrieãä¸çªãããªãã ã¨ãæ¥æ¬æçã«ã¯ãä¸å¸ãä¸çªä¸ã«ãããªãã¨ãããªãã®ã«ã¨æã£ã¦è¦ã¦ã ãã

Native exports

ããæè¿ããã©ã¼ãã³ã¹ãæèããçµæNativeç³»ã®ãµãã¼ãã¨ããCOMåç §ã®ã¡ãã¥ã¼ãå¢ãã¦ãã令åã«ãªã£ã¦ãCOMã使ããªãã¨ãããªãã®ããªã¨ãã
ããCOMã£ã¦ä»ç¥ã£ã¦ã人ã£ã¦ã©ãã ãããã®ããªãç¥ããªãäººã®æ¹ãå¤ãæ°ããããComponet Object Modleãã
ã¿ãèãããã説æã§ãã²ããªãã
ãããããããã®ãããã¨ç¥ã£ã¦ããã°ãããã
ããã§ããWindowsã¯COMã®å¡ã§ãããããä»ã§ããã¾ããããè¡ãã¾ãããã.NETã®è©±ã§ããããã
P95+ Latency

ãã(P95+ Latencyãè¦ãªãã)requests per second (RPS) ã¯Stack Overflowã®äººãé©ç¨ããã¨ãã«ããã ãCPU使ç¨çãä¸ãã£ããåçã«å¹æãåºã¦ããããªã¯ã¨ã¹ããå¤ãã¨ãã ã¨å¹æãããã
ããä»è¨èªå¯¾å¿ã®ã©ã¤ãã©ãªICUãUnicodeãWindowsã«æ¨æºã§å ¥ã£ãã®ã§ã¾ã¨ãã«ãªã£ãã®ããªã¨ãã
ãããã®ããã°ãå ¥å£ã¨ãã¦è¦ã¦ãã ãããã
Breaking changes for migration from version 3.1 to 5.0

ããæè¿Docsãè¦ãããã«ãã¦ãããBreaking changesããã£ã¦å ¨é¨ã¾ã¨ã¾ã£ã¦ããããã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ãããããã
ã¾ãããã¯3.1ãã5.0ã¸ã®ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ãã§ããï¼ã
ããããã§ããããè¦ãã¨Blazorãå¤ãããµã¤ãã§ã«ãã´ãªãã¨ã«ã¾ã¨ã¾ã£ã¦ããã軽ãç®ãéãã¦ãããããããããã¥ã¡ã³ãããããã¨ãç¥ã£ã¦ããã¨ãããã
ããããã§ã§ããã3.1ãã5.0ã¸èªåã®ã½ã¼ã¹ã³ã¼ããããã¸ã§ã¯ããã¢ãããã¼ããããã©ããã«ãã§ã¨ã©ã¼ã«ãªã£ã¦ããªãã ããï¼ã¨ããæã«ãããããããã¥ã¡ã³ããããã¨è¦ãã¦ããã¨è§£æ±ºã¨ãã¦ä½¿ããã¨æããããã¯ãããã
ãããã®ããã¥ã¡ã³ããããããã®ä¼ããã«ãªãã¾ããã
The future of .NET Standard

ãããã®åç»7ç§ã ãã©ã
ãã.NET ã«ãªããå ¨é¨ã¾ã¨ã¾ã£ã¦ããã以ä¸ãã
ããé ã ãèªãã¨ãããã©ã®TFMã使ãããæ¸ããã¦ãããåºæ¬ã¯ä¸çªæ°ããã®ã使ãã¨æ¸ããã¦ãããã
- net5.0. This is for code that runs everywhere. It combines and replaces the netcoreapp and netstandard names. This TFM will generally only include technologies that work cross-platform (except for pragmatic concessions, like we already did in .NET Standard).
- net5.0-windows (and later net6.0-android and net6.0-ios). These TFMs represent OS-specific flavors of .NET 5 that include net5.0 plus OS-specific functionality.
ããã©ã¤ãã©ãªã§ã ããã¢ããªã®ã³ã³ãã¼ãã³ãã§ã ãããã©ãã使ãã¹ãããã¾ã¨ãããã¦ãããã
ããäºææ§ãèãããªãã.NET Standardã§ãä»®ã«.NET Framworkã§ã使ããããã«ã¨ãªãã¨ã.NET Standard 2.0ã§ã¨æ¸ãã¦ãããã
- Use netstandard2.0 to share code between .NET Framework and all other platforms.
- Use netstandard2.1 to share code between Mono, Xamarin, and .NET Core 3.x.
- Use net5.0 for code sharing moving forward.
ããããããã¯5.0ã ããã
C# 9
ã ãå¥ã®ã¤ãã³ãã§ C#ã§æåãªäºº @ufcppããã話ãã®ã§ããã¡ããèãã®ãæ£è§£ã§ããã Visual Studio Users Community Japan åå¼·ä¼ #6
ASP.NET Core
ã¹ã©ã¤ã
- Announcing ASP.NET Core in .NET 5
- ã¢ããã°ã¬ã¼ãåãããã¥ã¡ã³ã
- gRPC ãµãã¼ãæ¹åã¨ããã©ã¼ãã³ã¹åä¸
åç»
https://youtu.be/HJ802p3syTw?t=1555
Announcing ASP.NET Core in .NET 5
ãããã£ã¡ã¯å²ã¨ããã£ã¨ãã¦ããããã©ã¼ãã³ã¹ã¯ãã¡ããã¡ãä¸ãã£ã¦ãããã

ãã2.1ãã3.1ã§ããã£ã¦ãããã5.0ã§ããã«ãããªã£ã¦ããããªã«ãèããã¢ãããã¼ãããã ãã§ããã©ã¼ãã¹ãããã ãæ¹åããã®ã¯ãããããã
ãã.NET coreã¨ãæ°ããã®ãã§ã¦ããã¨ã.NET ã®ä¸çã§ã¯ãããã©ã¼ãã³ã¹ãããã©ã¼ãã³ã¹ã¨åºã¦ããããæ¯åããã ãä¸ãã£ã¦ããã¨ããã®ã¯ãã£ã±ãããããªãä¸ã®äººãããã°ã£ã¦ãããã
ãããã®è¾ºã¯ãã¯ã©ã¦ãä¸ã ã¨ããµã¼ãã¼å°æ°ã®åæ¸ã¨ãã§ãã³ã¹ã忏ã«ã¤ãªããããã¢ããã¼ã·ã§ã³ã«ãã¤ãªããããªã¨ãã

ããæ°æ©è½ã¯ã»ã¼Blazorã®ã ã£ããããæ°æ©è½ã¯blogã«ã¯ã¾ã¨ã¾ã£ã¦ããªãã£ãããDocã®æ¹ã«ã¾ã¨ã¾ã£ã¦ãããã
- Migrate from ASP.NET Core 3.1 to 5.0

Migrate from ASP.NET Core 3.1 to 5.0
ããããããã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ããããããã¤ã°ã¬ã¼ã·ã§ã³ã¯ã¯ããã°ããå·®åä»ãã§æ¸ãã¦ããããåããããããã
ããBlazorã¯ä»åSDKãå¤ãã£ã¦ãããã§ãããã
ããMicrosoft.NET.Sdk.BlazorWebAssemblyãã
ããã¢ãããã¼ãã¯ãã®éãã«å¾ãã¨ãã¹ã ã¼ãºã«ãããããªã¨ãã
ããæ£ç´ãASP.NET Coreã®æ°æ©è½ã¨ããã®ã¯ãã¾ããªããã§ããããã ãã¶æ¯ãã¦ãããªã¨ãã
ã¿ããããã¾ããããããããã¯ã©ã¤ã¢ã³ãæ°ããããã¨ãã
ããã³ã¡ã³ãã«å°ããã
ãããªãã ãããã ã§ãããã¾ã§ã®è³ç£ã®ç©ã¿éãã§ãããã©ã¼ãã³ã¹ãã ãã¶ä¸ãã£ã¦ãæ©è½ãã ãã¶FIXãã¦ããããã°ãå°ãªããªã£ã¦ãããã
ããæè¿gRPCãããããããããã
ããgRPCãã¿ãªãã使ã£ã¦ã¾ããï¼ã
ã¾ã使ã£ã¦ãªãã§ããã¼ãã
ããããã§ããªããã
ãã使ãã¨ããããã¾ããªããã
ã¾ãã¡ãªã¿ã«ãååã£ã¦ãASP.NET ã¯Coreãæ®ããã§ããï¼ã
ããæ®ã£ã¦ã¾ããã
ããããããããªæãã§ããä»ã¯ãCoreããªãASP.NET 5ã¯ä¸ææåå¨ãã¦ããããããã¶ããã®ãããååãæ··æ²ãã¦ãææããã£ã¦ãã¼ãã³ã°ããã¼ã¸ã§ã³ã¯è¦å´ãã¦ã¤ãã¦ãããã
ããä»ã®dotnetã¨ããCLIã®ã³ãã³ãåããåã¯ãdnxã ã£ããããã®åã¯kã¨è¨ã£ã¦ãæä»£ã«ASP.NET 5ã¨è¨ã£ã¦ãææãããã¾ããããã
ãã彿ã¯vNextã¨å¼ã°ãã¦ãã¾ããããããã
ããCoreã¯ãASP.NET Coreã¯ãã®ã¾ã¾æ®ãæ°ããã¾ããã
ãããã¶ãããã¯ãã®ã¾ã¾è¡ãã¾ãããEntity Framework Coreããã®ã¾ã¾ãã
ããgRPCã«è©±ãæ»ãã¨ãWebã¢ããªã±ã¼ã·ã§ã³ããã©ã¦ã¶ç³»ããã ãã¾ãè§¦ãæ©ä¼ããªããã
ããåã«é¢ä¿ãã¦ããã客æ§ã®æ¡ä»¶ã ã¨ãããã¯ã¨ã³ãã«KubernetesãAKS(Azure Kubernetes Service)ã使ã£ã¦ãããã¯ã¨ã³ãã®ãµã¼ãã¹éã®éä¿¡ã«gRPCã使ã£ã¦ãã¾ãããã
ããMicroServiceã®éä¿¡ã ã£ãããåææ¥ç¶ãä½ã¬ã¤ãã³ã·ã¼ãgRPCã好ã¾ããããªã¨ã¯æãã¾ããã
ããgRPCãããããã©ãããã¦ãªãã¨ããç«å ´ã®äººã§ããèªåã¯ãåãä»ãã®ããããæ°ã«ãªã£ã¦ãã¾ããã
ãã1ã¤ã¯ãWCFã.NET Fraomeworkã§çµããã.NET Coreã.NET 5ã«ã¯WCFã¯ããªãã®ã§ããã®è¾ºã®ç½®ãæãã¨ãã¦ãgRPCã«æ³¨åãã¦ãããã
ãã.NET 5ã£ã¦ã.NET Frameworkã¨.NET Coreã¨Xamarinãçµ±åããããã¨ãã話ã¯ãããã§ãããå³å¯ã«è¨ãã¨ã.NET Frameworkã®ã¨ãã㯠å°ãåããã¦ããæ¨ã¦ããã¦ããé¨åããããWCFãWeb FromãWFã ã£ãããå ¨é¨æ¥ãããã§ã¯ãªããã
ã¾ãWeb Fromã¯Blazorã¨è¨ããã¦ã¾ããããã
ããä¸å¿æ±ããããããã§ãããã
ããæ¦å¿µçã«ã¯ã¯Blazorã§ãHTMLãJavaScriptããã¾ãæ¸ããªãã¦ãC#ã§æ¸ãã¾ããã¨ããã³ã³ã»ããã ã¨Blazorãç½®ãæããå³å¯ã«è¨ãã¨å ¨ç¶éããã®ãã
ã¾ãWeb Formã¯Blaozrã«ç§»æ¤ããã¨ããæ¸ç±ãããã ASP.NET Core ApplicationArchitecture ãASP.NET Web Forms éçºè åã Blazor ãPDFã ã¨è±èªã ã¨ãã©ãWebã ã¨æ¥æ¬èªããããã
ããã¢ã¼ããã¯ãã£ã®æ¯è¼ ãæ¸ãã¦ãããããªãã§ãããå¤åããè¦ã¦ããã ããã¨ãã¡ãã£ã¨ç§»è¡ãããããªã¨èãã¦ã人ã¯ããæãã§ãããã
ãããæ¢åã® ASP.NET Web Forms ã¢ããªã±ã¼ã·ã§ã³ãææ°å¼ã«ããããã®è¨ç»ãç«ã¦ãéã«å½¹ç«ã¡ã¾ãããçµæ§å±éºãªãã¨ãæ¸ãã¦ãããã
ããã»ã¼æ¸ãç´ãã«ã¯ãªãã¨æããã§ãããã ãã ãã¯ãã
ãããããã使ããªããªããã¬ã¼ã ã¯ã¼ã¯ããããã§ãgRPCã«è©±ãæ»ãã¾ããã©ããããã£ãã¨ããã§ã¯æ³¨åãã¦ãã¨ããã§ããããgRPCã¯ã ASP.NET Core gRPC for WCFDevelopers ã¨ããã®ããããã
ããWCFã¯ç¾å½¹ã®ã¨ãã«ã«å ¨ç¶ä½¿ãæ©ä¼ããªãã£ããã
ããæè¿ãã¾ã話èããªãããã¾ã åãã¦ãã·ã¹ãã ããããä»å¾ãããããã©ããããã¯ã1ã¤èª²é¡ã«ã¯ãªã£ã¦ããã§ããããã©ãã
ASP.NET Core Blazor
ã¹ã©ã¤ã
- What\'s new in ASP.NET Core 5.0 - Blazor
- Static Web Apps ã§ã®ãµãã¼ã
- Mobile Blazor Bindings
åç»
https://youtu.be/HJ802p3syTw?t=
Blazor
ãããã®è¾ºã®ç¥èå ¨ç¶ãªããã§ãã
ããããã¯ããããã¨ããã§ãã
ããæ°æ©è½ã¯ã¾ã¨ã¾ã£ã¦ãã¾ããããã£ãã®ãã¼ã¸ãªãã§ããã©ãã

ããç§ãBlazorã®ãã¢ã¢ããªããããã§ããã.NET 5ã«æ¸ãæãããã¨æãã¤ã¤ãã¾ãå¾ã§ããã°ããã¨ã仿¥ã¯ãããã¨ããã®è©±ãã¡ããã¨èãã¦åå¼·ãã¦ãã帰ããã¨ãã
ãããããã¨ãããããä»äºã§ãµã¤ãã«ã¯Blazorã使ã£ã¦ãããã§ããï¼ã
ããããªããªã¾ã§ã¯ãããªãã§ããã©ãç«ã¡ä¸ããã®ã¿ã¤ãã³ã°ãªãã§ãä»å¾ããã®ã¯å ¨é¨Blazorã§è¡ããããã
ãã3.1ããæ£å¼ã«ãªã£ãã¿ã¤ãã³ã°ãã使ãå§ãã¦ãããã
ããããã§è³ªåãå®éã«ä½¿ã£ã¦ããBlazorã§ããã©ããµã¼ãã¼ãµã¤ãã使ã£ã¦ã¾ããï¼WebAssemblyã使ã£ã¦ã¾ããï¼ã
ãããã¼ãè¯ã質ãã§ããã両æ¹ã§ããã
ãããã£ã±ããWebAssemblyå´ãä¸å¿ã«èãã¦ããããµã¼ãã¼ãµã¤ãã§ãã£ãæ¹ãããæ¡ä»¶ããã£ãããã¦é¸ãã§ã¾ããã
ãããã®ããæ¡ç³»ã¨ããçç±ã¯ï¼ã©ããªã¨ããã«ãããã§ããï¼ã
ãããã©ã¦ã¶ã§å¦çãããã®ã«ã¯éãããã®ãããµã¼ã飿ºã§ã§ããã§ããã©ãUIã¨ã®ã¤ã³ãã©ã¯ã·ã§ã³ãå¤ãã®ã§ãã¿ãããªãç¹æ®ãªè©±ã§ãããã
ãããã ãåºæ¬çã«ã¯ãµã¼ãã¼ãµã¤ãã ã¨ãåãããããã¾ãã£ã¦ã®ããã£ã¦ããã©ã¦ã¶ã¼ã¨ãµã¼ãã¼ãµã¤ãã¨ã·ã¤ãã¨åãããçã£ç½ã«ãªã¡ããã¨ããã®ããã£ã¦å人çã«ã¯æ°ã«é£ããªãã®ã§ãããããã¨ããã£ã¦ãWebAssemblyå´ãåªå ã«ãã¦ãããã
ã¿ãã¬ããç»é¢ãéãã¦ä½¿ã£ã¦ãããã±ã¼ã¹ãå¤ããã§ããã©ãå·¥å ´å ã§Wifiãå¼±ãã£ãããã¦åãããããã®ã§ãWebAssemblyãªãå¤å°èª¿åæªãã¦ãã黿³¢å±ãã¨ããã¾ã§è¨ã£ã¦ããã¿ã³ã¿ãããã¦ã¨è¨ãã°ããã®ã§ããããªæãã§ãã£ã¦ãããã
ããNativeã¢ããªã¨ãããªæè¦ã§ä½¿ããæãããªãã©ã¤ã³ãµãã¼ãã£ã¦ãããã§ããï¼ã
ããããã¾ããçµå±Webãªã®ã§ãPWAã¨ãã¦ãã
ãããããæ®éã«ãã
ããããã¸ã§ã¯ããã³ãã¬ã¼ãã«PWAãããã®ã§PWAã«ããã®ã¯æ¥½ããã ãªãã©ã¤ã³ã®æã®å®è£ ã¯ãã£ããã¨ããªãã¨ãããªããã
ãããã¨æè¿ãVisual StudioãVisual Studio Codeã§ãWEbAssemblyå´ããããã°ã§ããããã«ãªã£ã¦ãããããã©ã¦ã¶éçºãã¼ã«ã§ãããã°ãããããªã£ã¦ããããããã®ããã£ã¦ã使ããã¨ããã ã§ããã°ä½¿ããã Azure Web Static Apps ã§ãBlazor対å¿ãã¦ãã¦ãããã
Azure Static Web Apps with .NET and Blazor
ãããããã¤å æ©ãããªã¨ãAzure Web Static Appsã«ãããã¤ã§ããã¨ãããã¨ã¯å®å ¨ã«éçãµã¤ãã«ãªãã¨ãããã¨ã§ããï¼ã
ããWebAssemblyçã§ããã¨åºæ¬éçãµã¤ãã¨ãã¦ã§ãããã
ããç§ã®ãã¼ããã©ãªãªãã¼ã¸ããGithub Pageã«ããã£ã¦ãã¾ãããã

ãããã£ãããï¼ï¼ã
ããããã¯å½é¤¨æªæ¥å¤§å¦ã®å¦çããããã£ãä½åãçä¼¼ãã¨ããããã¯ã£ãã ããªãã§ããã©ããã
ããå®è£ ã¯å®éããã¾ãããã©ããã®ã³ã³ã»ããããã®ã¢ã¤ãã£ã¢ã§ãã
ãããããå®å ¨ã«WebAssemblyã§åãã¦ãããã
ãããµã¼ããµã¤ããããªãã§ããstaticãªã³ã³ãã³ãã ãã§ããã
ã¾ããµã¼ãã¼å´ã«.NETã®ã©ã³ã¿ã¤ã ããããªãã¨ããã¨ã§ããï¼ã
ãããããªãã§ããã
ããè¥å¹²ã¯ããã®ããªã¨æã£ã¦ããã§ããã©ããããããããããªããã§ãããã
ããå ¨ç¶éãã¾ãããhttpãµã¼ãããããã°ãããã
ããåãç¥ã£ã¦ãã®ã ã¨DLLãéã£ã¦ããã¨æããã§ããã©ãã
ããApplication ã®Cache > Chache Storageã«ãã£ãã·ã¥ããããã

ãã䏿¦ã¯å¸ãä¸ãã«æéãããããã§ãããã
ãã(䏿¦ã¯ãªã¢ã¼ãã¦ãªãã¼ãããã¨)ä¸å¿å§ç¸®ããã¦ããã§ãããã

ããä»åã®ã¢ãããã¼ãã§ããã¢ã»ã³ããªã®lazy loadingã®æ©è½ãã§ã¦ãã¦ããã¼ãæã«ãããªãã¦ãå¿ è¦ãªæã«ãã¼ãããããã«è¨å®ã§ããããã«ãªã£ããã
ãããªãã ããã ã§ã¢ã»ã³ããªã®ãµã¤ãºã大ãããã
ããããããããã®è¾ºæ¸å¿µããã¦ãæ¹ã ã¨ããµã¼ãã¼ãµã¤ãã¨ãã鏿è¢ããã£ããã§ããã©ããªãã¨ãªãããªãã¦ãã¦ããã®ã¨ãã
ãããµã¤ãºåé¡ã¯ã©ãããããªãã®ã§ããµã¤ãºã飲ããªãæ¹ã¯Blazorãã£ã¦ã¯ã ããªãã ã¨æããJavaScriptã®æ¹ãããã¨æãã¾ãã ReactãVueãAngularãã
ããä¸ã¤ã®é¸æè¢ã¨ãã¦ãReactãVueã§JavaScriptãã¼ã¹ã§è¡ãã®ããC#ã§ã·ã³ã°ã«ãã¼ã¸ã®å½¢å¼ã§çµãã§ãã®ãèãã¦é¸ãã§ããã£ã¦ããã°ããã®ããªã¨ãã
ããWebAssemblyç³»ã§ããã¾ã§ä½ãè¾¼ãã ãã¤ã£ã¦ãªãããããã§ãã
ããã¢ã³ããè²¼ã£ã¦ãã¤ããã§ããã©ãWebAssemblyã§SPAãä½ããã¨ããã®ã¯è¦ã¦ããªããGoã§è¿ãã®ã¯ãã£ãã¨æããã§ããã©ãã
ããJSæ´¾ã®äººãããæ³¨ç®è¦ããããã¨ããã®ã¯èãã¾ããããã
ããå®æåº¦é«ãã§ããããããæãã§ãã
ããSteve Sandersonããããããããããããªç©ä½ã£ã¦ãã¾ã£ããæããã人ã§ããã
ããj.Sakamotoã®ãµã¤ãã¯ããã 表示ãã¦ãã ããããªãã¦ãã¤ã³ã¿ã©ã¯ãã£ãã«åããã§ãããã
jsakamoto$ runtimeinformation
Framework Description - .NET 5.0.0
Process Architecture - Wasm
OS Architecture - Wasm
OS Description - Browser
OS Platform - Other
OS Version - 1.0.0.0
OS Version ServicePack -
ããããã.NET 5.0ã«æ´æ°ããã¨ãããã¨ã§ãããã
ããã¯ããã
ããWebAssemblyã¯ãæ°å¹´å¾ä¸æ°ã«ãã¦ããã ãªãã
ããWebãã©ã¦ã¶ãWebAssemblyã対å¿ãã¦ãã¦ãããç°å¢ã¨ããã¨ãããæ´ã£ã¦ããã®ã§ä¸æ°ã«ããæãã«æ¥ã¾ãããããã
ããä»ã®è¨èªãæ¥ããããã®ã«ããã
ããæ¡å¤æ¥ãªããã§ããããC++ã®ã³ã¼ããWebAssemblyã§ã³ã³ãã¤ã«ãã¦ã¨ãã話ã¯ããè¦ããã§ããã©ããªããªãããããå ã«é²ã¾ãªãããã«ã¹ã¿ãã¯ã®ã¢ããªã±ã¼ã·ã§ã³ãã¬ã¼ã ã¯ã¼ã¯ãåºã¦ããªããé£ãããã§ãããããã
ããå人çã«ã¯ããã«Azure Static Web Appã«å¯¾å¿ãã¦ãããã§ããã¹ãã£ã³ã°ç°å¢ã¨ãã¦ãããæãã¨ãã¦æ´ã£ã¦ãããªã¨ã Azure Static Web Appã¯ã¾ã ãã¬ãã¥ã¼ã§ããã©ãããã¯ã¨ã³ããAzure Functionsã§çµãã§RESTã®APIã¿ãããªæ§æã ã¨é¢ç½ããªã¨ãä»é¢¨ã ãªã¨ã ã
ããåã«ãä»å¾ã®ãã¼ããããã¿ãããªã®ã§ãElectronã§çµã¿è¾¼ãã ããNativeã«è¿ãã¢ããªã«ããã¿ãããªããããã話ãããã¾ãããããä»åã®ãã¢ã¨ããããã®ã§ã¯èªãããªãã£ããã§ããã©ãã
ããElectronã§é ä¿¡ããç³»ã§ããã°ããµã¤ãºå¶éã¨ãå ¨ç¶ãªãã®ã§ããã¯å ¨ç¶ãããªæ°ããã¾ããã
ããé¢ç½ãã®ã¯ãå¾ã ã«ãWebAssemblyãWebã®æè¡ã§ããã©ããã©ã¦ã¶ããNativeã«ã ãã ãæ¥ã¦ãããWebã®æè¡ã§Nativeã¢ããªãä½ããã¨ããã®ãåããåºã¦ãã¦ããã®ãé¢ç½ãã¨ãããã
ããæ£å¼ãªãªã¼ã¹ã«ãªã£ã¦ãããéä¸ã§è«¦ããããããªããã¨ãSilverLightã£ã½ããªããããªããã¨ãã
ï¼ãä»ãè¨ããã¾ããããSilverlightãã¼ã£ã¦ãã
ããSilverLightã®æ¨ã¦æ¹ã²ã©ãã£ããã§ããããMSã®ããããã ããã£ã¦ããã¦ããã¼ããã£ã¦ãã
ããAzureã®ãã¼ã¿ã«ããSilverLightã§çµãã§ãæä»£ããã£ããã§ããããç¥ã£ã¦ã¾ãããã¿ãªãããåã®åã®ä¸ä»£ã§ããã
ããSilverLightã¯ãã©ã°ã¤ã³ä¾åãã¦ãã¨ããããBlazorã¯ãã©ã°ã¤ã³ã§ã¯ãªãWebæ¨æºã®WebAssemblyã¨ããã¨ãããããããããã©ã¦ã¶ã対å¿ãã¦ãã¨ããç°å¢ãæ´ã£ã¦ããã¨ããã¨ãããããããéããã
ããæè¿ã®ASP.NETãã¼ã ã¯ãBlazarãããã£ã¦ãªããMVCã¨ãã¯æ¾ç½®ããã¦ãããã
ããMVCããã¯BlazorãAPIå¨ãã«æ³¨åããã¨ããã®ã¯ä»ã®æµãã¨ãã¦ã¯å¦¥å½ã ã¨æãã¾ããã
ããããã¯ã¨ã³ããä½ãã®ã«APIå¨ãã®å å®ã¨ããã³ãã¨ã³ãã¯Blazorãããã ããæ³¨åãã¤ã³ãã¯ä»ã®ãã¬ã³ããè¸ã¾ããæµãã«ã¯ãªã£ã¦ãã¾ãããã
Entity Framework Core
ã¹ã©ã¤ã
- Announcing the Release of EF Core 5.0
- ã¢ããã°ã¬ã¼ãåãããã¥ã¡ã³ã
- EF Core 5.0 㯠.NET Standard 2.1 ããµãã¼ã
åç»
https://youtu.be/HJ802p3syTw?t=3009
Announcing the Release of EF Core 5.0
ããããã®ãã¼ã ã¯ä½ããã£ããã¨ããã®ããããæ¸ãã¦ãããã¤ãã«ãMany-to-many ãæ»ã£ã¦ãã¾ãããã
ãããããã¨ããã¯ã©ããã®æ©è½ã«ã¤ãã¦è¨ã£ã¦ããã§ãããã
ããRequired 1:1 dependents ããªã
ããå¾®å¦ã«æåãå¤ãã£ãã¿ãããªãã
ããEF Core ã®ãªãªã¼ã¹ã¨è¨ç» ã§ ãªãªã¼ã¹è¨ç»ãããã

ããEntity Framework Core 5.0ã®ããã¾ããªè¨ç» ã§èª°ããã£ã¦ãè¦æ¨¡ãã©ã®ãããããGithubä¸ã§ãã£ã¦ã®ã転è¨ããã¦ãããããããªã¼ãã³ãä½ããã£ããããªã¼ãã¼ã誰ããæ¸ãã¦ãããã

ããæ°æ©è½ãPreview 1ããRCã¾ã§ç´°ããæ¸ãã¦ãããæ°æ©è½ã追ãã«ã¯æé©ã§ããã

ããäºææ§ ã«é¢ãã¦ã¯ãç ´å£ç夿´ãå¤å°ããã®ã§ãç§»è¡ã®éã«ã¯ããã®è¾ºãæ°ãã¤ãã¦ããã ããã°ããã§ããã

ããä¸çªæå¾(RC1)ã§å ¥ã£ãã®ãMany to Manyã§ãããã¡ããã¡ãæéæãã£ã¦ãå®è£ ã大å¤ã ãã£ãã¿ãããã
ããã§ããEntity Framework 6ããã確å®ã«è¯ããªã£ã¦ãããæè¿ãªãã ããã ã§ãDapperã®ãã¤ã¯ãORMã便å©ã ããQueryãæ¸ãã¨ãããã£ã¨æ¸ãã¦ãã£ã¨ä½¿ããã®ã便å©ã§ããã©ãæ¥åãã¸ãã¯ã§JOINã¨ãããããè¤éãªãã®ã«ãªã£ã¦ããã¨ãEntity Frameworkã§LINQã§æ¸ãã¨ããã®ã便å©ãªãã¨ãå¤ãã
ãããã®è¾ºãã¯ä½¿ãåãã¦ãã©ã¡ããçæ¹ã«ããããããªãã¦å¿ è¦ãªãã®ãé¸ãã§è¡ããããããã
ããããã©ã¼ãã³ã¹ããã®ã«ãã£ã¦ã¯Dapperã«è¿ããããåºãã¨ãã話ãæãã£ã¦ãããã
ããæã¯ãããã¡ãªã¼ãã³ã¹ã§æ©ã¾ãããæ¹ã ãå¤ãEntity FrameworkãCoreãããªãåã®ããã ãããCoreã«ãªã£ã¦ããªã軽éåããã¦ããæãã§ããããã
ãããããRuntimeãããã©ã¼ãã³ã¹ãä¸ãã£ã¦ãããã§ãåæã«ï¼ï¼ï¼ã£ã¦ã¾ããã
ããEntity Framework Core 5.0ã¯ã.NET Standaer 2.1ãªãã§ããã
ããASP.NET Core 5.0ã¯ã.NET 5.0ãªãã§ããTMFããã
ããEntity Framework Core 5.0ã¯ã¡ãã£ã¨åºã使ãã¾ãã.NET Core 3.1ã§ã使ãã¾ããåºã使ãã¨ããæå³ã§ã¯éè¦ãªãã¤ã³ããã
ããAzure Functionsãæªããã§ããªã«ã話ãã§ãªãã£ããããªãã§ãããã
ããç§ã追ãã¦ãªããã§ããã©ãAzure App Serviceã¯ã.NET 5ãæ¥ã¦ããããªãã§ãããã
ããæ¥ã¦ã¾ããã
ããAzure Functionsã£ã¦ã©ããªãã§ããï¼ã
ãã3.1ããã¶ããç¡çããã©ã³ã¿ã¤ã ã5.0ã«ãããè½ã¡ãã¨æãã¾ããã
ãããªã®ã§ãEntity Framework Coreã¯ã.NET Standar 2.ã®ã¾ã¾ãããªãã¨ãAzure Functionsã§ä½¿ããªããªããã
ãããã®è¾ºãã¯æ å ±å¾ ã¡ãã
Cloud native / Microservices
ã¹ã©ã¤ã
- Docker Image ã®æ´æ°
- .NET Microservices ãã¬ã¼ã ã¯ã¼ã¯
- C# 製⾼æ§è½ãªãã¼ã¹ãããã·
åç»
https://youtu.be/HJ802p3syTw?t=3280
.NET 5.0 Release - dotnet-docker
ããdockerã®å½åè¦ç´ãå¤ãã£ã¦ãããBreaking Change: .NET Docker Repo Name Changeã
ã¾ãã¡ããã¡ããããã¾ãããã
ããããã ãããã
ããããªãã ãå¤ãã£ãã ããã£ã¦ãã
ããdotnet/coreããdonetã¸å¤æ´ã§coreããªããªã£ããã
ããã·ã³ãã«ã«ã¯ãªã£ãã5ã§ããã
ããä»ä½¿ã£ã¦ãæ¹ã¯ã¢ãããã¼ãã®æã«è¦æ³¨æããªãã
ããDocker images ãµã¤ãºã¯ãåã¿ããã«å°ãããªã£ã¦ã5KBãåã¿ããã§ããã©ããã

ããmanifest onlyãªãã ãã
ããMicroServiceã¨Kubernetesã¨ãã«å±éããã®ã«ä½¿ãããããªã£ã¦ãããpullã®ã³ã¹ãã大ããã§ãããããã
ãããªã®ã§ãã³ã³ããã§ç§»è¡ãèãã¦ããæ¹ã¯ãWindows Containerã«ã.NET Coreãªã.NET 5ã«ããæ¹ãããã¨æãã¾ããã
ããWindows Containerã§.NET Coreãåãã人ã¯ããªããã§ãã
ããã¾ãã.NET Frameworkãã©ããããã.NET Coreã«ç§»è¡ãããããªãããã.NET Framewokrã®ã¾ã¾ã§ãã
ããããã¯ç¡çãã.NET Coreã«ç§»è¡ãã¦ãã
ã¾ã.NET Coreã«ç§»è¡ãã¦æ¬²ããã§ããããã
ãã.NET Frameworkããç§»è¡ãããããã§ãã·ã§ãã«ã®ã¾ã¤ãããããããã®ã§ãã
ã¾ããå¾ ã¡ãã¦ããã¾ããã
Introducing Project Tye
ããèªã¿æ¹ã«èªä¿¡ãªããã§æ¾æããããã§ããï¼ã
ã¾ãã¯ãããã¸ã§ã¯ãã¿ã¤ããããProject Typeãªã®ã.NET Tyeãªã®ãTyeã ããªã®ãã表è¨ããã©ãã©ãªã®ã§ãåãåãããªãã§ããProject Tyeã£ã¦è¨èãä¸çªå¤ãåºã¦ãã¾ããããã
ã¾ãMicroServiceã®éçºãæ¯æ´ãããã¼ã«ããããã¤ã¡ã³ãããµãã¼ããã¦ãããªã¼ã±ã¹ãã¬ã¼ã·ã§ã³ãã¼ã«ã§ãããã
ããåºæ¬ã¯ãããã¤ããã£ã¦ãããã¨ãããã¨ãªãã§ããï¼ï¼ASP.NETã®æ¹ã«ã©ã¤ãã©ãªã«å ¥ãããããï¼ã
ã¾ãã©ã¤ãã©ãªã«ã¯å ¥ããªãã¦ãcsprojã«ã¯å ¥ããªãã¦ããã¦ãTyeã¨ããã°ããã¼ã«ãã¼ã«ãç°å¢ã«ã¤ã³ã¹ãã¼ã«ããããã¼ã«ã«ã§ããä¾ãã°ããã¯ã¨ã³ãç¨ã®APIãASP.net core Web APIã¨ããã³ããµã¼ãã¹ç¨ã®Razor Pageã¨ã2ã¤ç½®ãã¦ããã¦ããã¼ã«ã«ã§Tyeã§runããã¨ããã¼ã«ã«ç°å¢ã§MicroServiceã®ç°å¢ãåãããã¨ãã§ããã³ãã³ãã§ãããã
ã¾ããããAKS(Azure KubernetesService)ã¨ããAzureã®ç°å¢ã«ãããã¤ããæ©è½ãå ¥ã£ã¦ãã¾ããã
ããåºæ¬ã¯Kubernetesç¨ãªãã§ãããï¼ã
ã¾ãããã§ããããµã³ãã«ãAKS(Azure Kubernetes Service)ç¨ãä¸çªå¤ãã§ãããã
ãããã£ã±ããããå½¢ã«ãªããã§ãããèªç¤¾ã§ãªã³ãã¬ã§kuberntesããããããããªãã§ããã©ãããããã®ã«ãè¡ãããããããªãã§ãããã
ã¾ãããã¯ã§ããããããã¤ããæã«AKS(Azure Kubernetes Service)ã®credentialããããã§ãããã
ãããªãã»ã©ã
ã¾ããã¼ã«ã«ã§Azure CLIã¨ãã§AKS(Azure Kubernetes Service)ã¨ã¤ãªãã¦ããã¦ããããã¤ããå½¢ã§ãããã
ããã³ã³ããã¬ã¸ã¹ããªãæå®ãããã§ãããï¼ã
ã¾ãããã§ãããDocker HubãAzure Container Registryã®ã©ã£ã¡ãããã®2ã¤ã使ãã¾ããã
ãããããã¤ããã¨ãã£ã¦ãDockerfileã¨ãKubernetesã®configãYAMLã®deploy configã¨ãã¯å¥ã«ãªãã¦ãããã¨ããèªèã§ãã£ã¦ã¾ãï¼ã
ã¾ãDockerfileãããªããã§ãããã
ãããããªããã§ããï¼ã
ã¾ãTyeç¨ã®YAMLãã¡ã¤ã«ãã«ã¼ãã«ç½®ãã¦ããã¦ãããã«æ§æãæ¸ããã§ããããã
ããåæã«ãã®è¾ºãã¯ä½ã£ã¦ãã¾ãæãã§Dockerã³ã³ããã«ãã«ããã¦ãACR(Azure Container Registry)ãªãã«pushãã¦ãKubernetesã¾ã§èµ°ããã¦ããã便å©ãã¼ã«ã§ãããã
ããDockerã®ã¤ã¡ã¼ã¸ã®ãã«ãã¯å¿ è¦ãªã§ããï¼ã
ã¾ãDockerãã¤ã³ã¹ãã¼ã«ãã¦ç½®ããªããã°ãªããªãã£ãã¯ãã§ããã
ãããã¼ã«ã«ç°å¢ã«Dockerã¯ããªãã¨ãããªãã§ãããã
ã¾ããããæ§æãå®ç¾©ãã¦ããYAMLã§ããããã¯ã¨ã³ãç¨ã¨ããã³ãã¨ã³ãç¨ã«å®ç¾©ãã¦ããã¦ãã


ã¾ããããããµã¼ãã¹ã§ãã¨ããæãã§ç»é²ãã¦ãã¦ãã

services: - name: backend project: backend/backend.csproj - name: frontend project: frontedn/frontend.csproj
ã¾ãã¬ã¸ã¹ããªã§ãããDocker HubãACR(Azure Container Registry)ã«ã
registory: acrpojecttye.azurecr.io
ã¾ããã¨å¿ è¦ãªå¥ã®ãµã¼ãã¹redisã¨ãæ¸ãã¦ããã¦ãã
- name: redis image: redis bindings: - port: 6379 connectionString: "${host}:${port}" - name: redis-cli image: redis args: "redis-cli -h redis MONITOR"
- å ¨ä½
name: microservice registory: acrpojecttye.azurecr.io services: - name: backend project: backend/backend.csproj - name: frontend project: frontedn/frontend.csproj env: - name:YOUR_NAME value: "YUTA in YAML" - name: redis image: redis bindings: - port: 6379 connectionString: "${host}:${port}" - name: redis-cli image: redis args: "redis-cli -h redis MONITOR"
ã¾ãããããã¼ã«ã«ã§ tye run ãã ã

ã¾ãæ°é®®ã§ããVisual Studioã§ãããããã¨è¨ããããããã¾ã§ãªãã§ããã©ãã
ãããããçµæ§ä¿ºã¯å¥½ãã§ãããDockefileããã£ã¦ããæ£ç´Dockerfileã£ã¦ã ãããåãã«ãªããããªãã§ãããã
ã¾ãããããã
ãããªãã§ãããã¸ããèªåã§ãããªã«ãã£ã¦ãããæ¹ãã¨æããã§ãã
ãã.NETãã¼ã¹ã§è¤æ°ãµã¼ãã¹ããã®ã±ã¼ã¹ã ã¨ããã³ãã¨ã³ãã¨ããã¯ã¨ã³ãã1対1ã§ããã©ãããããããã¯ã¨ã³ããè¤æ°ã®ãµã¼ãã¹ãåãã¦ããã¨ãã«ä¾ãã°ãããã°ããæã«ãå ¨é¨1ã¤ãã¤é çªã追ã£ã¦ãããµã¼ãã¹ãç«ã¡ä¸ãã¦ãããã³ãç«ã¡ä¸ãã¦ããããã°ã¿ãããªã¨ãããä¾åé¢ä¿ãå ¨é¨ãã£ã¦ãããã§ããããã
ã¾ããªã®ã§ããã¼ã«ã«ã«ãããã¤ããã¨ããYAMLãå¤ããªãã¦ãããã§ããããã®ã¾ã¾ãããã¤ã®ã³ãã³ãæã¤ã ãã§ããããã¤ãããã¨ãã§ãããã
ã¾ã5æãããã«çºè¡¨ãããã§ããã©ãè¦ãææ°é®®ã§ãããããã¾ãããããã®ãªãã£ããã.NETã«ãã
ããFukutenã¨ãã§ãã³ãºãªã³ã¨ããã£ã¦ã¾ããããããããã
ã¾ããããããã¯ããç§ããã£ã¦ãã³ãã¥ããã£(Fukuoka.NETï¼)ã§ãProject Tyeã®ãã³ãºãªã³ã¯ãã£ã¦ã¾ããããªã³ã©ã¤ã³ã§ãã£ã¦ãã®ã§ãã²ãã²åå ãã¦ãã ãããã
ããå®éç»é¢è¦ããåãããããã§ãããã
ã¾ãããã¾ã ããã¬ãã¥ã¼ã«ããã¾ã ãªã£ã¦ããªããã¼ã«ã試é¨çãã¼ã«ãªãã§ããã©ã䏿¨æ¥ãããã«Version 0.5ãã§ã¦ãã¦ããããã.NET 5ã«å¯¾å¿ãããã§ããã ããã¾ã§ã.NET Coreã®3.1ããåããªãã£ããã§ããã©ãä¸çªæ°ãããã¼ã¸ã§ã³ã ã¨ã.NET 5ã§åä½ã§ããã¨ã仿¥ç¢ºèªãã¾ãããã
ããKubernetesãå©ç¨ãã¦ãã話ãèãã¨ããã®YAMLã£ã¦ãã¤ããDockerã®ãã«ãããå«ãã¦CIãããã®ã£ã¦è©±ãèãã ããã¤ãããã ãªã¨ããã¤ã¡ã¼ã¸ã ã£ããã§ãããããã¯çµæ§ããããããæãã«ãªã£ã¦ãããã
ããã¢ããªã±ã¼ã·ã§ã³éçºè ãããã®ã±ã¼ã¹ã ã¨ãAPS.NETã§ããã³ãã¨ã³ãã¨ããã¯ã¨ã³ããä½ãã®ã«ããã®äººãæ´ã«Dockerfileã¾ã§ãªãã¾ã ãããKubernetesã®ãããã¤ç¨ã®YAMLæ¸ãã¾ããï¼ãã¶ãããã¾ã§ãªããªãæãåããªããè¾ãã¨æããã ããã©ããã¦ãããã®å°ä»»ã®äººãå¿ è¦ãªã±ã¼ã¹ãããã¨æããã§ãããã
ãããã¨ãããã°ç°å¢ã§ããããMicroServiceã§ä½ããã¦ãããããªè¤æ°ãµã¼ãã¹ããããããªã¨ãã«ãã©ããããµãã«ãããã°ããã®ãã宿½Kubernetesã«ãããã¤ããã«ãã¦ãããããã°ç¨ã®Kubernetesã®ã¯ã©ã¹ã¿ãä½ã£ã¦ã¨ããã¨ãããå«ãã¦ãçµæ§å¤§å¤ãªã®ã§ãã
ãã.NETãããããæ¹ã ã¨ãTyeã¿ãããªãã¼ã«ãããã¨ãã¨ããããæå ã§ãããã°ãããåæã«ä¾åé¢ä¿æã£ã¦ç«ã¡ä¸ãã¦ãããã°ã§ãããããã®ã¾ã¾Tyeã§KubernetesãAKS(Azure Kubernetes Service)ã¾ã§ãããã¤ãã¦ããããããæå³æ¥½ã¯æ¥½ã§ããããã
ã¾ãTyeç¨ã®ããã±ã¼ã¸ãããYAMLã§ç°å¢å¤æ°ãè¨å®ãããã§ããããåç §ãããããªã©ã¤ãã©ãªãããã ãå ¥ããã°å¤§ä¸å¤«ã§ããã
- tye.yaml
- name: frontend project: frontedn/frontend.csproj env: - name:YOUR_NAME value: "YUTA in YAML"
- frontend.csproj
<ItemGroup> <PackageRefernece Include="Microsoft.Tye.Extentions.Configuration" Version="0.4.0-*" /> <ItemGroup>
ããããã¯ããããASP.NET ã¨ãããã.NET Coreã®Configureationã®æ¡å¼µã¨ãããã¨ãªãã§ãããã
ã¾ãappsettings.jsonã«è¦ãã®ãyamlã®æ¹ãè¦ãã®ãã確ãyamlã®æ¹ãåªå ãã
ããããªãã·ã³ãã«ã§ãããã
ããåãåå¼·ã«ãªã£ã¦æé«ã£ã¦æãã§ããã
ã¾ããã¬ãã¥ã¼ã«ãªã£ã¦æ¬²ããã®ã§ãã¿ããªã§ä½¿ã£ã¦ãã£ã¼ãããã¯ãã¾ããããã
Introducing YARP Preview 1
ãã.NET Confã®ä¸ã§ãæ°ãããªãã¼ã¹ãããã·ã¼ãåºã¦ããã¨ãC#ã§æ¸ãããæ§æã®ãããã·ãYARP(ã¤ã¼ã)ãã
ããã¡ãªã¿ã«ã¾ã ãã³ããã¼ã¯ãå ¬éããã¦ãªãã®ã§ãã¾ã ãã¤ããã©ã¼ãã³ã¹ãã©ããã¯åãããªãã§ããã©ãã
ããå°ãªãã¦ããARR(Application Request Routing)ãããã¯éãã ããã¨ãããã
ããçµæ§ãããã¥ã¡ã³ãããµã³ãã«ã³ã¼ãã¯æã£ã¦ã¾ããããããããã
ããéçºãé²ãã§ãã¦ãæ§è½ãæããã«æªãã¯ãªãã ããã¨ããæãã§ãããã
ããæè¿ã¯ããHealth Cheksã¨ããæ¬çªã§ä½¿ãã®ã«å¿ è¦ãªéçºã«ç§»ã£ã¦ããããªã¨ãã
ãããããã¬ãã¥ã¼ãåãæ¹åã§ã
ããã¡ãã£ã¨åã¾ã§ã¯ãèªè¨¼ãã¼ã¨ããSession Affinityã¨ãããªãã¼ã¹ãããã·ã¼ã®åºæ¬çãªæ©è½ã ã£ããæè¿ã¯å¤ãã£ã¦ãã¾ãããã
ããHealth Cheksã®æ©è½ãå ¥ã£ã¦ããã¨ããªãæ¬çªãæèããå®è£ ãé²ãã§ãæãã§ãããã
ãããã®è¾ºããMicorsoftããã£ã¦ããçç±ã¨ããã®ããCloud Nativeæä»£ã¨ããããKubernetesããIngerssã¨ãã§å¤é¨ããã®ãªã¯ã¨ã¹ããå é¨ã®ã³ã³ããã«æµãè¾¼ãé¨åãå¿ è¦ãããããªãã¼ã¹ãããã·ãä½ãããåãå¿ è¦ãããã¨ãã話ã§ããããã
ããããè¦ãã®ã¯Nginxã®Ingressã¨ããApplication Gatewayã¨ãã¦ä½¿ãã¿ãããªãã§ãããã¤ãé ãã§ããããã
ããã¯ãAzureã® Application Gateway ã¤ã³ã°ã¬ã¹ã³ã³ããã¼ã©ã¼ã®ãã¨ãããï¼
ããApplication Gatewayåä½ã§ä½¿ãã®ã¯ãããã§ããã©ãIngressã³ã³ããã¼ã©ã¼ã¨ãã¦ä½¿ããã¨ã¯ã§ãã¾ããã©ãå人çã«ã¯ãç§ãè¨ãã®ããªãã§ããã©ãNginxã®Ingerssã³ã³ããã¼ã©ã使ããããªã¨ããæãã¯ãã¾ããã
ããåãããæãã¾ããã
ããApplication Gatewayãããã¼ããããçãªã¨ãããè¦ãã¨ã¢ãããã¼ãã®äºå®ããããã§ãããããæ¹åã¯ããã¦ããã¨æãã¾ããã
ããä¸å¿ãããV2ã«ã¯ãªã£ã¦ãã¦ãV1ã£ã¦Windows+ARRã ã£ãã®ããV2ã«ãªã£ã¦Linuxã¨Nginxã«ã«ãªã£ããã§ããããªã®ã§ãã¾ãã«ãªã£ã£ã¦ããªã¼ãã¹ã±ã¼ã«ã¨ãã対å¿ãã¦ãã¦ãã§ãããã¡ãã£ã¨ééç´ã§ããããã
ããããã§ããããã
ããä»ãªãã¼ã¹ãããã·ã¼ãä½ãã¨ããã®ã¯ãIISæ¨ã¦ãããã®ããªã£ã¦ã¨ããæ°æã¡ãè¥å¹²ãã¤ã¤ãã
ã (ç¬)
ããæ£ç´æè¿ã®Azureç³»ã®éçºã ã¨ãIISã使ãçç±ã¯ARR(Application Request Routing)ã®ãªãã¼ã¹ãããã·ã¨ããæããã
ããããã§ãããã¾ããããããã.NET Coreãåºã¦ãã¦ãkestreã§åãã¨ããæµãã§ã¯ããã¡ãããIISä¾åããªããã¦ãããã¨ããåãã¯ãã¡ããããã®ã§ããããæ®µéã§YARPã¿ãããªC#ãASP.NET Coreãã¼ã¹ã§ãããããå®è£ ãé²ãã§ãã¦ãã¨ãããã¨ã¯ããã£ã±ããã£ã¨ããä¾åããWindowsãIIS䏿¬ã®ã¦ãã§ããªããã¦ãããã¨ããã®ã¯æãããªã¨ããã ã¨æãã¾ããã
ãããªãã¼ã¹ãããã·ã¯Azure Functionsã®ãããã·ã¨ãç´°ããé¨åã§ä½¿ããã¦ããã®ã§ãApp ServiceãARRã¨ãããªãã ããã ã§ãPaaSã¨ãSaaSã®å®è£ ã«å¿ è¦ãªé¨åãªã®ã§ããã®YARPã¯ãåããæ°è»½ã«ä½¿ãã¨ããããããå®ã¯ã社å ã§åæã«ä½¿ã£ã¦ããããã«ä½ã£ã¦ãããããªããã£ã¦æã£ã¦ã¾ãããã
ããã¢ãããã¼ãã¨ãµã¼ãã¹ã«åãè¾¼ã¾ãã¦ãèªç¶ã«ãã®è¾ºã®ãã¤ããã©ã¼ãã³ã¹ãã®æ©æµãåãããã¨ãã§ããæä»£ãæå¾ ãã¦ãããã
ããããã¨ããã«ç®ãã¤ãã¦ããã¨æãã¾ãããããã«ãã®éããããããªãã§ãããã
ãããã®YARPãåºã¦ãã¾ãããæ®éã«éçºããã¦ãæ¹ãå®éYARPã使ã£ã¦ãèªåã§è²·ãè¨ãã¨ãããå®è£ ãã¦ãããã¨å¤åããäººãæ¿ã人ã¯ããã¨ã¯æãã¾ããã
ãã宿½ã®APS.NET Coreã®ãã¤ãã©ã¤ã³ããã£ã¨é«éã«ããããä½ãããã¨ããã®ããããããããªãã§ããã©ãã§ãããããã«ãå¤åãMSå´ã§ãããããããã使ã£ã軽éãªãã®ããã£ããä½ãã¨ããåå°ã«ã¯ãªã£ã¦ããæ°ããã¾ãããç§ããããªæ°ããã¾ããã
ãããããã£ãæå³ã§ããããæ³¨ç®ããã¦ãã¾ããã
Xamarin / .NET MAUI Preview
ã¹ã©ã¤ã
- Xamarin.Forms 5
- MAUI 㯠.NET 6 ã§ã®æ£å¼ãªãªã¼ã¹ã«åãã¦éçºä¸
- Introducing .NET Multi-platform App UI (MAUI)
- ãªã㨠.NET 5 ã®ãªãªã¼ã¹ã¿ã¤ãã³ã°ã§ãã¬ãã¥ã¼ãåºãªãã£ã
åç»
https://youtu.be/HJ802p3syTw?t=4363
Recapping Xamarin Highlights from .NET Conf
ããã¿ã¤ã°ãããå¾ ãããã¾ãããã
ã¿ãWindowsãã¨è¨ãããã¨ã¡ãã£ã¨éãããããã§ãã©ããªãã§ãããFormsã£ã¦ãMonoããã£ã¦ãã¨ããã§ããXamarinã¯Xamarin.Formsã¨ã¯éãããéã«ãã¦ã Xmarin.Formsã¯Xamrinã¨ã¯éããã¨çµæ§è¨ããã¦ãããã
ã¿ãMicrosoftã®ãã¢ã£ã¦Formsã®ãã®ãå¤ãã®ã§ãã§ã¯ãå®éãFormsã£ã¦ã©ããªã®ã¨ããã®ã¯æããæã£ã¦ãã¨ããã§ã¯ãããã§ããã©ããã£ã±ãFormsãFormsã£ã¦è¨ããã¦ãã®ã£ã¦ãªããªãã§ããããã¿ãããªãã
ã¿ããã£ã±ãããããªã¨ããã§åãã®ã¯å¬ããã®ããªã©ããªãããªã¨ãããã¨ãã£ã±ããUIãXAMLã§æ¸ããã人ãã¡ãããã®ããªã¼ã¿ãããªã®ã¯æ°ã«ãªã£ã¦ã¯ãã¾ããã
ã¿ãã§ããã®ã¿ã¤ãã³ã°ã§MAUIã§ããã¿ãããªãã
ããã§ããæ¬å½ã¯.NET 5ã6ã§ã®MAUIãªæµãã ã¨æããã§ããã©ããã
ã¿ãããã§ããããã
ããä½ãå¤ãããã¨ããã®ãã¾ã æç¢ºã«è¦ãã¦ããªããã
ã¿ãã¾ã ããã¾ãæ å ±ããªãã¨ããããã
ãããã ãéçºèªä½ã¯ãããããã°ã£ã¦ããã®ã¯ããããã
ããæè¿ã¯ãã¹ãã©ãããã©ã¼ã ã®UIãã¬ã¼ã ã¯ã¼ã¯ãå¤ããªã£ã¦ãããªã£ã¦ãããããããªè¨èªã§ãã
ããã ãããã¿ããªããã«ç®ãã¤ãå§ãããXamarin.Formsã¯ã¡ãã£ã¨å ã«é²ãã§ãã®ãããããªãã§ããã©ã追ãæãããããªã®ã§ããã¡ãã£ã¨ããã°ã£ã¦ã»ãããã
ããIntroducing .NET Multi-platform App UI(blog)ä»ã¡ããã©ã§ã¦ã¾ããã©ããã¶ããã®è¾ºãXamarin.Formsã¨ãã§ãããç¨åº¦ããã¸ã§ã¯ããiOSãAndroidã¿ãããªæãã§ã©ããã¦ãä¾åãã¦ãé¨åãæ®ã£ã¦ããé¨åããã£ãã¨æããã§ããã©ãã

ããå®éãã®è¾ºãã©ã®ãããã®å½¢ã§ãåºã¦ããã®ããããè¦ãéãã ã¨åãããªããããã¡ãã£ã¨ã·ã³ãã«ã«1ããã¸ã§ã¯ãã¿ãããªã·ã³ãã«ãªå½¢ã§ããã¨ãããªãã
ããã¾ã å®ä½ãåãããªãã¨ããã¨ãããæ£ç´ãªã¨ãããã
ãããã®MVUãæ°ã«ãã£ã¦ã¯ãããã§ãããã

ããModel-View-Updateãã¿ã¼ã³ãæè¿ä»ã®ãã¬ã¼ã ã¯ã¼ã¯ããããã®ãã¬ã¼ã ã¯ã¼ã¯ã ã¨ã¡ããã¡ããè¦ããã¿ã¼ã³ãã
ããiOSã®Swiftãããªãã¦ãSwift UIã ã£ãããã®è¾ºããããããã¿ã¼ã³ã ã£ãæ°ããããã©ãã
ã¿ãããã§ãããã³ã¼ãã§ã§UIãä½ãã¾ããã
ããã¿ãªãããMVVMãã³ã¼ãããã¤ã³ããã©ã£ã¡ãã ã£ãã®ããæ°ãããã¿ã¼ã³ãå¢ããã¨ããã®ã¯èå³ããããã
ããæè¿ã®ãã¬ã³ããã¡ããã¨å ¥ãã¦ãã¦ããæãã¯ããã¾ãããã
ããRoadmapã®ãã¼ã¸ãã¡ããã¨ããã¾ãããã
ã¿ãå人çã«ã¯ãUno Platformã«ãããèå³ããã£ã¦ãä»ã¡ãã£ã¨èª¿ã¹ãæããUno Platformã.NET 5ã«å®å ¨å¯¾å¿ãããã£ã¦è¨ã£ã¡ãã£ã¦ããã
ã¿ãåã¯ãããããWebã®äººéãªãã¦ãXAMLãã©ãããã©ã¼ã ã®äººéãªã®ã§ãã¡ãã£ã¨ãã£ã¡ã®æ¹ãèå³ãããã
ã¿ãåºæ¬Mono Platformã£ã¦ãXAMLã§UIãæ¸ãã¦ãWindowsã¨Webã¨ã¢ãã¤ã«ã¨ãªãããããã§åãã¾ãã¿ãããªãã¤ãªãã§ããã©ããããä¸å¿Monoã®ä¸ã«ä¹ã£ã¦ãããªãWASMã®ä¸ã«ä¹ã£ã¦ã¦ãããã.NET 5ã«ç§»è¡ãããã¿ãããªPlatformãªãã§ããã
ã¿ãã©ãããMicorsoftããããããæä¼ãããã¦ãã¿ããã§ããã
ããããã¯èãã¦ã¾ãããå¤åãçµæ§å ¥ã£ã¦ããã¨æãã¾ããã
ããHigh Level Architectureã«ãã£ãã.NET 5ã§åãããã

ã¿ãæåããèå³ããã£ã¦ãæè¿ã¡ãã£ã¨ããã¦ãªãã£ããã ãã©ãã
ããå²ã¨ãã£ã¡ã®æ¹ãé²ãã§ããæãããã¡ããããã§ã«ä½¿ãããã®ãããããã§ãããã
ã¿ãUIã¨ããå²ã¨æã£ã¦ãã¦ãUno Gallary ã«Webãªããã¢ãã¤ã«ãªãã§ãMaterial ã¨Fluent ã®UIã使ãåããããã¨ããã¼ã¯ã¢ã¼ãã¨ããã©ã·ããã£ããã¨ããã

ã¿ããªãããã®è¾ºã£ã¦ããããã¦MAUIã¨ç«¶åã¨ãã«ãªã£ã¦ããã®ããªã¨ãã¡ãã£ã¨æããªããè¦ã¦ã¾ãããã
ããåãC#ã§æ¸ããã¯ãã¹ãã©ãããã©ã¼ã ãªUIããã¬ã¼ã ã¯ã¼ã¯ã¨ãã観ç¹ã ã¨å®å ¨ã«ä¸ç·ã§ãããã
ããåã¯ãã©ãã¾ã§å ±éåãã§ããã®ãã¿ãããªã®ãã¡ãã£ã¨æ°ã«ãªããã
ã¿ãã©ãããMVPãä½ã£ã¦ãããããã®ããã
ã¿ãã¯ã³ã¡ãããè²·åãã¦ããã¸ãããªã¨æã£ã¦ãããããã
ããããMAUIã®ãã¼ããããã¨ãå«ãã¦ããååãªãã¾ã ãã®è¾ºã¯åããããããã§ãããUno Platformå«ãã¦ãã©ãã§ãè¿ãããããããªæ°ãããªãã§ããªãã§ããã
ã¿ã.NET 5ãããã ãã.NET 6ãããã ãããã®éã§ãã§ãã¯ãã¦ããã¨é¢ç½ãããªãä»ã¯ãã
ããã¡ãã£ã¨ãã£ã±ããã®MAUIã¯é²ã¿ã®æªãã«ãã
ã¿ãããããã ãããWebã¯ç¾¨ã¾ãããªã£ã¦ãã
ãããªãããã¼ãMicrosoftã¯Nativeç³»ã®UIãä½ãã®ãè¦ã£ã¦ããããã
ã¿ã.NET Coreã¨ããWebãå ã§ãããããããããªããããããAsyncEnumerableã¨ã使ããã®ãWebãå ã ã£ããã§ãã
ã¿ãããããæ©è½ãC#ã®è¨èªæ©è½ã ã£ããã¨ã.NET 5ã®SKDã®ãªãããããUIã©ã¤ãã©ãªã¨ãã¯ã©ã¤ã¢ã³ãç³»ã¨ãã©ã¤ãã©ãªã¨ãã«ä½¿ãã¦ããããã«ãªãã¨ä»å¾ã¡ãã£ã¨ããããããªã£ã¦ããã®ããã¨ããæãããªã¨é観ãã¦ãã¾ããã
ããã¡ãã£ã¨æ³¨ç®ã§ããã確ãã«ãã
ã¿ãè¨ãæ¹å¤ããã°ã¾ã 注ç®ãããã§ããããªã£ã¦ãã
ããã¾ã ããããã«ããä»åã.NET 5ã®ãªãªã¼ã¹ã®ã¿ã¤ãã³ã°ã§MAUIã®ãã¬ãã¥ã¼ãã§ããã¨æã£ããã§ããããlate2020ã£ã¦æ¸ãã¦ãããã§ãã
ããã¢ã¡ãªã«ã®äººãã¡ã«ã¨ã£ã¦ã®late2020ã¨ããã®ã¯11æã ã¨æã£ããã§ããã©ã12æã¯ãä¼ã¿ã§ã¿ããªä»äºããªãã¯ããªãã§ãã
ããã¨æã£ã¦ããã§ããã©ããªãã¨ãã¬ãã¥ã¼ãåºãªãã£ãã¨ãããæ£ç´ãã®ç¬éãä¸å®ããã
ããã§ããã¼ãã¼ãã§Xamarin.Forms 5ã®ãã¢ãã¦ãã ãã§ãããã
ããMAUIã®ä¸è¨ãè¨ã£ã¦ãªãã£ãæ°ããã¾ãããã
ããã§ãªãã£ãæ°ããããã
ããXamarin.Forms 5ã ãåºã¦ã¦ãã
ãããããã£ã¡ã§ãããå®å ¨ã«ãã
ããMAUIã¯ãããã話ããªãã£ããªã£ã¦ãã
ã¿ãã¡ãã£ã¨ãã£ã¨ãã¦ããã¦ãããæ¹ããããããªããã
ããã¿ãªããååã¯æ³¨ç®ãã¤ã¤ãä»ã®ã¨ããã¯ãã£ã¨ãã¦ãããã¦ããã¦ãã ããã¨ããæãã§ãããããã
ããã¾ã¼ãã§ã¼ãã¢ã¦ããã¦ããå¯è½æ§ããããå人çã«ã¯namespaceãSystemããå§ããã®ã¯å¤±æã®é°å²æ°ããããã
ä¸å (çç¬)
ãããªãã»ã©ããã
ããã ããããå¾ã§ãå¤§å¹ ãªãªãã¼ã ã¨ãçºçãã¦ããã¡ããã¡ãã«ãªãã¿ãããªäºæããããã¡ãã£ã¨æããªã£ã¦ãããã
ã¿ããªããããã¾ã§åã®å¨ããããã¯ãä»äºã®è¦³ç¹ã§ããã©ããã£ã±ãã¯ã©ã¤ã¢ã³ãã£ã¦æè¿ä¸ç«ã§ãä»ã¾ã§ä½ã£ã¦ãã¯ã©ã¤ã¢ã³ãã¢ããªãWebã«æã£ã¦ããããã¿ãããªä»äºãå¤ãããã
ã¿ãæ£ç´ããã§ããããã£ã±ãWebã§ä½ããããããã¯ç¤¾å ã®ã¤ã³ãã©ããWebããè¦ããããã«ããããã¿ãããªã客æ§ã¯ããã®ã§ãã©ã¡ããã¨ããã¨ã¯ã©ã¤ã¢ã³ããããªããªããã¨ããã®ã¯ããã¾ããä»äºã§ã¯ãªãããªãã
ã¿ãåã¨ãã¦ã¯ææ £ãã¦ããã®ã§ã¾ãã¹ã¯ã©ããã¨ããããã¿ã¤ããã¯ã©ã¤ã¢ã³ãã§ããã¨ä½ã£ã¦ã£ã¦ãWPFã¨ããããã§ããã©ã.NET Coreãæ¥ã¦ã.NET 5ããã¦ããªãã§ã»ã¼MVVMã¨ããã¤ãã£ããããã¨ã¡ã½ããåä½ã§ã¯ãASP.NET ã¨WPFã¨å ±åã§ããããã¡ãã£ããããããã
ã¿ãåãnugetã®ããã¸ã§ã¯ãã§ä½¿ãããããã®ã§ããããã¿ã¤ããWPFã§ææ £ãã¦ãããä½ã£ã¡ãã£ã¦ãåãã³ã¼ãã使ã£ã¦ãAPS.NETã§æ¬çªä½ãç´ãã¿ãããªãã¨ã¯ãã¦ã¾ãããã
ãããããªã£ã¦ããã¨C#ãã¼ã¹ã§ã¾ãã¯ã©ã¤ã¢ã³ããå ã«ãããã¿ã¤ãä½ã£ã¦ããã¾ããããã宿ãã¾ãããã¨ããã¨ãã«ããããããã£ãè¨ã£ãBlazorã¨ãã使ã£ã¦ãã®ã¾ã¾Webã«ç§»è¡ãã¦ããã¾ããã¡ã¤ã³ã¯C#ã®ã¾ã¾ããã¾ãã¿ããã®ã¯ããã®æµãã¨ããã®ã¯1ã¤ãã¬ã³ãã¨ãã¦ãããã§ãããããã
ã¿ããããããã¼ã¸ã§ã³ãããã£ã¦å ±éåããã¦ãæ¸ãæ¨ã¦ãã³ã¼ããæ¸ã£ãã¨ããã®ã¯å¬ããã§ãããã
ãããªãã»ã©ãã
ããUno Platformãã£ãWebAssemblyãããã£ã¦æ¸ãã¦ãããã
ã¿ãããããã
ãããã©ã¦ã¶ã«ç§»ãã«ããã
ã¿ãUno Gallaryèªä½ããã§ã«Unoã§ãã©ã¦ã¶ã§ä½ããã¦ããããããªãããªãWebAssemblyãã¼ã¹ãªãã§ãã
ãããã£ï¼ï¼ã
ã¿ããã¨ãWindowsã§åãã¦ããé»åã丸ã ç§»æ¤ãããã£ã¦ã¨ããã®ããã£ã¦ãç§»æ¤ãããWindowsã®é»åã¯Webã§macã§ãiOSã§ãAndroidã§ãåãã¨ãããã¢ã¯ããããã®ã¹ãã¢ã¼ã«å ¬éããã¦ãããã¾ããã
ãããããã
ããçµæ§ãæ¡å¤ä½¿ããã¦ããããããã
ã¿ãæ¡å¤ããããã§ãããæ ç»ã®ãã±ããã¨ããããã·ã§ãã«ã¸ãªã°ã©ãã£ãã¯ã®ã©ã¼ãã³ã°ã«ã使ããã¦ãããããã
ããChannel 9ã®ã¢ããªã«ããã
ã¿ãã¸ã¼ããããããã£ããã
ããããã¯ãUnoãä½ã£ããµã³ãã«ã¢ããªã§ããããã
ã¿ãåæã«ä½ã£ããã¤ããªãã
ãããã°ããªãMicrosoftããããã£ã¦ããã©ããããããªã£ã¦ãã
ããããããCalculatorãã

ã¿ãGoogle Playã«ããApp Storeã«ããã
ãããããã¤ãããªãã§ãããã
ã¾ããã®è¦è¦ãã®ãããã
ããè¦è¦ãã®ãããã
ãããªããWindowsã®é»åã®ã½ã¼ã¹ã³ã¼ããå ¬éããã¦ãããã§ããããã
ã¿ããããªãã§ããããããããå ¬éããã¦ããã§ããããã
ã¿ãã¢ãã¤ã«çã ã¨ã¡ããã¨æ¨ªã«åããã¨é¢æ°é»åã«ãªã£ããã¨ãããããããªãããªãã
ããããããããæ®éã«ã¡ããã¨æ¥æ¬èªåºã¦ããã®ããã¤ã³ãé«ããªãã

ããããªãåºãã£ã¦ãã¦ã楽ãããªã¼ãã
ãããããã¿ã¤ãã¨ãã§ãã©ã¤ãã©ãªã¨ãå ¨é¨å ±éåã§ãã¦ãã
ã¿ãæåWikiã«è§¦ã£ãæãã ã¨ãè¥å¹²å®å®ãã¦ããªãããããããã¨ã¯æ¸ããªãã¿ããã®ããã£ããã§ããã©ãããããããããã¼ã¸ã§ã³ãä¸ãã£ã¦ãå®å®æ§ãä¸ãã£ã¦ããããããªãã§ããããã
ããã¡ããã¨ãã¼ã¯ã¢ã¼ãã«ã対å¿ãã¦ããã

ããã¡ãã£ã¨Uno Platformè²·åããªãã
ä¸å (çç¬ï¼
ããåå¹´å¾ãããã«è²·åããã¦ããããªæ°ããã¦ãã¾ããããã
ããã§ãMAUIããã®ã¾ã¾å ¥ãæ¿ããã¿ãããªãããããæªæ¥ããããããªæ°ããã¾ããã
ããä»åã¯ã©ã¤ã¢ã³ãã®è©±ãã¾ãèããªãããªã¨æã£ããã§ããã©ã話ãã§ã¦ãã¦é¢ç½ããã
ããUno Platformãèªåã§è§¦ããéã¼ãã¨ã¯å ¨ç¶æã£ã¦ãªãã£ããã
ããç§ãåå¼·ã«ãªãã¾ãããååãããããèãã¦ãªãã£ãã®ã§ãå®éãç¶æ³ã¨ãã¦åå¼·ã«ãªãã¾ãããã
ããMAUIãã©ããªããã¯ã¡ãã£ã¨ãã¼ã³ã¡ã³ãã¨ããã¦ããã ãããã¨æãã¾ãããã©ããã
Windows åãæ©è½ / ãã®ä»
ã¹ã©ã¤ã
- Windows ARM64 ãµãã¼ãï¼ãã ã WPF ã¯é¤ãï¼
- WinRT API ãå©â½¤ããã®ãç°¡åã«
- .NET for Apache Spark 1.0 ãªãªã¼ã¹
åç»
https://youtu.be/HJ802p3syTw?t=5294
ARM64 Performance in .NET 5
ããWindows 10ã®ARM64ãSurface Pro Xã¨ãããã½ã³ã³ã§ãããããã§ãNativeã§ã§åãããã«ãªã£ããã§ããã©ãSDKãå ¬éããã¦ãSuraface Pro Xä¸ã§ãASP.NET Coreã¢ããªã±ã¼ã·ã§ã³ã¨ããåãããã«ãªã£ã¦ããããã
ããã§ããä¸çªæ¬²ããã£ãWPFãå ¥ã£ã¦ãªãã¦ãã
ãããã£ããã
ã¿ãã§ããUWPã¯åãã§ããï¼ã
ããUWPã¯Nativeã«ãã«ãããããã.NET Coreã¨é¢ä¿ãªãã¦ãã
ããã¡ãªã¿ã«ãUWPã¯æå¾ã«æ´æ°ãããã®ã1å¹´ãããåã ã¨æããã
ã¿ã大ä¸å¤«ãªã®ãï¼ã
ããå®è³ªæ»ãã ã§ãããããããã
ä¸å (çç¬)
ãããã¼ã³ã¡ã³ãã§è¡ãã¾ããããã
ããããæ»ãã ãªã¨æããã¨æã£ã¦ã¾ããã
ã¿ã仿¥ã¯ããã¦UWPã¨è¨ã£ããã©ããã
ããã ããUWPãããã¨æã£ã¦ãªãã£ããã
ããããã¯æ»ã¬ããããªãããªãæ£ç´ãã
ããã§ãããã§ãWindowsã®ARM64ãµãã¼ãã§.NET Coreã®ã³ã¼ãã¸ã§ãã¬ã¼ã¿ã¼ã¨ãJITã³ã³ãã¤ã©ã¼ã¨ããARM64ã®ã³ã¼ããæ®éã«åãããã«ãªã£ã¦ãã®ã§ãLinuxã®ARM64ãLinux ARM32ã«å¯¾å¿ãããã§ããããã®éãçºè¡¨ã«ãªã£ãApple Siliconã®MacBookã¨ãã®ãµãã¼ããå¾ã ã«å§ã¾ã£ã¦ããããããã
ããPull Requestãããã¤ãåºã¦ã¦ãããã¸ã®ãµãã¼ããã²ãã£ã¨ãã¦ã6ã§ã¯æ®éã«å ¥ã£ã¦ãããããããªããªãã
ãããã®è¾ºãã§ã¯ãã¹ãã©ãããã©ã¼ã UIãã¬ã¼ã ã¯ã¼ã¯ã®ä¾¡å¤ãåºã¦ãããããããªãã§ãããã
ããããã§ããã確ãã«ãã
ããNativeã¢ããªã§åãã£ã¦è¶ éè¦ã ã¨æãããã®è¾ºãã¯ãã®ARM64ããã®Macãã©ã®ããã売ãããåãããªããã§ããã©ãçµæ§ä¸»æµã¨ãªã£ã¦ããå¯è½æ§ãããããªã£ã¦ããæããã
ããããã¤ã¹é©å½ã«è²·ã£ã¦ãWindowsã§ããã©ãè²·ã£ã¦éãã§ãã¨ããæãã§ããã
ãããã°ããè²·ã£ããã§ããï¼ã
ããåã¯Pro Xãæã£ã¦ã¾ããã
ããçµæ§ã黿± æã¡ãããããããã©ã¼ãã³ã¹ãæªããªãããçµæ§ãããã
Announcing C#/WinRT Version 1.0 with the .NET 5 GA Release
ããå¯ä¸UWPã£ã½ã話é¡ããã®WinRT APIãå©ç¨ããæ©è½ãã¤ããã£ã¦ãã¤ãã
ããåãæåå ¨ç¶ç¥ããªãã¦ãMicrosoftã®å¤ªç°ãããããã®ãã¤ã¼ãã¨ãããã°è¦ã¦ãããããæ¸ãæ¹ã§ãããã ã£ã¦æã£ããã§ãããã
ãã仿¥ã度ã
åºã¦ããTFMã£ã¦ãæãTarget Framework Monikersã ã£ãã®ããTarget Framework Names
ã«ãªã£ã¦ã¾ããããã§ã¯ãMonikersã£ã¦æ¸ãã¦ãããã§ããã©ãå¾®å¦ã«ååã夿´ããã¦ã¦ãã

ããUWPã¨ããWinRTã®APIãå©ãã®ã£ã¦ããã©ãããã£ããã§ããã©ãnugetã§è¬ã®ããã±ã¼ã¸å ¥ããªãã¨ä½¿ããªãã£ããã
ããããã®TFMã«-Windowsã¨ãã¼ã¸ã§ã³ãå ¥ããã¨ããã ãã§ããã¼ã¹ãã¨ãã®APIãæ®éã«å©ããããã«ãªããã
ããããã¯ç¥ããªãã£ããªãç§ããã
ããããã¯ã¡ãã£ã¨ä¾¿å©ãã
ããã§ããããã ããªãã§ããããã
ä¸å (çç¬)
ããã¡ãªã¿ã«ç§ãWinRTå¨ãã«ã¤ãã¦è©³ãããªãã§ããã©ãå®éã«.NETå´ããWinRTã®APIãå©ãã±ã¼ã¹ã£ã¦çµæ§ãããã§ããï¼ã
ããå®ã¯ãããããã§ãããã
ããã¹ã¿ã¼ãã¢ããèµ·åã¨ã常é§ã¢ããªã±ã¼ã·ã§ã³ã¨ãã ã¨ä»ã ã¨Slacã¨ãæ®éã«Windowsã¨ä¸ãã£ã¦ãããããªãã§ãããã¿ã¹ã¯ããã¼ã¸ã£ã¼ã§ã¹ã¿ã¼ãã¢ããã¨ãããã¿ãå¢ãã¦ã¦ãããããé¸ã¹ããã§ãããããã£ã¦ç»é²ããAPIãWinRTã«ãããªããã
ãããªãã»ã©ããã
ãã常é§ããã¢ããªã±ã¼ã·ã§ã³ã¨ãã¯ãæ®éã«WPFãä½ãããã§ãããä»ã¾ã§ã¯ã¬ã¸ã¹ããªã¨ãç´æ¥ãããã¨ãããªãã¨ãããªãã£ãã®ããAPIã ã¨ä¸çºãªãã§ããã
ãããã¨ãä»ã«ãã»ã³ãµã¼ç³»ã®APIã¨ããããããããã§ããããããã¤ã¹ãããæãã
ãã便å©ã¡ãã便å©ãªãã§ããã©ãã¡ãã£ã¨ä½¿ãåæãæªãã£ãã§ãããªãSDKå ¥ããããã
ããã ãããå ¬å¼ãµã³ãã«ã¯æ°ããæ¸ãæ¹ã¨ãå¤ãæ¸ãæ¹ã¨ããã£ã¨å¤ãæ¸ãæ¹ããã¡ãã¾ãã«ãªã£ã¦ãã¦ãä½ãææ°ãåãããªãã§ããã
ãããããã¡ãªé¨åãã
ããã ãã¶ãããããµããªæããã·ã«ãªã£ããªã¨ãã
ããWinRTã®APIãæ£ç´ã©ãã¾ã§ä½¿ããï½ããããªãã§ããã©ãã
ããã¡ãã£ã¨ãã®è¾ºãã¯æ®éã«æ¸ããã£ã¦ããã«ã¯ä¾¿å©ã§ããã
Announcing Version 1.0 of .NET for Apache Spark
ããæå¾ããã®ä»ã¨ããã®ã§ãå¾®å¦ã«é¢ä¿ãããããã§ãªãã.NET for Apache Sparkãã§ããã .NET Standard 2.0 ã§ãã
ããApache Sparkãä»ã ã¨ãã£ã±ãPythonããå ãJavaãªãã§ããã¤ã³ãã£ã°ã§Pythonã¨ãã§æ¸ãä¸çãªãã§ããããã£ã±ããªããC#ã§æ¸ããããã
ãã2é±éãããåã«ãå¥ã®ã¤ãã³ãã§ãAzure Synapse Analyticsã¨ããã£ããã§ããããã£ã±ãPythonãèªãããã©ããã£ã±ãC#ã§æ¸ããããåã¨ã欲ãããã¨ããã£ããã§ãã
ãããã®è¾º1.0ã§æ£å¼ãªãªã¼ã¹ã«ãªã£ããã§ãAzureã®ãµã¼ãã¹ã¨ãã§çµã¿è¾¼ã¾ãã¦ããã¨ããªãå人çã«ã¯ããããæãã§ããã
ãã.NETãããããªã¢ããªã±ã¼ã·ã§ã³ãä½ãã¾ãããAIã¨ããè¦ç´ ããã£ã¨è¬³ããã¦ã¦ããåç¥ã®ãæ¹ãããã¨æãã¾ãããML.NETããããããªãã§ããã.NETã§ã¢ãã«ä½ã£ã¦ãC#ã®ä¸ã§ä½¿ã£ã¦ãããã®ãããªããããåããã¦ãSparkãã¼ã¹ã§ãC#ã§æ¸ãã¦ãããã
ãããã®è¾ºãå«ãã¦ã¡ããã¨ãã£ã¦ããã¨ããã®ã¯ããããã¨ããã«åºã¦ã¾ãããã1.0ã«ãªã£ãã¨ããã®ã¯ããããã¨ã ã¨æãã¾ããã
Project Reunion
ããTwitterè¦ã¦ãã¨ãããããããProject Reunionã¨ã¤ã¶ããã¦ãã ãã£ã¦ããã§ãããå®å ¨ã«ããã¦ã¾ãããã
ããProject Reunionã£ã¦Win UIã®ã¨ãã§ããã£ãï¼ã
ããã§ãããåæãããAPIãçµ±åããã¾ã§ãã
ããæ¬å½ã«Project Reunionã®ãªãã¸ã㪠ã£ã¦ãããã§ãããCIãè½ã¡ã¦ãã®ã¯ãä¸åãªäºæããã¾ããã©ãã

ããæåãç¥ãã¾ããã
ããã¡ãã£ã¨ä¸å®ãããã¡ãã£ã¨ãããªããã ãã¶ä¸å®ã§ã¯ããã§ããã
ãããªããããããWin RTãã¾ã¨ãã人ãWin 32ã¨ãWPFãã¨ãã®çµ±åã¨ããã話ããã¦ãæ°ããããã§ããããUWPã¨ãããã

ããããããçµ±åããã¨ãã壮大ãªè¨ç»ã¯ã ããããªããè¦ããã¿ãããªãã
ãããªãªã¼ã¹ãããã®ãä¸å¿å¾ ã¡ã¾ããã
ããä¸å¿ããã§ã¹ã©ã¤ãã¯å ¨ã¦ã§ããäºå®ãã¦ãæéã¯ããã§çµãããæ¬å½ã ã£ãããã®ãã¨Q&Aã¨ããå ¥ãããã¨æã£ããã¹ãã©é½åº¦å ¥ãã¤ã¤ãTwitterã¨ãã§æ¾ãã¤ã¤ãã£ãã®ã§ãTwitterãè¦ã¦ããã§ããã©ãç¹ã«ãã¡ããã¡ãå¤ãã£ãã¨ããããã§ããªãã£ãã®ã§ã
ã¿ãã³ã¡ã³ããå¤ãã§ãããã
ãããããã³ã¡ã³ããå¤ããã
ããMAUIã¯ã¡ãã£ã¨è©å¤æªããã¦ãã¡ããããããªãã§ãããã
ä¸å (çç¬)
XAML Standard
ã¿ããã¼ããªãããXAML Standardã¨è¨ã£ã¦ããã
ããXAML Standardï¼ï¼ã
ããXAML Islandã¨ãè¨ã£ã¡ããã¡ã ã¨æããã
ããXAML Standardãç¥ã£ã¦ãæ¹ãããã£ãããã¾ããããã
ãããããçµå±ããªãã¸ããªãã»ã¼ç©ºã£ã½ã®ã¾ã¾çµãã£ãã¨ãããã
ããçµããã¾ãããã¼ãXamarinã®XAMLã¨Xamarin.Formsã®XAMLã¨WPFã¨å ¨é¨çµ±åãã¾ãããã£ã¦ãã¤ã§ããã
ã¿ãReunionã«ãä¼¼ãé°å²æ°ããããªãã
ããããã ãçµ±åã¨ããã®ã¯é£ããã¨ãããã¨ãªãã§ããããã
ããé£ããã®ã¯åãããã§ããã¤ãæåãã¦æ¬²ããæ°æã¡ã¯ãããã§ãããå½åç¡çãªæ°ããã¾ããã
ããä¸å¿æ çã«ã¯22æã¾ã§ã¨ã£ã¦ããã®ã§ããã¾ã§ã¯åãã§ãã
çªå¤ç·¨
åç»
https://youtu.be/HJ802p3syTw?t=5940
LTS
ã¿ããã¨ã楽å±è£ã§ã¡ãã£ã¨è©±ãã¦ãLTSã®è©±ã¯ããï¼ã
ãããã¼ãLTSã®è©±ã¯ãã¦ãããªãã¨ãããªããã
ãããã¼ããã§ããããããæ¥½å±è£ã§è©±ãã¦ããã¤ã§ããããã
ãã確ããããã¾ã¤ãããããã.NETã®ã©ã¤ããµã¤ã¯ã«ã«ã¤ãã¦Qiitaã§ããã£ãï¼ã
ãã確ãã«ãTLSã®è©±ãã¯ãã¦ãããªãã¨ãXAML Standardã¨ãXAML Islandã¯ãªãã£ããããã¿ãããªæãã§ãã
ãããç¬ãæ å½ã«ã¿ããã«ãªã£ã¦æ¬å½ã¯ãããªãã¨æããå¤ãã¦ã£ã¦æ¬²ãããã
ãã大äºã大äºãã
ã¾ã .NET Coreã®ãµãã¼ãããªã·ã¼ãã¾ã¨ãã ããããã
ãããµãã¼ãããªã·ã¼å¤§äºã§ãããã
ãããµãã¼ãããªã·ã¼è¶ éè¦ãã
ã¾ãä¸å¿ããã°ã£ã¦ã¢ãããã¼ããã¦ããã¤ããã§ããã
ããè¶ éè¦ã§ããããã
ã¾ãããçµæ§å¤§äºãªãã§ããããã
ããçµæ§ãã¿ããªæ²¹æããã®ããã®Currentã¨ããLTSããªãªã¼ã¹ãããå¾ã®3ã¶æéã¨ããå¾ç¶ã®ãã¤ããªãªã¼ã¹ããã3ã¶æéã¨ãçµæ§çãã§ããããã


ããLTSã¯3å¹´ãæ¬¡ã®LTSãåºã¦ãã1å¹´ã¨ãã話ãã ããããã
ããä»ã¯ãLTSã¨Currentãããªãã§ããããä»å ¨é¨EOLã«ãªã£ã¦ããã
ã¾ãã¯ããã
ã¾ãã«ã¬ã³ã使ã£ããããã°ã£ã¦3ã¶æãã¨ã®ã¢ãããã¼ãã¨ããã¢ãããã¼ãã«ã¢ã³ããè²¼ã£ã¦ããå¿ è¦ããã£ã¦ãã
ã¾ããããæ°ã«ããããªããã ã£ãããLTSãé¸ã¶ã¨ããããªæããããªãã§ããããã
ãããã®è¾ºãã¯é£ããã§ãããã常æéçºãã¦ã¦ãã©ãã©ãè¯ããã¦ãããã¨ããå½¢ã ã¨ãæ°ãããã®ãçªã£è¾¼ãã§ãã£ã¦å¸¸æã¢ãããã¼ããããã¦ããã¨ããç¶æ³ã§ããã°å ¨ç¶Currentã«è¿½ãã¤ãã®ã¯ç°¡åã ã¨æããã
ããLTSã®çµ¡ã¿ã§é¢ç½ã話ããã£ãã®æãåºãã¾ãããAzure Fnctionsnã®V2ã£ã¦ãã¤ã.NET Coreã®2ä¸ä»£ãªãã§ãããããã¤ä¸æãruntimeã.NET Core 2.2ã ã£ããã§ãããã
ã¾ãããããã
ãããã¼ããã£ããã£ããã
ãã2.2ã¨ãããã¨ã¯ãã¨ã£ãã«ãµãã¼ããçµãã£ã¦ããã(2019å¹´12æ23æ¥)ãå ¬å¼ãæä¾ãã¦ããã®ãããµãã¼ãåããã¦ããã©ã³ã¿ã¤ã ä¸ã§ãã£ã¨åãã¦ããã
ãããã£ããããã£ãããã
ãããªã®ã§ãä»ã2.1ã«è½ã¨ãããã§ããã
ãããã¼ããã£ããã
ãã2.1ã«éä¸ã§è½ã¨ãã¦ãä»ã¯ãå®ã¯ã11æã®é ã«ãAzure Function V2ã«é¢ãã¦ãèªåçã«3.1ã使ãããã«ã¢ãããã¼ããèµ°ã£ãã¯ããªã®ã§ã3.1ã§åãããã«ãªã£ã¦ãã¾ããã
ãã䏿æå··ã§ã¯è©±é¡ã«ãªã£ã¦ãã¾ããããã
ãããªãã§ãAzure Functionsã¯ã2.1ã¨3.1ã§åãã¦ãç¶æ³ãªãã§ããããã£ã±ããLTSãçã£ã¦ãããªã¨ããå°è±¡ã§ãããã
ãã5ãLTSã«ãªããªãã®ã¯ãã¡ãã£ã¨ã©ããªããã ãããã
ãããã¼ã6ãåºãã¾ã§åããªããããã
ããLTSãã¾ã§1å¹´ã£ã¦é·ããªã£ã¦ãããã
ãããããããããã§ãããã©ã¡ããé¸ã¶ãã¿ãªãããèããä¸ã§ãLTSã§ã¨ãªãã¨ãã°ãã3.1ã®ã¾ã¾ã§ãããããããããã£ãã¨ããã§ãAzure Functionsã® æµãçã«ã¯.NET 6ã¾ã§ä¸ãããªãå¯è½æ§ã¯ãããããªæ°ããã¾ããã©ãã
ããFunctionsãã¼ã ããã¡ããã¨Currentã«è¿½ãã¤ãã¦ããããã°ãããã§ããã©ããã
ãããããããããã
ãã.NET Confã§è©±ã¨ãã¡ãã£ã¨ã§ãªãã£ããã§ãããã
ããDocker imageãµãã¼ãã¨ããDocker imageã¨ãæ®ããã§ãçµæ§ãµãã¼ãåãã¦ãæ°ãä»ããªããã
ããããã§ãããã
ããã¾ã¨ãã¦ããã ãã¦ãã®ã¯ãããå©ãããã
ãããããããã§ããã
ãããµãã¼ããããOSãã
ã¾ããã®è¾ºãã¡ããã¡ããå¤ãã£ã¦ããããµãã¼ãç¯å²ã¨ããããã
ãã.NET 5ãã§ã¦ããã®è¾ºå°ãã¢ãããã¼ããããã¾ãããã確ãä¸é¨åãæ¨ã¦ãããã®ããã£ãã¨æãã¾ããã
ã¾ã確ããWindows Serverã®å¤ããã¤ã¨ãåããããã§ãããããããããã¨ãUbuntuã®LTSããããªããã¤ã¨ããæ°ã¥ãããå¤ãããããã¾ãããã
ãã確ãã«ãã¡ãã£ã¨ãUbuntuã¯ãã®è¾ºã(20.04, 18.04,16.04)ã¯ãLTSã§ãããããã
ã¿ã.NET 6ã£ã¦æ¥å¹´ã®ä»é ã«åºããããã
ããäºå®ã ã¨ãããã1å¹´å¾ã®11æãã
ã¾ã¤ã1å¹´ééã«ãªã£ããã
ã¿ãã¾ãããã®1å¹´å¾ã«7ããã®ç¿å¹´ã«8ãåºã¦ãã
ãã奿°å¹´ã«åºã¦ãããã¤ãLTSã¨ããä¸å¿å®ç¾©ã«ãªã£ã¦ã¾ããã2021ã2023ã2025å¹´ã®ãã¼ã¸ã§ã³ã¢ããã§åºã¦ããã®ãLTSãäºå®ã¨ãã¦ã¯ããããå½¢ã§çµã¾ãã¦ãã¾ããã
ããå人çã«ã¯ã5.1ã¨ãããã®ããªãªã¼ã¹ãããã®ãã¨ããã®ãã¡ãã£ã¨æ°ã«ãªããã§ããã©ãã
ããããå¾ãã¨æãã¾ãããä»è¨ã£ã¦ããã¼ããããã®ãã¤ã¯ã¡ã¼ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ããã£ã¦è¨ã£ã¦ãã®ã§ããã¤ãã¼ã ã£ãããªãã¸ã§ã³ãå¤ãã£ãããããã¦ã®ã¯ååããã¨æãã¾ããã
ãããªãã¸ã§ã³ãå¤ããã®ã¯æ³åãã¤ãã§ããã©ãããã¤ãã¼ã®è©±ã¯å ¨ç¶åºã¦ããªããã§ãã
ãããããããã¤ãã¼ã¨ããã¾ããããå¯è½æ§ã¯ãããããããªãã§ãããã
ããã¢ãããã¼ãã«é¢ãã¦ã¯éå¸¸ã«æ°ã«ãªããã
ãã確ãã«ããã¤ãã¼ã¨ãã¯ã©ããã§ãªãªã¼ã¹ããããã£ã¦ã©ããã§è¦ãã¨æããã§ããã©ãã
ããããããã®ãããããã¤ãã¼ã¨ãã¯å¿ è¦ã§ããã°ããã®é½åº¦ãªãªã¼ã¹ãã¾ãã¿ãããªè¨è¿°ã¯ééããªããã£ãã¨æãã¾ããã
ãããããããã5.1ã¨ãããã¡ããã¡ããã§ãå¯è½æ§ã¯ããã¨æãã¾ããã
ãããã®è¾ºãã§ãæ£ç´LTSã«ãªã£ã¦æ¬²ããã£ããã§ããã©ãã
ããã¾ããããããæãã§ã¯ããã¾ããã1å¹´ã¨ããã®ã¯ãé·ãæãã¯ããã¾ããã©ãããã
ããã¿ãªããã.NET 5ãåºãä¸ã§ãå®éã«ã©ã®ãã¼ã¸ã§ã³ãããã¡ãã試ããããããã ã£ãã5ã使ã£ã¦ã¬ã³ã¬ã³ä½¿ã£ã¦ããã ãã¦æ§ããªããã§ããã©ãå®éã®ãããã¯ã·ã§ã³ç°å¢ã§ã©ã®ãã¼ã¸ã§ã³ãé¸ã¶ãã¯çµæ§æ©ã¾ããæ¹ãå¤ãããããªãã§ãããã
ãããããããä¼ç¤¾ãå«ãã¦ãLTSã ã£ã¦ã®ãéè¦ãããæ¹ã¯3.1ã®ã¾ã¾ããã°ããã¯æ¬çªç°å¢ã¯3.1ã«ãªãã¨ã¯æãã¾ããã©ãã
ãããã£ããæ¥½å±è£ã§ã話ãã¦ãã¾ãããã©ããã£ã±ãææ°ã®ã常ã«ãã¼ã¸ã§ã³ã¢ããããã¦ããæµãã®ä¸ã§ãCIãCDãèªååã®ãã¤ãã©ã¤ã³ãä½ã£ã¦ãã«ããã¹ãå«ãã¦çµãã§ããã°ãæå°ã®å¤æ´ã ãã§ãå¸¸ã«ææ°ã®ãã®ã使ãããããã¯ããã§ãããã¡ãªããã§ã¯ããã¨æããã
ããå®éãã¿ãªãããã©ããã鏿ãããã®ããããã¸ã§ã¯ãã®ãªã¯ã¯ã¤ã¢ã¡ã³ãã«ããã£ã¦ããé¨åãããã¨æãã¾ããã©ããã
ãããã¯ãããããããªãã§ä»ã®ãã¬ã³ãããããã§ãCIãCDãDevOpsã¿ãããªè©±ãåºã¦ãããã¨ããã¨ããããã£ãã¨ããã§å¸¸ã«ææ°ã®ã使ã£ã¦ææ°ã®ãããå½ãã£ã¦ãã»ãã¥ã¢ã§ãã£ã¦ããããã£ãã©ã¤ãã©ãªãããã©ã¼ãã³ã¹ã®é¢ãå«ããã¨ãããåä¸ããã¦ãããã
ãããããã£ãã¨ããããã£ããã¡ãªããã¨æãã¦ãã¾ãLTSã¯é¢ä¿ãªããã¢ãããã¼ããããã°ãããã«ã¢ãããã¼ãå½ã¦ããããã
ããå°ãªã夿´ã§ãããã¢ãããã¼ããã§ãããããªç°å¢ãæ´ããã®ãã1ã¤ã®ä»ã®éçºç°å¢ãæ´ããã®ã大äºã ã¨æããã
ãããããã£ããã¨ãã¿ãªããèãã¦ãã£ã¦ãç°å¢ãæ´ãã¦ãã£ã¦ã ããã ããã¨ããã®ããªã¨æãã¾ãããã
ãããªããããç· ãã«åãã£ã¦è©±ãã¦ãããã
ããã ã£ã¦ã大äºãªã¨ããã§ããããã
ãããããéè¦ã§ããããã
ãããªãã ããã LTSãé¸ã¶ã¤ã³ã¼ã«3å¹´éã¯ã¾ãããã¾é¢åè¦ã¾ããã¿ãããªãã
ãã塩漬ããã
ããæãããã¡ãããã§ãã
ããæ°ãããã®ã¯ãããªãã«ããããªæ©è½ãå ¥ã£ã¦ããã§ããã®è¾ºæ¥½ããã§ããã¢ãããã¼ãã§ãããããã®æ¹ããããã
ããä»®ã«3.1ã®ã¾ã¾ãã£ã¦ã6ãã§ã¦ã¢ãããã¼ããããã¨ããæã®å¤æ´ç¹ãèããã¨ãã£ã±ãããããã¤ã¢ãããã¼ããã¦ãã£ãæ¹ããç§ã¯ä»ã®ç¶æ³ãè¦ãã¨æ¥½ããªã¨æããã§ããã
ã¾ã3.1ãã6ã«ã¯ä¸æ°ã«ã¯ã¢ãããã¼ãã«ã¯å¤§å¤ãªé¨åãããã¨ãããããã1å5ã«ã¢ãããã¼ããã¦ãã6ã«ãããã¨ããã¹ããããããã¨æããã
ãããããã¢ããã°ã¬ã¼ãã®ããã¥ã¡ã³ããã1åãã¤ããæ¸ãã¦ãªãã 3.0 to3.1ã3.1 to 5.0ãã
ããããã ãããã
ããåºæ¬çã«ä¸è¶³é£ã³ã«ã«ãä¾ãã°2.0ãã5.0ã«è¡ãã¾ãã¨ããé½åã®ããããã¥ã¡ã³ãã¯ä¸ã®ä¸ã«ã¯åå¨ããªãã§ããããã
ããå°éã«1ã¤ãã¤ããã®ææã«ãã£ãæ¹ããããã
ãã2.1ã§å¡©æ¼¬ããã¦ããã5.0ã«è¿½ãã¤ãããã«ã¯ãããã®ã¹ãããï¼2.1 to 2.2ã2.2 to 3.0ã3.0 to 3.1ã3.1 to 5.0ï¼ããããã¨ãã
ãã大å¤ã§ãããã
ã¿ããããããããã
ããããã¯æ£ç´å¤§å¤ã§ããã
ããã ããããããã風ã«å¡©æ¼¬ããã¡ããããã¸ã§ã¯ãã ã¨CIã¨ããã¡ããã¨ãã¹ãã¨ããããã¶ãåããªããã
ããåã£ã¦ãªããåã£ã¦ãªãã¨ããããã¾ãããã
ããããããæã«ä¸è¶³é£ã³ã«ããã¨ããã®ã¯ããªããªã¹ã¯ã«ãªã£ã¡ããã¾ããããã
ãããã¾ãã«ã«ã¢ãããã¼ãã§ã楽ãããã£ã¦ãããããããªã¨æããã§ããããã
ããéçºã¨ã³ã¸ãã¢ã¨ãã¦ã¯ããã£ã±ãææ°ã®ãã®ã使ãããã¨æãã¾ãããããã¿ãªãããã
ããè¶£å³ããã°ã©ãã³ã°ã ã¨ãã³ããæ®éã«ææ°ããããããã§ããã©ãæ¥åã ã¨ã¡ãã£ã¨é£ããé¨åãããã¾ããããã
ããã§ãruntimeã«é¢ãã¦ã¯ãåã¯åºæ¬ãææ°ã使ãããã
ããææ°ã§ãããã¾ã大äºã ãªãä»ã®æµãã ã¨ç¹ã«å¤§äºã ã¨æãã¾ãããã
ã¾ãçµæ§Azureã¨ãã.NETã®ã¢ãããã¼ãã«ãªã¢ã«ã¿ã¤ã ãããªããã©ãçµæ§è¿ãã¿ã¤ãã³ã°ã§ã¢ãããã¼ãå ¥ã£ã¦ææ°ã®ã©ã³ã¿ã¤ã ãåä½ããã¨ããã®ããã§ããããã
ããä»åã®Azure App Serviceæ©ãæ¥ã¾ãããããã
ããä»åã¯ãããããè¬ãã¯ãã¸ã¼ãå°å ¥ããã¦ãã
ä¸å (çç¬)
ããè¬ãã¯ããã¸ã¼ã£ã¦ãã
ããè¬ãã¯ããã¸ã¼ã§ããå®å ¨ã«ãã
ããEarly Access Runtime ã¨ãããã
ãããããã«ããåããããããã
ããã¡ãã£ã¨ãã®è¾ºãããã° ã«æ¸ãããã§ãé©å½ã«è¦ã¦ããããã°ããã§ããã
ãããªããå ¥ã£ã¦ãªãã©ã³ã¿ã¤ã ãã¢ããªã±ã¼ã·ã§ã³ã®èµ·åæã¨ãããåæåæã«èªåçã«ããã¡ããã¨ãããã
ãããªããªãéæ¿ãªå®è£ ã ãªã¨æããã
ããããããã
ããå¹³åã§ãªãã30ç§ãããã§çµãããããªã¿ãããªãã¨è¨ã£ã¦ããã§ããã©ãåã試ããæã«ã¯1åãããããã£ã¦ã¾ããããã
ããã¡ãã£ã¨ã¾ãä¸å®ãªãã§ãããæåã®1åã ããªãã§å ¨ç¶ããããªã¨ãã
ããã¾ããããããã ã¨ãAzure App Serviceã£ã¦ã ããã2ã¶æã«1åOSã®ãªã¤ã¡ã¼ã¸ãã¯ã©ã¦ããµã¼ãã¹ã®OSã®ã¢ãããã¼ãå ¥ã£ã¦ããã§ãã ãããããã®ã¿ã¤ãã³ã°ã¾ã§å¾ ããªãã¨ãããªãã£ããã§ããã©ãEarly Access Runtimeã ã¨å®è¡æã«å ¥ãã¡ãããã§ãä»ã®ç°å¢ã«å½±é¿ã§ãªãã§ããã ããç´ æ©ãã§ãããã
ããåãä»ããã¤ãããã¸ã§ã¯ããæã£ã¦ã¾ããã©ãéæ»ã§5.0ã¸ã®å¯¾å¿ãå ¥ãã¦ã¾ããããããã¨ãªãªã¼ã¹å¾ ã¤ã¿ãããªãã
ã¿ãããã¼ã
ããã¯ãããããããEacly Accessã§ããã
ã¾ãEarly Access Rutimeã£ã¦Auzre App Serviceã®ãµã¼ãã¹ãã©ã³ã®ç¨®é¡ã®å¶éã¨ããããã§ããï¼ããªã¼ããã¡ã¨ããã
ãã種é¡ã¯ãªãã£ãã§ããããããã
ãããã¹ã¦ã®ãããªãã¯ãªã¼ã¸ã§ã³ã®ãã¹ã¦ã§ä½¿ããã¿ãããªãã¨ãæ¸ãã¦ãã£ãã¨æããã
ããã§ãã¡ãã£ã¨ããªã¼ã¯åãããªãã§ãããã
ããWindowsã¯ã¡ãã£ã¨ç¹æ®ãªãã§ãããLinuxã®æ¹ã¯ããã¼ã¹ã®Docker imageããã£ã·ã¥ããã¦ããªãã£ã¦ã ããªãã§ãã
ããä»åã5.0ã®Docker imageã¯ã ãã¶å°ãããªã£ãã£ã¦è¨ã£ã¦ããã§ãå ¨ç¶å½±é¿ãªãããããªãããªã£ã¦ããå°è±¡ã§ããããã®è¾ºãã¯æ®éã«ä½¿ã£ã¦ãã
ããã ãã ãã¢ãããã¼ãã§ããªãçç±ãAzure App Serviceã®å¯¾å¿å¾ ã¡ã¿ããã«ãªã£ã¦ãããã
ãããããããããã¾ããã¼ãã
ãããã£ããã¨ãè¦ã¦ãã¨ãçµæ§æ¥åã®éããã
ããVBã®è©±ãä»åå ¨ãããªãã£ããã§ããã
ããæ¨æ¥ã䏿¨æ¥ã¨ã客ããå ã®ã»ããã¼ã§.NET ã¢ãããã¼ãã¿ãããªè©±ã2æéããããã¦ããã§ããã©ããã®æã®è³ªåã§ãã£ã±ãVBã®è©±ãåºã¾ããããã
ããã¿ãªãããªãã ããã ã§ãä»C#ã°ã£ãããªãã§ãå®éVBã©ããªã®ãªã®ã¨è¨ããã¦ãããããã ããã¼ã£ã¦æã£ã¦ãã¡ãã£ã¨çãããã§ããã©ãã
ããä¸å¿ãVBã¯ããæ°æ©è½ãè¶³ãããªãã追å ããªãã¨ããã®ã¯çºè¡¨ããã¦ã¾ãããããã
ããè¨èªä»æ§ãè¨èªçã«ã¯ããã§ãããåºæ¬çã«ã¯ãã©ã¤ããªã¼è¨èªã¨ãã¦ã¯ãC#ã§ããããã
ããããã¸ã§ã¯ãã¨ãã¦ã¯VBã¯.NET 5ã®SDKã§ãã¡ããã¨ãWinFromsãWPFã¨ãã®ããã¸ã§ã¯ãã¯VBã§ãä½ããããã«ãªã£ã¦ã¾ããã©ãã
ããã¾ãããããä»ããæ°è¦ã«ã¨ãä½ã£ã¦ããã®ã«ã©ã®è¨èªãé¸ã¶ãã£ã¦è¨ã£ããã»ã¼C#䏿ã ã¨æãã¾ãããç¾ç¶ãæ£ç´ãªã¨ãããã
ããä¸å¿ä»åãF# 5ããªãªã¼ã¹ã¯ããã¦ããã§ãããã¡ãã£ã¨ãã®ã¾ãæ°è»½ã«ãããè¨ããªããã
ããç¥èããªã人éãåããã«è¨ãã®ãå ¨ç¶è¯ããªãã¨æããã§ãã
ãããªãã§ãä»ã¯C#ã¨F#ã®2ã¤ã£ã¦æãã§ããããã
ããä¸å¿VBã使ãã¾ãããããããç¶æ³ã§ãã¨ãããã¨ãææ¡ããä¸ã§ãVBã®æ¢åã®VB.NETã¿ãããªã³ã¼ãããã£ã¦ãã¾ãããã䏿ã使ã£ã¦ã¾ã ããããã£ã¦ããã±ã¼ã¹ã¯ãã¡ããVBã§ããããWPFã ãWinFormsã ã¨ããç¹ã«ãããããã¼ãºã¯ãããããããªãã§ãããã
ããWinFormsã ã£ããçµæ§ãããããããªãã§ããã©ãç§»è¡ã¯å¯è½ã§ã¯ããã¾ããã
ããæ°è¦ã«ãªãããä½ããã¨ãããããã¡ãã.NET 5ãã¼ã¹ã§WinFormsãWPFãé¸ãã§ããã¦ããã§ããã©ããã è¨èªã¯C#ã«ãã¦ãããæ¹ããã¶ãããã§ãããã
ããä»åã®C# 9ãå«ãã¦ãã£ã±ãè¨èªä»æ§çãªã¨ããã§ãããããæ¥ã æ¹åãå ããããæ°æ©è½ãå ¥ã£ã¦ãã¦ããã®ã§ããããã£ãã¨ãããèããã¨C#ãããã¨æãã¾ããã
ããã¡ãã£ã¨è³ªåã§ãAzure App Serivceã«.NET 5ãæ¥ãæã«ãEarly Access Runtimeã£ã¦ã©ããªããã ããã¨ããã®ããã£ããã§ãããããã¯ãåæã«Early Access Runtimeã§ã¯ãªããªãã¾ããã
ãããããã
ããã ããæ°ã«ããªãã¦ãããã§ãããã
ããOSå´ã«ã¤ã³ã¹ãã¼ã«ãããããããªã¤ã³ã¹ãã¼ã«ç¶æ ã®ã¾ã¾ã«ãªããã§ããã
ãããªã®ã§è¨å®ãã¦ããã°åæã«ã³ã¼ã«ãã使ã£ããããã©ãã¼ã³ã¹ããããªã話ãã
ã¾ããããã¤ã®ãç´ãã¨ãããªãã¦ãããã§ããï¼ã
ãããããªãã§ãããããªãã§ããåæã«ãAzure App Serviceã£ã¦å¸¸ã«ãªãã ããã ã§ãã¤ã³ã¹ã¿ã³ã¹ã£ã¦å¤ãã£ã¦ããã§ã1ã¶æã«10åãããå¤ãã£ãã¨ãããã£ããã
ãã.NET 5 RCã®ããã«ãself-containedã§ããããã§ããã©ãself-containedãããªãã»ããããã¨ããã®è¾ºã®éãã£ã¦ã©ããã風ã«èãããããã®ããã
ããself-containedã¯ãASP.NETã ã¨ã©ã®ãããã ãã100MBãããã«ãªãã¾ãï¼ãªããªãã§ããããã
ãã60ï½70MBã¨ããã
ããããã§ããããããã¤ãããã¦ã³ããã¦ãã©ã¤ãã©ãªãå ¨é¨èªã¿è¾¼ãã§ã£ã¦ããã¨ããã®Azure App Seriveã£ã¦I/Oãé ããã§ãããèªã¿è¾¼ããã¡ã¤ã«æ°ã¯æããã«æ¸ãããæ¹ããããã§ãã
ããä»åãEarly Access Runtimeã使ããããã«ãªã£ãã¿ã¤ãã³ã°ãªã®ã§ãããã§self-containedã®ã¾ã¾ãEarly Access Runtimeãæå¹ã«ãã¦ããself-containedãã®ã¾ã¾åããã§ããã®ãã¨ãããã¤ããªããã¦ä¸ããã°ããããªã¨æããã
ããããæãã«æ®ã2åã¨ãªã£ã¦ã®ã§ãæå¾ã®ã¹ã©ã¤ãã«ãã
ä»å¾éå¬ããã .NET Conf é¢é£ã¤ãã³ã
- 11/27(é) 19:00ï½21:00 .NET 5 ãªãªã¼ã¹è¨å¿µ C# Tokyo ã¤ãã³ã
- 12/05(å) 13:00ï½15:30 Visual Studio Users Community Japan åå¼·ä¼ #6 .NET 5 launch / .NET Conf 2020
- 12/19(åï¼14:00ï½16:30 .NET 5 æè¡ã»ããã¼ï¼ææ°ã®æè¡æ å ±ãå ±æãããï¼# .NET Conf2020
ãã仿¥ã¯ãå¹³æ¥ã®ããã«é·ãã¤ãã³ãã«ã¿ãªããåå é ãã¦ããããã¨ããããã¾ããã
ããä»å¾ãåãã¯ã.NET Confãçµãã£ã¦ããã.NETã好ããªäººéãèªåã好ããªãã¨ãããã¹ã£ã¦ãããã§ãããä»å¾ããããªã¤ãã³ããéå¬ãããäºå®ã§ããã
ããç´è¿ã ã¨ä»æ27æ¥ã«C# Tokyoã¨ããã³ãã¥ããã£ã¼ã§ãªãªã¼ã¹è¨å¿µã®ã¤ãã³ããããã¾ããã
ããæ¥æã12/05ã«Visual Studio Users Community Japanã®ã¤ãã³ãã§ãããã§ãã®@ufcppãããC#ã§ã°ã°ãã®äººãC#9ã«ã¤ãã¦è©±ãã¦ããã¾ãããã£ã¼ããªè©±ã èããã¨æãã®ã§è¦éããªããã
ãã12/19ã®.NET æè¡ã»ããã¼ã¯ãIoT ALGYANã§ãããããã£ãã¯ããã.NETã«ã¤ãã¦ããããããã¹ãäºå®ã«ãªã¦ãã¾ããã
ãããããã®ã¤ãã³ãã¨ããããã°ã¨ãTwitterã¨ããããããã¨ããã«å人ã¨ãYoutubeã¨ãé ä¿¡ã¨ãããã¨æããã§ããããããã£ããã®ãããããåå ãã¦ãããã«.NETãæ¥½ããåå¼·ãã¦ä½¿ã£ã¦ãããã°ãããªã¨æãã¾ããã
ããããã®ããã¯ãªãã¿ãããªæãã§ããã®ä¼ãå½¹ã«ãªã£ã¦ãããã°ãä»åè¡ã£ãç²æããã£ããªã¨æãã¾ããã
ããã¤ãã³ãã¨ãã¦ã¯ããã§ä»¥ä¸ã«ãªãã¾ããã
ãããããããã¼ã¯é¢ç½ãã§ããããä»ã¾ã§ãã¾ãããããå½¢ã§ãã£ã¦ãªãã£ããã§ããã©ããªããããããã©ãã«ãããã話ããã¦ã.NETå¨ãã®ã¢ãããã¼ããç¥ããã¨ãã®ã¯ãã¿ãªããã¨ãã¦ãçµæ§é¢ç½ãã£ãããããªããã¼ã£ã¦ãããã
ããåå ãã¦ãå´ããªããæ®éã«æ°æ¥½ã«ãããããã¼ã ããã¼ã ã¼åã£ã¦ããåå¼·ã«ãªãã¨ãããããããããã¾ãããã
ãããªãã宿ã«ããããæãã§ããªã¼ãã¼ã¯ããã®ãé¢ç½ããªã¨ã¡ãã£ã¨æã£ã¡ããã¾ããããã
ãã.NET 5ãªãªã¼ã¹è¨å¿µãã¼ãã£ã¼ãã¼ã¯ã¯ä»¥ä¸ã«ãªãã¾ããYoutubeã§åå ããã¦ãã¿ãªããããã¨ã¹ãã¼ã«ã®ã¿ãªããã仿¥ã¯ãããã¨ããããã¾ãããã
è³æ
ã¹ã©ã¤ã
speakerdeck.comåç»
youtu.betoggetter togetter.com
ææ³
æ©è½å
容ãèæ¯ãç®æããã®ãã®ãªã©ãå«ãã¦ã®è©±ã ã£ãã®ã§ã大å¤è峿·±ãè¦è´ããã¦ãããã¾ããã
ã¡ããã¡ããå°ãã¿ãå
¥ã£ã¦ãã¦é¢ç½ãã£ãã§ãã
ããã¥ã¡ã³ããã©ããã£ããã®ãããã®ããæ°æ©è½ãéäºææ
å ±ãã©ããã£ã¦ãã©ãã°ããã®ãã¨ã.NETã®å°å³ãæã«ããããããªæãã§ãã
.NETãAzureã¯çãã®ã§ãæåèµ·ããããã«ã¯ãç¨èªãç¥èªãå³ããããã(ãããããªãã)
Git for Windowsã§.gitconfigã«ãã¼ã¸ã§ã³æ å ±ã管çããã«èªåæ´æ°ãæå¹ã«ãã

ãããããã¨
Git for Windowsã®èªåæ´æ°]æå¹ã«ãã¦ããã¨å®æçã«ãã¼ã¸ã§ã³ããã§ãã¯ãã¦ã¢ãããã¼ããã¦ãããã
ãã ã.gitconfigã®winUpdateã»ã¯ã·ã§ã³ã«ä½¿ç¨ãã¦ãããã¼ã¸ã§ã³ãæ¸ããã¦ãã¾ãã
dotfileãGitã§ç®¡çãã¦ãå
±éã«ä½¿ç¨ãã¦ããã
ç°å¢ãOSãã¨ã«.gitconfigã®è¨å®ãåãæ¿ããã ã®ããã«ã.gitconfigã«ã¯ãLinuxãWindowså
±éã®è¨å®ã ããæ¸ãã¦ããã®ã§ã.gitconfigã«ã¯ãã¼ã¸ã§ã³æ
å ±ã管çããããªãã
ã¾ããWindowsãè¤æ°å°ããã®ã§ã.gitconfigã«æã£ã¦ãã¾ãã¨ãæ´æ°ãããã·ã³ä»¥å¤ã§ã¯ãå®éã«ä½¿ç¨ãã¦ãããã¼ã¸ã§ã³ã¨ããã¦ãã¾ãã
è§£æ±ºæ¹æ³
"$HOME"/.gitconfigã®ä»£ããã« "$HOME"/.git-for-windows-updater ã«winUpdaterã»ã¯ã·ã§ã³ãè¨å®ããã
[winUpdater] recentlySeenVersion = 2.27.0.windows.1
ã¤ã³ã¹ãã¼ã©ã¯ããã®ãã¡ã¤ã«ã®ãã¼ã¸ã§ã³ãæ¸ãæãã¦ãããªãã®ã§ãã¤ã³ã¹ãã¼ã«å¾ã«ä»¥ä¸ã§æ¸ãæããã
git config -f "$HOME"/.git-for-windows-updater winUpdater.recentlySeenVersion `git --version|awk 'BEGIN{FS=" "}{print $3}'`
ããã§ã.gitconfig以å¤ã«Windowsã®PCãã¨ã«ãã¼ã¸ã§ã³æ å ±ããã£ã¦ãèªåæ´æ°ãã§ããã
åç §
- get_recently_seen()ã®å¦ç github.com
/optã«ã¤ã³ã¹ãã¼ã«ãã¦sudo sdkã§ããã±ã¼ã¸ç®¡çããã

- ãããããã¨
- sdkmanã®ã¤ã³ã¹ãã¼ã«
- ãã©ãã«ã·ã¥ã¼ãã£ã³ã°
- sdk: ã³ãã³ããè¦ã¤ããã¾ãã
- ___sdkman_check_candidates_cache: ã³ãã³ããè¦ã¤ããã¾ãã
- 弿°ãªã¹ããé·ããã¾ã
- expected a proper numerical parameter
- expected a proper numerical parameter(ã¨ã©ã¼ãå¤ããã)
- ä¸è¬ã¦ã¼ã¶ã¼ã§å®è¡ããã¨ã許å¯ãããã¾ããã
- ã¾ã¨ã
- æ®èª²é¡
ãããããã¨
- aptãyumã®ããã±ã¼ã¸ç®¡çã¨åãããã«ãã¤ã³ã¹ãã¼ã«ãã¢ã³ã¤ã³ã¹ãã¼ã«ã¯root権éã§å®è¡ãã
/opt/sdkmanã«ã¤ã³ã¹ãã¼ã«ãã¦ãè¤æ°ã¦ã¼ã¶ã¼ã§å ±æãã (/optã¯755)- ã¤ã³ã¹ãã¼ã«ããããã±ã¼ã¸ã¯ä¸è¬ã¦ã¼ã¶ã¼ã§ä½¿ç¨ã§ãã
sdkmanã®ã¤ã³ã¹ãã¼ã«
ã¾ãã¯ãsdkmanã§/opt/sdkmanã«ã¤ã³ã¹ãã¼ã«ããã
export SDKMAN_DIR="/opt/sdkman" && curl -s "https://get.sdkman.io" | sudo -E bash
- çµæ
Please open a new terminal, or run the following in the existing one: source "/opt/sdkman/bin/sdkman-init.sh" Then issue the following command: sdk help Enjoy!!!
ãã©ãã«ã·ã¥ã¼ãã£ã³ã°
sdk: ã³ãã³ããè¦ã¤ããã¾ãã
- ç¾è±¡
$ sudo sdk install java 11.0.5-opensudo sdk install java 11.0.5-open sudo: sdk: ã³ãã³ããè¦ã¤ããã¾ãã
- åå
$ type sdk|head -2 sdk ã¯é¢æ°ã§ã sdk ()
sdkã¯ã³ãã³ãã§ãã·ã§ã«ã§ããªããçµã¿è¾¼ã¿ã®é¢æ°ãªã®ã§sudoã§ããªã
- 対å¦
functionãå¼ãç¶ãã§å®è¡ãã
function sdkx { sudo bash -c "$(declare -f sdk);sdk $*"; }
___sdkman_check_candidates_cache: ã³ãã³ããè¦ã¤ããã¾ãã
- ç¾è±¡
$ sudox sdk install java 11.0.5-open environment: è¡ 40: ___sdkman_check_candidates_cache: ã³ãã³ããè¦ã¤ããã¾ãã
- åå
$ rg ___sdkman_check_candidates_cache /opt/sdkman/
/opt/sdkman/src/sdkman-main.sh
55: ___sdkman_check_candidates_cache "$SDKMAN_CANDIDATES_CACHE" || return 1
/opt/sdkman/src/sdkman-cache.sh
19:function ___sdkman_check_candidates_cache {
sdk()ã¯å¼ã¹ããã©ãããããå¼ãã§ãã___sdkman_check_candidates_cache()ãå¼ã¹ãªãã
- 対å¦
å ¨é¢æ°ãå¼ãç¶ãã§å®è¡ãã
function sdkx { sudo bash -c "$(`declare -F`);sdk $*"; }
弿°ãªã¹ããé·ããã¾ã
- ç¾è±¡
$ sdkx install java 11.0.5-open bash: /usr/bin/sudo: 弿°ãªã¹ããé·ããã¾ã
åå
.bashrcã«é¢æ°ãå®ç¾©ãã¦ããããdeclare -f funcã大éã«å®è¡ããããã å¶éã«å¼ã£ããã£ã¦ãã¾ã対å¦
sdké¢é£ã®é¢æ°ã ãæ½åºãã¦å¼ãç¶ãã§å®è¡ãã
function sdkx { sudo bash -c "$(`declare -F|grep sdk`);sdk $*" }
expected a proper numerical parameter
- ç¾è±¡
$ sdkx install java 11.0.5-open curl: option --connect-timeout: expected a proper numerical parameter curl: try 'curl --help' or 'curl --manual' for more information curl: option --connect-timeout: expected a proper numerical parameter curl: try 'curl --help' or 'curl --manual' for more information ==== INTERNET NOT REACHABLE! =================================================== Some functionality is disabled or only partially available. If this persists, please enable the offline mode: $ sdk offline ================================================================================ Invalid command: install Usage: sdk <command> [candidate] [version] sdk offline <enable|disable> commands: install or i <candidate> [version] [local-path] uninstall or rm <candidate> <version> list or ls [candidate] use or u <candidate> <version> default or d <candidate> [version] current or c [candidate] upgrade or ug [candidate] version or v broadcast or b help or h offline [enable|disable] selfupdate [force] update flush <broadcast|archives|temp> candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc. use list command for comprehensive list of candidates eg: $ sdk list version : where optional, defaults to latest stable if not provided eg: $ sdk install groovy local-path : optional path to an existing local installation eg: $ sdk install groovy 2.4.13-local /opt/groovy-2.4.13 Stop! java is not a valid candidate.
- åå
orangeclover@ponkan ~
$ rg connect-timeout /opt/sdkman/
/opt/sdkman/src/sdkman-utils.sh
71: curl --insecure --silent --location --connect-timeout ${sdkman_curl_connect_timeout} --max-time ${sdkman_curl_max_time} "$1"
73: curl --silent --location --connect-timeout ${sdkman_curl_connect_timeout} --max-time ${sdkman_curl_max_time} "$1"
/opt/sdkman/bin/sdkman-init.sh
97:# set curl connect-timeout and max-time
ç°å¢å¤æ°ãå¼ãç¶ããã¦ããªã
- 対å¦
sudo -E ã§ç°å¢å¤æ°ã¨sdké¢é£ã®é¢æ°ã ãæ½åºãã¦å¼ãç¶ãã§å®è¡ãã
function sdkx { sudo -E bash -c "$(`declare -F|grep sdk`);sdk $*"; }
expected a proper numerical parameter(ã¨ã©ã¼ãå¤ããã)
- ç¾è±¡
orangeclover@ponkan ~ $ sdkx install java 11.0.5-open curl: option --connect-timeout: expected a proper numerical parameter curl: try 'curl --help' or 'curl --manual' for more information curl: option --connect-timeout: expected a proper numerical parameter curl: try 'curl --help' or 'curl --manual' for more information ==== INTERNET NOT REACHABLE! =================================================== Some functionality is disabled or only partially available. If this persists, please enable the offline mode: $ sdk offline ================================================================================
- åå
orangeclover@ponkan ~ $ rg sdkman_curl_connect_timeout /opt/sdkman /opt/sdkman/etc/config 4:sdkman_curl_connect_timeout=7 /opt/sdkman/bin/sdkman-init.sh 98:if [[ -z "$sdkman_curl_connect_timeout" ]]; then sdkman_curl_connect_timeout=7; fi /opt/sdkman/src/sdkman-utils.sh 71: curl --insecure --silent --location --connect-timeout ${sdkman_curl_connect_timeout} --max-time ${sdkman_curl_max_time} "$1" 73: curl --silent --location --connect-timeout ${sdkman_curl_connect_timeout} --max-time ${sdkman_curl_max_time} "$1"
sdkman_curl_connect_timeoutã¯ç°å¢å¤æ°ãããªãã¦ããã«ã¼ã«å¤æ°ãã°ãã¼ãã«å¤æ°ãã
- 対å¦
夿°ãexportããï¼ç°å¢å¤æ°ã«ã¯ããããªããªã çµã¿è¾¼ã¿ã³ãã³ãã®declareãå®è¡ã§ãããã ããsource sdkman-init.shãå®è¡ããã°ããã®ãã
function sdkx { sudo -E bash -c "source $SDKMAN_DIR/bin/sdkman-init.sh;sdk $*" }
ããã§ã¤ã³ã¹ãã¼ã«ã§ãã!!
ä¸è¬ã¦ã¼ã¶ã¼ã§å®è¡ããã¨ã許å¯ãããã¾ããã
- ç¾è±¡
orangeclover@ponkan ~/ $ sdk list java tee: /opt/sdkman/var/version: 許å¯ãããã¾ãã tee: /opt/sdkman/var/broadcast_id: 許å¯ãããã¾ãã tee: /opt/sdkman/var/broadcast: 許å¯ãããã¾ãã
åå
/opt/sdkman/varé ä¸ã®æ¸ãè¾¼ã¿å¦çããã対å¦
sudo chmod +g,o+w /opt/sdkman/var/
ã¾ã¨ã
- 以ä¸ã§sdkmanã®ã¤ã³ã¹ãã¼ã«
export SDKMAN_DIR="/opt/sdkman" && curl -s "https://get.sdkman.io" | sudo -E bash
- 以ä¸ã®æ¨©éã夿´ãã
sudo chmod +g,o+w /opt/sdkman/var/
- 以ä¸ã§ããã±ã¼ã¸ç®¡çãè¡ã
function sdkx { sudo -E bash -c "source $SDKMAN_DIR/bin/sdkman-init.sh;sdk $*" }
- 使ãåã
installãuninstallãdefaultãupgradeãselfupdateã¯sdkx
useãcurrentãversionãhelpã¯sdk
æ®èª²é¡
- flushãofflineãbroadcastã¯sdkã§ä¸è¬ã¦ã¼ã¶ã¼ã§å®è¡ã§ãã¦ãã¾ã
flushã¯/opt/sdkman/varé ä¸ã®ãã¡ã¤ã«ãå使ããã®ã§ãå度ã¢ã¯ã»ã¹æ¨©å¤æ´ãå¿ è¦ã«ãªã
KanJava 10th Anniversary Party åå ãã¦ãã¾ãã #kanjava #mixleap #mixleapãªã

- Mix Leapã«ã¤ãã¦
- é¢ã¸ã£ã10å¨å¹´ã«ã¤ãã¦
- ã¢ããªã³ã°ã®ãã»ã
- JVMã®JITã³ã³ãã¤ã©ã«ãã¤ããã
- Kubernetesãå°å ¥ãã¦1年鿬çªéç¨ãã話
- DIã³ã³ããå ¥éï¼è£é¢ï¼
- ãããï¼å¤±æã ããã®ã·ã¹ãã éçºï¼ï¼
- DAPRãåããã¦ã¿ã話
- togetter & ä»ã®ææ³ããã°
Mix Leapã«ã¤ãã¦
https://yahoo-osaka.connpass.com/
ã¤ãã¼å¤§éªãªãã£ã¹ã§ãæ¯é±åå¼·ä¼ãéå¬ãã¦ãã³ãã¥ããã£ã
é¢è¥¿åã®ã¯ãªã¨ã¤ã¿ã¼ï¼ã¨ã³ã¸ãã¢ã»ãã¶ã¤ãã¼ï¼ã®æé·ãç®çã«ãããã®ã§ã¸ã£ã³ã«ã¯å¹
åºããã
https://yahoo-osaka.connpass.com/
æ¯é±éå¬ãã¦ãã®ã¯ããããªã
é¢ã¸ã£ã10å¨å¹´ã«ã¤ãã¦
éªç° 浩ä¸ï¼ãã ãã¡ãã¼ï¼ @jyukutyo
ã¾ãããªcero_tããããã®è¿ä¿¡ã³ã¡ã³ãã¨kiy0takaããã®3人ããå§ã¾ã£ãã
ãã®äºäººã¯æ±äº¬ãåå¤å±ã¸ã¨é¢è¥¿ãé¢ãã¦ãã¾ã£ãããä»ã®ã¡ã³ãã¼ãå ãã
Javaã¨ããã«é¢ä¿ããåå¼·ä¼ã10å¹´ç¶ãã¦ããã
ä½ã¯ã¨ãããã10å¨å¹´ããã§ã¨ããããã¾ãï¼ï¼ï¼
ã¢ããªã³ã°ã®ãã»ã
ãããµ @irof

è³æ
èªåã®çè§£ãç¬èªã¢ããªã³ã°ãã¦ã¿ãã

ææ³
ã¿ã¤ãã«ã¨ãããåæã«ãã¡ã¤ã³ã¢ãã«ã¨ãã¯ã©ã¹å³ã¨ããããã話ãåºã¦ããã®ã ã¨æ³åãã¦ãã
ã¢ããªã³ã°ã¨ã¯ãªãããã¨ããã¡ã¿ãªã¢ããªã³ã°ã ã£ããã¢ããªã³ã°ããããããµãã«èãããã¨ããªãã¦
ããèãã¦ããã£ããããããã®ãè¦åº§ãé«ããªã£ãã¨ããã®ã ãããã
JVMã®JITã³ã³ãã¤ã©ã«ãã¤ããã
éªç° 浩ä¸ï¼ãã
ãã¡ãã¼ï¼ @jyukutyo

è³æ
JITã³ã³ãã¤ã«
- JVMã§ã®JITã³ã³ãã©ã®ä»çµã¿ãå°çã®13é層ã®1é層ç®ãããã§ã¿ããªæ¥½ããããï¼
- ä¸çªæåã®å¦çã¯ã¤ã³ã¿ããªã¿ã§å®è¡ãã
- ã¢ããªã±ã¼ã·ã§ã³å®è¡ä¸ã¯ããããã¡ã¤ã«ã§ãå®è¡ã«ã¼ããå®è¡ç¶æ ã«ããããå¹çã®è¯ãæ©æ¢°èªãçæããã³ã¼ããã£ãã·ã¥ãã
- JITã³ã³ãã¤ã«èªä½ããªã½ã¼ã¹ãæ¶è²»ããã®ã§ãé »ç¹ã«ä½¿ã(HotSpot)ã³ã¼ãã ããæ©æ¢°èªã«ãã
- ã³ã³ãã¤ã«æéã¨éãã³ã¼ãã®ãã¬ã¼ããªãã«ãªã
- C1 ã³ã³ãã¤ã«æéã¯çããã»ã©ã»ã©ã®é度ã®ãã®ãçæãã
- C2 ã³ã³ãã¤ã«æéã¯é·ããã©ãéããã®ãçæãã
- Java SE 8ããTierd Complicationãã¯ãã£ãã®ã§ãä»ã¯ã-serverããã-clientãã®æå®ã¯ä¸è¦ã§ãJVMãC1ã¨C2ã®ä¸¡æ¹ãèªåçã«ä½¿ãåãã
- ãããã¡ã¤ãªã³ã°èªä½ã«ããªã¼ãã¼ããããããã
- IR:ã³ã¼ãããã¼ã¿æ§é ã§è¡¨ç¾ã§ãã
- æé©åãè±æé©å
- ä»ã¾ã§ã¨éãæ¡ä»¶ãå¦çãèµ°ãã¨è±æé©åã§ã¤ã³ã¿ããªã¿ã«æ»ã
- ãããã¡ã¤ã«ã«ãã£ã¦ããä¸ã®ã¬ãã«ã§åã³ã³ãã¤ã«ããã
- level0ããlevel4ããã£ããæ¥ãããããã¨ã
ãªãã·ã§ã³
- JITã®æé©åã¬ãã«ãè¦ãã«ã¯-ãXX:PrintCompilaton
- JITãçæããã¢ã»ã³ããªã³ã¼ããè¦ãã«ã¯ã-XX:+PrintAssembly -XX:+UnlockDiagnosticVMOptions
ãã¼ã«
- HSDIS(HotSpot Disassembler):-XX:+PrintAssemblyã§ã¢ã»ã³ããªãåºåããã®ã«å¿ è¦
- JITWatch:Javaã®ã½ã¼ã¹ã¨Javaã®ãã¤ãã³ã¼ãã¨ã¢ã»ã³ããªãè¦ããããã
- IdealGraphVisualizer:IRã°ã©ããè¦ãããã赤ãå¦çã®æµããéããã¼ã¿ã®æµãã
ã¿ãªããããããã¨
- javavpãå®è¡ãããã¨ããªã人ã¯javap
- HSDISããã«ããã¦ãJITWatchã§è¦ããã¨
Q&A
- Q.JVMã®æ°æã¡ã«ãªã£ãã³ã¼ããæ¸ãã«ã¯ï¼
- A.JVMã®æé©åãæèããã³ã¼ããæ¸ãã¦ã¯ãããªãï¼ ãã¼ã¸ã§ã³ã¢ããã§æé©åã®ä»çµã¿ãå¤ãã£ãã使ããªããªãããã
-XX:+PrintAssembly ä»ãã¦ã³ã³ãã¤ã«çµæã®æ©æ¢°èªãè¦ãããã«å¿ è¦ãª HSDIS ã®ä½ãæ¹ã¯ããã #kanjava #mixleaphttps://t.co/BFFVOzJrEP
— YujiSoftware.java (@YujiSoftware) 2019å¹´11æ30æ¥
- Q.ã³ã¼ããã£ãã·ã¥æº¢ããèµ·ããã¨æ§è½ãèããå£åããã¨ãã£ããäºä¾ã¯ãããï¼
A.Cybozuã®ãã£ãã·ã¥æº¢ãã®ä¾ããã
https://blog.cybozu.io/entry/2016/04/13/080000ã¯ãï¼ã³ã¼ããã£ãã·ã¥é¢é£ã®äºä¾ã¨ãã¦æããããµã¤ãã¦ãºããã®ããã°ã¨ã³ããªã¯ãã¡ãã§ãï¼ #kanjava https://t.co/pPkQskKka2
— Koichi Sakata (ãã ãã¡ãã¼) (@jyukutyo) 2019å¹´11æ30æ¥Q.ã¡ã½ããã8000ãã¤ããè¶ ãããJITãããªãã¨ãã£ããå¶éããã¦ããçç±ã¯ã³ã³ãã¤ã«æéããããããï¼
- A.ã³ã³ãã¤ã«æéãããã¯ã¨ããããã¯ãã³ã¼ããã£ãã·ã¥ãåãã¦ãã¾ãã®ã§å¤ãã¦ããã®ã§æ¬é ããã¦ããã®ã§ã¯ãªããã¨ã æ¡å¤§ãããªãã·ã§ã³ãããã https://twitter.com/jyukutyo/status/1200663095951015936:
ææ³
ææ¥ãããæ½ãï¼ã¨è¨ããã¦ããã¤ãã³ã°ã¹ã¯ã¼ã«ã«æ¥ã¦ã¿ãããé
¸ç´ ãã³ãã¨ãã便å©ãªãã®ãããã¨æãããããããªãçãæ®ããããï¼ï¼ã¨æãããããè¦ããæ°åã
æ°åã ããªã®ã§ãå®éã«ã¯æººãããã ããããã©ãã
ãã13é層ç®ããããªãä½ã¬ã¤ã¤ã¼ãªéã¾ãã® ã«ã¼ãã«ï¼VMæ¢æ¤é ã ãããã
Kubernetesãå°å ¥ãã¦1年鿬çªéç¨ãã話
kiy0taka @kiy0taka

è³æ
ã¡ã¢
éä¿¡å IPãLBã«ãªã£ã¦ãã¾ãåå ã¯ï¼X-Fowarded-Forãä»ãå¿ãã¦ããï¼ã©ãã§ï¼
- tcpdumpã§ãããã¯ã¼ã¯ã調ã¹ãããã¨ã¤ã³ãã©ã¨ã³ã¸ãã¢ã£ã½ããã¤ã³ãã©ã¨ã³ã¸ãã¢ã¨ãã¦ãä¸äººåã«ãªã£ã
k8så®å ¨ã«çè§£ãã
å±±ãããå¶åº¦
- å¹´1ã§9é£ä¼ã¨ããªãã¨ãªããªããä¼ã¿ä¸ã¯ç¤¾å 人ã¸é£çµ¡ãã社å ãããé£çµ¡ãã¨ã£ã¦ã¯ãªããªã
- å±äººè£½ãã¨ãã®ãããã
å±±ãããå¶åº¦ãã¨ã£ãç¬éãå¤§è¦æ¨¡é害
- ã¯ã©ã¹ã¿ããããªãè½ã¡ã
- ã·ã¹ãã ããã®ã¢ã©ã¼ããªã®ã§ã人ããã®é£çµ¡ã§ã¯ãªãã®ã§ã®ãªã»ã¼ã
æ°ããã¯ã©ã¹ã¿ãä½ã£ã¦å ¨é¨ç§»å
- åå 䏿
- é¿é£è¨ç·´çãªãã¨ããã¦ãªãã£ããããã¯ã¢ããã¯ãã£ããã¨ã£ã¦ãã£ãã
æ°ããªé害:帰ã£ã¦ããªããã¼ãï¼ æã®5æ
âãªãããããã§å¾©æ§k8sãããï¼
- å®ç¸¾ããIaaSãªãèµ·ããªãã£ããã
- k8sã§æ§ç¯ãããµã¼ãã¹ãçè§£ãã¦ããã¡ã³ãã¼ãããªã
ã§ãããããªã ãã便å©ãã大äºããé¢ç½ããã大äºãã§ããã©ã¡ãããªãå¿ ããé¢ç½ãããé¸ã¶ããã¨ããä¼ç¤¾ã ãã
Google Cloud Shell(ç¡æ)ã便å©
Q&A
- Q.åºç¤ã®ã¢ãããã¼ããã©ããã¦ããï¼
A.æ1åã2ã¶æã«1åã¢ãããã¼ããã¦ã
Q.å±äººåã®è§£æ±ºã¯ï¼
A.äºæ¥é¨ããä¼ç¤¾ã«ãªã£ããã人ã¯å¢ãã¦ãªãã 人ãå¢ãããããªãã®ã§æ¡ç¨ããã°ã£ã¦ã¾ãã
Q.è² è·å¯¾çã¯ï¼
A.çãä¸ã®Pod対å¿ã§ãKubernetesã®æ¨æºã®ã§AutoScaleã®è¨å®ã«ãã¦ããã
ã¢ãããã¼ãããã¨ãã«ãæ°ããªã³ã³ãããç«ã¡ä¸ãã£ã¦ãã¨ããããQ.ã¹ã±ã¼ã«ãã¦ããã°ã¯è¦ããï¼
- A.ãã¡ã¤ã«ãµã¼ãã«ãã°ãæ¸ãã¦ãã
ææ³
ãµã¦ãã®è©±ããå§ã¾ã£ãããããµã¦ãã¼åãã®ãµã¼ãã¹ãKubernetesã§éç¨ããã®ãã¨æã£ããã©éã£ãã
ã¾ãããªæ¥åã®è©±ã ã£ãã
詳細ãªã¨ãããæãã¦ãã®ãä¸äººã§ãPixel+æºå¸¯ãã¼ãã¼ãã§ãã¤ã§ãã©ãã§ãé害対å¿ã¯å«ã ãªã
tcpdumpã§ã¨ã£ããã£ããã£ã¯ãWireshark ãã
ãããã¿ã¼ããã«ãã使ããªãã¨ããå¶ç´ããããªããTermshark 使ãã¨å¹¸ãã«ãªããã¨æãã
ãã便å©ãã大äºããé¢ç½ããã大äºãã§ããã©ã¡ãããªãå¿
ããé¢ç½ãããé¸ã¶ããã£ã¦ããã§ããã
DIã³ã³ããå ¥éï¼è£é¢ï¼
ãããã¿ @backpaper0
æ¬äººã®åçã¯NG
è³æ
https://backpaper0.github.io/ghosts/bytecode-enhance/#1
ã¯ã©ã¹ãã¡ã¤ã«ã®æ§é
- constant_pool å¼ã³åºãã¯ã©ã¹åãå¼ã³åºãã¡ã½ããåãæååãªãã©ã«ãªã©ã®é å
- constant_poolã®é åã®æ·»åã§ã¡ã½ãããå¼ã³åºã
javapã§ãã¤ãã³ã¼ã
- aload:屿夿°ããåç §å¤ãåãåºãã¦ã¹ã¿ãã¯ã«ç©ã
- aload_0:thisãã¹ã¿ãã¯ã«ç©ã
- clacã®ä¾
- iload_1:1ã¤ç®ã®intã®ãã¼ã«ã«å¤æ°ãã¹ã¿ãã¯ã«ç©ã
- iload_2:2ã¤ç®ã®intã®ãã¼ã«ã«å¤æ°ãã¹ã¿ãã¯ã«ç©ã
- iadd:ã¹ã¿ãã¯ããåãã ãã1çªç®ã®å¤ã«ï¼çªç®ã®å¤ãå ããã¹ã¿ãã¯ã«ç©ãã
- iretrun:ã¹ã¿ãã¯ã®intå¤ãæ»ãå¤ã«ãã
- ããè¨ãããã¨è¶³ãç®ãã¦ãã®ããããã¾ããã
ãã¤ãã³ã¼ããã¨ã³ãã³ã¹ããæ¹æ³
-ãã§ã«ãããã¤ãã³ã¼ããæ¹å¤ããã®ã§ã¯ãªããµãã¯ã©ã¹ãæ¸ãåºãæ¹å¼ - DIã³ã³ããã§æ¡ç¨ãå¤ã - Instrumentation APIã使ç¨ãã¦ãã¤ãã³ã¼ããæ¹å¤ãã - JMockitã§æ¡ç¨ - https://docs.oracle.com/javase/jp/8/docs/api/java/lang/instrument/Instrumentation.html - åçã«ãã¤ãã³ã¼ããå¼ãã®ã§ãé»éè¡ã
ã¹ã³ã¼ãã¨ãããã·
- Seasar2ã§ã¯èªèº«ãããçãã¹ã³ã¼ãã®ã³ã³ãã¼ãã³ããã¤ã³ã¸ã§ã¯ã·ã§ã³ã§ããªãã£ã
- SpringãCDIãªã©ã®ã¢ãã³ãªDIã³ã³ããã¯Proxyã«ãã£ã¦ã¹ã³ã¼ãã«é¢ä¿ãªãã¤ã³ã¸ã§ã¯ã·ã§ã³ã§ãã
Proxyãã¤ã³ã¹ã¿ã³ã¹åããå ´åãã³ã³ã¹ã¿ã©ã¯ã¿ã«ã¯ä½ã渡ãã°è¯ãã®ã ãããï¼
- ä½ã渡ããªã
ãããï¼ï¼ã©ãã ããã¬ã¼ã¯ãã¤ã³ãè¨å®ããã¨æã£ã¦ããã ï¼ï¼ - ãã·ãªã¢ã©ã¤ãºã§ã¯ã³ã³ã¹ãã©ã¯ã¿ã¯å¼ã°ããªãããã®ä»çµã¿ã使ç¨ãã¦ã
- Objenesis:ãã°ãæ¹æ³ãè±æ³ã
Q&A
- Q.ã©ããã£ã¦ãã·ãªã¢ã©ã¤ãºããã¦ãããçªãæ¢ãããï¼
A.ç¥èã¨è¦³å¯ã¨çºæ³ã ãã·ãªã¢ã©ã¤ãºã§ã¯ã³ã³ã¹ãã©ã¯ã¿ã¯å¼ã°ããªãã¨ãããç¥èãã¨
ãããã¬ã¼ã§ãã¬ã¤ã¯ãã¤ã³ãã§æ¢ã¾ããªãã¨ããã観å¯ãã¨
ãã·ãªã¢ã©ã¤ãºã®ä»çµã¿ã使ã£ã¦ããããªã¨ãããçºæ³ããQ.ã·ãªã¢ã©ã¤ãºåãã¦ãªãã®ã«ãã©ããã£ã¦ãã·ãªã¢ã©ã¤ãºåï¼
- A.ãã·ãªã¢ã©ã¤ãºãã¦ãããã§ã¯ãªãã¦ããã·ãªã¢ã©ã¤ãºã®ã¤ã³ã¹ã¿ã³ã¹åããå¦çã使ç¨ãã¦ããã
ææ³
è£é¢(ããã)ãããã¿ããã®ç骨é ï¼ãé»éè¡ã®è§£èª¬ã
ãã·ãªã¢ã¢ã©ã¤ãºããã¨ãã«ã³ã³ã¹ãã©ã¯ã¿å¼ã°ããªããªãã¦ã©ããã奿©ã«ç¥ããã ããã
Q&Aã®åçã§ããç¥èã¨è¦³å¯ã¨çºæ³ãã¨ãããã¨æ±ºãããã«ãã³ããã
ãããï¼å¤±æã ããã®ã·ã¹ãã éçºï¼ï¼
ããã https://twitter.com/s_kozake:title=@s_kozake

çºè¡¨è³æã¯ãçã£ã¦ããæã£ã¦ããå¯è½æ§ãã
ã©ããªã·ã¹ãã ãéçºãã¦ãã
- PCãã¡ã¼ã¹ã with IE 11
- ã¿ãã¬ãããã
å ¥åãã§ãã¯ã®å½¹å²
ãã¼ã¿ã®æ´åæ§
- ã´ããå ¥ããã¨ã´ããåºã¦ãã
-
- æä½ã¬ã¤ããå ¼ãã
- é©åãªã¨ã©ã¼ã¡ãã»ã¼ã¸ã§æä½ãå°ã
ç»é¢ã®ã¬ã³ããªã³ã°ãé ã
IE11ã§é ã
- CSSã®å±æ§èã¬ã¯ã¿ã¼ã使ãã¨é ãï¼
- ãããæ¸ãã¨ä¸æ°ã«é ããªãããããæ¸ããªãã¨éãã
- https://medium.com/@aantipov/ie11-performance-bottleneck-de304569361d
ã¿ãã¬ããã§é ã
loupe
Javascriptã®ã¤ãã³ãã¨ãã³ã¼ã«ã¹ã¿ãã¯ãè¦ããã¨ãã§ãã
ç· ã

challenge! challenge! #kanjava
— Koichi Sakata (ãã ãã¡ãã¼) (@jyukutyo) 2019å¹´11æ30æ¥
ðââï¸ï¼challenge
— EOA (@fukamiAO) 2019å¹´11æ30æ¥
ð ââï¸ï¼charenge#kanjava #mixleap
ææ³
失æããã¼ãã®çºè¡¨ã§ãæå¾ã®ç· ãã®ã¹ã©ã¤ãã§å¤±æããã¨ããããããªãã
ç¬ããã¦ããã£ãã
ä»è¾¼ã¿ã§ã¯ãªã天ç¶ããããæããããã£ã©ã ããè·å ´ã§ã¯ç¥ãããã©ã
DAPRãåããã¦ã¿ã話
ãã @cero_t

è³æ
- ãã¢ã¢ããªã±ã¼ã·ã§ã³ https://github.com/cero-t/dapr-trial
ã¯ããéå ¬éã§ãã¼ããã®ãã¡ä»ã®å ´æã§ãä¼¼ãå 容ã§ç»å£ãã¦ããã£ã¡ãå ¬éãããã¨æãã¾ãã¼ã
— è°·æ¬ å¿ / CERO-METAL (@cero_t) 2019å¹´12æ1æ¥
dapr
- dapr:ãããã¼
- ãã¬ã¼ã ã¯ã¼ã¯ç²ã
- å ¨é¨ãã¬ã¼ã ã¯ã¼ã¯ããã£ã¦ããããã©ããã¬ã¼ã ã¯ã¼ã¯ã«ç¸ããã¦ãã
- Java 8ããJava 11ã¸ãã¼ã¸ã§ã³ã¢ããããããããSpring Boot 1ããSpring Boot 2ã¸ã®ãã¼ã¸ã§ã³ã®æ¹ã大å¤ã
- ãµã¤ãã«ã¼ãªã®ããã«ãã£ã³ã°ãããã¯ãªã®ã
- ã¹ãã¼ã管ç
- Pub/Subã®éåæ
- 忣ãã¬ã¼ã·ã³ã°
- Zipkin
- x-correlation-id
- ã¢ããªã¨ã¤ã³ãã©ãå åã«åé¢ããã¦ããçµ±å¶ã¨ããªãã¦ãã
- ã¸ã§ã¼ã¯ãã¯ã¼ã«
- ä»ã®ç»å£è ããã¹ã£ãï¼ãcero_tãæ»ã£ã¦ãªããã
ææ³
daprã®æ©è½ã¯çãã ãããã ãµã¤ãã«ã¼ï¼ãã«ãã£ã³ã°ãããã¯ï¼ã¾ãã¯ããããã®ç¶æ ãªã®ã§ãdaprã®å£²ããå ¨ç¶ã¤ããã¦ããªãã ã¹ããªè¸ã¯åãã¦è¦ããããããé°å²æ°ãªã®ãã
å ¨ä½ã®ææ³
第1åããã°ã©ãã³ã°Groovyåå¼·ä¼(大éª) ã®ã¾ã¨ãã第1åãPlay frameworkåå¼·ä¼ãIN é¢è¥¿ã§å¤§éªã®åå¼·ä¼ã«åå ãããã¨ã¯ãããã©ãé¢ã¸ã£ãã¯åãã¦ã
ããããé岡ããè¡ã£ãããããã£ãã(åã§ãã忥ã«ç¥æ¸ã«ç¨äºããã£ãã®ã§åå ã§ããã)
ä¸çªé ãããã®åå ããªã¨æã£ããã©ãã©ãããéã£ãããã ã
@YujiSoftware ããã大éªã«çããã©ãã颿±ã®æè¡è
ã®å®åã大éªå¢ã«æãç¥ããã¦ããããww #kanjava
é¢ã¸ã£ãã®äººã£ã¦ãæè¡çãªãé¢ç½ããã¨ç¬ãã®ãé¢ç½ããã¨ä¸¡æ¹ãè©°ãè¾¼ãã§çºè¡¨ãã¦ããå°è±¡ã
ãªã®ã§ãé常ã«é¢ç½ãã£ãããåå ã§ãã¦ããã£ãã
çµãã£ãããæéçã«å¸°ããªãã¨ãªããªãã®ãæ®å¿µã ã£ãã
