Programming/C#

우선 MVVM 의 설계 철학은 정말 마음에 든다. MVVM 을 완벽하게 구현한다면 이론상 Designer 와 Developer 의 작업을 완벽하게 분리할 수 있으며(물론 Github, StackOverFlow 등에서는 사실상 이것이 불가능하다는 의견도 있다.), View 와 종속적이지 않게 비지니스 로직을 검증할 수 있다. 결론적으로 '유지보수성' 이 매우 높아지는 효과를 가져온다. 고전적인 Code-Behind 방식 (일반적으로 Winform, WPF 를 통해 코드를 작동시킬 때 View 영역에 Button_Click() 메소드를 생성하는 방식)이 비록 생산성은 MVVM 방식보다 월등히 높지만, 유지보수성에서는 MVVM 우위에 있다. 때문에 장기적으로 관리되어야 할 프로젝트라면 MVVM이 권장된다. 이..
[C#] Task .Wait() vs await 차이점 Task.Wait과 await의 차이점 Stack Overflow에서 발견한 흥미로운 질문과 답변입니다. set 출처: https://stackoverflow.com/questions/9519414/whats-the-difference-between-task-start-wait-and-async-await kayuse88.github.io C# await - C# 프 cypsw.tistory.com 이전 포스팅의 예제와, 결론 자체는 틀리지 않았으나 몇몇 오해할만한 소지가 있다고 판단하여 보완 포스팅을 작성한다. 1. Async is not include Thread 'Async' 는 'Thread' 를 포함하는 개념이 아니다. 오해할 만한 소지가 ..
요즘 내 흥미를 돋구는것중 하나는 이전 포스팅에서 언급했던 MAUI 라는 놈인데 C#을 토대로 크로스 플랫폼(IOS, Android, Windows) 빌드용으로 만들어진 다중 플랫폼 UI 프레임워크 이다. 이놈의 특징은 하나의 코드를 사용해 모든 플랫폼에서 실행할 수 있다 인데... C#을 사용하던 분들은 어리둥절 할 것이다. 해당 프레임워크를 사용한다고 해서 Windows Lagacy 코드가 Android, IOS 위에서 돌아갈리가 없기 때문이다. 아무리 MS 개발자들의 능력이 좋다고 하지만 이건 힘들것이라는것이 내 지론이고, 역시 내 생각은 맞았다. Window 기준 C#을 사용하여 특정 File 을 선택하는 창을 보여줄 때, 우리는 OpenFileDialog(System.Windows.Forms) ..
우선 Timer 관련 글들을 살펴보면 [ C# ] 세가지 Timer 와 그 차이점 [출처] [C#] 세가지 Timer 와 그 차이점|작성자 코드클럽 blog.naver.com/jjk003/221926047276 특정 작업을 주기적으로 실행하기 위해 흔히 Timer 객체를 사용합니다 정해진 시간 간격으로 변수를 업데이 minineko.tistory.com Forms.Timer 가 Winform 에 '최적화 되었다' 라는 구문이 눈에 띄는데. 이걸 보고 알아서 잘 관리해 주겟거니... 하다가는 함정에 빠지게 된다. 1. Forms.Timer Why there are 5 Versions of Timer Classes in .NET? Why are there five timer classes in the .Ne..
실제 업무에서는 Struct 내부에 데이터를 넣어 SharedMemory 를 통해 프로세스간 데이터를 공유한다. Install class SharedMemory { public void installSharedMemory(string name) { A a; MemoryMappedFile mmf = MemoryMappedFile.CreateNew(name, 10000); var accessor = mmf.CreateViewAccessor(); a.a = 244; a.b = 255; a.c = 266; accessor.Write(0, ref a); } } struct A { public int a; public int b; public int c; } Read class SharedMemory { publi..
멀티캐스트 송수신 - C# 프로그래밍 배우기 (Learn C# Programming) 멀티캐스트 송수신 Broadcast와 Multicast 하나의 컴퓨터에서 또 다른 하나의 컴퓨터에 데이타를 보내는 것을 Unicast라 하고, 하나의 컴퓨터에서 네트워크 상의 모든 컴퓨터에 데이타를 보내는 것을 Br www.csharpstudy.com 기본적으로 위 예제 코드는 잘 동작하지만, Receive 코드가 작동되지 않았다. MulticastOption 클래스 (System.Net.Sockets) 멀티캐스트 그룹을 추가하거나 삭제하는 데 사용되는 IPAddress 값이 들어 있습니다. docs.microsoft.com MSDN의 코드를 참조 해 Socket 기반, MulticastOption 을 적용 해 보니 아..
How should the clean-up of Timers declared inside the scope of a function be managed? In the following code, a Timer is declared inside a function, where it also subscribes to the Elapsed event: void StartTimer() { System.Timers.Timer timer = new System.Timers.Timer... stackoverflow.com 위 StackOverFlow 글에서 핵심적인 내용은 Do beware the very nasty threading race bug that's hidden under the floor mat, th..
이전에 봤던 책에서 C++ 의 최적화가 얼마나 중요한지 짚고 넘어갔었다. 한빛미디어 Optimized C++, C++ 최적화 후기 이 책은 크게 '깊게' 들어가는 경향은 없지만 막 초급자를 탈피하여 중급자로 진입한 C++ 프로그래머 에게는 유용한 책이 될 것이다. 이 책을 읽고 나면 C++ 의 '미묘함' 을 다시한번 확인할 수 있 cypsw.tistory.com 최근 다중 Thread 내의 여러가지 for 문이 동시에 돌아가는 구문이 있었는데 바꾼 코드가 조금 지연이 발생하여 원인을 찾던 중, C# 에서도 캐싱이 적용되는지 확인하기 위해 간단하게 테스트 해 보았다. using System; using System.Collections.Generic; using System.Diagnostics; name..
Task.Wait과 await의 차이점 Stack Overflow에서 발견한 흥미로운 질문과 답변입니다. set 출처: https://stackoverflow.com/questions/9519414/whats-the-difference-between-task-start-wait-and-async-await kayuse88.github.io C# await - C# 프로그래밍 배우기 (Learn C# Programming) C# 5.0 : async / await 키워드 C# 5.0부터 새로운 C# 키워드로 async와 await가 추가되었다. 이 키워드들은 기존의 비동기 프로그래밍 (asynchronous programming)을 보다 손쉽게 지원하기 위해 C# 5.0에 추가된 중요 www.csharps..
해당 포스팅은 MSDN의 설명을 보다 다듬은 글입니다. 원본을 참조하고 싶으면 MSDN을 참조하세요. StructLayoutAttribute.Pack 필드 (System.Runtime.InteropServices) 메모리에 있는 클래스 또는 구조체의 데이터 필드 맞춤을 제어합니다.Controls the alignment of data fields of a class or structure in memory. docs.microsoft.com 사용할 Code using System; using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 0)] struct ExampleStruct { public byte b1; p..
Cyp
'Programming/C#' 카테고리의 글 목록