'닷넷(.NET)' 카테고리의 다른 글
.Net 리모팅 (0) | 2012.07.21 |
---|---|
Visual Studio 2010 VB.Net에서 비동기 웹 서비스 호출 (0) | 2012.07.19 |
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
.Net 리모팅 (0) | 2012.07.21 |
---|---|
Visual Studio 2010 VB.Net에서 비동기 웹 서비스 호출 (0) | 2012.07.19 |
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
대개 일반적으로 서버 - 클라이언트의 프로그램을 작성한다 이를 투티어(Two-tier) 응용프로그램이다.
이외에 다 계층 프로그램을 작성시
Business 티어에서 사용하는 방법 중의 하나가
.Net 리모팅이다.
이전에 웹 서비스도 마찬가지로 다계층 방식으로 응용 프로그램 작성시
Business 티어 에서 사용하는 한 방법일 뿐이다.
그럼 리모팅이 무엇인지 알아보자.
서로 다른 어플리케이션 간에 객체나 메소드에 접근하는 분산 객체 기술이다.
다은음 기본적인 동작을 흐름도로 표시했다.
-마샬링
a에서 b로 객체의 메소드 호출시
메소드 호출에 필요한 전달 인수와, 또는 반대로 결과값 등을 묶어서
전달하는 것을 마샬링이라한다.
-참조에 의한 마샬링은 두 응용프로그램이 같은 도메인 즉 같은 컴에
존재하는 경우
-값에 의한 마샬링 두 응용 프로그래이 서로 다른 도메인에 있는 경우
사용되며, 객체의 직력화가 필요하다.
포매터
두 응용프로그램 간에(도메인) 마샬링된 값이 전달될때
마샬링된 값은 메세지로 변환되어 전송이 되는대
이 메세지로 변환하는 작업을 하는것이 포매터이다.
포매터에는 SOAP 포매터와 바이너리 포매터가 있다.
채널
위 포매터에 의해서 생서된 메세지가 전달되는 통로를
채널이라하면 HTTP 채널과 TCP 채널이 있다.
포매터를 지정하지 않으면
HTTP 채널에는 SOAP 포매터가 사용되며
TCP 채널에는 바이너리 포매터가 사용된다.
-프록시
-메시지 싱크(언마샬링)
-호스팅 어플리케이션
원격 객체는 객체이기 때문에 클라이언트의 요청을 받아 원격 객체의 소멸과 생성을 하는 대리인이
필요한대 이것을 해주는 것이 호스팅 어플리케이션이다.
여기서는 채널,포매터,원격 객체의 활성화 모드를 설정한다.
정리하면 리모팅은
서버 ----------- 호스팅 어플리케이션 ---------- 클라이언트라고 보면 된다.
나머지 내용들은 내부적으로 처리되는 내용들이다.
활성화란 원격 객체가 생성되어 원격 호출을 받을 준비가 된 상태를 말하며
여기에는 서버 활성화와 클라이언트 활성화가 있다.
서버 활성화에는 또다시 SingleCall과 SingleTon이 있다.
서버 활성화는 원격 객체의 생성과 소멸을 시점을 결정한다.
SingleCall은 같은 클래스 원격 호출이 이루어질때마다 객체가 따로 생성이된다.
즉, 클라이언트 메소드가 호출될 때마다 원격 개체가 생성이되며,
객체의 상태가. 유지 되지 않는다.
SingleTon은 같은 클래스 하나의 객체만 생성이되고, 원격 호출을 모두 이 객체가 처리한다.
즉, 서버에는 오로지 하나만의 객체가 생성이 되며 이 소멸은 서버가 저하며, 클라이언트가 얼마가 되었든
그것과 무관하게 서버의 하나의 클래스에는 하나의 개체만 생성이 된다. 따라서 각 클라이언트는 같은 객체를
공유하게 된다.
다음 이미지는 SingelTone과 SingeCall의 차이이다.
전자는 Singlecall이고 후자는 SingleTone이다.
클라이언트 활성화는 원격 객체의 활성화를 클라이언트가 결정한다,
즉 클라이언트에서 객체를 생성하면 바로 원격 객체하나가 생성되고,클라이언트에서 참조가 끝나면
바로 원격 객체가 소멸된다. CAO(Client Activeate Object) 모드라고 한다.
서버 활성화 방법
-원격 개체
원격 개체는 새 프로젝트에서 클래스 라이브러리(DLL) 선택하여 프로젝트를 생성한다.
원격 개체의 클래스는 System.MarshalByRefObject를 상속받아야만 한다.
- 호스팅 프로그램
참조에서 원격 개체 프로젝트를 추가한다.
System.Runtime.Remoting을 추가한다.
URL 인코딩,디코딩 클래스 (0) | 2012.08.23 |
---|---|
Visual Studio 2010 VB.Net에서 비동기 웹 서비스 호출 (0) | 2012.07.19 |
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
window Form 응용프로그램을 시작하고
웹서비스를 참조하게 되면
해당 프로젝트가 저장되는 폴더의
Web Reference 폴더 아래의 참조 Namesapce명의 폴더 아래
Reference.vb라는 파일이 있다.
이 파일에는 참조하는 웹서비스에 대하여 자동으로 생성된
추가적인 메소드들이 들어있다.
웹서비스 메소는 HelloWord였는대
추가적인 이벤트 HelloWorldCompleted
추가적인 메소드 HelloworldAsync,OnHelloWorldOperationCompleted
가 자동으로 생성되어있다.
HelloWord를 직접 호출하게 되면 동기 호출이 되고
결과가 반환될때까지 실행은 중지상태가 된다.
HelloWorldAsync를 호출하게 되면 비동기 호출이 되며
호출 뒤에 그 다음이 코드가 바로 실행이 되며
웹서버로 HelloWorld메소드에 호출에 대한 응답이 완료되면
HelloWorldOperationCompleted 이벤트가 발생된다.
또 다른 방법으로는
VB.Net에 자동으로 생성되는 코드로
Begin웹메소드명, End웹메소드명으로 생성되는 방식의 코드도 있다.
Begin으로 시작하는 메소드는 비동기 호출을 시작하는것이고
End로 시작하는 메소드는 비동기 호출 작업을 종료하는 것이다.
위 이미지와 같이 Begin,End로 시작하는 메소드가 자동으로 생성되는 방식이라면
비동기 대리자를 사용하여 처리하면 된다.
그러면 HelloWorld에 대한 비동기 호출을 지원하기 위한 VB.Net이 자동으로 생성한 코드로
BeginHelloWorld와 EndHelloWorld가 생성이 되있다고 가정하자.
또한 이런 방식의 코드에는
System 네이스페이스에
비동기 작업 종료시 메소드를 호출하기 위한 AsyncCallback 대리자와
웹메소드가 전달된 값고, 비동기 호출 작업 진행 상태를 알기 위한 IAsyncResult 인터페이스가 필요하다.
코드는 다음과 같다.
Dim Ws As New Test.Test
Dim Cb As New AsyncCallback(AddresOf EndWebService)
dim St As IAsyncResult
St = BeginHelloWorld(Cb,Ws)
Public Sub EndWebService(ByVal ar as IAsyncResult)
dim Ws As Test.Test
Ws=ar.AsyncState
MsgBox(Ws.EndHelloWorld(ar))
End Sub
우선 웹참조한 개체를 선언한다.
Dim Ws As New Test.Test
다음은 비동기로 호출할 작어에 대한 종료 메소드를 호출할 대리자를 선언한다.
Dim Cb As New AsyncCallback(AddresOf EndWebService)
비동기 호출 작업이 종료될때 호출할 메소드는 EndWebService이다.
AsyncCallback 대리자 호출할 메소드는 형식은
Public Sub 메소드명(ByVal ar as IAsyncResult)
ar은 비동기 호출 작업 상태를 얻을수 있다.
다음은 비동기 작업 상태를 확인하기 인터페이스 변수를 하나 선언한다.
dim St As IAsyncResult
이제 준비 단계는 끝났다.
비동기 호출을 해보자.
이전에 말했듯이
비동기 호출을 하기 위해서는 Begin으로 시작하는 메소드를 호출하면 된다.
St = BeginHelloWorld(Cb,Ws)
여기서 인수 마지막에서 두번째는 비동기 작업시 사용할 대리자를 지정하고
마지막에서 첫번째는 비동기 호출 메소드가 포함된 개체를 지정한다.
반환은 비동기 작업 상태를 확인할수 있는 IAsyncResult 인터페이스를 갖는 개체를 반환한다.
비동기 호출이 진행이 되었으니
웹 메소드의 작업이 완료되면
비동기 호출 대리자에 할당한 메소드가 호출이 된다.
그 대리자에서 넘어오는 인수 값도 역시
비동기 작업 상태를 확인할수 있는 IAsyncResult 인터페이스를 갖는 개체를 반환한다.
이 개체에서 AsyncState 속성을 참조하게 되면
비동기 호출 메소드가 포함된 개체를 얻을수 있다.
dim Ws As Test.Test
Ws=ar.AsyncState
마지막으로 비동기 작업을 종료하는 메소드를 호출해주어야 한다.
Ws.EndHelloWorld(ar)
바로 End로 시작하는 메소드를 호출하면 된다.
인수로는 메소드에 전달된 비동기 작업 상태를 나타내는 개체를
지정하면 된다.
반환은 웹메소드 호출 결과를 반환한다.
MsgBox(Ws.EndHelloWorld(ar))
다음은 폼 로드 이벤트에 웹 메소드를 비동기,동기로 호출했을때의 차이이다.
비동기 호출하게 되면 창이 보이고 메세지 박스도 같이 보인다.
그러나 동기 호출하게 되면 메세지 박스가 우선 표시된 후에
확인 버튼을 누른 후에에 비로서 폼이 보인다.
URL 인코딩,디코딩 클래스 (0) | 2012.08.23 |
---|---|
.Net 리모팅 (0) | 2012.07.21 |
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
먼저 기본 Form Widnow 응용프로그램을 시작한다.
솔루션 탐색기에서 솔루션명에서 오른쪽 버튼을 누른다.
다음과 같음 메뉴가 표시되면
웹 참조 추가 메뉴가 따로 없기 때문에 서비스 참조 추가를 선택한다.
그러면 다음과 같은 창이 뜨면
하단의 고급 버튼을 클릭하면 다음과 같은 창이 뜬다.
하단의 웹 참조 추가 버튼을 클릭하면 다음 이미지와 같은 창이 뜬다.
여기서 상단의 임지처럼 URL 옆의 텍스트 박스에 해당 웹서버/가상 디렉토리/asmx파일명을 지정한다.
정확한 경로라면 이미지 처럼 해당 웹서비스(클래스)에 대한 외부에 공개된 메소드가 표시된다.
오른쪽의 웹 참조 이름을 프로젝트에서 사용할 이름을 지정한다.
그리고 참조 추가를 선택한다.
다음 이미지는 솔루션 탐색기 웹참조가 추가된 상태의 이미지 이다.
Web Reference 아래 웹서비스가 추가된것이 보인다.
아래 이미지 처럼 아주 간단한 소스를 통하여 웹서비스에 접근할수 있다.
웸참조명.클래스명
여기서 웹 서비스 사용시에
노출된 메소드를 그냥 호출하게 되면 동기 상태로 호출된다.
즉 호출하는 시점에 프로세스는 일시 정지가 된다
웹 메소드의 실행이 끝날때까지 실행으 호출 시점에서 제어권은 웹 메소드로 넘어가며
웹 메소드의 실행이 종료가 웹 메소드에서 제어권을 바당 다시 하위 코드들이 실행된다.
따라서 작업이 오래 걸리는 웹 메소드라면 프로세스가 일시 중지된 상태처럼 보인다.
이를 개선하기 위한 비동기 호출로 웹섭스를 사용하는 방법을 알아보자.
.Net 리모팅 (0) | 2012.07.21 |
---|---|
Visual Studio 2010 VB.Net에서 비동기 웹 서비스 호출 (0) | 2012.07.19 |
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
모듈을 사용한 다중 파일 어셈블리(결과물:dll) 만들기 (0) | 2012.07.05 |
웹서비스란
웹서버에서 구동되서 외부에서 접근가능한 네임스페이스를 갖고 메소드를 지원하는 서비스를 말한다.
Visual Studio 2010의 vb.net에서 웹 서비스를 만들어보자.
우선 웹서비스를 만들기 위해서는 웹서버가 필요하다.
iis를 설치한다.
제어판에서 윈도우 설치 관련 항목을 선택해
IIS를 선택하여 설치한다.
Visual Studio 2010의 vb.net을 시작한다.
파일 메뉴의 새 웹 사이트를 선택한다
메뉴를 선택하게 되면 다음과 같은 창이 뜬다
이 창에서 상단에 Net Framework를 선택하는 박스가 보이는대 이 박스에서
Net Framework 2.0.3.0 3.5 중 하나를 선택해야 웹 서비스 항목이 표시된다.
중앙에 ASP.Net 웹 서비스를 선택하고
하단의 URL 입력창에 웹서버의 디렉토리를 지정해 줄수 있다.
여기서 WebSite 대신에 다른 이름으로 지정하고 확인을 누르게 되면
웹 서버에 지정한 이름으로 가상 디렉토리가 생성이 된다.
이렇게 가상 디렉토리가 생성되는것이 싫으시면
찾아보기를 사용하여 웹서버의 디렉토리를 선택할수 도 있다.
확인 버튼을 누른다.
그러면 웹 서비스 기본 골격이 표시된다.
솔루션 탐색기는 다음과 같이 표시된다.
기본 코드는 Service.vb에 작성한다.
Service.vb에 기본 골격 내용은 다음과 같다.
Namespace에 할당할 이름과
외부에 노출할 메소드는 메소드 앞에 <WebMethod()> 특성을 지정하고, Public로 함으로서
왜부에 놓출할수 있다.
저장하고 컴파일한다. 오류가 없개
그리고 솔루션 파일은 문서 밑의 Visual Studio 10의 프로젝트 밑에 저장된다.
한가지 더
다음 이미지는 service.asmx의 내용이다.
끝에 Class의 할당된 문자열은 Service.vb에 포함된 클래스명과 동일해야 한다.
이로서 웹서비스는 준비가 되었다.
다음번에는 이 웹서비스를 사용항 윈도우 응용프로그램을 만드는 방법을 알아보자.
Visual Studio 2010 VB.Net에서 비동기 웹 서비스 호출 (0) | 2012.07.19 |
---|---|
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
모듈을 사용한 다중 파일 어셈블리(결과물:dll) 만들기 (0) | 2012.07.05 |
내가 만든 결과물 확인하기 (0) | 2012.07.05 |
어셈블리(exe나 dll)은 전용 어셈블리와 공유 어셈블리로 나윈다.
전용 어셈블리는 하나의 응요프로그램에서 사용하기 위한 어셈블리이며
공유 어셈블리는 여러개의 응용 프로그램에서 사용할수 있도록 만들것을 공유 어셈블리라고 봄다.
아무 설정도 하지 않고 어셈블리를 만들개면 그 어셈블리는 전용 어셈블리이다.
공유 어셈블리는 전용 어셈블리와 같은 방식으로 만든 후에 3가지의 추가적인 처리가 필요하다.
또한 전용 어셈블리를 사용하는 경우는 사용하는 응용프로그램의 bin 디렉토리에 전용 어셈블리가 복사되나.
공유 어셈블리는 여러 응용프로그램이 사용해도 어셈블리 캐쉬에 1개만 존재한다.
1. 명령 프롬프트에서 sn 명령을 사용하여 공개키(*.key) 파일을 생성한다. 이 파일은 어셈블리명이 유일하도록 한다.
2. 개발 환경에서 AssembleInfo.vb 파일에서(언어마다 해당 응용프로그램의 어셈블리 정보를 포함하는 파일)
1번에서 생성한 키 파일을 설정해 주어야 한다.
속성 AssemblyKeyFile에 1번에서 생성한 파일의 경로를 지정한다.
그리고선 우선 컴파일한다.
3. 생성된 파일을 어셈블리 캐쉬에 등록해야 한다. 이 위치는 윈도우 설치 폴더의 assembly 폴더이다.
그냥 생성한 파일을 위 폴더에 복사하면 된다. 삭제도 단순히 파일을 삭제하면 된다.
visual Studion 2010의 vb.net에서 웹서비스 사용하기 (0) | 2012.07.19 |
---|---|
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
모듈을 사용한 다중 파일 어셈블리(결과물:dll) 만들기 (0) | 2012.07.05 |
내가 만든 결과물 확인하기 (0) | 2012.07.05 |
DllImport, 외부 DLL의 함수 호출 (0) | 2012.07.01 |
IDE 환경에서는 다중 파일 어셈블리를 만들수가 없다.
따라서 콘솔(명령 프로프트) 상에서 만들어야 한다.
콘솔 창은 다음과 같이 뛰운다.
위 이미지와 같이 자신의 PC에 설치된 visual studio에 따라서
툴 메뉴의 명령 프롬프트 메뉴를 선택하면 콘솔창을 열수 있다.
다중 파일 모듈을 만들기 위해서는
모듈 파일이 필요한다.
이는 텍스트 파일에 코드를 적어주면 된다
namespace ~
class ~
코드
end class
end namespace
이런 식으로 작성하고 확장자를 vb로 하여 저장한다.(a.vb라 칭한다)
이 파일을 컴파일하여 확장자가 netmodule로 된 파일을 얻어야 한다.
우선 콘솔 창을 연다.
코드가 vb.net 코드이므로
vbc를 사용한다.
vbc /t:module a.vb를 적어주면
a.netmodule라는 파일이 생긴다
이는 모듈 파일이다.
모듈 파일은 메니페스트가 존재하지 않는으므로 독자적으로 실행될수 었다.
메니페스트가 존재하는 파일에 포함이 되어야만 실행을 할수 있다.
그런 메니페스트가 있는 파일과, 생성한 모듈 파일을 포함해 보자.
이 파일도 마찬가지로 모듈 만들때와 같이 텍스트 파일로 작성한다.(b.vb라 칭한다)
모듈을 포함하는 컴파일은 다음과 같이 한다.
vbc /t:library /addmodule:a.netmodule /out:c b.vb
/t:library이기 때문에 dll 파일이 생성되므로 c.dll 이라는 파일(어셈블리)이 생성된다.
웹서비스란?, vb.net 2010에서 웹서비스 만들기 (0) | 2012.07.19 |
---|---|
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
내가 만든 결과물 확인하기 (0) | 2012.07.05 |
DllImport, 외부 DLL의 함수 호출 (0) | 2012.07.01 |
vb.Net에서 switch 함수 사용 (0) | 2012.06.30 |
시작-해당 stuio 메뉴-툴-명령 프로프트 실행
ildasm
창이 하나 뜨면 파일 메뉴에 열기에서 자신의 결과물(exe,dll)을 선택하면
그 결과물에 대한 정보를 볼수있다
메니페스트,네임스페이스,메타 데이타,등의 정보를 확인할수 있다.
전용 어셈블리, 공유 어셈블리 (0) | 2012.07.06 |
---|---|
모듈을 사용한 다중 파일 어셈블리(결과물:dll) 만들기 (0) | 2012.07.05 |
DllImport, 외부 DLL의 함수 호출 (0) | 2012.07.01 |
vb.Net에서 switch 함수 사용 (0) | 2012.06.30 |
visual studio에서 각 코드의 색 변경 (0) | 2012.06.30 |
DllImport는 System.Runtime.InteropServices.DllImportAttribute 개체를 생성하며
외부 DLL의 이름이나 서수를 메서드와 연결시킨다.
예
<DllImport("wininet.dll", SetLastError:=True, _
CharSet:=CharSet.Auto, _
EntryPoint:="FindFirstUrlCacheGroup", _
CallingConvention:=CallingConvention.StdCall)> _
Shared Function FindFirstUrlCacheGroup( _
ByVal dwFlags As Int32, _
ByVal dwFilter As Integer, _
ByVal lpSearchCondition As IntPtr, _
ByVal dwSearchCondition As Int32, _
ByRef lpGroupId As Long, _
ByVal lpReserved As IntPtr) As IntPtr
End Function
이는 wininet.dll에 FindFirstUrlCacheGroup 이름의 함수를 Shared Function FindFirstUrlCacheGroup 함수에 연결시킨다.
따라서 Shared Function FindFirstUrlCacheGroup 함수를 호출하게 되면 wininet.dll의 FindFirstUrlCacheGroup을 호출하게 된다.
모듈을 사용한 다중 파일 어셈블리(결과물:dll) 만들기 (0) | 2012.07.05 |
---|---|
내가 만든 결과물 확인하기 (0) | 2012.07.05 |
vb.Net에서 switch 함수 사용 (0) | 2012.06.30 |
visual studio에서 각 코드의 색 변경 (0) | 2012.06.30 |
vb.net에서 이벤트 구문 (0) | 2012.06.29 |
Switch 함수를 그냥 사용하면 에러가 표시된다.
이를 위해서는 Switch 함수를 포함하는 모듈명을 적어주어야 한다.
Interaction.Switch 와 같이
다른 함수나,메서드을 사용할때
정확하게 기제했는대 에러가 나면
해당 함수,메서드가 포함된 모듈이나 클래스명을 적는다
그래도 에러면 네임스페이스까지 적는다.
내가 만든 결과물 확인하기 (0) | 2012.07.05 |
---|---|
DllImport, 외부 DLL의 함수 호출 (0) | 2012.07.01 |
visual studio에서 각 코드의 색 변경 (0) | 2012.06.30 |
vb.net에서 이벤트 구문 (0) | 2012.06.29 |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
visual studio의 도구 메뉴의 옵션 메뉴를 선택하면 아래 이미지 같은 창이 하나 뜬다.
이 창에서 환경의 글꼴및 색에서 표히 항목의 색을 변경하면 된다.
DllImport, 외부 DLL의 함수 호출 (0) | 2012.07.01 |
---|---|
vb.Net에서 switch 함수 사용 (0) | 2012.06.30 |
vb.net에서 이벤트 구문 (0) | 2012.06.29 |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
VB.NET 클래스 한정자 (0) | 2011.10.14 |
vb.net에서 이벤트를 처리 하는 방법은 두 가지가 있다.
그중 한가지는 이벤트를 가지는 개체를 담을 변수를
withevents와 같이 선언하면 그 변수를 사용 이벤트 처리를 할수 있다.
다음은 일반적인 이벤트 처리 구문이다.
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
여기서 vb6와 같은 Form1_Load가 있다
vb6에서는 이것이 의미를 가진다. Form1이라는 개체에 Load 이벤트가 발생하면 처리하는 이벤트 프로시저라는것을 나타태나
vb.net에서 아무런 의미가 없다. Form1_Load를 사용자가 원하는 프로시저명으로 해도 관계없다.
다은 인수로 ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs 와 같이 구문에 표시되어 있는대
vb.net에서는 이벤트에 항상 2개의 인자가 전달된다.
전자는 (여기서는 ByVal eventSender As System.Object)은 이 이벤트를 발생된 개체를 나타낸다.
후자는 (여기서는 ByVal eventArgs As System.EventArgs)은 이 이벤트 발생에 추가적인 정보들을 담은 개체가 전달된다.
다음으로 Handles이다.
어떤 이벤트가 발생될때 이 프로시저를 처리할지 지정한다.
여기서는 Handles MyBase.Load 와 같이 기술되어 있는대
이는 이 개체의 부모 개체에 Load 이벤트가 발생되면 이 프로시저를 실행하게 된다.
Handles 뒤에 , 를 사용 여러개의 이벤트를 서술할수 있다.
vb.Net에서 switch 함수 사용 (0) | 2012.06.30 |
---|---|
visual studio에서 각 코드의 색 변경 (0) | 2012.06.30 |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
아래 링크는 Visual Studio 2010에서 크리스탈 레포트를 사용하기 위한 유듀브 동영사이다.
Crystal Reports Visual Studio 2010 사용하기
새 프로젝트를 시작
새항목 추가에서 크리스탈 레포트 템플릿을 추가하면
크리스탈 레포트를 다운받을수 있는 링크가 표시되면
표시된 링크에서 크리스탈 레포트를 다운받아 설치하면 사용할 수 있다.
크리스탈 레포트의 필드를 설정한후에
폼에 크리스탈 레포트 뷰어 컨트롤이 표시되어야
뷰어를 폼과 크리스탈 레포트와 연결할 수 있는대
이것이 도구모음에 표시되지 않는다.
이것은 프로제트 속성에
대상 프레임워크 항목을 Net Framework 4로 바꾸면
도구 모음에 표시된다.
C#은 유튜브 영상에 나온것처럼 설정하면 된다.
Visual Basic는 프로젝트 속성 창에서
컴파일 탭의 제일 하단의 고급 컴파일 옵션 버튼을 누른다
고급 컴파일 옵션창이 보이면
제일 하단의 대상 프레임 워크를 NET Framework 4로 변경하면
크리스탈 레포트 뷰어가 표시된다.
visual studio에서 각 코드의 색 변경 (0) | 2012.06.30 |
---|---|
vb.net에서 이벤트 구문 (0) | 2012.06.29 |
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
VB.NET에서 리터럴(liternal) 형식 문자 (0) | 2011.10.06 |
vb.net에서 이벤트 구문 (0) | 2012.06.29 |
---|---|
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
VB.NET에서 리터럴(liternal) 형식 문자 (0) | 2011.10.06 |
VB.Net에서 리터널(liternal) 형식 문자 (0) | 2011.10.04 |
확장메소드는 클래스의 멤버를 확장시켜 준다. 확장메소드 지정은 모듈에서 지정해야 한다.
다음과 같은 Imports System.Runtime.CompilerServices 구문이 필요하다.
<Extension()>
Public Sub DisplayString(ByVal obj As String) As String
console.writeline(obj)
End Function
위 구문은 해당 프로젝트에서 String 클래스의 메소드에 DisplayString이라는 확장 메소드를 추가한다.
String 개체.DisplayString로 사용할수 있다.
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
---|---|
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 리터럴(liternal) 형식 문자 (0) | 2011.10.06 |
VB.Net에서 리터널(liternal) 형식 문자 (0) | 2011.10.04 |
CTS(Common Type System) (0) | 2011.10.04 |
S | Shor |
I | Integer |
L | Long |
D | Decimal |
F | Single |
R | Double |
C | Char |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
---|---|
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
VB.Net에서 리터널(liternal) 형식 문자 (0) | 2011.10.04 |
CTS(Common Type System) (0) | 2011.10.04 |
다음 표에서는 Visual Basic에서 사용할 수 있는 묶기 문자와 형식 문자를 보여 줍니다.
데이터 형식 |
묶기 문자 |
추가된 형식 문자 |
Boolean |
(없음) |
(없음) |
Byte |
(없음) |
(없음) |
Char |
이때 |
C (중요) |
Date |
# |
(없음) |
Decimal |
(없음) |
D 또는 @ |
Double |
(없음) |
R 또는 # |
Integer |
(없음) |
I 또는 % |
Long |
(없음) |
L 또는 & |
Short |
(없음) |
S |
Single |
(없음) |
F 또는 ! |
String |
이때 |
(없음) |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
---|---|
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
VB.NET에서 리터럴(liternal) 형식 문자 (0) | 2011.10.06 |
CTS(Common Type System) (0) | 2011.10.04 |
Visual Studio 2010에서 크리스탈 레포트 사용하기 (0) | 2012.06.07 |
---|---|
VB.NET 클래스 한정자 (0) | 2011.10.14 |
VB.NET에서 클래스 확장(확장 메소드)(Extension) (0) | 2011.10.14 |
VB.NET에서 리터럴(liternal) 형식 문자 (0) | 2011.10.06 |
VB.Net에서 리터널(liternal) 형식 문자 (0) | 2011.10.04 |