본문 바로가기

Programing/닷넷

(41)
[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 기반의 플랫폼을 위한 작지만 강력한..
GitHub 클라이언트로 본 ClickOnce 윈도우에서 GitHub을 사용하기 위한 클라이언트 도구가 존재한다. Licenses 탭에 보면 이 프로그램이 사용한 많은 오픈소스 프로젝트 이름들이 있는데, 관심을 끄는 것은 ClickOnce 배포였다. 프로그램을 설치하거나 업데이트시에 아래와 같은 창이 보인다. 찾아보니 ClickOnce라는 배포 플랫폼이 있었다. 자세한 내용은 이미 정리해놓은 곳이 있어 링크로 대신한다. Unavailable :: ClickOnce를 이용한 윈도우 폼의 배포 - http://diehard98.tistory.com/192 ClickOnce 배포 전략 선택 - https://msdn.microsoft.com/ko-kr/library/71baz9ah(v=vs.85).aspx [ WPF ] ClickOnce로 배포하기 - h..
다국어 관련 표준 / 기술 C#에서는 다국어에 대한 기능을 System.Globalization 네임스페이스에서 묶어두었다.하위 카테고리는 문화(CultureInfo), 지역(RegionInfo) 등으로 세분화하고 있다. 샘플을 돌려보면 쉽게 이해가 된다. (출처: MSDN)foreach (var ri in CultureInfo.GetCultures(CultureTypes.SpecificCultures) .Select(ci => new RegionInfo(ci.ToString())) .OrderBy(x => x.TwoLetterISORegionName)){ Console.WriteLine("{0,3}: {1,11}: {2} ({3})", ri.TwoLetterISORegionName, ri, ri.EnglishName, ri.Na..
asp.net에서 경로에 ~을 사용하면 좋을 때 Visual Studio는 이미지 경로에 ~를 자동으로 넣어준다.HTML 문서(사실상 .aspx)에 비표준 기호가 들어가는 것이 보기 싫어서 없애던가 ..으로 수작업 수정을 해주는데 이 기호가 유용할 경우를 확인했다. 파일 리팩토링이 필요해서 aspx 파일이 특정 디렉터리 하위로 들어갔다고 하면Images 경로에 대한 상대 경로가 달라져야 한다.../Images 로 일일이 수정을 해주어야 하는데 옮기는 파일수 및 참조되는 곳의 수만큼 소요된다. 만약 ~/Images라고 쓰면 알아서 루트 아래 Images라고 처리를 해주므로 이런 변경에 유연해지는 코드가 될 수 있을 것이다.
데이터 타입별로 접미어 정보 var i = 1;이라고 할 때 리터럴 1은 정수 Int32를 의미한다. 만약var l = 1L;이라고 쓰면 리터럴 1L은 long 타입 정수를 의미하게 된다. 이러한 것들이 있는데 MSDN에 있어서 링크를 공유한다. 값 형식 : http://msdn.microsoft.com/ko-kr/library/s1ax56ch(v=vs.90).aspx 타입 접미사 예 decimal m 또는 M decimal myMoney = 300.5m; m 접미사가 없으면 숫자가 double로 처리되어 컴파일 오류가 발생 double d 또는 D double x = 3D; 할당 연산자의 오른쪽에 있는 실수형 숫자 리터럴은 double로 처리 float f 또는 F float x = 3.5F; 접미사를 사용하지 않은 경우 floa..
웹 프로젝트 DLL 참조 추가 한 솔루션 파일에 여러 프로젝트를 넣을 수 있다.C# 프로젝트일 경우 다른 프로젝트에서 빌드시 생성되는 dll을 참조로 지정하므로 컴파일시 자동으로 업데이트 되게 할 수 있다. 웹 프로젝트일 경우(예. aspx.cs) 어떻게 하는지 방법을 몰라서 Bin 폴더에 수작업으로 dll과 관련된 파일들을 복사했었는데 방법은 다음과 같았다. 속성 페이지 > 추가 > 참조추가 > 프로젝트 탭 > '확인'버튼 그럼 형식에는 프로젝트로 표시가 되고, 버전은 자동 업데이트로 표시가 된다. 이렇게 하고 나면 참조 당하는 프로젝트가 갱신 되면 같이 복사가 된다.문제는 dll 뿐만 아니라 디버깅 정보가 포함되어 있는 pdb 파일도 같이 복사가 된다. 이것을 막기 위해서는 참조되는 프로젝트에서 pdb 생성 옵션을 막아주면 된다...
[NHibernate] 현재 시간 current_timestamp DB 마다 시간 구하는 함수가 다르다. 하이버네이트에서는 방언(dialect)라는 개념을 이용해서 쿼리를 변환해주는 기능이 있는데,보니 current_timestamp를 괄호없이 사용하면 된다.eg) UPDATE sdh2k_device_map SET sdh2000_ip = :sdh2000IP, updated_datetime = current_timestamp WHERE mfp_ip = :mfpIP; 구현은 아래 URL을 참고MsSqlServer : https://github.com/nhibernate/nhibernate-core/blob/master/src/NHibernate/Dialect/MsSql2000Dialect.cs (current_timestamp -> getdate) PostgreSQL : ..
[C#] 애플리케이션 경로 윈도우 API에 보면 현재 디렉토리의 경로를 구하는 함수가 있다.MSDN GetCurrentDirectory 함수 : http://msdn.microsoft.com/en-us/library/windows/desktop/aa364934(v=vs.85).aspxC#에서는 Directory.GetCurrentDirectory 메서드가 그 역할을 수행한다. 사실 이 경로보다 exe의 경로가 더 알고 싶을 경우가 있다. 예를 들면 서비스 애플리케이션의 경우 시스템이 실행을 시켜주기 때문에 현재 디렉터리나 상대 디렉터리를 사용하게 되면 엉뚱한 SYSTEM 폴더 경로를 참고하게 되기 때문이다. 이럴 경우에는 GetModuleFileName 함수를 이용하면 된다.MSDN GetModuleFileName 함수 : htt..