본문 바로가기

c#

(12)
[C#] GitHub 클라이언트의 오픈소스 기술들 Akavache - https://github.com/akavache/Akavache An Asynchronous Key-Value Store for Native Applications의 약자로 SQLite3기반의 비동기적으로 키-값을 영속저장하기 위한 라이브러리이다.AvalonEdit - https://github.com/icsharpcode/AvalonEdit / http://avalonedit.net/ SharpDevelop 4.x "Mirador"에서 WPF 기반의 텍스트 에디터이다.Caliburn.Micro - https://github.com/Caliburn-Micro/Caliburn.Micro / http://caliburnmicro.com/ 모든 XAML 기반의 플랫폼을 위한 작지만 강력한..
Enum에 Description 확장메소드 추가하기 NUnit 테스트 쪽using NUnit.Framework; [TestFixture] class EnumExtsTests { [Test] public void TestGetDescription_Description문자열가져오기() { Assert.AreEqual("The operation completed successfully.", Windows.ErrorCodes.ERROR_SUCCESS.GetDescription()); } [Test] public void TestGetDescription_Description속성은빈문자열획득() { Assert.AreEqual("", Windows.ErrorCodes.ERROR_INVALID_FUNCTION.GetDescription()); } } public c..
[콜백] System.Action<T>로 함수인자 구현하기 (AsyncWorker) Node.js 때문에 자바스크립트 프로그램을 하고 났더니, 비동기 함수에 익숙해졌다. 혹시 비동기함수에 대해 이해가 안된단다면, 아래의 코드를 실행을 해보면 이해가 빠르겠다.function foo() { console.log('before'); setTimeout(function() { console.log('Something doing'); }, 1000); console.log('after'); } foo(); 실행결과는 아래와 같다. 'Something doing'이 'after'가 찍히고 난 후에 찍힘을 알 수 있다. 사실 초첨은 코드의 굵은 글씨로 표시된 부분이다. C에서는 함수포인터라고 하고, 자바스크립트에서는 함수도 객체이기 때문에 자유자재로 인자로 넘기는 것이 자유롭니다. C#에서는 어떻게..
윈폼::ESC를 눌러 닫기 CreateDialog API함수를 이용해서 띄운 윈도우 폼에서는 기본적으로 ESC를 누르면 창이 닫힌다.하지만 윈폼에서 만든 다이얼로그는 닫히지 않는다. 닫히게 하기 위해서 할 일은...1. 폼의 프로퍼티중 KeyPreview = true로 변경(기본값: false) 2. KeyDown이나 KeyPress 이벤트 핸들러를 작성 KeyDown이라면...private void Form_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.Close(); } } KeyPress라면..private void Form_KeyPress(object sender, KeyPressEventArgs e) { const char ESC..
Microsoft Chart Controls (차트컨트롤) 고객사의 서버가 이상해서 보던 중 가상메모리가 부족하다는 이벤트 로그를 보게 되었다. (시스템 고갈 어쩌구)보니 SQL Server의 메모리가 2GB에 육박하고 있었다. 실제 mdf는 400MB밖에 되지 않는데 말이다. 이벤트 로그를 CSV로 만들어서 시간~메모리의 형태로 만들어서 차트를 그리려고 했다. 결과는 아래..수직하강하는 이상한 형태의 그래프가 그려졌다. 아마도 X축이 9일하고 10일 두 개로 인식을 하는 것 같다.시간별로 구분을 해서 그렸더니 얼추나오기는 했는데, 각 데이터당 간격이 일정하지 않음에도 균일하게 그려졌다.이유인 즉슨, 엑셀은 날짜 데이터까지는 일단위까지 인식을 해서 없으면 채워서 해주지만, 시간 단위는 하지 못하기 때문이란다. 참고: 차트에서의 날짜 사용 개발자로서 Microso..
윈폼 다국어(i18n) 개발하기 - Best Practice 자바에서는 리소스번들이라는 것을 이용해서 다국어지원을 쉽게 할 수 있다..net에서는 리소스를 이용하면 쉽게 다국어 지원을 할 수 있다. 1. 윈폼제작은 영어로 - 기본적으로 영어는 전세계 윈도우에서 다른 폰트를 설치하지 않고 보인다. 아래와 같이 FormMain이라는 이름의 폼을 만들었다. 2. 폼 선택 > Localizable 속성 : True 폼을 선택하고 속성중 Localizable이라는 게 있는데 False에서 True로 바꾸어 준다. 그러면 Visual Studio가 자동으로 컨트롤들의 리소스를 만들어준다. Localizable : False일 경우 FormMain.resx를 열어보면 아래와 같이 비어있다. Localizable : True일 경우 FormMain.resx를 열어보면 아래와 같..
C#프로그래밍가이드 - 주석 원문: Recommended Tags for Documentation Comments (C# Programming Guide)
C# IN DEPTH 2판 부재: C#2~C#4까지 프로페셔널 마스터 가이드존 스킷 지음 / 박경훈, 이수겸 옮김 전체적으로 원서 자체는 괜찮은 것으로 보인다. 번역을 했더라도 책의 본 내용을 느낄 수 있기 때문이다.그런데 저자들이 책을 번역하면서 오타를 곳곳에 숨겨놔서 책을 읽으면서 오타도 찾을 수 있는 게임북으로 만들어버렸다.나는 보통 지하철에서 책을 읽는다. 책을 읽다가 오탈자를 발견하면 그 즉시 샤프를 꺼내서 책 속지 제일 앞장에 기록을 해두는 습관이 있다. 나중에 오타를 찾으려고 하면 잊어버리기 때문이다. 내가 본 책은 2012년 7월 8일에 출간된 초판 1쇄인데 아래와 같이 여느 책과 달리 오타가 엄청 많았다.케냘님 블로그에 오탈자 리스트가 있다고 하는데 => 링크 아래 내가 찾은 거랑 거의 겹치지 않았다. 일명 답사이..