블로그 이미지
This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet kaki104

카테고리

List All (622)
Uno Platform (5)
Visual Studio (8)
Blazor (2)
Windows App(Universa.. (110)
Xamarin Forms (4)
Bot Framework (19)
Azure (10)
Windows 10 (53)
WPF (7)
Facebook News & Tips (158)
Windows 8&8.1 (113)
Windows Phone 8 (42)
Silverlight (37)
HTML5 & MVC4 (16)
Portable Class Library (2)
Uncategorised Tips a.. (3)
Kinect for Windows (2)
ETC (12)
kaki104 Scrap (4)
App News (13)
Total568,930
Today21
Yesterday46

Announcing .NET 5.0 RC1

Visual Studio / 2020. 10. 8. 13:46

Micorosft .NET 5 RC1 버전이 발표되었습니다. 이제 .Net Framework와 .Net Core의 통합이 눈앞에 온 것 같습니다. 이 새로운 .NET 5 버전은 2020년 11월 10일 정식 출시 예정입니다.

 

.NET 5의 목표는 모든 .NET 5 애플리케이션에서 단일 BCL(Base Class Library)를 사용하고, 여러 플랫폼에서 네이티브 및 웹 애플리케이션을 지원하는 통합 .NET SDK 환경을 제공하는 것입니다. 그래서, 단인 .NET 5 애플리케이션 프로젝트를 생성하고 Windows, Microsoft Duo(Android) 및 Apple iOS와 같은 플랫폼을 지원할 것입니다.

 

 

Reference

Announcing .NET 5.0 Preview 8 | .NET Blog (microsoft.com)

Announcing .NET 5.0 RC 1 | .NET Blog (microsoft.com)

What’s new in Microsoft .NET 5 | InfoWorld

 

Download

Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com)

  • Full version
    • 5.0.100-rc.1.20452.10
  • Visual Studio support
    • Visual Studio 2019 (v16.8, Preview 3)
    • 비주얼 스튜디오 Preview에서 테스트를 하기위한 최소 버전입니다.
  • Included runtimes
    • .NET Runtime 5.0.0-rc.1.20451.14
    • ASP.NET Core Runtime 5.0.0-rc.1.20451.14
    • .NET Desktop Runtime 5.0.0-rc.1.20451.14
  • Language support
    • C# 9.0-preview
    • F# 5.0-preview
    • Visual Basic 15.5

 

Languages

  • C# 9.0
    • Top-level programs
      • 기존에 console 앱 생성 후에 있던 모든 코드가 필요없습니다. 아래 코드를 삭제하고
      • namespace ConsoleApp1
        {
            class Program
            {
                static void Main(string[] args)
                {
                    Console.WriteLine("Hello World!");
                }
            }
        }
      • 간단하게!!
      • Console.WriteLine("Hello World!");
      • 최종적으로 이런 코딩이 가능합니다. 
      • using System;
        using System.Runtime.InteropServices;
        
        Console.WriteLine("Hello World!");
        FromWhom();
        Show.Excitement("Top-level programs can be brief, and can grow as slowly or quickly in complexity as you'd like", 8);
        
        void FromWhom()
        {
            Console.WriteLine($"From {RuntimeInformation.FrameworkDescription}");
        }
        
        internal class Show
        {
            internal static void Excitement(string message, int levelOf)
            {
                Console.Write(message);
        
                for (int i = 0; i < levelOf; i++)
                {
                    Console.Write("!");
                }
        
                Console.WriteLine();
            }
        }
    • Pattern matching
      • 값이 특정 모양을 가지고 있는지 테스트하고 일치하는 모양이있을 때 값에서 정보를 추출하는 기능입니다.
      • if (context is {IsReachable: true, Length: > 1 })
        {
            Console.WriteLine(context.Name);
        }
    • Target-typed new expressions
      • 객체/값을 생성할 때 유형 중복을 제거하도록 개선되었습니다.
      • List<string> values = new List<string>();
        List<string> values = new();
        var values = new List<string>();
  • F# 5.0
    • Interpolated Strings
    • Open Type Declarations

