Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.

Slides:



Advertisements
Similar presentations
Microsoft Transaction Server COM + Jim Lyon HPTS 99.
Advertisements

Introduction to .NET Framework
.NET Framework Overview
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research
Intro to C# Language Richard Della Tezra IS 373. What Is C#? C# is type-safe object-oriented language Enables developers to build a variety of secure.
C++/CLR Jim Fawcett CSE687 – Object Oriented Design Spring 2009.
2. Developing in.NET and C#. 2 Microsoft Objectives “Microsoft.NET development is based on an underlying framework of tools and classes. These tools and.
Abstract Data Types and Encapsulation Concepts
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
Rajeswari Indupuri Introduction to.NET Framework.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Comparison of OO Programming Languages © Jason Voegele, 2003.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
.NET Framework Introduction: Metadata
Introduction to .Net Framework
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Session 1 - Introduction and Data Access Layer
C# A 1 CSC 298 Introduction to C#. C# A 2 What to expect in this class  Background: knowledge of an object oriented language of the C++, Java, … family.
11 Getting Started with C# Chapter Objectives You will be able to: 1. Say in general terms how C# differs from C. 2. Create, compile, and run a.
.NET Framework & C#.
Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a library for.
Introduction to ASP.NET MIS 324 Professor Sandvig.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
MESDA Conference 2002 MESDA Annual Conference 2002 Software Development Track Java vs. C#
.Net – The First Glance What Is.Net, Why Use.Net.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
C# and.NET. .NET Architecture  Compiling and running code that targets.NET  Advantages of Microsoft Intermediate Language (MSIL)  Value and Reference.
.NET Mobile Application Development XML Web Services.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
Common Language Infrastructure
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Introducing the Microsoft® .NET Framework
Jim Fawcett CSE775 - Distributed Objects Spring 2014
Review of Last Year’s Midterm
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Windows Programming Environments
CSE791 - Distributed Objects, Spring 2002
Jim Fawcett CSE775 – Distributed Objects Spring 2017
Abstract Factory Pattern
CSE775 - Distributed Objects, Spring 2006
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
An Introduction to the Shared Source Common Language Infrastructure (SSCLI) Damien Watkins Copyright Watkins 2002.
Outline SOAP and Web Services in relation to Distributed Objects
.Net A brief introduction to
Out-of-Process Components
Jim Fawcett CSE687-OnLine – Object Oriented Design Summer 2017
Jim Fawcett CSE775 – Distributed Objects Spring 2012
Outline SOAP and Web Services in relation to Distributed Objects
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
Abstract Factory Pattern
Intent (Thanks to Jim Fawcett for the slides)
Module 1: Getting Started
Jim Fawcett CSE687 – Object Oriented Design Spring 2009
Introduction to C# AKEEL AHMED.
Programming in C# CHAPTER 1
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Developing and testing enterprise Java applications
Out-of-Process Components
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
Active Template Library
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Presentation transcript:

Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005

COM versus.Net  COM Strengths –It’s everywhere: Windows operating system GUI controls Word, Excel, Visio – COM makes these programmable!.Net CLR is a COM component –It is accessible from clients built with different languages: C, C++, C#, VB, Javascript, … –Clients and components don’t need to support the same threading models  COM Weaknesses –COM is complex! –COM has a very weak object model –It is an aging technology Still, heavily used by Microsoft (even in Win8 Metro). .Net Strengths –Framework and language support is very well designed. –Component development is much simpler than COM. –Is accessible from different.Net languages. Really, they are almost the same! –Documentation is excellent. –There are a lot of new books and articles (some are even good). .Net Weaknesses –Executables only run on machines equipped with the CLR. Can download.Net framework, free, from microsoft for XP and Vista. Won’t run on Lunix, … (neither will COM) Managed model is not always appropriate.

Comparison of Object Models  C++ Object Model –All objects share a rich memory model: Static, stack, and heap –Rich object life-time model: Static objects live for duration of the program. Objects on stack live within a scope defined by { and }. Objects on heap live at the designer’s discretion. –Semantics based on a deep copy model. That’s the good news. That’s the bad news. –For compilation, clients carry their server’s type information. That’s definitely bad news. But it has a work-around, e.g., design to interface not implementation. Use object factories. .Net Object Model –More Spartan memory model: Value types are stack-based only. Reference types (all user defined types and library types) live on the heap. –Non-deterministic life-time model: All reference types are garbage collected. That’s the good news. That’s the bad news. –Semantics based on a shallow reference model. –For compilation, client’s use their server’s meta-data. That is great news. It is this property that makes.Net components so simple.

Comparison of Object Models  C++ Object Model –All objects share a rich memory model: Static, stack, and heap –Rich object life-time model: Static objects live for duration of the program. Objects on stack live within a scope defined by { and }. Objects on heap live at the designer’s discretion. –Semantics based on a deep copy model. That’s the good news. That’s the bad news. –For compilation, clients carry their server’s type information. That’s definitely bad news. But it has a work-around, e.g., design to interface not implementation. Use object factories.  COM Object Model –Weak object model – based on C++, but: No inheritance of implementation No deep copies No deep assignment No construction with parameters COM functions accept a very limited set of argument types –COM strengths Strong support for updating systems composed of COM components – simply copy the revised dll over the original. You don’t need to rebuild the client or other parts of the system Supports a limited form of garbage collection based on reference counting. –.Net also supports updating and has full garbage collection.

Language Comparison  Standard C++ –Is an ANSI and ISO standard. –Has a standard library. –Universally available: Windows, UNIX, MAC –Well known: Large developer base. Lots of books and articles. –Programming models supported: Objects Procedural Generic via templates –Separation of Interface from Implementation: Syntactically excellent – Implementation is separate from class declaration. Semantically poor – See object model comparison. .Net C# –Is an ECMA standard, becoming an ISO standard. –Has defined an ECMA library. –Mono project porting to UNIX –New, but gaining a lot of popularity Developer base growing quickly. Lots of books and articles. –Programming models supported: objects. –Separation of Interface from Implementation: Syntactically poor – Implementation forced in class declaration. Semantically excellent – See object model comparison.

Language Comparison  Standard C++ –Uses header files to declare class services –Program parts must be compiled using same compiler to ensure interoperability Client and components must share the same threading and security models  COM –Uses Interface Definition Language (IDL) to declare component services –IDL compiler generates: Cmpnt.h – interface declarations Cmpnt_i.c – defines GUIDS Cmpnt_p.c – defines proxy –Interoperability across multiple languages and any compiler that provides support for COM C, C++, Visual Basic, JavaScript, … Components and client may use different threading and security models.

End of Comparison