XapOptimizer로 Silverlight XAP 배포 파일 사이즈 줄이기.

실버라이트의 배포단위는 XAP 파일이다. 이 파일은 JAVA의 jar나 war같이 ZIP 파일의 이름만 바꾼 형태로,
manifest 파일과 실버라이트 어플리케이션을 구동하는 데 필요한 모든 코드를 포함하고 있다.
파일포맷 자체는 ZIP 파일 형식과 동일할 뿐 특별한 내용은 없다. 확장자를 zip으로 바꾼 후 압축 해제프로그램
으로 열어보면 AppManifest.xaml 파일과 필요한 DLL들이 들어 있을 것이다.

불행히도, xap 파일에 포함된 DLL 중에는 불필요한 코드도 상당수 섞여 있다. 배포하고자 하는 실버라이트
어플리케이션이 DLL 중 코드 중 일부만 이용한다면 클라이언트 측에서 다운로드하는 파일 사이즈가 불필요하게
크다는 의미이기도 하다. 이런 사이즈를 줄이기 위해 프로젝트 파일을 손보는 것 보다는 XapOptimizer를 이용해
불필요한 클래스를 줄여보는 것도 고려해볼 만 하다.

http://labs.componentone.com/XapOptimizer/

XapOptimizer

XapOptimizer



XapOptimizer는 ComponentOne社의 온라인 툴로 현재는 베타 버전이다. 불필요한 코드가 포함되어 있는
XAP 파일을 업로드 하면 결과물을 메일로 알려준다.
용량 제한이 있지만 난독화까지 지원하고 있으니 필요하신 개발자는 한 번쯤 들러보는 것도 괜찮을 것 같다.  

2009/03/05 14:14 2009/03/05 14:14
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

RIA (Rich Internet Application ) 패턴

마이크로소프트의 Pattern & PracticesRIA 패턴에 대한 글이 게시되었습니다.

이 시나리오는 개인정보와같은 민감한 Data를 이용할 수 없는 RIA 어플리케이션이며 DB를 이용한다는 가정에서
출발합니다. 결과적으로 클라이언트, 웹서버, 데이타베이스의  3-tier 로 구성이 됩니다.

3-tier RIA Application


위와 같은 구성에서 각 레이어에 적용하면 좋을 패턴을 마이크로소프트 사에서는 아래와 같이 제시합니다.
각 레이어에 적용할 패턴들
위 패턴이 적용된 이미지의 요약은 다음과 같습니다.
MVC패턴으로 유저 인터페이스를 구성.
유저인터페이스는 여러개의 control들로 구성.
Presentation 레이어와 Service 레이어사이의 통신에는 Proxy 패턴을 적용.
다양한 데이터 구조를 하나로 취합하기위해 DTO 패턴을 적용.
Service 레이어는 외부와 내부 데이터 구조 사이의 변환기능을 제공해야 함.
Bussiness 레이어는 메세지기반 운용을위해 facade 패턴 적용.
도메인 엔티티를 위한 Repository 패턴 적용.
Domain Entity 패턴은 오직 데이터만 나타내는 Business entity를 정의하는데 이용.
Domain Entity와 Database Schema 사이의 매핑을 위해 Data Mapper 패턴 적용.

위와 같은 패턴을 적용한 RIA 어플리케이션을 MS Silverlight로 구현할 경우 다음과 같은 Technical Solution을보여줍니다.
Technical Solution

아래 링크에서 더 자세한 정보와 코드조각을 얻으실 수 있습니다.
http://www.codeplex.com/AppArch/Wiki/View.aspx?title=App%20Pattern%20-%20Three-Tier%20RIA%20Application%20Scenario&referringTitle=Application%20Patterns
2009/01/31 12:35 2009/01/31 12:35
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

Silverlight for Linux: Moonlight 1.0 Beta 1 Is Available for Download


Moonlight
는 Linux와 Unix/X11에서 Microsoft사의 Silverlight를 구동케 하기위한 open source 구현체입니다.
Moonlight는 2007년 9월부터 Novell사의 후원으로 Mono project에 의해 개발되어 왔으며, Moonlight 1.0 beta 1
릴리즈하였습니다.

Novell사와 Mono Project팀은 32bit/64bit 리눅스 시스템에서 구동 가능한 Moonlight 1.0 beta 1의 출시를 발표했습니다.
현재는 SUSE Linux Enterprise Desktop 10, openSUSE 11.0, Ubuntu 8.04, Fedora Core 9 for 32 bit machines,
SUSE Linux Enterprise Desktop 10 and openSUSE 11.0 for 64 bit machines 을 지원하며, 윈도우즈가 아닌
OS에서의 실행을 위해 FireFox 3을 추천하고 있습니다.

Moonlight 1.0은 2009년 1월 20일 출시를 목표하고 있으며, 여기에는 Video/Audio 재생을 위한 Media Pack 1.0,
실버라이트 2.0 의 스트리밍외에도 다음과 같은 사양이 포함됩니다.
실버라이트 1.0 호환.
브라우저의 JavaScript 이용 가능.
C/C++ 기반의 no managed code.
Linix/x86 Linux/x86-64 에서 실행 가능.
소스코드도 함께 배포.