Tools

  • Microsoft.Extensions.Logging
    • Implement a custom ConsoleFormatter
    • 콘솔 프로바이더를 개선해서 사용자가 지정한 포멧으로 콘솔 출력의 서식 및 색상을 지정할 수 있습니다.
  • Dump debugging
    • Compile the Linux DAC
    • 리눅스 DAC를 컴파일할수 있어서 DAC에 대한 디버깅이 가능합니다.
  • Assembly load diagnostics added to event pipe
    • 이벤트 파이프에 어셈블리 로드 정보를 추가했습니다.
  • Printing environment information
    • .NET의 환경 정보를 쉽게 출력할 수 있도록 Tool을 추가했습니다. 
    • dotnet tool install –g dotnet-runtimeinfo
    • dotnet-runtimeinfo

Library APIs

  • Nullable Annotations
    • The platform is now 80% annotated for nullability
    • null 허용 여부에 대한 주석을 전체 80% 정도 추가했으며, 정식버전 출시전까지 나머지도 추가할 예정입니다.
  • Regular expression performance improvements
    • 정규식 엔진의 성능을 개선했습니다.
  • .NET 5.0 Target Framework
    • net5.0 is the new Target Framework Moniker (TFM) for .NET 5.0.
    • 타겟 플렛폼으로 .NET 5를 사용할 수 있습니다.
    • net5.0 combines and replaces netcoreapp and netstandard TFMs.
    • core와 netstandard를 통합하고 대체합니다.
    • net5.0 supports .NET Framework compatibility mode
    • .NET Framework 호환모드를 지원합니다.
    • net5.0-windows will be used to expose Windows-specific functionality, like Windows Forms and WPF.
    • net5.0-windows는 윈폼 및 WPF에서 윈도우 기능을 이용하기 위해 사용됩니다.
    • NET 6.0 will use the same approach, with net6.0 and will add net6.0-ios and net6.0-android. 
    • The OS-specific TFMs can include OS version numbers, like net6.0-ios14.
    • OS별 타겟 플렛폼은 OS 버전 번호가 포함될 수 있습니다.
    • Portable APIs, like ASP.NET Core and Xamarin.Forms, will be usable with net5.0.
    • 포터블 API들은 net5.0에서 사용할 수 있습니다.
  • WinRT Interop(Breaking Change)
    • New model for supporting WinRT APIs as part of .NET 5.0
    • WinRT API를 새로운 모델로 만들어서 .NET 5.0에 포함시겼습니다.
    • It can be developed and improved separate from the .NET runtime.
    • .NET 런타임과 별도로 개발 및 개선이 가능합니다.
    • Symmetrical with interop systems provided for other OSes, like iOS and Android.
    • iOS 및 Android와 같은 다른 OS에 제공되는 interop 시스템과 대칭이 되도록 구성했습니다.
    • Can take advantage of many other .NET features (AOT, C# features, IL linking).
    • 다른 많은 .NET 기능을 활용할 수 있습니다.
    • Simplifies the .NET runtime codebase.

Runtime Technology

  • Windows ARM64
    • Support for Windows ARM64 as part of this release
    • Windows ARM64에 대한 지원을 추가했습니다.
    • Decision to delay the Windows Desktop component(Windows Forms, WPF)
    • 하지만, 윈폼과 WPF 등의 윈도우 데스크탑 컴포넌트에 대한 지원은 지연되었습니다.
  • Event pipe profiler APIs
    • 프로파일러가 이벤트 파이프 이벤트를 작성할 수 있도록 확장되었습니다.
  • Native exports
    • Export managed methods to native code
    • 관리되는 메서드를 네이티브 코드로 내보낼 수 있습니다.
    • Unmanaged Exports
    • DllExport

Application deployment

  • Single file applications
    • Published and deployed as a single file
    • 단일 파일로 게시 및 배포를 할 수 잇습니다.
    • The app and its dependencies are all included within that file
    • 앱과 종속성 파일들을 모두 포함 합니다.
    • Single file apps are primarily focused on Linux
    • 다일 파일 앱은 주로 리눅스 배포에 중점을 두고 있습니다.
    • Framework-dependent single-file app:
      • dotnet publish -r linux-x64 --self-contained false /p:PublishSingleFile=true
    • Self-contained single-file app with assembly trimming and ready to run enabled:
      • dotnet publish -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true /p:PublishReadyToRun=true
  • Reducing the size of container images
    • .NET 컨테이너 이미지의 크기를 줄였습니다.
  • ClickOnce Support
    • Deliver it as part of RC2
    • 닷넷 코어에서 클릭원스를 지원하기 위한 개발을 진행 중에 있습니다.

더 자세한 사항은 러퍼런스를 클릭해서 확인하시면 될 것 같습니다.

'Visual Studio' 카테고리의 다른 글

Announcing .NET 5.0 RC1  (0) 2020.10.08
What's new in ML.NET  (0) 2020.06.17
Modernizing .NET Desktop Applications with .NET Core  (0) 2019.10.07
What's New In C# 8.0 Part 2  (0) 2019.09.30
What's New in C# 8.0 Part 1  (0) 2019.09.29
.NET Conf 2019 Keynote 정리  (0) 2019.09.26
Posted by kaki104
TAG net5.0

댓글을 달아 주세요

Running UWP on Linux with Uno Platform

Youtube Channel : https://youtube.com/FutureOfDotNet

Reference

Windows Terminal

.NET Core SDK 3.1.100

Uno ProjectTemplates

WSL2(Windows Subsystem for Linux)

Install Ubuntu 20.04 LTS

Install X410

X410 setting

  • Allow Public Networks

Test WSL2 + X Window Server

  • sudo apt-get update
  • sudo apt-get install vim-gtk

Find my IP address

  • ipconfig
  • WSL -> IPv4 Address : 172.28.176.1

Export Display Setting

  • export DISPLAY=[IP Address]:0
    • ex) export DISPLAY=172.28.176.1:0

