관심사의 분리(SoC)는 소프트웨어 개발에서 가장 기본적인 원칙 중 하나이며, SOLID 원칙 5개 중 2개(단일 책임 및 인터페이스 분리)가 이 개념에서 직접 파생될 정도로 매우 중요합니다. 원칙은 간단합니다. 프로그램을 하나의 단일 블록으로 작성하지 말고 작은 조각으로 나누어 각각 간단한 개별 작업을 완료할 수 있도록 만드는 것입니다. 이 글에서, 이 원리를 추상화 수준부터 실제 적용하는 부분까지 설명을 하도록 하겠습니다. SoC for programming functions 가장 낮은 레벨(실제 프로그래밍 코드)에서 SoC는 긴 복잡한 함수를 쓰지 말라고 이야기하는 것입니다. 함수의 크기가 커지기 시작하면 함수가 너무 많은 작업을 처리한 다는 것이고, 이는 함수를 분리 해야하는 신호입니다. 이러한 ..
Uno Platform 3.6 WinUI 3 and Project Reunion Day 0 support. New controls and theme added. Uno Platform 3.6의 일반 이용 가능 여부를 알려드리게 되어 기쁩니다. 새로운 릴리스는 소프트웨어 개발자들이 윈도우용 WinUI 3에서 만든 동일한 코드를 재사용하여 웹, 리눅스, macOS, iOS 및 Android with Uno Platform으로 교차 플랫폼을 가져올 수 있습니다. Uno Platform은 WinUI 3 및 Project Reunion에 대한 Day-0 지원 외에도, Uno Platform Gallery의 새로운 Cupertino 테마 미리보기뿐만 아니라 Date 및 File 입력 컨트롤과 최종 사용자 상호 작용..
MVP는 1년 동안 커뮤니티 활동을 열심하고, 그 내용을 Microsoft에서 평가를 하여서 갱신 여부를 판단하게 됩니다. 2021년 7월에 갱신을 하기 위해서 2020년 4월부터 2021년 3월까지의 활동 내역을 정리해 보겠습니다. Blog/Website Post 현재 운영 중인 Future Of DotNet 블로그에 올린 게시물들에 대한 내용입니다. This blog posts information about the latest version of .NET, information about Visual Studio 2019, and tips for developing WPF and UWP apps. This year I changed the name from KakiSoft Blog to Future..
WPF에서 기본 로컬라이징 방식은 x:Uid를 이용 합니다. 자세한 내용은 여기를 참고합니다. 그런데, 이 방법은 몇가지 불편한 부분이 있습니다. 예를 들어 "이름"을 로컬라이제이션 한다고 하면 이 "이름'이 Text 프로퍼티에 들어갈때와 Content 프로퍼티에 들어갈때 각각 정의를 해놓고 사용해야하는 부분과 ViewModel에서 직접꺼내 사용하기도 불편 합니다. 그래서 저는 DynamicResource라는 녀석을 만들어서 사용하고 있습니다. 그래서, 이번에 기존에 사용하던 클래스를 약간 수정을 하면서 실행되는 셈플 코드와 함께 공개하게 되었습니다. 여기에 Prism의 기능을 넣고, Telerik 컨트롤의 리소스까지 관리하기 위한 몇가지를 더 추가하면 완벽하게 사용하시는데 문제가 없을 것입니다. Dyn..
2021.03.12 - [.NET 5, 6 and .NET Conf 2020] - Announcing .NET 6 Preview 1 (1/2) Targeting .NET 6 .NET 6 용 TFM (대상 프레임워크 모니커)은 .NET 5에서 채택한 접근 방식을 따릅니다. 새 플랫폼에 대한 지원을 추가 한 결과 새 TFM이 추가되었습니다. .NET 6을 타겟팅하려면 .NET 6 TFM을 사용해야합니다. 예를 들면 다음과 같습니다. net6.0 운영별 TFM을 포함한 전체 .NET 6 TFM 세트는 다음과 같습니다. net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows 이 세트와 기존 TFM 모두에..
이 스타일 가이드는 원문을 기본으로, 일부는 C# Coding Style와 Visual Studio의 기본 설정을 사용했습니다. C# 코드 작성시 참고하는 용도로 사용하시면 좋을 것 같습니다. 수정이 필요한 사항이 있다면, 리플로 알려주시면 확인하도록 하겠습니다. 원문 C# at Google Style Guide | styleguide Formatting guidelines Naming rules 이름 지정 규칙은 Microsoft’s C# naming guidelines을 따릅니다. Microsoft의 명명 지침이 지정되지 않은 경우 (예 : 개인 및 로컬 변수) 규칙은 CoreFX C# coding guidelines에서 가져옵니다. 규칙 요약 : Code 클래스, 메서드, 열거형, 공용 필드(pub..
오늘, 우리는 .NET 6의 첫 번째 미리보기를 제공하고 새 릴리스에서 기대할 수있는 사항을 공유하게되어 기쁩니다. 우리는 새로운 경험과 기능을 포함하여 지난 몇 달 동안 릴리스의 전체적인 형태를 정의했습니다. .NET 6의 핵심은 .NET 5부터 시작된 .NET 통합 계획의 마지막 부분을 제공하는 것입니다. 이 릴리스에는 클라우드, 데스크톱 및 모바일 앱을 포함하여 .NET의 모든 부분에 대한 주요 개선 사항도 포함됩니다. .NET 6 빌드에서 완전히 사용할 수 있으려면 릴리스의 더 큰 범위에 대해 여러 미리보기가 필요합니다. 내용이 너무 길어서 2번에 나누어서 작성합니다. Announcing .NET 6 Preview 1 (2/2) (tistory.com) Windows, macOS 및 Linux 용..
UWP에는 MenuFlyout이 있어서 버튼이나 특정 컨트롤에 넣어 놓으면 클릭했을 때 ContextMenu 처럼 자동으로 표시가 됩니다. 아래 이미지와 같이 표시가 됩니다. WPF에서 위와 비슷한 메뉴를 구성해 보았습니다. 그런데, 이 컨텍스트 메뉴는 마우스 오른쪽 클릭을 했을 때만 나오기 때문에, 왼쪽 클릭시에도 열리도록 만들기 위해 Behavior를 추가했습니다. 추가한 Nuget package는 Microsoft.Xaml.Behaviors.Wpf 입니다. XAML에 namespace를 추가하고 EventTrigger와 ChangePropertyAction을 이용해서 컨택스트 메뉴가 열리도록 수정했습니다. Telerik RadContextMenu를 이용하면 버튼 바로위에 이쁘게 메뉴를 출력할 수 있..
Memory Leak? 컴퓨터 과학에서 메모리 누수(memory leak)는 더 이상 필요하지 않은 메모리가 해제되지 않는 방식으로 컴퓨터 프로그램이 메모리 할당을 잘못 관리 할 때 발생하는 일종의 리소스 누수입니다. 객체가 메모리에 저장되어 있지만 실행중인 코드에서 액세스 할 수없는 경우에도 메모리 누수가 발생할 수 있습니다. 메모리 누수는 다른 여러 문제와 유사한 증상을 가지며 일반적으로 프로그램의 소스 코드에 액세스 할 수있는 프로그래머에 의해서만 진단 될 수 있습니다. 메모리 누수 셈플은 여기를 참고했습니다. 이 포스트에는 DotMemory, PerfView, OzCode를 이용하는 방법에 대해서도 설명이 있으니 참고하시면 좋을 것 같습니다. 메모리 누수 발생 샘플 MainWindow.xaml.c..
.NET Core WPF 프로젝트를 개발하다가, 현재 윈도우의 WorkingArea 정보를 확인 해야할 필요가 있어서 찾아보니 System.Windows.Forms.Screen을 이용해야 한다네요. .Net Framework 프로젝트에서는 Add Reference를 이용해서 System.Windows.Forms를 추가하면 되었는데, .NET Core에서는 추가 할 수가 없어서.. 다시 검색을 하니 아래와 같은 방법을 이용하면 된다고 합니다. 프로젝트 파일에 UseWindowsForms를 true로 지정하면 끝~ WinExe net5.0-windows true true 그래서 간단한 예제를 만들어 보았습니다. public partial class MainWindow : Window { public Main..
- Total
- Today
- Yesterday
- visual studio 2019
- MVVM
- C#
- Build 2016
- kiosk
- XAML
- Behavior
- WPF
- Bot Framework
- IOT
- uno-platform
- ComboBox
- LINQ
- Always Encrypted
- .net 5.0
- PRISM
- uno platform
- #MVVM
- UWP
- #Windows Template Studio
- Visual Studio 2022
- #prism
- Cross-platform
- ef core
- windows 11
- dotNETconf
- Microsoft
- .net
- #uwp
- Windows 10
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |