VB.NET2009.06.12 17:35

Web 은 ASP.NET MVC가 나오면서, 자연스럽게 지원이 되는데 어플리케이션 쪽으로는 공식 지원이 없네요..

나중에 어떻게 될지 혼자 상상해 봅니다. ^^

얼마전 회사 10주년 창립기념일이라고 IPOD Touch 를 선물 받았습니다. 해킹해서 쓰다보니 어플을 만들고 싶다는 생각이 들었고, 좋은 아이템을 하나 생각해 냈죠. 포트리스 같은 게임..

그 게임을 만들고자 디자이너(사실은 플래셔)를 꼬셔 우리 같이 개발해서 팔자고 했죠...

VMWare로 개발환경을 구축하던중 20번 가량의 노력에도 불구하고 환경 설정이 실패 했습니다.

빨리 Hello World를 XCode로 띄워 보고 싶었던 1인 이라.. 맥북을 보기 시작했죠..

어차피 업무중엔 맥을 쓸 일이 없었기에 지하철에서만 하려고 질렀습니다. 200백을 들여서... 물론 디자이너 분도 꼬드겨서 그분 마눌님과의 앞으로 4년동안 전자제품 구입할수 없다는 약속과 허락과 함께 같이 질렀습니다.

Hello World를 찍어보곤... 드는생각... 어? 생각보다 어렵네...

왜냐면 처음보는 Outlet 이라는 개념이 있었습니다. C 언어를 객체지향으로 만든 Objective-C 라서 비슷하겠지 라고 생각했지만.. 이상한 아울렛..

암튼.. 그 아울렛이 뭐냐면, MVC 모델의 개발 환경에서 View 에서 발생되는 이벤트를 클래스로 전달하기 위한 대리자 역할을 했던 넘 입니다.

왜 하필 그런 방식으로 했을까 라고 생각했지만, Windows Application 을 MVC 패턴으로 개발하기 위해서는 무언가가 필요하더군요... 아직 상상속에서만 개발 하고 있지만.. ㅡㅡ;

자료를 찾던중 Mark D'Aoust 라는 사람이 DevX.com에 쓴 글이 있네요..

Coordinate User Interface Development with VB.NET and the MVC Pattern

보니깐, 아울렛을 Event 로 처리 했는데, Observer 패턴으로 처리를 했네요...

아주 적합한 선택이라 생각이 듭니다.


주저리 주저리 적어봤는데... 아마도 제 예상이 맞다면 닷넷 프레임웍이 발전하면서 Windows Application MVC 를 위해서는 아마도 Event Raise 방식의 Observer 패턴으로 가야 하지 않을까 싶어서 몇자 적어봤습니다.



아.. 맥북 지르고 Hello World 만 찍어봤네요.. ㅠㅠ 절대 지르지 마셈... 생각 보다 어렵습니다. 그리고 게임 개발을 위한 그래픽 처리도 문제구요.. ㅠㅠ
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
TAG MVC, XCode, 맥북
Flex2009.02.10 09:59

BlazeDS Overview

BlazeDS는 client-side 어플리케이션을 실시간으로 server-side 데이터와 데이터 통신을 하는것이다.
즉, client-side부분의 호출자와 서버(J2EE)단의 응답자로 나뉘는데, 클라이언트 쪽에서는 Ajax client library를 통하여
HTTP통신으로 서버를 호출한다.




이는 Flex에서 server-side object를 곧바로 호출하기 위한 기술이며 코어 아키텍쳐는 다음과 같다.


크게 RPC Services, Messaging Services, Service Adapters, Proxy Service 로 나뉘어지고, Flex에서 주로 많이 사용하는 방식은 RPC Services에서 Remoting Service로 Java의 Service Adapter로의 호출하는 방식이다.

MVB패턴으로 보면, Java Service Adapter 가 Controller, Flex가 View 가 된다. Model은 Hibernate나 iBatis를 많이 사용한다.


Client Architecture

BlazeDS는 서버와의 메시지기반 통신을 한다. 이 메시지는 AMF Channel이라는 ActionScript 객체 직렬화된 바이너리 메시지 포맷 방식이다. AS에서의 flash.net.NetConnection 패키지안에 있다. 이 외에도 Secure AMF, RTMP, HTTP Channel이 있는데 자세한 내용은 Adobe사의 Using RPC services in Flex Data Services 2 문서를 참조 하기 바란다.


그렇다면 Flex에서 BlazeDS 서비스를 통한 서버와의 통신에서 플래쉬 객체를 AMF Channel로 주고 받으면, 자바와 서로 다른 Object 구조에서 어떻게 값을 받을 수 있을까 하는 의문이 든다.
Flex Builder를 사용한다면 통신할때 디버그를 해 보면 가장 잘 알수 있는데, 보통 자바 MVC패턴으로 개발 할때는 VO(Value Object)를 많이 쓴다. 이 VO를 Flex에서 받을때는 신기하게도 형변환이 이루어져 mx.collections.ArrayCollection 으로 받는다.


Server Architecture

서버 아키텍쳐는 J2EE 웹 어플리케이션이다. 플렉스 클라이언트는 서버에 채널을 통한 메시지를 endpoint 로 매칭시켜 보내어진다. endpoint라는것 자체가 서블릿단 이라고 생각하면 될것 같다.




앞으로 인터넷은 RIA 전성시대가 될 것이고, Flex는 View단을 처리하는 중요한 요소이며 이 View단에서 데이터를 더이상 무거운 XML로 받지 않고 서버와 곧바로 통신 하니 빠른속도로 UX를 생각하면서 데이터를 보여주게 될 것이다.
MS사의 Silverlight는 이미 ADO.NET과 직접적인 통신을 할수 있고, Flex는 조금 늦게 RO 호출 기술이 나왔지만 서로 우열을 가릴 수 없을 많큼 훌륭한 기술이다.

내 생각에 앞으로의 관건은 웹에서의 Vector 그래픽을 이용한 3D 처리 기술과 미디어 재생 기술인데, WMV의 라이센스가 MS라서 아무래도 MS가 약간 유리한것 같다. Adobe사가 유리한것은 FlashPlayer가 많이 배포 되어 있다는 것이다.

참조 : BlazeDS Developer Guide
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바