1 / 28

. NET Framework with Visual C++

. NET Framework with Visual C++. 오광섭 DaulSoft 개발2팀장 Microsoft Asia MVP. 순서. Visual C++ .NET 살펴보기 .NET Framework 이란 Managed C++ 프로그래밍 .NET Framework Class Library 기존 환경과의 통합 Q&A NOTE : Not so much about .NET Class Library. Visual C++ .NET 살펴보기. 특징

glyn
Download Presentation

. NET Framework with Visual C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET Framework with Visual C++ 오광섭 DaulSoft 개발2팀장 Microsoft Asia MVP

  2. 순서 • Visual C++ .NET 살펴보기 • .NET Framework 이란 • Managed C++ 프로그래밍 • .NET Framework Class Library • 기존 환경과의 통합 • Q&A NOTE : Not so much about .NET Class Library

  3. Visual C++ .NET 살펴보기 • 특징 • VS .NET에서 유일하게 Unmanaged Code를 생성 • 달라진 점 • 통합된 IDE • 사라진 클래스 위저드 • 솔루션 파일 • MFC, ATL 업그레이드 • 컴파일러의 성능/속도 향상, STL 지원 향상 • 디버깅 기능 향상 • 단점 • 여전히 비주얼한 화면구성은 불가능

  4. demo Visual C++ .NET 달라진 IDE

  5. .NET Framework 이란(1) • 새로운 플랫폼, .NET • 새로운 런타임 환경과 클래스 라이브러리 • MSIL (Microsoft Intermediate Language) • Assembly (.NET Binary) • IL과 Metadata 저장 (EXE / DLL 형태) • CLR (Common Language Runtime) 구성 • CTS (Common Type System) • CLS (Common Language Specification) • JIT (Just In Time) Compiler : Jitter

  6. .NET Framework 이란(2) • CLR의 기능 • Cross language implementation • Versioning • Security • Garbage Collection • Runtime Service • Object Layout • … • .NET Framework Class Library • 객체지향형 공용 라이브러리 • …

  7. .NET Framework 이란(3) Linker Source Code Compiler EXE / DLL (IL & Metadata) Meta Data Engine Managed Native Code JIT Compiler Class Loader .NET Framework Class Library Execution Security Checks CLR (Runtime Engine)

  8. demo C#, C++, VB의 IL 코드 비교 (ILDasm.exe 사용)

  9. Managed C++ 프로그래밍 (1) • 새로 등장하는 지시어들 • __gc, __value • __abstract, __sealed, __super • __interface • __int8, __int16, __int32, __int64 • __pin : MyClass __pin *pMyClass • __box (Boxing, Unboxing), dynamic_cast int iTemp = 12 ; Object* pObj = __box(iTemp) ; int iTemp2 = *dynamic_cast<__box int*>(iTemp) ;

  10. Managed C++ 프로그래밍 (2) • Destructor는 사라졌다 • 컴파일러가 알아서 완결자로 대치함 • Finalizer (완결자) • 최상위 클래스인 Object의 Finalize() 함수를 오버라이드 할 수 있다 • 프로그래머가 그 호출시기를 결정할 수 없다. • 반드시 필요한 경우에만 구현하는 것이 좋다.

  11. Managed C++ 프로그래밍 (3) • Dispose() 함수 • 비관리 리소스들을 관리하기 위해서 • IDisposable 인터페이스를 상속받아서 구현한다 • Finalize와 혼용하여 사용되는 것은 좋지않다 • 연산자 오버로딩 • CLS에 이미 정의되어 있다 • 예 : +는 op_Addtion 함수를 만들면 된다 • 동적 Array • Int32 ar[,] = new Int32[3,2] ; • __gc 배열은 포인터 연산을 할 수 없다 • __nogc 지시어 : Int32 arr __nogc[10] ;

  12. Managed C++ 프로그래밍 (4) • 프로퍼티 • 가상 데이터멤버로 멤버함수와 자동으로 연결 • VB 같은 언어에서 만든 클래스를 C++에서 사용 • Delegate 형 • C++의 함수포인터 개념을 .NET 환경에 맞게 수용 • Event • 이벤트 정의, 핸들러 선언, 연결리스트에 추가 • VC++에서는 모든 이벤트 핸들러를 직접 만들어야

  13. demo Hello World with Managed Extentions

  14. .NET Framework Library(1) • .NET Namespace • #using <mscorlib.dll> • using namespace System ; • 문자열 클래스 • 문자열 조작을 위한 각종 method 제공 • 문자열이 한번 할당되면 변경되지 않는다. (StringBuilder 클래스) • 컬렉션 클래스 • ArrayList, Stack, Queue, StringCollection …

  15. .NET Framework Library(2) • Windows::Form • .NET의 모든 GUI를 담당하는 클래스 모음 • System::Windows::Forms, Design으로 구성 • System::Drawing • GDI+ • Graphics 클래스 • 파일처리 • System::IO • Stream 클래스 • BinaryReader, BinaryWriter • TextReader, TextWriter

  16. demo Windows::Forms

  17. .NET Framework Library(3) • XML 다루기 • XML은 .NET의 핵심기술, 지원 클래스 제공 • System::Xml, System::Xml::Schema, Serialization, Xpath, Xsl • XmlTextReader, XmlTextWriter, XmlDocument, …. • ADO .NET을 사용한 DB Access • 연결형 : 데이터소스에 직접연결하여 데이터관리 • 비연결형 : DataSet을 사용, 캐쉬데이터 관리

  18. demo ADO .NET

  19. .NET Framework Library(4) • 웹서비스 • COM을 대신하여 분산 어플리케이션을 쉽게 제작하기 위해 등장한 개념 • SOAP (Simple Object Access Protocol) : XML과 HTTP를 사용한 원격호출 제공 • WSDL (Web Service Description Language) : 함수리스트, 파라미터 정보 COM의 타입라이브러리와 유사

  20. demo .NET Web Service

  21. .NET Framework Library(5) • ATL Server • 웹기반 프로그램과 웹서비스 제작 지원 • ATL Web Service는 .NET 어플리케이션이 아닌 Win32 환경의 클라이언트가 .NET 웹서비스를 사용할 수 있도록 하기 위해서 사용 • 예전의 ATL과 크게 달라진 점은 없다.

  22. demo .NET ATL Server

  23. 기존 환경과의 통합 • Win32 DLL을 가져다 사용하는 방법 • P/Invoke (Platform Invoke)를 통해 Win32 DLL 함수 호출 • 구조체 사용하기 : StructLayoutAttribute, FieldOffsetAttribute 클래스 사용 • COM 컴포넌트 사용 • COM은 구시대 유물로 전락하는가 ? • RCW (Runtime Callable Wrapper)생성 • tlbimp.exe (Type Library Importer)를 사용 • Late Bind를 통해 실행시 바인딩이 가능하다 • COM에서 .NET 컴포넌트를 호출가능 (CCW – COM Callable Wrapper를 사용) • ActiveX 컨트롤 사용 • Aximp.exe를 사용하여 RCW 생성

  24. demo Win32 DLLs in .NET with Visual C++

  25. demo COM in .NET with Visual C++

  26. demo ActiveX in .NET with Visual C++

  27. 참고문헌 • .NET Framework with Visual C++, Chris Lucas, TechEd 2002 • Microsoft Visual C++ .NET Step by Step, 서우석 역, 정보문화사 • C# and the .NET Platform, 원유태외 3명 역, 인포북 • MSDN, http://msdn.microsoft.com • The C++ Programming Language, Bjarne Stroustrup, Addison-Wesley • Return of the Rich Client, Jason Clark, MSDN Magazine June 2002 http://msdn.microsoft.com/msdnmag/issues/02/06/rich/rich.asp

  28. Q&A • madchick@daulsoft.com • http://www.madchick.com

More Related