본문 바로가기

분류 전체보기

Windows Phone 7 에서의 IsolatedStorageSettings 활용 안녕하세요. 오늘은 격리된 저장소에 앱관련 설정파일을 생성하고 활용하는 방벙에 대해서 알아 보도록 하겠습니다. 격리된 저장소는 WP7에서 앱관련 파일들의 샌드박스내에서 저장하고 읽을 수 있는 앱을 위한 저장공간인데요. 아래와 같은 구조로 이루어져 있습니다. 파일/폴더를 저장할 수 있을 뿐더러, 어플리케이션의 설정을 보관하는 Local Settings 라는 것이 존재합니다. 이 것을 이용하여 격리된 저장소의 관리할 수 있을 뿐만 아니라, 어플리케이션에서 사용하는 설정값들을 저장하고 불러올 수 있는 기능을 제공합니다. 이제부터는 격리된 저장소에 존재하는 Local Settings 를 활용하는 방법에 대해서 알아보도록 하겠습니다. 사용자 이름이나, 외부와의 통신을 위한 계정이나 주소등을 어플리케이션이 시작될때.. 더보기
Windows Phone 7에서 격리된 저장소의 압축파일을 SharpZipLib 활용하여 읽기(AS) 지난번 Windows Phone 7 에서 압축파일을 읽는 방법에 대한 글을 포스팅한 적이 있습니다. (보지 못하신 분은 [Windows Phone 7] - Windows Phone 7 에서 ZIP 압축파일 읽기 를 보시면 되겠습니다.) 압축파일을 프로젝트에 추가해서 GetResourceStream 메서드를 이용하여 압축된 파일에 대한 Stream 객체를 얻고, 그 Stream 객체를 이용하여 ZipFile 클래스의 인스턴스를 생성하였는데요. 이번에 프로젝트 구현시에 격리된 저장소(Isolated Storage)에 저장된 파일을 IsolatedStorageFileStream 형태로 읽어서, 그 Stream을 ZipFile 클래스의 인스턴스 생성시 이용하고자 하니, 문제가 발생하였습니다. SharpZipLi.. 더보기
ASP.NET 보안 취약성 업데이트 공개 얼마전 ASP.NET의 공격자가 암호화된 데이터나 시스템정보를 획득할 수 있는 보안 취약성이 발표되었고, 방어를 위한 방법들이 안내되었는데, 오늘 해당 취약성에 대한 업데이트가 공개되었습니다. 빨리 서비스중인 ASP.NET 서비스에 빨리 적용하시어, 피해가 없도록 해주세요. 자세한 내용은 아래에서 확인하실 수 있습니다. 취약성 내용 : Important: ASP.NET Security Vulnerability 대처방안 : Update on ASP.NET Vulnerability 업데이트 소개 및 다운로드: ASP.NET Security Update Now Available 업데이트만 설치하시면 기존에 대처방안으로 안내된 작업은 하실 필요가 없습니다. 더보기
Windows Phone 7 에서 설정된 테마 알아오기 새로운 한주의 시작은 즐겁게 하고 계신가요? 이번에는 Windows Phone 7 의 테마 색상을 알아오는 방법에 대해서 알아보도록 하겠습니다. Windows Phone 7 에서 테마의 설정은 Settings - theme 메뉴를 통해서 가능한데요. 에뮬레이터에서도 가능하니 한번 해보세요. 제공되는 테마는 dark (검은색 바탕의 테마) 와 light (하얀색 바탕의 테마) 가 있구요. 거기에다 타일의 색상 등을 결정하는 Accent color 를 설정하는 부분이 있습니다. WP7 어플리케이션을 작성할 때 사용자에게 일관된 사용자 경험을 제공하기 위해서 사용자가 직접 선택한 테마를 잘 활용하는 것도 중요할 수 있는데요. 테마의 색상을 알아오는 부분은 http://devlicio.us/blogs/derik.. 더보기
Windows Phone 7 에서 ZIP 압축파일 읽기 이번에는 Windows Phone 7에서 압축파일에서 개별 파일을 읽는 방법에 대해서 알아보고자 합니다. Silverlight 기반의 Windows Phone 7 응용프로그램의 배포에 사용되는 XAP 파일이 ZIP형식의 압축파일입니다. C# 코드가 컴파일되어 있는 DLL과 XAML 파일, 리소스들이 이 압축파일에 포함되어 있죠. 그러니, 분명히 Windows Phone에서는 ZIP 압축파일을 해제하는 방법이 분명히 존재합니다. 하지만, 그 부분은 제공하는 API가 아무래도 좀 빈약하고, ZIP의 압축이나 압축해제의 용도로만 사용되는 것이 아니다 보니, 용도에 딱 들어맞지 않을 수 밖에 없습니다. 그래서, 오픈소스로 제공되고 있는 SharpZipLib을 이용하는 방법이 없을까하고 생각하던 중에, Nick'.. 더보기
Windows Phone 7 에서 설치되지 않은 폰트 사용하기 오늘은 Windows Phone에 기본적으로 사용되는 폰트 외에 직접 추가한 폰트를 사용하는 방법에 대해서 알아볼까합니다. 우선 WP7은 타이포그라피가 UX의 핵심에 있는 METRO라는 디자인컨셉을 가지고 있다보니, 기본 폰트가 상당히 예쁩니다. 그냥 사용하더라도 아무런 불만이 없을 정도죠. (참고로 WP7에서 사용되는 기본 폰트는 Segeo WP 라는 폰트로 Microsoft에서 직접 만든 폰트라고 합니다.) 하지만 세상이라는게 그렇습니까? 자신만의 폰트로 개성을 표현하고 싶어질 것입니다. 불행하게도 WP7은 샌드박스모델을 사용하다 보니, 어플리케이션이 시스템 폴더에 접근하는 것이 불가능합니다. 즉, 어플리케이션이 새로운 폰트를 시스템에 설치할 수 가 없는것이죠. 하지만, 너무 실망할 필요는 없습니다... 더보기
웹에서 Windows Phone 7의 격리된 저장소로 파일 다운로드 받기 이번 글은 네이버 윈도우폰 개발자 모임에서 진행중인 Windows Phone 7 스터디에서 원격지(웹)상에 존재하는 파일을 WP7에 어떻게 저장하는가에 대한 궁금증이 생겨서 구현해보고 작성하는 블로그 포스트입니다. Windows Phone 7 은 샌드박스 모델을 사용하는 관계로 시스템의 저장공간을 마음대로 사용할 수가 없습니다. WP7 어플리케이션은 각 어플리케이션 마다 격리된 저장소를 할당 받고, 그 격리된 저장소 내의 파일들에 대해서만 읽고 쓰기가 가능합니다. 물론, 각종 미디어 파일(비디오, 사진 등)은 공용 스토리지를 이용하여 사용할 수 있습니다. 아래 구현된 소스는 Windows Phone 7 Developer Tools Beta 버전으로 구현되었습니다. 샘플 소스의 개요 샘플 소스에는 파일 다.. 더보기
ASP.NET 프로젝트에서 런타임에 참조된 어셈블리 불러오기 ASP.NET 프로젝트에서는 Visual Studio에서 참조된 어셈블리 외에도 bin 폴더에 포함된 모든 어셈블리를 참조된 어셈블리로 인식합니다. 외부에서 컴파일 된 어셈블리 또한 런타임에 bin폴더로 추가하여도 정상적으로 동작하게 됩니다. 그렇다면, ASP.NET 프로젝트에서 참조된 모든 어셈블리의 목록을 어떻게 가져올 수 있을까요? 이는 System.Web.Compliation.BuildManager 클래스의 GetReferencedAssemblies 정적 메서드를 이용하여 알 수 있습니다. 만일 참조된 어셈블리에 존재하는 WCF RIA Services의 DomainService의 하위 클래스의 목록을 가져오려 한다면 아래와 같은 코드를 이용할 수 있습니다. Dictionary dictionary .. 더보기
C#으로 Acrobat(PDF) 문서를 이미지로 변환하기 PDF 문서는 상당히 강력한 기능을 제공하지만, 많은 내용이 담긴 문서의 경우에는 그 용량 또한 무지하지 못할 정도로 커지게 되므로, 웹 상에서 배포할 할 때는 파일이 클라이언트로 모두 다운로드될 때 까지 대기 해야만 합니다. 구글도서나 YES24와 같은 사이트에는 즉시 응답성을 위해서 이미지 포맷을 이용하여 미리보기를 제공하여 즉시 응답성을 높이고 있는데요. 그래서 PDF 문서를 이미지로 변환하여 웹 상에서 제공할 수 있지 않을까 하고 생각해 보았습니다. 이미지로 변환하는 기능은 Acrobat에서 제공하고 있으므로, C#에서도 Acrobat의 기능을 이용하여 PDF를 이미지로 변경하는 것이 가능합니다. 이미지로 변환하기 위해서는 우선 Adobe Acrobat이 설치되어 있어야 합니다. 애석하게도 Acr.. 더보기
ASP.NET MVC 에서 사용자 정의 컨트롤의 내용을 문자열로 받기 간혹 사용자 정의 컨트롤(.ascx) 파일에서 처리한 내용을 Page에 바로 출력하는 것이 아니라, 문자열로 받아야 할 경우가 있습니다. ASP.NET 웹 폼의 경우에는 Page.LoadControl() 과 Control.RenderControl() 메서드를 이용하여 아래와 같은 코드로 사용자 정의 컨트롤이 처리한 내용을 문자열로 받아올 수 있습니다. Control control = LoadControl("~/MailTemplate.ascx"); ((MailTemplate)control).DestinationName = "Whistle"; StringBuilder stringBuilder = new StringBuilder(); using (StringWriter sw = new StringWriter(.. 더보기