Moonlight 2.0은 2009년 4월 Beta, 2009년 9월 정식버전 출시를 계획하고 있습니다.
이 구현체에는 다음과 같은 사양이 포함됩니다.
실버라이트 2.0 호환.
마이크로소프트 Media Pack 2.0을 이용한 비디오/오디오 재생
c#, DLR-based languages 실행을 위한 Mono를 포함.
실버라이트 2.0 기반 어플리케이션과 실버라이트 2.0 MS-PL 컨트롤의 실행.

Monolight에서 멀티미디어 stack의 구동방식은 Miguel de Icaza의 blog를 참조하실 수 있습니다.

소스 코드는 이하의 SVN을 통해 내려 받으실 수 있습니다.
svn co svn://anonsvn.mono-project.com/source/tags/moon/1.0b1
해당 소스 코드의 라이센스는 마이크로소프트사의 약속이 계속되는 한 GNU LGPL을 따른다고 합니다.

2008/12/07 13:58 2008/12/07 13:58
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

Silverlight의 장점과 단점/아쉬운 점.

RIA( Rich Internet Application )가 마켓리더인 어도비의 Flex와 AIR를 통하여 메인스트림 기술로 진입한 시점에
MS에서는 Silverlight 제품을 RIA  영역에 포진 하였습니다. 이에 실버라이트 라는 제품에 대해 개발자 커뮤니티
에서도 의견이 분분한데요.

이와 관련하여 어도비 플랫폼 에반젤리스트인  Serge Jespers씨가 자신의 블로그를 통하여 실버라이트에 대한
장단점과 아쉬운 점을 포스팅
하여 Flex-Silverlight간의 논쟁에 불을 붙였네요.
뭐.. 어도비 에반젤리스트가 한 말이니 어도비에 편향될 수도 있겠지만 실버라이트로 개발을 해 보신분이라면
고개를 끄덕일 만한 내용도 조금은 있지 않을까 생각합니다.

그는 포스팅을 통하여 실버라이트의 장점으로
* 실버라이트의 쓰레드 모델의 컨셉트가 아주 마음에 든다. 특히나 main 쓰레드의 정체없이 복잡한 테스크를 처리가능한
  - 예를들어 데이타 로딩과 동시에 별도의 쓰레드로 구현되는 부드러운 에니메이션과 같은 - 기능은
  정말 Cool하다.
* 실버라이트 어플리케이션은 파라메터 세팅과같은 간단한 방법으로 HTML문서와 통신할 수 있다.
* C#이나 VB.NET과 같은 코드를 그대로 사용할 수 있는점 역시 훌륭하다. 특히나 이 두 언어는 윈도우즈 기반
  개발자들에게 익숙하다.

라고 한 반면 단점과 아쉬운 점으로
* C#과 XAML 코드표현 방법이 너무 다양하다. -이건 저도 WPF를 잠깐 해 보면서 느꼈던 부분인데 똑같은 기능을
  C#으로도 XAML로도 구현 할 수 있기때문에 적절한 개발 가이드를 세우지 않으면 스파게티 코드를
  만들어낼 가능성이 농후합니다. -
* 컨트롤에 스타일을 적용하는건 말그대로 '악몽'이다. 이건 아무리 생각해도 실버라이트의 아킬레스건이다.
* Text Field에서의 HTML 태그 지원 부족 또한 이해할 수 없다.
* Expression 툴이 여전히 베타이다. 이는 Expression툴만의 문제에 그치지 않고 더이상 베타버전이 아닌
  비주얼 스튜디오 마저 버그를 갖는 미완성품으로 만들어 버렸다는 사실이다.
* 실버라이트를 접한 삼일간의 느낌은 실버라이트는 디자이너를 전혀 고려하지 않고 개발되지 않았나 하는 생각이다.

라는 견해를 밝히고 있습니다.
제가 봐도 딱히 편향되어 보이진 않지만 어도비 에반젤리스트의 이런 견해는 그의 위치때문이라도 좋은
논쟁꺼리를 만들어 낸 셈인데요..
그의 이런 생각에 다른 개발자들은 어떤 생각을 갖고 있는지 궁금하시면 그의 해당 포스트를 방문해 댓글을
직접 보시는게 좋겠네요. ^^

http://www.webkitchen.be/2008/07/17/silverlight-the-good-the-bad-and-the-ugly/
2008/07/28 19:38 2008/07/28 19:38
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

Silverlight 2 Unit Test Framework :: 실버라이트 단위 테스트 프레임워크



실버라이트 단위 테스트 프레임워크 수석 개발자인 Jeff Wilcox는 Sliverlight 2의 테스트 방법을 작성하여
포스팅 하였습니다. 실버라이트 테스트에 대해 스텝바이스텝으로 구성된 Jeff의 포스트에는 업데이트된
Test Project Templaterepackage한 실버라이트 테스팅 어셈블을 제공 하고 있습니다.

해당 실버라이트 유닛 테스트 프레임워크는 아직 비주얼 스튜디오에 통합되진 않았지만, MS Test에서 쓰이는
Type과 Attribute를 그대로 이용하고 있다고 합니다.

실버라이트의 단위 테스트에 관심이 있으신 개발자는 Jeff Wilcox의 해당 포스트를 방문해 보시기 바랍니다.

2008/07/08 01:13 2008/07/08 01:13
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다