SlideShare une entreprise Scribd logo
1  sur  41
C#勉強会 2018/10
山本礼貴

 入門編
 Blazor基礎知識
 開発環境を作ろう
 プロジェクトを作ろう
 メリットとデメリット
 実践編
 最近書いたコード
 世間の取り組み
 まとめ(妄想含む)
アジェンダ

入門編

Blazor基礎知識
なんで使ってみたいと思ったか

 名称由来:Browser + Razor = Blazor
 なんでLなのかは不明
 Razor構文 は html の中にC#の式/構文を書くことができる
ASP.NET(Core)のhtmlのサーバーサイドの拡張
(拡張子: cshtml ← C# + html)
 vbhtmlでVBも書けます
 旧いASP.NETのぐちゃぐちゃな構文よりは好まれている(私見)
 <% ... %> でタグ内にC#書くよりは、 @ 1文字の方が良いよね
Blazorって何?

 × C#のコンパイラー
 × C#→JavaScriptへのトランスレーター
 ○ ブラウザー(Web Assembly)上で動くNET CLR環境
 IE以外の最新ブラウザでは動く(asm.jsを使えばIEでも動くかもという憶測
があるが未確認)
 .NET Core用にビルドしたDLLを、そのまま参照/実行できる
 Ex) EF.NET Core とかNuGetしてそのまま使える
 実行環境には何もインストールしないで良い(Progressive Web Application
とかに向いていそう)
 最新のC#をそのまま使える(当然ながらVB/F#も大丈夫のはず)
Blazorの仕組み

 Blazorは画面の制御がある程度できる
 WebAssemblyはDOMや各APIに触れないのでは?
 BlazorのフレームワークがDOMとの間で仲立ちするJavaScriptを持っている
ソースコード的には見えないところにある
 非同期処理などを使うと、画面への反映を自動的にやってくれる
 同期的に書き換えた時は画面の変更を通知するメソッドを呼ぶ
Blazorの仕組み

 ジェネリックcshtmlが書ける
 XAMLみたいにDataTemplateっぽくできる(ただしC#でゴリゴリ)
 htmlにデータバインディングできる
 async /await できる
 ラムダ式も全くそのままC#として使える
 ボタンのOnClickとかをC#のActionでペタペタ貼り付け可能(Indexを付与
した id とか名前とか付けなくても使えるのは結構良い)
 ただのモジュールではなくBlazor自体を1つのフレームワークと呼んで
も良いレベルではなかろうか
只者ではない

開発環境を作ろう
最低限のものが最大限…

 NET Core 2.1 SDKの最新版をインストール
 SDKの詳細なバージョン番号がビルドに必要 なことがある
2.1.403 とか。(表示する方法はあるので忘れても大丈夫)
環境構築(SDK)

 ASP.NET Core Blazor Language Services
 プロジェクトテンプレート
 インテリセンス
環境構築(VS2017(ver15.8)以降)

プロジェクトを作ろう
多くの人がハマる

 ASP.NET Core Webアプリケーションを新規作成
プロジェクト名を入力してOK
プロジェクトを作ろう

 Blazor(ASP.NET Core hosted)を選択
次の選択
SDKバージョンは
ここにも表示される

 プロジェクトテンプレートでは3つのプロジェクトに分かれる
 *.Client
 cshtml(View)群
 C#記述部はクライアントサイドでWebAssenbly化して動作する
 *.Server
 Controller群
 ASP.NETを使っている人ならおなじみのもの
 *.Shared
 両方で共有するDTO/Entityクラス群
 JSONシリアライズ可能なら(循環参照などが無いなら)Entityのクラスをそのまま配
置してもOK
 (2重管理しないでいいのは素晴らしい)
Blazorのプロジェクト構造

 まだ正式版じゃないので、環境によってビルドがフリーズすることがあ
ります。それを回避するために、*.Server.csproj を以下のように変更し
ます。
フリーズしない人はほっといて大丈夫。
これをやると直る人と直らない人がいるのでダメだったら諦め(そのう
ち直るでしょう)
プロジェクトを少し変更(1)

 global.json に .NET Core SDK のバージョンを書き込みます。