Execute gvim

Create and Publish an Uno project

  • dotnet new unoapp -o UnoLinux -w=false -wasm=false -ios=false -android=false -macos=false -sw=false
  • cd .\UnoLinux\UnoLinux.Skia.Gtk\
  • dotnet build
  • dotnet publish --runtime linux-x64 -c Release --self-contained

Running UWP on Ubuntu

  • cd /mnt/[DRIVE LETTER]/[PATH]/UnoLinux/UnoLinux.Skia.Gtk/bin/Release/netcoreapp3.1/linux-x64
    • Ex) cd /mnt/c/users/kaki1/UnoLinux/UnoLinux.Skia.Gtk/bin/Release/netcoreapp3.1/Linux-x64
  • ./UnoLinux.Skia.Gtk

UWP app running in Ubuntu

  • Uno UWP app
  • Rendering to a Skia backend
  • GTK host
  • Ubuntu
  • Windows Subsystem for Linux 2
Posted by kaki104

댓글을 달아 주세요

Register Desktop Bridge app and UWP app as Startup program

Future Of DotNet
https://youtube.com/FutureOfDotNet

UWP앱을 시작프로그램으로 등록/삭제하는 방법입니다.

Youtube : https://youtu.be/5cI6oS0HLOQ
Blog : https://kaki104.tistory.com/664
Git : https://github.com/kaki104/StartupSample

Reference

Desktop Bridge vs UWP

  • How
  • Namespace
  • EntryPoint
  • Enabled
  • Multiple startupTask
  • Diabled/Enabled

Constrained in UWP apps

  • The default is Disable
  • Show a user-prompt dialog for UWP apps
  • StartupTask includes a Disable method
  • If the user disables, then the prompt is not shown again
  • If the feature is disabled by local admin or group policy, then the user prompt is not shown, and startup cannot be enabled
  • Platforms other than Desktop that don’t support startup tasks also report DisabledByPolicy

Package.appxmanifest

<Application>
    <Extensions>
        <uap5:Extension Category="windows.startupTask“ Executable="StartupXXX.exe“ EntryPoint="StartupXXX.App">
            <uap5:StartupTask TaskId="StartupXXX“ Enabled="false“ DisplayName="StartupXXX“/>
        </uap5:Extension>
    </Extensions>
</Application>

MainPage.xaml.cs

var startupTask = await StartupTask.GetAsync("StartupXXX");
StartupTaskState newState = await startupTask.RequestEnableAsync();

App.xaml.cs

protected override void OnActivated(IActivatedEventArgs args)

var staea = args as StartupTaskActivatedEventArgs;
rootFrame.Navigate(typeof(MainPage), staea.TaskId);
Window.Current.Activate();

Register startup program.pdf
190.9 kB

