스마트 클라이언트가 뭔지 궁금하신분은 다른 사이트에서 찾아보시고 뭐 간단히 말해 닷넷판 ActiveX되겠다.

일단 VS2005있으면 좋겠고 없으면 말고다. ㅡㅡ;;

먼저 새로운 프로젝트를 생성하고 다음과 같이 "Windows 컨트롤 라이브러리"로 설정한뒤 이름을 "Simple"이라고 하자.

resize_image
(잘안보이면 그림을 클릭 함해주면 제대로 보임)
위와 같이 하면 아래와 같이 Simple이라는 폴더가 생성되고 각종 파일이 주루루룩 생긴다.
resize_image
왼쪽에 쪼끄만하게 회색박스가 생길텐데 거기다가 Button컨트롤하나를 올려놓자.
사용자 삽입 이미지
그리고 "button1"을 더블클릭해서 이벤트를 자동생성하고 코딩창에 "MessageBox.show("Hello World!");"를 입력하자.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace Simple {     public partial class UserControl1 : UserControl     {         public UserControl1()         {             InitializeComponent();         }         //아래 4줄이 새로 추가된 코드임.         private void button1_Click(object sender, EventArgs e)         {             MessageBox.Show("Hello World!");         }         //여기까지임.     } }


이제 "F5"키를 눌러서 디버그 모드에서 테스트 함해보자.
resize_image

아직까지는 문제없이 잘된다.
이제 원래 폴더 밑에 "Simple\bin\Debug"로 가보면 "Simple.dll"이 생성되어 있을것이다.
이놈을 웹루트로 옮기고 아래와 같이 코딩하고 test.htm으로 저장하자.
<object
    id="Simple"
    classid="Simple.dll#Simple.UserColtrol1"
    width="150" height="150">
</object>


id는 알아서 설정해도 될것이다.
그러나 "classid 속성"은 중요하므로 다음과 같은 룰을 따르자.

"classid = [dll명]#[namespace].[class]"

예제에서보면 "Simple.dll"이니 당근 dll명은 "Simple.dll"이다.
namespace는 C#코드에서 "namespace Simple"라고 된 부분이 바로 해당 dll의 namespace이니 요기서 따오면 "Simple"이 되는 것이다.
Class는 "public partial class UserControl1 : UserControl"라고 된부분에서 따오면 된다.
그래서 class부분은 "UserContol1"이 된것이다.
간단한 공식이니 헷갈리지 말고 ^^

이제 웹서버를 통해 실행해보면 다음과 같이 잘 뜬다.
사용자 삽입 이미지
처음 만들어보는 거라 삽질좀 했다. 왜? 그냥 "test.htm"파일을 더블클릭했더니만 절대 실행안된다. 반드시 웹서버에 Request해서 받도록 하자.
2007/04/23 18:25 2007/04/23 18:25

트랙백 주소 :: http://www.wolfpack.pe.kr/trackback/103