본문 바로가기

분류 전체보기

Visual Studio 2010 Beta 2 에서 Code Coverage 사용하기 Visual Studio 2010 Beta 2 에서는 UnitTest에 대한 Code Coverage 활성화하는 설정방법이 변경되었습니다. Visual Studio 2008에서의 Test Setting 과 Visual Studio 2010에서의 Test Setting이 달라서 한동안 애를 먹었는데요. Visual Studio 2010 Beta 2에서 Code Coverage 를 사용하기 위한 방법은 아래와 같습니다. 테스트 프로젝트가 포함된 솔루션에서 Solution Items 폴더 아래에 존재하는 Local.testsettings 파일을 더블 클릭하여 엽니다. Data and Diagnostics 항목을 선택합니다. Code Coverage 항목의 Enabled 를 체크합니다. Configure 버튼을.. 더보기
메서드를 호출한 어셈블리 정보 가져오기 때때로 작성한 메서드를 과연 어디서 호출하는지 알고 싶을 때가 있습니다. 동일한 어셈블리 내에서의 호출일 수 도 있겠지만, public으로 노출된 메서드라면 현재 어셈블리 외의 외부에서도 호출이 가능합니다. 이럴 때 현재 메서드를 어느 어셈블리에서 호출하였는지를 알 수 있는 방법이 있습니다. 이미 알고 계시는지는 모르겠지만, Assembly 클래스의 정적메서드인 GetCallingAssembly 메서드가 이 방법을 제공하고 있습니다. 아래와 같이 솔루션이 구성되어 있을 때 MethodCallAssembly 프로젝트에서 CalledAssembly의 CalledClass내의 메서드를 호출한다고 할 때, public class CalledClass { public void CalledMethod() { // .. 더보기
Vista에서 사용자 폴더 안에 내가 필요한 폴더를 등록하기 Vista에서 사용자 폴더에 등록된 폴더 중 문서, 다운로드, 음악, 비디오 등 기본적으로 제공하는 폴더외의 내가 정한 폴더를 등록하고 싶은 경우가 있습니다. 이때 사용자 폴더 내에 새로운 폴더를 하나 만들어서 사용하면 되지만, 문서나 기타 다른 폴더들의 위치도 다른 드라이브로 옮겨서 사용하는데, 폴더내에 새로운 폴더를 생성한다는 꺼름직하죠. 그때 사용할 수 있는 것이 링크폴더를 만드는 것인데요. Vista에서는 mklink라는 명령어를 제공하여 심볼릭 링크를 생성할 수 있도록 해줍니다. mklink의 사용법입니다. 저는 D:\Projects라는 폴더를 사용자 폴더(C:\Users\Hwikyeom)내에 프로젝트라는 이름으로 링크폴더를 만들려고 합니다. 이때 링크폴더는 사용자 폴더내에 동일한 이름의 폴더가.. 더보기
ASP.NET Generated Image 컨트롤 얼마 전 한 신입사원이 데이터베이스에 저장되어 있는 BLOB형태의 이미지 파일을 ASP.NET 웹페이지로 출력하기 위해서, 데이터베이스에서 byte배열을 얻어서 하드디스크에 GUID형태의 이름을 가지는 이미지로 저장한 다음 그 파일을 출력하고, 이미지를 생성할때 마다 파일이 생성될 폴더에 파일 중 생성시간이 하루 이상 지난파일을 삭제하는 로직으로 짜고 있는것을 본적이 있었습니다. 검색엔진에 검색 한번으로 엄청난 양의 레퍼런스 코드가 쏟아져 나올텐데도, 자기 나름대로 계획을 세우고 꿋꿋하게 그걸 구현해 나가는 모습을 보고 얘한테 뭐라고해야하나 말아야하나 고민을 했었더랬습니다. 당시에는 핸들러파일(ashx)파일에서 이미지를 출력하도록하는 방법을 알려주고 끝냈었는데, 오늘 보니 Micorosft에서 ASP.N.. 더보기
운영체제에 등록되지 않은 폰트 사용하기 응용 프로그램을 작성하다 보면 운영체제의 기본폰트로 등록되지 않은 폰트를 사용해야 할 경우가 있습니다. 이 경우 보통은 설치프로그램에서 폰트를 운영체제에 등록하여 사용하죠. 하지만, 시스템상에 폰트를 많이 설치하면 그만큼 시스템이 평소에 로드하고 있어야 하는 폰트가 많아 지므로 시스템이 느려지게 될 것이고, 자주 사용하지 않는 폰트파일이라면 굿이 등록시켜 사용할 필요가 없습니다. 그렇다면, 폰트파일을 운영체제에 등록하지 않고, 필요 할때만 잠시 로드하여 사용하면 좋겠죠? 이 부분을 지원을 지원하기 위해서 .NET Framework 에서는 System.Drawing.Text.PrivateFontCollection 클래스를 제공하고 있습니다. PrivateFontCollection 클래스는 운영체제에 등록된.. 더보기
Visual Studio 2008 한글판에서 ASP.NET MVC 프로젝트 생성 집에 있는 데스크톱 컴퓨터에 문제가 생겨서 포맷을 하고 재설치중입니다. 운영체제 및 업데이트는 대충 다 이뤄진듯 하고 이제 Visual Studio를 설치하고 개발환경을 셋팅하고 있는데요. 그동안은 집에서는 영문버전 Visual Studio를 사용했었는데 이번에는 아무리 찾아도 영문판 Visual Studio 설치DVD가 보이질 않아서 어쩔수 없이 한글판 Visual Studio를 설치하였습니다. 얼마 전 Visual Studio 2008 SP1의 경우에는 이미 한글판이 출시되어 있어서 설치를 했습니다. 하지만, 이번 SP1의 경우에는 ASP.NET MVC 는 포함되지 않아서 아직 ASP.NET MVC의 경우에는 아직 한글판이 존재하지 않습니다. 물론, 현재 배포버전인 MVC Preview 3이후에 Pr.. 더보기
C# 3.0의 발전 (2) - Object and Collection Initializer 지난번 알아보았던 자동구현 프로퍼티(Auto-Implemented Properties)는 그동안 개발자들을 귀찮게 하던 멤버변수와 멤버변수에 대한 엑세스를 지원하는 프로퍼티를 생성하는데 좀 더 간결하게 표현할 수 있도록 해는 것이었다면 이번에 볼 객체와 컬렉션에 대한 이니셜라이저(Object and Collection Initializer)는 객체 또는 컬렉션의 생성을 좀더 직관적으로 할 수 있도록 해줍니다. C# 2.0까지 객체를 생성할때 객체내의 멤버들을 동적으로 초기화 시키기 위해서는 생성자의 매개변수를 사용하거나, 생성후 객체의 각 멤버에 대해서 직접 값을 할당해주는 방법을 사용하였습니다만, C# 3.0의 Object and Collection Initializer는 생성자의 선언없이도 생성과 동.. 더보기
VisualStudio 2008에서 CopySourceAsHtml 사용하기 Visual Studio의 재시작시에 CopySourceAsHtml에서 오류가 발생하는 문제의 해결방법을 첨부합니다. (2007.10.18) 블로그나 게시판등에 Visual Studio에서 개발하던 소스를 추가하기 위해서 복사&붙여넣기를 하면 탭간격이나 글꼴등의 문제로 인해서 직접 다듬어야 하는 경우가 자주 발생합니다. 개발자라면 누구나 느끼는 문제일텐데요. Visual Studio를 이용하고 계시는 분이라면 이러한 불편함을 말끔하게 해소해 주는 Visual Studio Addin을 유경상님께서 블로그에 소개시켜주시고 있습니다. CopySourceAsHtml 이라는 Addin인데요. 원본파일은 한글문제와 여러가지 문제가 존재하여 감사하게도 유경상님께서 따로 한글환경에서도 문제없이 돌아가는 버전까지 공개해.. 더보기
C# 3.0의 발전 (1) - Auto-Implemented Properties Microsoft Patner 교육엘 다녀왔습니다. 처음 .NET을 접했을때 교육해주셨던 선생님이 Microsoft로 직장을 옮기셨는데, 이번 교육을 직접 진행하신다고 하길때 반가운 마음에 달려갔습니다. 교육은 Visual Studio 2008에 포함될 C# 3.0의 언어적인 발전부분에 대해서 Hands On Lab방식의 실습으로 이루어졌습니다. 사실 그동안 C# 3.0의 언어적인 발전부분에 대해서는 어느정도 관심은 있었지만, 게으른 관계로 깊이 공부해보지는 못했던 터라, 뜬 구름잡듯이만 알고 있었는데. 이번 교육을 통해서 개념을 잡을 수 있었던것 같습니다. C# 3.0의 변화의 가장 핵심은 바로 Lambda Expression(람다식)의 지원이라고 할 수 있었습니다. 람다식을 지원하기 위해서 컴파일 타.. 더보기
Response.TransmitFile을 이용한 다운로드 ASP.NET 2.0에서 파일 다운로드를 구현할때 Respone.WriteFile을 이용해서 다운로드를 구현하였었는데, MSDN에는 큰 파일에 이 메서드를 사용하면 메서드 호출 시 예외가 발생할 수 있습니다. 이 메서드에 사용할 수 있는 파일의 크기는 웹 서버의 하드웨어 구성에 따라 다릅니다. 자세한 내용은 Microsoft 기술 자료에서 812406, "PRB: Response.WriteFile Cannot Download a Large File"을 참조하십시오. 라고 되어있습니다. 즉, 서버의 하드웨어에 따라 다운로드에 대한 한계가 존재한다는 것이겠죠? 하지만, HttpResponse 클래스에는 WirtFile메서드외에 TransmitFile메서드도 존재하는데, MSDN설명을 보면 지정된 파일을 메모.. 더보기