Jim Fawcett CSE775 – Distributed Objects Spring 2017

Slides:



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

Introduction to .NET Framework
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.
Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.
C++/CLR Jim Fawcett CSE687 – Object Oriented Design Spring 2009.
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.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
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.
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 ASP.NET MIS 324 Professor Sandvig.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
MESDA Conference 2002 MESDA Annual Conference 2002 Software Development Track Java vs. C#
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
.NET Mobile Application Development XML Web Services.
Common Language Infrastructure
WHAT IS HARDWARE ? Computer hardware is the collection of physical elements that comprise a COMPUTER SYSTEM LIKE A MOUSE, MONITOR, KEYBOARD, SPEAKER MICROPHONE,
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
Lecture 1: The .NET Architecture
Jim Fawcett CSE687 – Object Oriented Design Spring 2001
Appendix 1 - Packages Jim Fawcett copyright (c)
Chapter 5 Operating Systems.
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
Java Interview Questions
CSE791 - Distributed Objects, Spring 2002
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.
Jim Fawcett CSE775 – Distributed Objects Spring 2009
Abstract Data Types and Encapsulation Concepts
Cross Platform Development using Software Matrix
Outline SOAP and Web Services in relation to Distributed Objects
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2004.
Programming the Web Using Visual Studio .NET
.Net A brief introduction to
Out-of-Process Components
Haritha Dasari Josue Balandrano Coronel -
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
Programming in C# CHAPTER 1
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Out-of-Process Components
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
C++/Java/COM Interoperability
Active Template Library
Jim Fawcett CSE687 – Object Oriented Design Spring 2003
Jim Fawcett CSE687 – Object Oriented Design Spring 2014
Message Passing Systems Version 2
Jim Fawcett CSE681 – Software Modeling and Analysis Fall 2006
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
Message Passing Systems
Presentation transcript:

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

COM versus .Net COM Strengths COM Weaknesses .Net 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 Linux, … (neither will COM) Mono is a partial substitute see http://Mono-Project.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++ .Net 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++ COM 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