블로그 이미지
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 (615)
Uno Platform (3)
Visual Studio (7)
Blazor (2)
Windows App(Universa.. (106)
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)
Total558,030
Today21
Yesterday135

1. IoC, DIP, DI, IoC Container

- IoC(Inversion of Control)
    클래스간의 느슨한 결합(loose coupling)을 만들기 위해 OOP에서 제어를 뒤집을 것을 권장하는 디자인 원칙(principle)
- DIP(Dependency Inversion Principle)
    클래스간의 느슨한 결합(loose coupling)을 만들기 위한 원칙(principle) 중 하나
    고수준 모듈(High-level)이 저수준 모듈(Low-level)에 의존해서는 안된다는 원칙. 둘다 추상화(예: interface)에 의존해야 함
- DI(Dependency Injection)
    IoC 원칙을 구현하는 디자인 패턴
    종속 객체를 주입
- IoC Container
    어플리케이션 전체에서 자동 종속성 주입을 관리하는 프레임워크
    Unity, Ninject, StructureMap, Autofac 등
- 위의 내용들을 관통하는 핵심
    가능한 모든 클래스는 Interface를 이용해서 추상화하고 Container를 이용해서 Injection 해서 사용한다.

2. Prism Framework features

- EventAggregator
    응용 프로그램에서 느슨하게 결합된 (loosely coupled) 구성 요소 간의 통신을 가능하게하는 이벤트 메커니즘(PubSubEvent)을 제공  
- UnityContainer
    가볍고 확장 가능한 종속성 주입 컨테이너 (Dependency Injection Container) 
- Region
    런타임에 느슨하게 결합된 (loosely coupled) UI로 구성된 레이아웃을 만들기 위한 방법
- Modules
    관련된 기능이나 UI를 내포한 클래스 라이브러리들을 느슨하게 결합 (loosely coupled) 하기 위한 방법
- UWP에서 사용가능한 버전
    Prism.Unity 6.3, Prism.Core 6.3
    UWP에서는 Region 기능 사용 못함


3. UnityContainer Overview

- 가볍고 확장 가능한 종속성 주입(Dependency Injection) 컨테이너 
- 특징
Interface Type이나 기본 Type에 대한 단순 맵핑 등록
기존 인스턴스 등록 지원
디자인 타임 등록은 물론 코드 등록 지원
생성자, 속성 또는 메서드를 통해 등록된 Type을 자동으로 주입
지연(deferred) 솔루션 지원
중첩 컨테이너 지원
수명 관리자를 이용해서 인스턴스를 자동으로 disposing
서비스 위치 기능 지원
Type 차단 및 인스턴스 차단을 지원


4. UnityContainer 사용하기(RegisterType)

UnityContainer.RegisterType Method
Type 맵핑을 위한 메소드
대표적인 Type등록 방법 및 예제
unityContainer.RegisterType();
unityContainer.RegisterType(); //생략가능
unityContainer.RegisterType<Interface, T>();
unityContainer.RegisterType<IAddPerson, AddPersonControl>();
unityContainer.RegisterType<Interface, T>(string);
unityContainer.RegisterType<IAddPerson, AddPersonControl>(“Control”);
unityContainer.RegisterType<IAddPerson, AddPersonPage>(“Page”);


5. UnityContainer 사용하기(Resolve)

UnityContainer.Resolve Method
컨테이너로부터 Type을 인스턴스 시켜주는 메소드
대표적인 Resolve 방법 및 예제
var t = unityContainer.Resolve();
var t = unityContainer.Resolve();
var t = unityContainer.Resolve();
var t = unityContainer.Resolve();
var t = unityContainer.Resolve(string);
var t = unityContainer.Resolve(“Page”);

https://youtu.be/8L9lBghcFbc

 

Prism으로 시작하는 UWP app 개발 Part1-14.pdf
1.89MB

Posted by kaki104

댓글을 달아 주세요

 

https://youtu.be/3QhmCj5T3pA

 

1. Application Log, Logger 

