SlideShare a Scribd company logo
.NET Interactive
Notebooks
一次就上手
Poy Chang
Poy Chang
任職於全美 100 大私人企業,負責企業內部 IT 解決方案設計與開發,
專注於 Azure、.NET 等技術研究
✓ STUDY4 / Azure Taiwan 社群核心成員
✓ Microsoft MVP 微軟最有價值專家
✓ 2021 線上 DevDays Asia 講師
✓ 2020 台北 .NET Conf 總召 / 講師
✓ 2019 台北 .NET Conf 總召
✓ 2019 廣州 Global Azure Bootcamp 講師
✓ 2019 台北 Insider Dev Tour 講師
✓ 2019 宜蘭 Angular TW Conf 講師
s.poychang.net/blog
s.poychang.net/github
s.poychang.net/fb
s.poychang.net/twitter
s.poychang.net/linkedin
活動時間 2021-08-28 (六) 14:00 ~ 16:30
https://s.study4.tw/202108
stackblitz.com
jsfiddle.net dotnetfiddle.net
線上分享程式碼
Try .NET
✓ 基於 .NET 的嵌入式的程式碼執行器
✓ 提供網頁介面來執行 .NET 程式碼
• 使用 Blazor 和 Web Assembly 技術
✓ 可安裝成 dotnet CLI 全域工具,提供
離線執行環境
✓ Microsoft Docs 線上學習支援大量使
用此技術,讓 .NET 學習者能閱讀文件
的同時,直接在網頁上執行程式碼
https://try.dot.net/
dotnet tool install --global Microsoft.dotnet-try
Try .NET
✓ 基於 .NET 的嵌入式的程式碼執行器
✓ 提供網頁介面來執行 .NET 程式碼
• 使用 Blazor 和 Web Assembly 技術
✓ 可安裝成 dotnet CLI 全域工具,提供
離線執行環境
✓ Microsoft Docs 線上學習支援大量使
用此技術,讓 .NET 學習者能閱讀文件
的同時,直接在網頁上執行程式碼
https://github.com/dotnet/try/blob/main/DotNetTryLocal.md
dotnet tool install --global Microsoft.dotnet-try
Try .NET
✓ 基於 .NET 的嵌入式的程式碼執行器
✓ 提供網頁介面來執行 .NET 程式碼
• 使用 Blazor 和 Web Assembly 技術
✓ 可安裝成 dotnet CLI 全域工具,提供
離線執行環境
✓ Microsoft Docs 線上學習支援大量使
用此技術,讓 .NET 學習者能閱讀文件
的同時,直接在網頁上執行程式碼
https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/
dotnet tool install --global Microsoft.dotnet-try
為什麼有 Notebook
✓1984 年 Donald Knuth 提出文學式
程式設計,希望能用來取代結構化程
式設計
www.literateprogramming.com/knuthweb.pdf
為什麼有 Notebook
✓1984 年 Donald Knuth 提出文學式
程式設計,希望能用來取代結構化程
式設計
✓1988 年 Wolfram 公司推出筆記本介
面的 Mathematica 工具
為什麼有 Notebook
✓1984 年 Donald Knuth 提出文學式
程式設計,希望能用來取代結構化程
式設計
✓1988 年 Wolfram 公司推出筆記本介
面的 Mathematica 工具
✓2015 年眾多資料科學解決方案採用
Notebook 的方式來呈現
https://devblogs.microsoft.com/cesardelatorre/using-ml-net-in-jupyter-notebooks/
.NET
Notebook
.NET
Interactive
Notebook
.NET Interactive
✓.NET interactive 是一組 CLI 和 API,利用 .NET 並將其功能
嵌入到 Web 或 Notebook 之中,在其中共享程式碼、探索
數據、撰寫和學習,提供交互式體驗
✓開源專案
github.com/dotnet/interactive
https://github.com/dotnet/interactive/blob/main/docs/kernels-overview.md
Visual Studio Code
Jupyter nteract
Visual Studio Code
Extension
VSCode 1.59 已內建基本功能
動手玩玩看
.NET Interactive
Notebook 基本玩法
https://blog.poychang.net/play-with-dotnet-interactive-notebook/
https://github.com/poychang/demo-dotnet-notebook
https://github.com/poychang/dotnet-notebooks
.NET Notebook for C#
✓使用修改版的 C# Script 語法
• 也就是使用 .csx 腳本的格式,跟平常寫的 C# 不一樣但也差不多
• scriptcs.net
✓預設載入以下套件參考
• .NETStandard.Library
• Microsoft.AspNetCore.Html.Abstractions
• Microsoft.DotNet.Interactive
• Microsoft.DotNet.Interactive.Formatting
// 設定 NuGet.org 的套件來源
#i "nuget:https://api.nuget.org/v3/index.json"
// 使用本機的 NuGet 套件來源
#i "nuget:C:mypackagesrcbinRelease"
// 還原最新 pre-release 版本的 NuGet 套件
#r "nuget:Microsoft.DotNet.Interactive.ExtensionLab,*-*"
.NET Notebook for C#
✓預設使用以下 namespace
• System
• System.Collections
• System.Collections.Generic
• System.Ling
• System.Threading.Tasks
• System.Text
• Microsoft.DotNet.Interactive
• Microsoft.DotNet.Interactive.Formatting
IntelliSense 岀不來?建議使用 using 語句明確指定要
使用的 namespace,讓 IntelliSense 比較不會出狀況
Magic Commands
• 將複雜的行為封裝成單一指令,用更快捷的方式執行
• 必須放在行的開頭,並以 #! 或 # 作為前綴
通用型 Magic Commands
宣告類
用於宣告該 區塊是使用哪個 Subkernel
• #!sql
• #!csharp 或用 #!c#, #!C#
• #!fsharp 或用 #!f#, #!F#
• #!pwsh 或用 #!powershell
• #!javascript 或用 #!js
• #!html
• #!markdown
功能類
提供適用於檢視或紀錄的功能
• #!lsmagic 列出當前可用的指令
• #!log 開啟並檢視詳細執行日誌
• #!about 顯示當前 .NET Interactive 版本
• #!time 測量並顯示該區塊執行時間
• #!value 儲存值,需搭配 #!share 使用
特定語言專用 Magic Commands
提供給 C# 和 F# 語言專用
#i 設定 NuGet 套件來源
#r 將套件加入參考
#!share 從 #!value 取得共享的變數
#!who 顯示頂層變數的名稱
#!whos 顯示頂層變數的名稱、類型和值
https://github.com/dotnet/interactive/blob/main/docs/magic-commands.md
動手玩玩看
自訂
Magic Command
https://github.com/poychang/demo-dotnet-notebook
https://github.com/poychang/dotnet-notebooks
自訂 Magic Command
• 實作 IKernelExtension 介面,並封裝成 NuGet 套件
• 使用 System.CommandLine 來處理命令參數及邏輯
• 專案檔要將產出的 dll 封裝到指定位置
public interface IKernelExtension
{
Task OnLoadAsync(Kernel kernel);
}
<ItemGroup>
<None Include="$(OutputPath)/Extension.dll" Pack="true" PackagePath="interactive-extensions/dotnet" />
</ItemGroup>
https://github.com/dotnet/interactive/blob/main/docs/extending-dotnet-interactive.md
自訂 Magic Command (script-based)
• 用 .NET Notebook 本身作為 Magic Command,並封裝成
NuGet 套件
• 必須使用 .dib 檔案格式來撰寫處理命令參數及邏輯
• 專案檔要將 .dib 檔封裝到指定位置
<ItemGroup>
<None Include="extension.dib" Pack="true" PackagePath="interactive-extensions/dotnet" />
</ItemGroup>
https://github.com/dotnet/interactive/blob/main/samples/extensions/RandomNumber/README.md
寫 Notebook 的建議
https://towardsdatascience.com/on-writing-clean-jupyter-notebooks-abdf6c708c75
✓ 鎖定依賴的套件版本
Lock dependencies
✓ 注意資料的變化
Be careful with mutable data
✓ 區塊模組化
Modularize code
寫 Notebook 的建議
https://towardsdatascience.com/on-writing-clean-jupyter-notebooks-abdf6c708c75
✓ 鎖定依賴的套件版本
Lock dependencies
✓ 注意資料的變化
Be careful with mutable data
✓ 區塊模組化
Modularize code
✓ 分節組織區塊
Organize in sections
寫 Notebook 的建議
https://towardsdatascience.com/on-writing-clean-jupyter-notebooks-abdf6c708c75
✓ 鎖定依賴的套件版本
Lock dependencies
✓ 注意資料的變化
Be careful with mutable data
✓ 區塊模組化
Modularize code
✓ 分節組織區塊
Organize in sections
✓ 寫的是筆記,不是書
Write shorter notebooks
如果你想要打造屬於
自己的 Notebook
VS Code Notebook API
Sample Notebook
VS Code Notebooks: A Deep Dive
https://code.visualstudio.com/api/extension-guides/notebook
https://github.com/microsoft/vscode-nodebook
https://www.youtube.com/watch?v=D-AXZZDTQhM
應用場景
學習程式語言 成為資料探險家 驗證商業邏輯 交接標準流程
Thank You
s.poychang.net/blog
s.poychang.net/github
s.poychang.net/fb
s.poychang.net/twitter
s.poychang.net/linkedin

