Shos.UndoRedoList (undo/redo ができる List と ObservableCollection)
Shos.UndoRedoList (List and ObservableCollection which support undo/redo)
I made List and ObservableCollection which support undo/redo:
* See README.md for instructions.
* There is also a sample app for WPF.
You can install this library from NuGet:
Enjoy!
【ライブコーディング】連結リスト LinkedList<T> ‐自作で学ぶコレクションの基礎‐
YouTube で xin9le さんとコーディング ライブをやりました。
お題は、C# で連結リスト LinkedList<T>。
テストを書きながら少しずつ実装していくというものになっています。
Visual Studio の Live Share と Live Unit Testing を使い、2人で快適にコーディングすることができました。
「.NET で機械学習/ディープラーニングをやってみよう!」 | MVP パーソナルスポンサー | de:code 2020
デジタル イベントとして開催された de:code 2020 (6月17日 – 7月17日) にMVP パーソナルスポンサーとしてサンプル コードとチュートリアルを提供しました。
【de:code 2020】 Azure Machine Learning Studio と Python と C#/.NET によるディープ ラーニングのサンプル/チュートリアル | GitHub
概要
Azure Machine Learning などで機械学習/ディープラーニングのモデルを作成し、それを .NET の中の ML.NET を利用して使ってみましょう。
チュートリアル形式で説明します。
- 話題の TensorFlow を使って機械に学習させよう
- Azure Machine Learning を使ってクラウド上で機械学習してみよう
- .NET の中の ML.NET を使って学習済みのモデルを使ったアプリケーションを作ってみよう
サンプルコード/ツールの狙い (利用される方にとっての価値)
機械学習/ディープラーニングのモデルを作成するところから、.NET アプリケーションで使うまでの手順を、実際に手を動かしながら学ぶことができます。
Microsoft Build 2020 (2020/05/19-20)
マイクロソフトの最新の技術について、以下のようなオンラインイベントで情報が提供されました。
- Microsoft Build 2020 (2020/05/19-20)
- de:code 2020 (2020/06/17-30)
これらのイベントで公開された/公開予定の技術についてご紹介いたします。
■ .NET 関連
● One .NET (ひとつの .NET)
○ 現在の .NET
○ 次の .NET
以前から発表されている通り、次の .NET では次のようになります。
"One .NET" ということで、.NET が現在の .NET Core に統合され、.NET 5 となります。
※ .NET 5 に含まれないもの
ちなみに .NET Framework は 4.8 が最終バージョンです。今後は保守フェーズに入り、機能の新規追加はされなくなります。
.NET Framework のサポート自体は Windows 10 がサポートされている間は続くと思われます。
将来性から考えると、新規に .NET で開発する場合は、.NET Core を用いるべきだと考えられます。
○ .NET のロードマップ
上記のとおり、現在ある .NET Framework、.NET Core、Xamarin は一つの .NET に統合されます。
但し、2020 年 11 月の .NET 5 リリース時点では Xamarin の統合はプレビュー扱いです。
.NET 6 で完全に統合される見込みです。
.NET 6 は LTS (Long term support: 長期サポート) 版となる予定なので、新規開発に利用するのは、.NET 6 からが無難かも知れません。
● 新たなマルチプラットフォーム アプリケーション開発方法
Microsoft は既に Windows への囲い込みを行っていませんので、新たな開発方法としては Windows 以外の OS もサポートするマルチ プラットフォームなものを提供していくことになります。
注目すべきは、以下の二つです。
- MAUI (Multi-platform App UI)
- Blazor
将来的にはどちらもネイティブアプリケーションも開発できるものですが、MAUI は従来の Windows アプリケーション開発技術の延長にある技術、Blazor は Web アプリケーション開発技術の延長にあり、とりあえずは Web 開発用です。
ひとつずつ説明します。
○ MAUI (Multi-platform App UI)
MAUI というアプリケーション開発技術が発表されました。
MAUI の特徴は次の通りです :
- iOS や Android、Windows など複数のプラットフォームに対応したネイティブなユーザーインターフェイスを実現できる UI フレームワーク
- 従来の Xamarin Forms の技術の延長
- .NET 6 Preview (2021 年 11 月頃リリース予定) でリリース予定
- 全体を C#/.NET で開発
- UI は XAML (WPF や UWP、Xamarin Forms の UI 言語) ベース
XAML (Extensible Application Markup Language):
○ Blazor
現在すでに Blazor Server という、C# だけで Web アプリケーションが開発できるサーバーサイド技術が .NET で使用できますが、この技術が拡張され、Web アプリケーションだけでなくネイティブアプリケーションも作成できるようになることが予定されています。
Blazor の特徴は次のとおりです:
- Web 技術の延長
- 全体を C#/.NET で開発
- UI は Razor (ASP.NET MVC の UI 言語) ベース
今回新たにリリースされたのは、Blazor WebAssembly 3.2.0 (GA) です。
近い将来この Blazor が拡張され、ネイティブ アプリケーション (Web アプリケーションでない Windows アプリケーション/Mac アプリ /iOS アプリ/Android アプリ) も作れるようになります。
- Blazor Server (既存)
- Blazor WebAssembly (今回リリース)
- Blazor Server と違い、クライアントサイドで C# が動作する Web アプリケーションを作成できる
- クライアント サイドのプログラムを JavaScript ではなく、C# で記述。
- クライアント サイド (Web ブラウザー) 上で、WebAssembly の .NET が動作する
- Blazor PWA (Progressive Web Application) (将来)
- Web アプリケーションが単独のアプリケーションとして動作する
- Blazor Hybrid (将来)
- Electron や WebView を用いてデスクトップアプリケーションを開発
- Blazor Native (将来)
- ネイティブアプリケーションを開発
○ 参考
- One .NET
- MAUI
- Blazor
- .NET
● 新たな Windows アプリケーション開発方法
新たな Windows アプリケーション ライブラリーとして WinUI 3 が発表になりました。
- WinUI 3 Preview 1
- UWP と Win32 アプリケーションをサポート
- C/C++、.NET 5、WebView2、Fluent Design Controls に対応
■ 開発ツール関連
○ GitHub Codespaces/Visual Studio Codespaces
以下が発表されました:
- GitHub Codespaces
- Visual Studio Codespaces
Web 版 (クラウド版) の Visual Studio Code/Visual Studio です。
Visual Studio Codespaces は、以前 Visual Studio Online と呼ばれていたものです。
ネイティブアプリケーションだった Office が Web 版になり、Microsoft 365 になったように、様々なツールがクラウド版になっていきます。
○ Visual Studio
- Visual Studio 2019 の 16.6 と 16.7 Preview 1 が公開されました。
- Live Share でボイスチャットがサポートされます。
- Windows Forms Designer for .NET Core がリリースされました。
- Surface Duo (2 画面) の開発なども行えるようになってきました。
- ML.NET 開発用の Model Builder が組み込まれました。
○ 参考
- Windows Forms Designer for .NET Core Released | .NET Blog
- Expanding Visual Studio 2019 support for Visual Studio Codespaces | Visual Studio Blog
- Releasing Today! Visual Studio 2019 v16.6 & v16.7 Preview 1 | Visual Studio Blog
- ML.NET Model Builder is now a part of Visual Studio | .NET Blog
○ C# 9.0
C# 9.0 が発表されました。
○ 参考
■ Azure 関連
○ Azure
Serverless や AI/Data などを中心にアップデートされています。
- AKS (Azure Kubernetes Service)
○ Data 関連
- Cosmos DB
Free Tier
AutoScale
Azure Synapse Link: データベース分析サービス
○ ML 関連
- Cognitive Services
- Personalizer
- Speech Voice
- Azure Machine Learning
- AutoML 周り
- Responsible ML
- AI スーパー コンピューターの発表
○ 参考
- New Cognitive Services capabilities are now generally available | Microsoft Azure
- New Cognitive Services capabilities are now available in preview | Microsoft Azure
- Microsoft announces new supercomputer, lays out vision for future AI work | The AI Blog
- Build AI you can trust with responsible ML | Microsoft Azure
■ Power Platform/Microsoft 365
○ Power Platform
Power Apps や Power Automate、Power BI、Dynamics 365、Microsoft 365 の新たな統合機能の発表
○ Microsoft 365 (旧名 : Office 365)
Microsoft Teams の多数のアップデートの予定が発表
■ Windows 関連
○ Terminal
・ Windows Terminal 1.0
次のような機能があります。
Microsoft Store からインストールできます。
- タブ機能
タブごとに Windows Subsystem for Linux、コマンドプロンプトや PowerShell など
タブの内部をペインに分割する機能
○ WSL2
WSL は、Windows に組み込まれた virtual な Linux 環境です。
Microsoft Store からインストールできます。
WSL2 で新たに GPU がサポートされます。 CUDA 利用できたり、GPU 版 Tensorfow が動作できたりします。
○ パッケージ マネージャー
winget という Windows Package Manager (Preview 版) がリリースされました。
Linux のようにコマンド ラインから簡単にアプリケーションなどがインストールできます。
参考:Windows Package Manager Preview | Windows Command Line
○ API
Project Reunion というプロジェクトが発表されました。
Windows の API は現在次のように 2 つ ありますが、これを統合しようというプロジェクトです。
■ 関連サイト
- Microsoft
- Microsoft Build 2020
- Microsoft Build 2020 | Channel 9
- de:code 2020
- .NET Conf 2020 (2020/11/10-12, virtual event)
- Learn TV | Microsoft Docs
- Channel 9:Microsoft 製品 & サービス作成者による開発者向けのビデオ
- Microsoft Build 2020: Empowering developers to deliver impact today and tomorrow | The Official Microsoft Blog
- Developer Velocity: Empowering developers to fuel business performance | Microsoft Azure
- GitHub | microsoft/Build2020_DigitalSwag: Repository for Build 2020 Digital Swag
- Microsoft Build 2020 Book of News
- A first look at Microsoft Lists | YouTube
- Blog
- Microsoft Build 2020 Keynote的な何か | ブチザッキ
- Azure Update (2020.05.20) 他いろいろ | ブチザッキ
- Microsoft Build 2020 キーノート(基調講演)のまとめ | 吉田の備忘録
- Microsoft Build 2020 Day1 .NET関連Pickup | AZPower 技術ブログ
- Microsoft Build 2020: Cognitive Services アップデート – 青い空の向こうへ
- Microsoft Build 2020: Azure Bot Service & Bot Framework アップデート – 青い空の向こうへ
- [速報]Windows用パッケージマネージャ「winget」がプレビューリリース。コマンドラインからアプリケーションをインストール。Microsoft Build 2020 - Publickey
- [速報]WSL 2が正式版に到達。今後はLinuxのGUIアプリへも対応すると。Microsoft Build 2020 - Publickey
- [速報]Windows Terminal 1.0正式リリース。7月からは毎月アップデートへ。Microsoft Build 2020 - Publickey
- [速報」Blazor WebAssemblyが正式リリース。C#/.NETでWebアプリケーションを開発可能に。Microsoft Build 2020 - Publickey
- [速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020 - Publickey
- Visual Studioでペアプロ環境を実現する「Live Share」が、テキストチャットとボイスチャット機能を統合へ - Publickey
- Build 2020 で発表された SQL Server / SQL Database 関連の情報 at SE の雑記
- 【C# 9.0 がやってきた】Build 2020 で .NET 5 Preview 4 公開 · Issue #7 · ufcpp-live/UfcppLiveAgenda · GitHub
- 無料で Vue.js + express で作った API を Azure Static Web Apps でホストしてみよう | Qiita
- News サイト
- Microsoft Build 2020のハイライト
- MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 | GIGAZINE
- Microsoft、Build 2020でAzure向けの新しいサービスを発表 | クラウド Watch
- Build 2020の基調講演に感じたオンライン開催の変なところと良いところ | TechCrunch Japan
- Build 2020でMicrosoft Teamsの強化を発表、ブロード/プライベートキャストがさらに容易に | TechCrunch Japan
- マイクロソフト、Win32とUWPのAPIへのアクセス統合目指す「Project Reunion」発表 | ZDNet Japan
- マイクロソフト、「Azure Stack Hub」をアップデートへ--フリート管理機能など | ZDNet Japan
- マイクロソフト、共同編集を容易にする「Fluid Framework」をオープンソース化へ | ZDNet Japan
- マイクロソフト、世界5位に入る性能のAIスパコンをOpenAIと共同開発 | ZDNet Japan
- マイクロソフト、「Windows 10」環境でウェブアプリを強化へ | ZDNet Japan
- Microsoft、Build 2020でAzure向けの新しいサービスを発表 | クラウド Watch
- Windows 10、WSL 2でLinux GUIアプリとGPUコンピューティングをサポートへ | Engadget 日本版
- マイクロソフト、学習動画サイト「Learn TV」をプレビュー公開 | ZDNet Japan
- マイクロソフト、「C# 9.0」の計画示す--「Blazor WebAssembly」正式版もリリース | ZDNet Japan
- マイクロソフト「Build 2020」で発表されたデータプラットフォームやアナリティクスサービス | ZDNet Japan
- UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 | ASCII.jp
- マイクロソフトのクラウド/AI担当EVPガスリー氏に聞く、5つの質問 | ZDNet Japan
- 「Microsoft Teams」に多数の新機能--コラボレーション、リモートワークへの対応向上 | ZDNet Japan
- 「Windows Terminal 1.0」がリリース--今後のアップデート計画も明らかに | ZDNet Japan
- Windows Terminal 1.0が正式リリース。ブラウザみたいにタブ操作できます | ギズモード・ジャパン
- マイクロソフト、情報の追跡と整理を支援する「Microsoft Lists」を発表 | ZDNet Japan
- Microsoft、社内データをリストとして整理・管理できる「Microsoft Lists」を発表 | 窓の杜
- Microsoft Teams から Fluid Framework まで: Microsoft 365 の新機能と近日リリース予定の機能をご紹介 | News Center Japan
- Microsoft Build 開幕: 現在と未来にインパクトを与える開発者を支援 | News Center Japan
- マイクロソフト、新しいスーパーコンピューターを発表し、将来の AI の取り組みのビジョンを公表 | News Center Japan
- [MSBuild 2020] 日本で活躍している技術コミュニティと繋がろう! | Togetter
C#の新機能勉強会 ~C#7、8の新機能を活用して速く安全なプログラムを書こう~
「C#の新機能勉強会 ~C#7、8の新機能を活用して速く安全なプログラムを書こう~」の資料をアップした。
C#7、8 では、struct (値型) 関連の便利な機能追加が多いので、その辺りに注力してみた。
資料
参考資料
- C# | Wikipedia
- C# の歴史 - C# ガイド | Microsoft Docs
- C# 7 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- C# 7.1 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- C# 7.2 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- C# 7.3 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- C# 8.0 の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- 今日からできる! 簡単 .NET 高速化 Tips | slideshare
- foreach の掛け方いろいろ | ++C++; // 未確認飛行 C ブログ
BuriKaigi 2020 が開催されました
毎年冬に富山で開催されている BuriKaigi (*)。
今回も、90名もの方にご参加いただき、大いに盛り上がりました。
昨年までは2トラックでしたが、今回は3トラックになりました (ルームA, B, C)。
リンクなどをまとめておきます。
(*) BuriKaigi とは何かということは次に詳しく書かれています: Burikaigi という毎年冬のイベント | hikaruworld | Medium
開催概要
『BuriKaigi 2020』 | |
---|---|
日時 | 2020年2月1日(土) 13:00〜19:00 (終了後懇親会) |
会場 | 富山県民会館 (懇親会会場: 割烹 扇) |
- Burikaigi 2020 | connpass
- Burikaigi 2020 懇親会編 | connpass
- BuriKaigi 2020 | Glide
- #BuriKaigi (全体) | Twitter検索 | Twitter
- #BuriKaigiA (ルームA) | Twitter検索 | Twitter
- #BuriKaigiB (ルームB) | Twitter検索 | Twitter
- #BuriKaigiC (ルームC) | Twitter検索 | Twitter
- Burikaigi 2020 まとめ | Togetter
イベントの様子
#BuriKaigi #BuriKaigiC https://t.co/rSCc4Nqcea pic.twitter.com/BvdLN5oLKa
— Fujio Kojima (@Fujiwo) February 1, 2020
#BuriKaigi #BuriKaigiC 森さんのジョシュア ツリーのお話。 https://t.co/LO2rNRe5pt pic.twitter.com/oegNAwpRAg
— Fujio Kojima (@Fujiwo) February 1, 2020
#BuriKaigi #BuriKaigiA https://t.co/srTUaBsInF pic.twitter.com/4fpqBZMK7D
— Fujio Kojima (@Fujiwo) February 1, 2020
#BuriKaigi #BuriKaigiA マイクロソフト井上章さんのキーノート。なんと Windows DNA のお話から。 https://t.co/jALoFO3lKy pic.twitter.com/56lVsuXH8m
— Fujio Kojima (@Fujiwo) February 1, 2020
#BuriKaigi #BuriKaigiA 室長さんと杉本さんの Dynamic なセッション。 https://t.co/vmNnjYs6Qz pic.twitter.com/vbn4YDXJtx
— Fujio Kojima (@Fujiwo) February 1, 2020
ブリ会議恒例!
— Kazuya Sugimoto @CData Software Japan (@sugimomoto) February 1, 2020
ドキドキライブコーディング!
満員御礼!
#burikaigi pic.twitter.com/VzUQ33vHEP
ライブコーディング合戦始まった#burikaigi #burikaigiA pic.twitter.com/kueuMIJIoq
— ちゅき[2/8 わんくま大阪ですよー] (@Chuki) February 1, 2020
#burikaigi #burikaigiA
— あると沙樹/Studioさきあると (@sakiaruto) February 1, 2020
C# ドキドキ ライブ コーディング!!
石野 光仁 氏 @ailight
鈴木 孝明 氏 @xin9le
小島 富治雄 氏 @Fujiwo
室星 亮太 氏 @ryotamurohoshi pic.twitter.com/5sMYfcgop2
ドキドキライブコーディング楽しい!#burikaigi #burikaigiA pic.twitter.com/9EgBOYB4Pj
— jun@Jun-nyan(sɹǝunɾ) (@juners) February 1, 2020
まさかの写真入れ替えに対してCPU負荷で小島さんが逆転!#burikaigi #burikaigiA pic.twitter.com/PKTkRdn6l3
— jun@Jun-nyan(sɹǝunɾ) (@juners) February 1, 2020
#burikaigi 石野さん(@AILight )たちによる「C# ドキドキ ライブ コーディング!!」。後半は4名の方々が事前に作ってきたプログラムによるスピード対決です(゚∀゚)
— オーニシ@2/15富山IT勉強会Zabbix入門 (@onishi_feuer) February 1, 2020
みんなしてチートしてておもろいwww pic.twitter.com/fBfOKF1nWX
スライド写真多めですが、勉強会編もアップします(ほぼ未選別)
— jun@Jun-nyan(sɹǝunɾ) (@juners) February 2, 2020
#burikaigi
2020/02/01 Burikaigi2020 勉強会編https://t.co/D7m394hKGR
アップロード終わったのでまずは 懇親会の写真をアルバムで上げます。 #burikaigi
— jun@Jun-nyan(sɹǝunɾ) (@juners) February 2, 2020
2020/02/01 Burikaigi2020 懇親会編https://t.co/p7TWVCnYds
#BuriKaigi 懇親会の様子。 https://t.co/bMwt6cpmw0 pic.twitter.com/wJ3ETkK0Ln
— Fujio Kojima (@Fujiwo) February 4, 2020
ブリしゃぶの準備#burikaigi pic.twitter.com/8ftFGcZIfv
— なぎせ ゆうき (@nagise) February 1, 2020
これは良い幻想的#BuriKaigi pic.twitter.com/ZqeKexvxzK
— りなたむ MVP 🇯🇵 / Ryota / #PowerAddict (@R_t_A_n_M) February 1, 2020
#BuriKaigi https://t.co/NLyWTsezf7 pic.twitter.com/CeNsOh4wjx
— Fujio Kojima (@Fujiwo) February 1, 2020
資料
ルームA
- .NET の過去、現在、そして未来 | slideshare (井上 章 氏)
- Microsoft Power Platform がエンジニアにも必要な理由 | slideshare (吉田 大貴 氏)
- C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020 | slideshare (小島 富治雄)
ルームB
- Vector API - Javaによるベクターコンピューティング | slideshare (櫻庭 祐一 氏)
- クラウドサービス、AWS/Azure/GCP それぞれの Text to Speechを比べてみた | slideshare (池原 大然 氏)
- Java で Scala の Type Safe Builder パターンをエミュレートする (がくぞ 氏)
- 実際困る! クロスドメイン間のセッション管理を考えよう | Speaker Deck (orekyuu 氏)
ルームC
- 開発者のためのUIデザイン入門 (森 博之 氏)
- I finally understand instance_eval | Speaker Deck (大倉 雅史 氏)
- プログラミングスクールの問題点 | Speaker Deck (駒形 真幸 氏)
- ちょうどよい Rails E2E テスト/ enough-good-rails-e2e-test | Speaker Deck (諸橋 恭介 氏)
- Windows10 の IME | slideshare (さくしま たかえ 氏)
- minitest に学ぶメタプログラミング / Learn meta programming from minitest - Speaker Deck (muryoimpl 氏)
- Rubyパターンマッチに闇の力が備わり最強に見える (黒曜 氏)
LT
写真・ビデオ
- 2020/02/01 Burikaigi 2020 勉強会編 | Google フォト
- 2020/02/01 Burikaigi 2020 懇親会編 | Google フォト
- 2020年 Burikaigi 懇親会の様子 | YouTube