그것마저 알려주마, 블라블라~
BLAZOR
원기욱 / johnrovinson@naver.com
Facebook : https://www.facebook.com/kiwook.won.96
원기옥
원기욱
X
O
Experimental
Single Page Application
=
SPA
WEBASSEMBLY
What is WebAssembly?
- Not JavaScript
- Modern browser
- Native speed
- C, C++, RUST, more others….
What is WebAssembly?
Why use .NET for browser?
- Stability and consistency
- Modern innovative languages
- Industry-leading tools
- Speed and scalability
- Full-stack development that leverages existing skills
Why use .NET for browser?
C#
.NET
?
What is Mono?
- Android, IOS, Mac OS
- Cross Platform
: Xamarin
Dev C# / Razor files
Runtime
(Browser)
MyApp.dll
.NET Runtime
mono.wasm
WebAssembly binary
Browser APIs
DOM, HTTP, etc.
Blazor
Browser + Razor = Blazor
What is Blazor?
- .NET Based Client Side in Browser
- Single Page Application
- No Plug-in
- .NET end-to-end
Get started with Blazor
- .NET 2.1 Core SDK
(https://www.microsoft.com/net/learn/dotnet/hello-world-tutorial#install)
- Blazor Language Services extension
(https://marketplace.visualstudio.com/items?itemName=aspnet.blazor)
- Blazor CLI templates command line
(dotnet new -i Microsoft.AspNetCore.Blazor.Templates)
Blazor
Demo
Create Project
Menu
Main Component
C#
mono
.NET dll
Blazor
Demo
Process in Crome
.cs
.cshtml
Compile to .NET
BROWSER
App.dll
.NET
(System.Core.dll,
, mscorlib.dll,…)
WebAssembly
(mono.wasm)
Class Name
Component
- Nested
- Razor or C# Code
- Shared Class Libraries
Component parameters
Route
/app.cshtml
http://localhost/Counterhttp://localhost/
Life Cycle
Call Rendering Dispose
OnInit
OnInitAsync
OnParametersSet
OnParametersSetAsync
OnAfterRender
OnAfterRenderAsync
SetParameters ShouldRender
Dispose
Blazor
Demo
Life Cycle
Menu
Header
Layout
@inherits BlazorLayoutComponent
<div id=“content”>@Body</div>
@layout MainLayout
Dependency Injection
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
//여기에서 종속성 주입을 사용할 수 있습니다.
}
public void Configure(IBlazorApplicationBuilder app)
{
app.AddComponent<App>("app");
}
}
JavaScript Interop
javascript
C#
So What?
Blazor.NET
https://www.mono-project.com https://webassembly.org/
Thanks you!

Blazor