태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

WPF, Silverlight2007.11.15 11:48

    Trace 클래스?

  1. System.Diagnostics.Debug.WriteLine() 편하게 쓰기 위한 클래스.
  2. 플래시의 trace() 동일한 결과.
  3. Output 창에서 확인 가능. (Debug 모드로 실행, F5) 

    클래스 구성)

    +Trace 생성자 : params string[] 매개변수를 이용해 출력.


    문제점) new 키워드를 사용하므로 소량이지만 메모리를 차지할 것입니다. 이를 해결할  있는 방법이 있다면 조언을..


    사용예)

    using TraceExam.YKUtils;


    public void Page_Loaded(object o, EventArgs e)

            {

                // Required to initialize variables

                InitializeComponent();


                new Trace("안녕", "하세요.");

            }


    결과)

    안녕 하세요.


    수고하셨습니다.


    traceexam.zip


신고
Posted by 원강민
WPF, Silverlight2007.11.15 11:46

    엔터프레임(EnterFrame) 클래스?

  1. C# Timer 유사하고, 일정한 주기를 가지며 연속적으로 이벤트를 발생시키는 클래스.
  2. 플래시의 엔터프레임과는 의미만 같을뿐 실제 사용법은 다름.
  3. 객체를 움직이거나(모션) 일정 시간이 지난 후에 다음 작업을 진행하고 싶을  주로 사용. 

    클래스 구성)

    +interval 속성 : 이벤트발생 시간 간격(밀리초 , 1000이면 1)

    +OnEnterFrame 이벤트 :  interval 마다 발생하는 이벤트

    +EnterFrame 생성자 : UIElement를 인자로 받아서 Storyboard를 리소스에 추가

    +Start 메소드 : 엔터프레임 시작

    +Stop 메소드 : 엔터프레임 정지


    주의
    ) 네임스페이스를 해당하는 프로젝트에 맞게 수정하세요.

    namespace SilverlightProject1.YKUtils (현재 SilverlightProject1 프로젝트의 YKUtils 폴더)


    사용예)

     

    using SilverlightProject1.YKUtils;


    public void Page_Loaded(object o, EventArgs e)

            {

                // Required to initialize variables

                InitializeComponent();


                EnterFrame enterFrame = new EnterFrame(this);

                enterFrame.interval = 1000;

                enterFrame.OnEnterFrame += new EventHandler<EventArgs>(enterFrame_OnEnterFrame);

                enterFrame.Start();

            }


            void enterFrame_OnEnterFrame(object sender, EventArgs e)

            {

                System.Diagnostics.Debug.WriteLine("ok");

            }


    수고하셨습니다.


    enterframe.zip


신고
Posted by 원강민
WPF, Silverlight2007.11.15 11:44

아래 목차는 플래시의 요소들을 기준으로 잡았으며 실버라이트(silverlight) 요소로 어떻게 구현되는지 알아보겠습니다..
플래시를 모르시는 분도 전혀 걱정할 필요는 없습니다..실제 구현은 C#으로 할 것이며 플래시에 대한 사전 지식은 조금도 필요 없습니다..

1. 엔터프레임 [Timer 클래스와 같이 주기적이며 연속적인 이벤트를 위한 클래스]
2. Trace() [Debug를 위한 클래스]
3. 유저 컨트롤 만들기 [클래스를 통해 인스턴스를 생성]
4. x, y, width, height, scaleX, scaleY, alpha, rotation [모션을 위한 기본 속성들]
5. 객체 트리 구조 알기 [addChild, removeChild, numChildren]
6. addEventListener, dispatchEvent [이벤트에 대해]
7. XML 다루기

이 정도면 간단한건 뭐든 다 만들 수 있을거 같네요..
시즌 1은 이정도로 하고 시즌 2도 준비해 보겠습니다..1끝날때쯤에요^^

그럼 강좌로 다시 찾아뵙겠습니다..(__)

신고
Posted by 원강민
WPF, Silverlight2007.11.15 11:42

usercontroltest.zip




별 내용이 없어서 그냥 소스만 첨부합니다..
사용자 컨트롤을 만들어서 XAML에 이용하는 예제입니다..
개인적으로 플렉스 빌더가 비주얼 스튜디오에 비해 개발자를 위한 편의성이 뛰어나다고 생각합니다..기능면에서는 VS가 뛰어나지만..
MS도 너무 목 뻣뻣하게 세우지 말고 어도비와 같은 세심한 배려심을 가졌음 좋겠습니다..
어도비도 물론 MS의 개발력을 따라가도록 노력해야 할테구요..

신고
Posted by 원강민
WPF, Silverlight2007.11.15 11:40

webservice_sample.zip




실버라이트(silverlight)에서 웹서비스 메소드를 호출하는 예제입니다..
예제를 위해 필요한 프로그램 및 파일..(
http://silverlight.net/GetStarted/ 에서 다운가능)
- 비주얼 스튜디오 2008 베타 2 (VS2005도 가능할거 같지만 이왕이면 2008로 하는게 좋을거 같습니다)
- 실버라이트 1.1 리프레시(런타임)
- Microsoft Silverlight Tools Alpha Refresh for Visual Studio (July 2007)

1. 프로젝트를 생성합니다.

사용자 삽입 이미지



2. 아래 번호 순서대로 따라하세요.

사용자 삽입 이미지



3. Page.xaml 코드를 아래 코드와 같이 작성..(복사 -> 붙여넣기)
호출 버튼과 결과를 출력할 TextBlock을 넣는 과정..

 <Canvas x:Name="parentCanvas"
        xmlns="
http://schemas.microsoft.com/client/2007" 
        xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml" 
        Loaded="Page_Loaded" 
        x:Class="WebService_sample.Page;assembly=ClientBin/WebService_sample.dll"
        Width="640"
        Height="480"
        Background="White"
        >
  <Canvas x:Name="btn" Width="129" Height="30" Canvas.Left="27" Canvas.Top="63" Background="#FF19B5B6">
    <TextBlock Width="102" Height="26" Canvas.Left="20" Canvas.Top="3" Foreground="#FFFFFFFF" TextWrapping="Wrap">
      <Run Text="Method "/>
      <Run Text="C"/>
      <Run Text="all"/>
    </TextBlock>
  </Canvas>
  <TextBlock x:Name="txt" Width="488" Height="225" Canvas.Left="27" Canvas.Top="115" Foreground="#FF000000" Text="" TextWrapping="Wrap"/>
</Canvas>

4. Page.xaml.cs 코드를 아래 코드와 같이 작성..(복사 -> 붙여넣기)
주석부분은 웹서비스 생성 후 내용이 추가될 것입니다.

 using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace WebService_sample
{
    public partial class Page : Canvas
    {
        public void Page_Loaded(object o, EventArgs e)
        {
            // Required to initialize variables
            InitializeComponent();

            btn.MouseLeftButtonDown += new MouseEventHandler(btn_MouseLeftButtonDown);
        }

        void btn_MouseLeftButtonDown(object sender, MouseEventArgs e)
        {
            //이곳에서 웹서비스의 메소드를 호출할 것입니다.
        }
    }
}

5. 새로운 프로젝트를 추가합니다..처음엔 New였지만 지금은 Add입니다..

사용자 삽입 이미지



6. 아래 번호 순서대로 따라하세요.

사용자 삽입 이미지



7. 추가된 웹서비스를 오른쪽 클릭한 다음 실버라이트 프로젝트를 링크합니다..
이는 동기화를 위한 작업입니다..즉, 실버라이트 프로젝트가 바뀌면 저절로 웹서비스의 실버라이트 부분도 바뀝니다..
단, 새롭게 추가된 파일과 Silverlight.js, TestPage.html, TestPage.html.js 파일은 수동으로 교체해야 합니다..

사용자 삽입 이미지



8. 프로젝트 선택 창이 뜨면 ok, 링크 관련 창이 하나 더 뜨면 예를 클릭하세요..

9. 웹서비스를 시작 프로젝트로 설정하겠습니다..아래 이미지를 참고하세요..

사용자 삽입 이미지



10. Shift + F5를 눌러 웹서비스를 확인해 보죠..(F5를 눌렀다면 위쪽 'Modify - ' 라디오버튼 선택한 상태로 OK)
(Directory Listing -- /  이 나온다면
 Service1.asmx 를 클릭하세요..)

HelloWorld 라는 메소드가 보이세요? 그렇다면 성공한 것입니다..자, 이제 실버라이트에 연결해보죠..
URL을 복사하세요..http://localhost:51383/Service1.asmx 이런식으로 되겠죠..

11. 아래 번호 순서대로 따라하세요.

사용자 삽입 이미지



12. 아래 번호 순서대로 따라하세요..

사용자 삽입 이미지



13. 설명 7에서 동기화가 안된다고 했던 Silverlight.js, TestPage.html, TestPage.html.js 파일들을 WebService_sample에서 WebService로 복사합니다..

14. 설명 4에서 작성했던 Page.xaml.cs 코드의 주석 부분을 아래 코드와 같이 작성합니다..

 void btn_MouseLeftButtonDown(object sender, MouseEventArgs e)
 {
        //이곳에서 웹서비스의 메소드를 호출할 것입니다.
        localhost.Service1 service = new WebService_sample.localhost.Service1();
        txt.Text = service.HelloWorld();
 }

15. 마지막으로 Service1.asmx.cs 파일의 // [System.Web.Script.Services.ScriptService] 부분의 //를 삭제합니다..(주석제거)
자바스크립트 사용을 가능하게 하는 구문입니다..

16. Shift + F5를 눌러 실버라이트 페이지를 확인해 보겠습니다..
(Directory Listing -- /  이 나온다면
 TestPage.html 을 클릭하세요..)

모든 과정이 제대로 됐다면, 아래와 같이 버튼을 클릭 했을 때 Hello World 가 표시됩니다..

사용자 삽입 이미지

수고하셨습니다..^^

p.s. 첨부한 파일에는 두개의 문자열을 받아서 그 문자열을 합한 후 되돌려주는 메소드를 하나 더 추가했습니다..

아..메소드를 추가한 다음에는 웹서비스 프로젝트를 빌드하고 실버라이트에서 웹서비스 업데이트를 꼭 해줘야 합니다..Good luck~!! ^^

신고
Posted by 원강민
Adobe AIR2007.11.13 22:37

AIR 베타2가 발표된지도 좀 됐네요..

그동안 이것저것 테스트 해보며 참 좋다는 느낌이 팍 왔습니다..

플렉스 뿐만 아니라 플래시에서도 개발이 가능해 졌고,

System Tray(맥은 Dock)에 notifyIcon도 생성되며,

시스템 클립보드 사용, 윈도우 z-index 조정 가능, Drag and Drop, 암호화된 로컬 저장소, ..

또한 플래시의 기본 오른쪽 버튼 메뉴가 사라졌죠..

특히나 SQLite 지원으로 인해 데이터베이스 지향 어플리케이션에 막강한 힘이 생겼습니다..

AS3의 강력한 API와 결합해 빠르고 강력한 데스크탑 어플리케이션을 개발할 수 있는 AIR..

정식버젼이 기대됩니다!! ^____^)b