Posted by kaki104

댓글을 달아 주세요

WebView2 Control Preview 버전이 얼마전에 공개되었습니다.

Introduction to Microsoft Edge WebView2 (Preview)

  • https://bit.ly/3alYpOW
  • 응용 프로그램에 웹 기술(HTML, CSS 및 JavaScript)을 포함 할 수 있음
    Microsoft Edge (Chromium)을 렌더링 엔진으로 사용 – 호환성 향상
  • Preview 버전이므로, 프로덕션 앱에 이 버전을 사용 금지

Supported platforms

  • Environments
    • Win32 C/C++
    • .NET Framework 4.6.2 or later
    • .NET Core 3.0 or later
    • WinUI 3.0
  • Windows
    • Windows 10
    • Windows 8.1
    • Windows 8
    • Windows 7
    • Windows Server 2016, 2012, 2012 R2, 2008 R2

Getting started with WebView2 in WPF (Preview)

  • https://bit.ly/31O9wMM
  • Prerequisites
    • Microsoft Edge (Chromium) Canary channel installed on Windows 10, Windows 8.1 or Windows 7
    • Visual Studio 2017 or later
  • 오류 해결

WebView2 nuget package

  • Important
    • Ensure you check Include prerelease, select a prerelease package in Version, and then choose Install.
  • 8/17/2020
    • Microsoft.Web.WebView2 version 0.9.579-prerelease
      • Minimum Microsoft Edge version 86.0.579.0
    • Canary Microsoft Edge version 86.0.608.0
      • How to check the version
        • … → Help and feedback → About Microsoft Edge

Youtube :

Microsoft Edge(Chromium) WebView Control.pdf
0.34MB

Posted by kaki104

댓글을 달아 주세요

Face Detection API

. Real-time face recognition with Microsoft Cognitive Services
. Google

  • Vision API
    • Facial Detection
      • Free : First 1000 units/month
      • $1.5 for 1000 unit : 1001 – 5,000,000 / month
        . Microsoft Azure
  • Face API
    • Face Detection ~ Face Identification
      • Free : 20 transactions for minute
      • $1.0 for 1000 transactions : 0 – 1M transactions
        . OpenCV
        . Dlib C++ Library

OpenCV

. 오픈 소스 컴퓨터 비전 라이브러리 중 하나로 크로스플랫폼과 실시간 이미지 프로세싱에 중점을 둔 라이브러리.
. Windows, Linux, OS X(macOS), iOS, Android 등 다양한 플랫폼을 지원
. OpenCvSharp

  • C# : OpenCvSharp4 nuget package
  • UWP : OpenCvSharp4.runtime.uwp nuget package
  • haarcascade_frontalface_alt.xml

OpenCVSharp

. Mat class

  • Matrix의 약자로 행렬을 표현하기 위한 데이터 형식
    . Haar Cascade
  • 이미지 또는 비디오에서 객체를 식별하는데 사용되는 기계 학습 객체 감지 알고리즘
  • haarcascade_frontalface_alt.xml : 얼굴 전면 식별
  • DetectMultiScale
    • 입력된 이미지에서 크기가 다른 물체를 감지합니다. 감지 된 객체는 사각형 목록으로 반환

Dlib C++ Library

  • 기계 학습 알고리즘 및 도구를 포함하는 C++ 툴킷으로 로봇 공학, 임베디드 장치, 휴대 전화 및 대형 컴퓨팅 환경을 포함한 광범위한 산업 영역 및 학계에서 사용

  • DlibDotNet

    • DlibDotNet for UWP nuget package
  • Dlib Models

    • shape_predictor_5_face_landmarks.dat
      • 눈의 모서리와 코의 바닥을 식별하는 5포인트 랜드 마크 모델
    • shape_predictor_68_face_landmarks.dat
      • 얼굴 전체를 감싸는 68개의 포인트 랜드 마크 모델
      • 상업적 사용을 위해서는 담당자와 별도의 협의를 진행해야 함

Part1

https://youtu.be/wxIFGmG6JCo

Part2

https://youtu.be/QQimCeWIdps

PDF

Face detecting in UWP app.pdf
226.6 kB

Github

https://github.com/kaki104/FaceDetectionSample

Posted by kaki104

댓글을 달아 주세요