- 참고
https://michaelscodingspot.com/logging-in-dotnet/
- Application Log
소프트웨어 응용 프로그램에서 오류, 정보, 이벤트 및 경고 등의 데이터를 기록한 어떤것(파일, 데이터 등)을 이야기 합니다.
- Logger
로그를 남기기 위한 클래스나 도구를 이야기합니다.
멀티 스레드 환경과 비동기 환경에서 로그를 남길 때 매우 유용

2. Where do you store the Logs?

- File system
- Database
- Searchable Solutions
- Logging to Standard Output (Console) and Debug Output (Trace)
- Logging to Event Viewer
- Log to Event Tracing for Windows(ETW)

3. Top NuGet Logging packages

- Serilog – 64.2M
- NLog – 40.2M
- Log4Net - 39.2M
- Splat – 2.99M
- …
- Serilog vs NLog 성능 비교
https://github.com/pcTOR/LoggingPerformance/issues/1#issuecomment-397869472

4. Log4Net
http://logging.apache.org/log4net/

- Features
  여러 프레임워크 지원
  다중 Targets 지원
  계층적 로깅 아키텍처
  XML Configuration
  Dynamic Configuration
  Logging Context
  Proven architecture
  Modular and extensible design

5. NLog
https://nlog-project.org/

- 손쉬운 구성
Configuration file and programmatically
- 템플릿 지원
Layout renders
- 확장성
Custom targets or pass custom values
- 구조화된 로깅

6. Serilog
https://serilog.net/

손쉬운 설정, 깔끔한 API, 모든 최신 .NET 플랫폼에 적용가능
강력한 구조화 된 이벤트 데이터

7. 소스
https://github.com/kaki104/LoggerExample

 

Posted by kaki104

댓글을 달아 주세요

안녕하세요 Future Of DotNet입니다.

이번 포스트는 XAML의 새로 추가될 기능에 대해서 살펴 보도록 하겠습니다.

 

대상 버전 : Visual Studio 2019 Preview 3-4 이상

테스트 프로젝트 : .Net Core 3.0 WPF

원본 동영상 : https://youtu.be/yI9OyA4ZM2E

 

1. XAML IntelliCode

 

2. Pop Out XAML

 

3. Merge resource dictionary into active document

 

4. Movable In-app toolbar

 

5. Show Just My XAML

 

6. Turn off selection mode when and element is selected

 

7. Snippets in XAML

 

8. XAML Binding Debug Output

 

9. Suggested Action - Next version

 

https://youtu.be/TVEWQJs2oyk

 

Posted by kaki104

댓글을 달아 주세요

 

안녕하세요 Future Of DotNet입니다.

 

dotNet Conf에서 발표한 세션을 정리해 보았습니다.

 

1. Upgrades for Windows desktop development

 

2. Agenda

- Why should you care about .NET Core for desktop

- .NET Core or .NET Framework for my app

- Porting to .NET Core

- Fixing porting issues

- Tolling for desktop on .NET Core

-- Winforms designer Preview 1

 

3. Why .NET Core for desktop

 

4. How to choose : .NET Framework or .NET Core?

 

5. How compatible is my app with .NET Core?

 

6. Porting

 

7. Porting by hand

 

8. Porting with Try Convert

 

9. Windows Compatibility Pack

 

10. WinForms Designer Preview 1

 

https://youtu.be/yjumXnxA3tE

 

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

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
Offline Visual Studio 2019 perfect installation  (0) 2019.09.08
Posted by kaki104

댓글을 달아 주세요

안녕하세요. Future Of DotNet입니다.


닷넷 컨퍼런스 2019에서 발표된 C# 8.0에 대한 두번째 세션을 정리해 보았습니다.

Support modern cloud scenarios
- Async enumerables
- More patterns in more places
- Default interface members
- Indices and Ranges

Increase your productivity
- Using statement
- Static local functions
- Readonly members
- Null coalescing assignment
- Unmanaged constraint
- Interpolated verbatim string


감사합니다.

PS. 요즘 서피스에서 녹화해서 바로 올리기 때문에 해상도가 꽉 차지 안는 것 같습니다. 양해 부탁드립니다.

 

https://youtu.be/JO3DVp6Ahkc

 

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

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
Offline Visual Studio 2019 perfect installation  (0) 2019.09.08
Posted by kaki104

댓글을 달아 주세요