これも、何もせずに動いたらほっといて大丈夫
プロジェクトを少し変更(2)

F5(ビルド+デバッグ実行)
ASP.NET Coreが動いて
WebAssemblyが動いて
ちゃんと動く画面ができる
JavaScriptは一行も書いてない

 BlazorStrap
 NuGetから *.Client プロジェクトに追加しよう
 Bootstrap 4のラッパー群
 BootstrapをBlazorコンポーネント化してくれている
(危うく自分で作ってしまうところだった…)
 インテリセンスをcshtmlで有効化するために、using と addTagHelper を
追記しましょう
お勧めのパッケージ

メリットとデメリット
C#が得意ならおさえておいた方が良い技術
されど今すぐ使うかは…

 サーバーからクライアントまでC#
 EntityなどもC#(しかもClient/Serverで共用できる)
 htmlとC#を上手にミックスできる
 磨き抜かれたBlazorアプリケーションはどんどんMVVMっぽくなる気がする(こち
らまだ修行中ですが…)
 .NET のマネージド空間がWebAssemblyの空間だと考えると良い
 html とWebAssemblyを融和させるためのフレームワーク
つまり、htmlを出力するコードとそれを動かすためのWebAssemblyをビルドして
くれている。
 今までWebAssemblyでDOMを触れなかったことからするとかなり画期的。(言う
までもなくこの部分にはJavaScriptが間に挟まっています。開発環境から見えない
だけで)
C#大統一論的には凄い

 CSSでテーマを作れるので、通常のWebアプリを作るためのノウハウは
生きる
 サーバーサイドのビジネスロジックとモデルはC#で、クライアントサ
イドの基本的なロジックはC#で、表示上の詳細な制御が必要な部分の
みJavaScriptで。
という住み分けが今のところ最良と思える
既存技術と喧嘩しない

 選択肢が狭い
今日紹介したものを組み込む以外の選択肢がどうも思いつかない程度に
マイナー
 強いて言えば面白そうなのはBlazorCanvasExtensionsくらい
 cshtml 内の継承をサポートしているのにC#プロパティの[Parameter]属
性が継承されない
これがとても惜しい
なぜ先にジェネリックをサポートしたのか…
まだ発展途上

 DOMやWebGLに直接触れるようにしてくれたらいいなぁ
 現在は一部のプロパティにバインディングできるという程度
 JavaScriptでラッパーを書けばやれることは増える (←いまのところ現実的
な解)
 Blazorのコンセプト的には、ビジネスアプリケーションが作れれば十分
という雰囲気がビシビシと伝わってくる
 だから、できないことをやろうとするとマーシャリングが行われてパ
フォーマンスは犠牲になる
 なんとかしたいですよね(|)
対応してくれたら嬉しいところ

 JavaScriptとC#の相互運用は癖が強すぎる
https://learn-blazor.com/architecture/interop/
まだ書きにくい
 今までJavaScriptで書いていたものをRazorで書きまくることでかなりの事
はできるので、徹底してC#にすれば良いともいえるが…
 大まかに言うと、global / static なメソッド間でしか相互運用ができない
現時点で良くないところ

 JavaScriptではないのでブレークポイントが張れない
 Google Chromeで例外発生時のコールスタックは出る
 こりゃ確かにWebAssemblyだ
現時点で良くないところ

 起動時間が長い
 WebAssemblyは現在モジュール単位のコンパイルであるため
 ブラウザ側が実行コードをコンパイルしてくれるようになったら突然速く
なる
現時点で良くないところ

実践編

最近書いたコード
論より証拠といいます

 cshtml内で外部から情報を受け取る際に使用します
 C#でプロパティにできるものなら何でもできる
 ActionとかFunc<T>もできる
 親画面から処理を受け取るときに活躍
 Commandみたいなクラスを作るとMVVMっぽくて良いかも
[Parameter]

 Ajaxを使うところではこれを書く
 こんな風にかける
