Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windows Programming Environments

Similar presentations


Presentation on theme: "Windows Programming Environments"— Presentation transcript:

1 Windows Programming Environments
Jim Fawcett CSE775 – Distributed Objects Spring 2007

2 Windows Programming Environments
Win32 API: virtually all of the programming functionality directly or indirectly used in any Windows program, e.g., I/O, windows, controls, threads, sockets and other IPC, memory management, device management C++ Std Libraries: Console I/O, file abstraction, math, STL containers …, memory allocation, … Visual Studio Libraries and Facilities: Dialog designers, thread abstraction, COM related wrappers – smartpointers, BSTRs, … COM Libraries and Run-Time: Support for component models, e.g., definition of interfaces, management of lifetime, image packaging in DLLS and EXEs, persistence, structured storage, RPC … ATL Libs: Wrappers around COM that simplify its programming model, wrappers for COM types and smart pointers WTL: Wrappers around Win32 windows and controls that provide a light-weight GUI framework MFC: Classes, macros, and data structures that support the development of GUI applications in a heavy weight framework .Net Managed Environment: New execution model, wrapping of most of the Win32 API, library facilities that cover most of the C/C++ library functionality in a manner consistent with its managed environment, WinForms - a medium weight GUI framework

3 Strengths of Each Environment
Win32 Natively provides windows, controls, memory management, process management, threads, directory and file management, access to Registry. C++ Widely supported and powerful object model, very well designed abstractions for console I/O, file management, containers, math. Visual Studio Libraries Smoothly integrates into all the Windows programming environments. Supports a COM-based programming model. COM Early and effective support for Component Engineering, allowing modifications to parts of large complex systems without rebuilding the entire system. ATL Efficiently and effectively hides a lot of COM’s complexity and weak encapsulation. WTL Very light weight and flexible wrapping of Windows many GUI facilities. Integrates well with ATL programming model. MFC Rapid development of complex user interfaces, provided that you want to use its models. .Net Managed Environment Elegant and well encapsulated wrapping of most of the Win32 API. Provides a very easy to use GUI framework, supports managed code.

4 What Environments Lack
Win32 No objects directly usable by applications Byte and address oriented, no high-level types C++ No threads, sockets, directory management, windows Visual Studio Libraries Just support for other programming environments COM Weak object model - no inheritance of implementation, very limited types, weak encapsulation Weak networking, no windows ATL Weak windowing, no networking other than COM’s limited facilities. WTL Focuses exclusively on providing support for GUIs, not supported by Microsoft MFC Focuses mostly on providing support for GUIs with a ridgid architectural model .Net Managed Environment Requires run-time and libraries not found by default on Windows systems (that will change with Vista), uses a shallow reference object model, not ideal for some applications, e.g., scientific programming and memory intensive applications like medical imaging.


Download ppt "Windows Programming Environments"

Similar presentations


Ads by Google