More Related Content

What's hot

OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
Muneaki Nishimura
 
dm-writeboost-kernelvm
dm-writeboost-kernelvmdm-writeboost-kernelvm
dm-writeboost-kernelvm
Akira Hayakawa
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
bitbank, Inc. Tokyo, Japan
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
Etsuji Nakai
 
DevOps核心理念和實踐
DevOps核心理念和實踐DevOps核心理念和實踐
DevOps核心理念和實踐
Martin Liu
 
20220224台中演講k8s
20220224台中演講k8s20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
m ishizaki
 
[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima
Akihiro Suda
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?
Zen K.C
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
Gelis Wu
 
API Token 入門
API Token 入門API Token 入門
API Token 入門
Andrew Wu
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
Andrew Wu
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
TomomitsuKusaba
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
Poy Chang
 
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
Kazuhiro Ota
 
OpenStack本番環境の作り方
OpenStack本番環境の作り方OpenStack本番環境の作り方
OpenStack本番環境の作り方
VirtualTech Japan Inc.
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
富士通クラウドテクノロジーズ株式会社
 
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
Andrew Wu
 
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
Yoshikazu GOTO
 

What's hot (20)

OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
OWASP Testing Guide からはじめよう - セキュリティ診断技術の共有、そして横展開
 
dm-writeboost-kernelvm
dm-writeboost-kernelvmdm-writeboost-kernelvm
dm-writeboost-kernelvm
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
DevOps核心理念和實踐
DevOps核心理念和實踐DevOps核心理念和實踐
DevOps核心理念和實踐
 
20220224台中演講k8s
20220224台中演講k8s20220224台中演講k8s
20220224台中演講k8s
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?為了推動自動化測試,你付出了多少?
為了推動自動化測試,你付出了多少?
 
如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)如何培養架構性思考(談軟體架構師必經之路)
如何培養架構性思考(談軟體架構師必經之路)
 