_partners = await Http.GetJsonAsync<Partner[]>("/api/Partners/");
@inject HttpClient Http

 ViewModelの型に応じてコントロールを変えたかったので作ってみた
 XAMLのとはちょっと毛色が違うけどこれはこれで良い
DataTemplate.cshtml

 ジェネリックのリストボックスを作ってみた
 ContentControlは内部でDataTemplateを用いて勝手に展開してくれる
ようにした
 Tを object にすると、DataTemplateがサポートしているものなら何でも
並べられるようになる
Listbox<T>

 ServerとClientで共用するクラスはここに配置
 通信はJSONで勝手にやってくれるので、うっかり循環参照にならない
ようにだけ気を付けよう
*.Sharedに配置するクラス

 サーバーサイドはASP.NET Coreのほぼ普通の書き方
Controller

 static の値がちゃんと保持されている
 シングルページだから
 セキュリティ的に問題のないものなら色々置ける
static

世間の取り組み

 少しずつ増えていますがまだ多くない
https://github.com/BlazorExtensions
 Canvas
 SignalR
e.t.c…
Blazor Extensions

まとめ
妄想含む

 現在は未完成感があるが、とても強力なフレームワークに成長する可能
性を秘めている
 WebAssemblyの進化とともに進化していく
 モジュールサイズとかコンパイル速度とか…
 サーバーサイドでwasmにコンパイルした方が良くない?とは思わんでも
ない
 開発環境の進歩には期待
 API系全般にアクセスする拡張が待たれる
 Canvasはもうあるけど、WebGL触りたい
来年くらいに多分面白くなる

 https://1drv.ms/u/s!Au2k6fUO0Z_Qgec1Y2wde1q-Pvbb7w
作りかけのものをデモで出したのであまり綺麗でないのはご海容くださ
い。
デモのソースコード

Contenu connexe

Tendances

今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発Kazunori Hamamoto
 
SignalRブートキャンプ
SignalRブートキャンプSignalRブートキャンプ
SignalRブートキャンプKouji Matsui
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)信之 岩永
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basicsKouji Matsui
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版信之 岩永
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions IIIKouji Matsui
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Shinnosuke Tokuda
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしようKouji Matsui
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ ExtensionsKouji Matsui
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計Shinnosuke Tokuda
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive ExtensionsYoshifumi Kawai
 
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScriptlinq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScriptYoshifumi Kawai
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること信之 岩永
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to ObjectsYoshifumi Kawai
 

Tendances (20)

今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
SignalRブートキャンプ
SignalRブートキャンプSignalRブートキャンプ
SignalRブートキャンプ
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
Bluetoothでgo!
Bluetoothでgo!Bluetoothでgo!
Bluetoothでgo!
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basics
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions III
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
 
linq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScriptlinq.js - Linq to Objects for JavaScript
linq.js - Linq to Objects for JavaScript
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to Objects
 

Similaire à Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性

Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみたOda Shinsuke
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたNaito Oshima
 
C# で Single Page Web アプリを 開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを 開発できる Blazor ― その魅力Jun-ichi Sakamoto
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamuraHiroshi Okunushi
 
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点Jun-ichi Sakamoto
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMShotaro Suzuki
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話Hiroyuki Hara
 
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxモノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxtkeproject
 
C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携YutoNishine
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみようOsamu Masutani
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminarAtushi Sugiyama
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話simotin13 Miyazaki
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さSho Okada
 
141115 making web site
141115 making web site141115 making web site
141115 making web siteHimi Sato
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話Masanori Masui
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)Kousuke Ishikawa
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razordo_aki
 

Similaire à Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性 (20)

Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみた
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみた
 
C# で Single Page Web アプリを 開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを 開発できる Blazor ― その魅力
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
 
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
 
New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASM
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話
 
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxモノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
 
C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携C# CloudScript Azure Functions との連携
C# CloudScript Azure Functions との連携
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみよう
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
 
141115 making web site
141115 making web site141115 making web site
141115 making web site
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razor
 

Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性