신고
Posted by 원강민
Adobe AIR2007.11.13 22:36
Adobe AIR2007.11.13 22:31

"아래 내용은 AIR 문서에서 발췌한 것으로 AIR 프로젝트를 생성하면 자동으로 만들어지는 XXX-app.xml을 생성하는 내용입니다..

우리는 기본적으로 xml 파일을 직접 만들 필요가 없으므로 아래 내용을 통해 XXX-app.xml이 어떠한 내용이구나..하는 정도로 이해하시면 됩니다.."


<어플리케이션 XML 파일>

각 AIR 어플리케이션은 어플리케이션 기술 파일을 요구합니다. 이 XML 파일은 어플리케이션의 다양한 속성을 정의하고, 사용자들에게 배포되는 AIR 패키지에 포함됩니다.

1. 다음의 구조를 가진 HelloAIR-app.xml 파일을 만듭니다.
<application>
  <name>…</name>
  <initialWindow>
    <content>…</content>
    <visible>…</visible>
  </initialWindow>
</application>

2. 이하의 속성들을 <application> 요소에 설정합니다.

- 어플리케이션 ID : appId="samples.HelloAIR"

어플리케이션 ID는 설치, 개인의 응용 파일-시스템 저장 디렉토리로의 접근, 개인의 암호화되었던 저장 장소로의 접근과 어플리케이션 통신을 위해 사용됩니다.

Note: 현재 AIR 베타에서는 동일한 어플리케이션 ID를 사용하는 어플리케이션에 대해서는 덮어쓰기를 적용합니다.

- AIR 네임스페이스 : xmlns="http://ns.adobe.com/air/application/1.0.M5"

- 어플리케이션 버젼 : version="0.1"

3. <name> 요소 추가.

- 어플리케이션 이름 : <name>Hello AIR!</name>

4. 당신의 어플리케이션 윈도우가 표시될 방법을 기술하는 <initialWindow> 요소를 설정합니다.

- 어플리케이션 가시화 : <visible>true</true>

- html 파일 : <content>HelloAIR.html</content>

5. 파일을 저장하세요. 제대로 작성한 어플리케이션 XML 파일은 아래와 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.0.M5"
appId="samples.HelloWeb" version="0.1">
  <name>Hello AIR!</name>
  <initialWindow>
  <content>HelloAIR.html</content>
  <visible>true</visible>
</application>

신고
Posted by 원강민
낙서장2007.11.13 22:06

장기 기억을 담당하는 대뇌와 같이 매사에 장기적인 관점을 가지고 싶습니다..
호흡을 길게 하며 천천히 살피며 가고 싶습니다..
새로운 사람을 만나고, 새로운 공부를 하고, 새로운 일을 할 때도 멀리 내다 보는 지혜를 원합니다..

흡- 이제 시작입니다..

신고
Posted by 원강민

티스토리 툴바