API Token 入門
API Token 入門API Token 入門
API Token 入門
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
 
OpenStack本番環境の作り方
OpenStack本番環境の作り方OpenStack本番環境の作り方
OpenStack本番環境の作り方
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
 
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
 
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
 

Similar to 玩轉 .NET Interactive Notebooks 一次就上手

twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
twMVC
 
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Poy Chang
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
Alan Tsai
 
@Connect(); microsoft visual studio vnext & azure
@Connect(); microsoft visual studio vnext & azure@Connect(); microsoft visual studio vnext & azure
@Connect(); microsoft visual studio vnext & azure
Bruce Chen
 
03 azure devops pipeline - release
03 azure devops pipeline - release03 azure devops pipeline - release
03 azure devops pipeline - release
Alan Tsai
 
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
Alan Tsai
 
scriptcs 簡介
scriptcs 簡介scriptcs 簡介
scriptcs 簡介
Huan-Lin Tsai
 
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
Edward Kuo
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
建興 王
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
FEG
 
02 azure devops pipeline - build
02 azure devops pipeline - build02 azure devops pipeline - build
02 azure devops pipeline - build
Alan Tsai
 
使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​
Poy Chang
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
Tianwei Liu
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
Alan Tsai
 
Introduction to K8S Big Data SIG
Introduction to K8S Big Data SIGIntroduction to K8S Big Data SIG
Introduction to K8S Big Data SIG
Jazz Yao-Tsung Wang
 
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統Hsu Ping Feng
 
20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf
Ko Ko
 

Similar to 玩轉 .NET Interactive Notebooks 一次就上手 (20)

twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
 
@Connect(); microsoft visual studio vnext & azure
@Connect(); microsoft visual studio vnext & azure@Connect(); microsoft visual studio vnext & azure
@Connect(); microsoft visual studio vnext & azure
 
03 azure devops pipeline - release
03 azure devops pipeline - release03 azure devops pipeline - release
03 azure devops pipeline - release
 
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能2021 Net Conf Taiwan-初探 Azure Communication Service讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
 
scriptcs 簡介
scriptcs 簡介scriptcs 簡介
scriptcs 簡介
 
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
 
02 azure devops pipeline - build
02 azure devops pipeline - build02 azure devops pipeline - build
02 azure devops pipeline - build
 
使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
 
Introduction to K8S Big Data SIG
Introduction to K8S Big Data SIGIntroduction to K8S Big Data SIG
Introduction to K8S Big Data SIG
 
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
 
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
 
20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf20230830 淺談 Azure OpenAI.pdf
20230830 淺談 Azure OpenAI.pdf
 

More from Poy Chang

打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案
Poy Chang
 
Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣
Poy Chang
 
#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal
Poy Chang
 
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Poy Chang
 
那個 Code 不是我弄壞的! 持續整合與版本控制策略
那個 Code 不是我弄壞的!持續整合與版本控制策略那個 Code 不是我弄壞的!持續整合與版本控制策略
那個 Code 不是我弄壞的! 持續整合與版本控制策略
Poy Chang
 
Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代
Poy Chang
 
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
Poy Chang
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
Poy Chang
 
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
Poy Chang
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統Poy Chang
 

More from Poy Chang (10)

打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案
 
Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣
 
#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal
 
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
 
那個 Code 不是我弄壞的! 持續整合與版本控制策略
那個 Code 不是我弄壞的!持續整合與版本控制策略那個 Code 不是我弄壞的!持續整合與版本控制策略
那個 Code 不是我弄壞的! 持續整合與版本控制策略
 
Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代
 
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
使用 Dependency Injection 撰寫簡潔 C# 程式碼原來這麼簡單 (.NET Conf 2018)
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
 
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統
 

玩轉 .NET Interactive Notebooks 一次就上手