Hi!

It has been a while I haven not wrote any content. Anyhow, because of this, I have something to write hahaha. This is my first time joining dotnet conference. To be honest, I have never thought I would join or do anything which relates to dotnet. In the past, when I heard about dotnet. I felt that it is kind of old-fashioned technology. Not sure why I thought like that at that time. Perhaps because I saw dotnet framework used in legacy application or the application which has 90s user interface. However, my thought is changed. After I have to use C# in my work and they introduce dotnet Core. Everything is changed. It is open source and able to run cross platform. I am very happy to use it everyday. Due to during covid pandemic, this conference was hold online at 23 Jan 2021. Moreover, it’s free conference and no limit for seats. Let’s see what this conference give us!

Discovery the world of .NET

What’s new in .NET 5
  • Window forms Disigner
  • Blazor WebAssembly
    • Performance improve
    • Component visualize
    • Lazy loading
    • CSS isolation
What really new in .NET 5
  • Lots of performance improve
    • 30% socket performance
    • JSON serialization
    • .NET gRPC
    • More performance for large cloud scale services at ,icrosoft
  • New libs
    • > 90% nullable annotated
    • System.Text.Json
    • Significat inves in HTTP/2 and gRPC
    • Better localization control
    • HTTP Client convinient API
    • Cloud native investment
    • Single file and Trimming
    • New diagnostics tool
    • Visual Studio new productivity

What’s new in C# 9.0

  • Top-level statement - no namespace, class for main class
  • init0only setters - no constructor for immutable anymore
  • Records
    puhblic record Money(....) // similar to scala case class
    
  • Pattern matching enhancement
  • Target-Typed new expressions
  • Static lambdas / anonymous function
  • Covariant Return Types
  • Target-Types conditional expressions

Develop/Debug.NET Core with Microsoft Bridge to K8s

This section I didn’t listen, please do watch the full video :)

Github Action with .NET

  • Github Action?
    • Yaml based
    • Base-As-Code
    • Visual UI reporting
    • Packaged with github and github enterprise
  • How can I use it
    • gitbuh.com
    • Runners? clould based runner. Can create by your own as well - for enterprise wide, org, repo
  • The rest they are show code example

Devops & Identity Management with Azure

This section I didn’t listen, please do watch the full video :)

Azure static web app with Github Action

  • Offer a few options
    1. Azure Storage
    2. Azure App Service

High-performance services with gRPC

HTTP/2

  • Multiplex (solve the request pipline block)
  • Single TCP connection parallellism
  • Binary instead of texttual
  • Header compression
  • Streaming

What are REST problems?

  • Rest cannot use some features
  • Textual represented (JSON)
  • Streaming is complicated
  • Bidirection streaming is not possible
  • Need to do Authentication, healthcheck, loadbalance…

gRPC

  • Modern high-performance Remote Procedure Call framework
    • gRPC = HTTP/2 + protobuf

      protobuf = serialize to binary

    • Client - gRPC stub
    • Server -> gRPC service

Performance improve in .NET 5

  • Reduce latency, improve concurrency
  • HTTP/2 allocation reduce 92%
  • Kestrel support response header compression

Securing Blazor WebAssembly

This section I didn’t listen, please do watch the full video :)

Entity Framework Core 5.0

  • .NET Standard 2.1
  • Support SQL server, MySQL, Postgresql ….
  • Query using language integrated (LINQ)

EF 101

  • Model class
  • Data Context
  • Strongly Type
  • Set an entity’s property to update data in database

Many to Many

  • Remove link
  • Explicit mapping

TPH & TPT

  • Table per hierachy (TPH) - All typs in the hierachy save to single table
  • Table per Type (TPT) - Same each type in hierachy to different table

UniRx

  • Coroutine isn’t good pracetice for async opration
  • Use LINQ-style query operator
  • Improve UI programming - MVRP pattern

Introduction to AzureForm Recognizer

  • Form recognizer is a cognitive service

Form recognizer service

  • Prebuild model
    • receipt
    • invoice
    • business
  • Customer model - Layout API

Breaking the monolith

Key Principle of new design

  • Domain Isolation (Flight Repo Post booking Repo Hotels Repo)
  • Full-Stack Repository
  • End-to-End Ownership

Modular Architecture

Domain based web application : Module

  • Build one website with backend for frontend
  • One team owner
    • Control dependencies
    • Control controller
  • Boostrap nuget package
    • Host => wesite setup, managing convention, register to distributed network
    • Middleware
    • Context specific data
    • Core Service
    • Client side commons, Razor layout, desktop and mobile web

Serverless applications with an API first approach

The benefit

  • Development in parallel - define interface, do mocky
  • Reduce cost - reuse
  • INcrease time-to-market
  • Ensure good development exprerience
  • Reduce risk of failure

p.s. You can watch full video here.

See ya!