An Introduction to the Shared Source Common Language Infrastructure (SSCLI) Damien Watkins Copyright Watkins 2002.

Slides:



Advertisements
Similar presentations
What is.Net Gary Devendorf. .Net Framework.Net framework works like the Domino Objects only much lower level and very complete It is part of the OS (or.
Advertisements

.NET Framework Overview
Using.NET Platform Note: Most of the material of these slides have been taken & extended from Nakov’s excellent overview for.NET framework, MSDN and wikipedia.
.NET Framework Overview
SSCLI (Shared Source Common Language Infrastructure) (code name: Rotor)
SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
Henrico Dolfing Business Segment Partners. Océ Document Technologies GmbH2 June, NET Framework Version 3.0.
An overview of the SSCLI Distribution Mark Lewin Microsoft Research
Introduction. What is.Net? The hype: “Microsoft.Net is a set of Microsoft software technologies for connecting information, people, systems, and devices.
.Net Overview Giuseppe Attardi Università di Pisa.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
Thursday Evening 6.30VB.NET Introduction 7.30Break for food 8.00VB.NET Migration 8.45Q & A 9.00Done.
Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.
Module 1: Overview of the Microsoft.NET Framework.
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
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.
SQL Server 2005 CLR Integration ADO.NET 2.0 Mike Taulty
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 18 Microsoft’s Approach 1 –.NET Mobile Framework Rob Pooley.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
1 Introduction to.NET Framework. 2.NETFramework Internet COM+ Orchestration Orchestration Windows.NET Enterprise ServersBuildingBlockServices Visual Studio.NET.
Introduction to .Net Framework
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Microsoft.NET Framework Overview Abidi Mahmoud Seminarium on Component -based Software Engineering.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
.NET Framework & C#.
Introduction to .NET Framework
Understanding Code Compilation and Deployment Lesson 4.
Assemblies & Namespaces1. 2 Assemblies (1).NET applications are represented by an assembly An assembly is a collection of all software of which the application.
ASSEMBLIES AND THE GAC CHAPTER 1, LESSONS 4-7 & LAB.
.Net Framework Web Application and Development Digital Media Department Unit Credit Value : 4 Essential Learning time : 120 hours
.NET Framework Danish Sami UG Lead.NetFoundry
MSIL & CLI Kun-Yuan Shieh.
Basic Security: Java vs.NET Master Seminar Advanced Software Engineering Topics Prof. Jacques Pasquier-Rocha Software Engineering Group Department of Informatics.
AUC Technologies Projects Consulting, Development, Mentoring, and Training Company Application Foundation Presented By : Naveed Sattar Software Engineer.
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
Microsoft.Net Sven Groot. Common Language Runtime Superset of ECMA Common Language Infrastructure Defines  Language-neutral platform  Intermediate Language.
Compunet Corporation1 Programming with Visual Basic.NET Fundamentals of Programming Lecture # 1 Tariq Ibn Aziz.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
Advanced Computer Science Teaching with the Shared Source Common Language Infrastructure.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
.NET Ying Chen Junwei Chen. What is Microsoft.NET. NET is a development platform Incorporated into.NET COM+ component services ASP web development framework.
Microsoft .NET A platform that can be used for building and running windows and web applications such that the software is platform and device-independent.
Common Language Runtime Introduction  The common language runtime is one of the most essential component of the.Net Framework.  It acts.
Module 4: Deployment and Versioning. Overview Introduction to Application Deployment Application Deployment Scenarios Related Topics and Tools.
The Execution System1. 2 Introduction Managed code and managed data qualify code or data that executes in cooperation with the execution engine The execution.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
Common Language Infrastructure
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.
Introduction to the Microsoft.NET Framework Chris Wastchak Student Ambassador to Microsoft.
Computer System Structures
.NET Framework.
Introducing the Microsoft® .NET Framework
Introduction to .NET framework
Jim Fawcett CSE775 – Distributed Objects Spring 2017
Jim Fawcett CSE687 – Object Oriented Design Spring 2016
Foundations of .Net Programming with C#
.Net A brief introduction to
CE-105 Spring 2007 Engr. Faisal ur Rehman
Application Foundation
.NET and .NET Core 2. .NET Runtimes Pan Wuming 2017.
Introduction to C# AKEEL AHMED.
Programming in C# CHAPTER 1
.NET Base Type (CTS Data Type) Managed Extensions for C++ Keyword
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
DOT NET ARCHITECTURE (OR) DOT NET FRAME WORK ARCHITECTURE
C# Programming Unit -1.
Jim Fawcett CSE687 – Object Oriented Design Spring 2015
.NET Framework Design Goals
Presentation transcript:

An Introduction to the Shared Source Common Language Infrastructure (SSCLI) Damien Watkins Copyright Watkins 2002

Introduction Damien Watkins damien@project42.net damien@dstc.edu.au MSR invited Monash University to joined Project 7 in 1998 Co-author of “Programming in the .NET Environment”, Addison Wesley Copyright Watkins 2002

Agenda What is the SSCLI? Understanding the CLI Directory Structure Development Tools Summary Questions Copyright Watkins 2002

SSCLI (a.k.a. Rotor) Shared Source: Is a license You should read and agree with the license before using Rotor (I am not a lawyer!) Common Language Infrastructure Component-Based Software Architecture Similar in parts to COM, CORBA, Java Copyright Watkins 2002

SSCLI (a.k.a. Rotor) CLI Implementation of the ECMA standards 334 and 335 335 Common Language Infrastructure Component based Software Architecture 334 C# Language Specification Component based Language Copyright Watkins 2002

SSCLI (a.k.a. Rotor) Distributed as 2 tar files from msdn.microsoft.com/net/sscli 12 megabyte tar file of source code 4 megabyte tar file of documentation Compile and run on FreeBSD and Windows XP Start with the readfirst.html file Copyright Watkins 2002

SSCLI - Tar file 1 1.9 million lines of source code 1.1 million lines of C++ 600k lines of C# 125k IL Assembler Assembler 5,900 source files 9700 files in total Copyright Watkins 2002

SSCLI - Tar 2 Documentation In the root directory there is ClassLibrary.html There are a number of subdirectories, one for each namespace with an index page System And then pages for each type, System.Object Copyright Watkins 2002

SSCLI – When built Tar 1: 550 Mb 11,000 files Tar 2: 40 Mb 1,100 files Copyright Watkins 2002

Understanding the CLI The CLI provides a number of abstractions and facilities In this section we look at the major architectural elements of the CLI, this is a top-down approach In the Tools section we look from the tools that manipulate the CLI, a bottom-up approach Copyright Watkins 2002

Commercial Version System.Web System.Windows Languages System.Data C#, VB, Managed C++, IL, JScript System.Data System.Xml XSLT, XPath, Serialization System Collections, Configuration, Diagnostics, Globalization, IO, Net, Reflection, Resources, Security, Service Process, Text, Threading, Interop, Remoting, Serialization Tools cordbg, ilasm, ildasm, peverify, VS.NET Common Language Runtime Type, Metadata and Execution Systems Windows Copyright Watkins 2002

EMCA System.Web System.Windows Languages System.Data System.Xml System C#, VB, Managed C++, IL, JScript System.Data System.Xml XSLT, XPath, Serialization System Collections, Configuration, Diagnostics, Globalization, IO, Net, Reflection, Resources, Security, Service Process, Text, Threading, Interop, Remoting, Serialization Tools cordbg, ilasm, ildasm, peverify, VS.NET Common Language Runtime Type, Metadata and Execution Systems Operating System Copyright Watkins 2002

Rotor System.Web System.Windows Languages System.Data System.Xml C#, VB, Managed C++, IL, JScript System.Data System.Xml XSLT, XPath, Serialization System Collections, Configuration, Diagnostics, Globalization, IO, Net, Reflection, Resources, Security, Service Process, Text, Threading, Interop, Remoting, Serialization Tools cordbg, ilasm, ildasm, peverify, VS.NET Common Language Runtime Type, Metadata and Execution Systems Platform Adaptation Layer Copyright Watkins 2002

SSCLI - Execution Architecture Development Deployment Source Code Compiler Assembly GAC Execution Security Assembly Assembly Loader GAC Class Loader JIT & Verifier Execution Copyright Watkins 2002

SSCLI - Execution Architecture Hosting Environment Common Language Runtime Assembly Assembly Security System Policy Levels Evidence Permission Set Enterprise Machine Security Settings User Application Domain Copyright Watkins 2002

Common Language Infrastructure Comprised of two major elements Common Language Runtime A shared execution architecture that multiple languages can target Framework Class Libraries Facilities and services need to create non-trivial applications Copyright Watkins 2002

Common Language Runtime CLR includes Type System Metadata System Execution System Similar to the facilities/functionality provided by an IDL in COM or CORBA Copyright Watkins 2002

Type System Two basic types Value types Copy semantics Stack allocated (normally) Boxing Reference types Reference semantics GC heap allocation Copyright Watkins 2002

Type System Built-in value types can be found in cortypeinfo.h * Base Class System.Object Found in object.h and in object.cpp Copyright Watkins 2002

Metadata Major structures found in corhdr.h Tokens Macros (IsTDClass) and metadata.h Copyright Watkins 2002

JIT Compiler Converts Intermediate Language to native code Verifies IL stream Produces tables for garbage collector Produces tables for exception handling Copyright Watkins 2002

JIT Compiler The major file for the JIT compiler is fjit.h Interface between execution engine and JIT compiler in corjit.h Jit compiler interface in jitinterface.h GC and EH tables in eetwain.h The compileMethod method is found in fjitcompiler.h and fjitcompiler.cpp Copyright Watkins 2002

JIT Compiler Verifier component is in fjitverfier.h fitverifier.cpp Copyright Watkins 2002

Framework Class Libraries Base Class Library System.Collections System.IO System.Security Sytem.Text System.Threading Copyright Watkins 2002

PAL Platform Adaptation Layer Provides a standard interface the execution engine Translates method calls to the operating system and vice versa Copyright Watkins 2002

Directories sscli, the root directory Has files such as Readfirst.html License.txt Env.bat Buildall Copyright Watkins 2002

sscli\build Many of the executables and DLLs are placed in this directory or its subdirectories al.exe clix.exe csc.exe gacutil.exe mscorlib.dll Copyright Watkins 2002

sscli\build\v1…\assembly GAC System System.Runtime.Remoting System.Serialization.Formatters.Soap System.Xml Microsoft.JScript Copyright Watkins 2002

sscli\build\v1…\sdk\bin cordbg.exe - debugger ilasm.exe – IL Assembler ildasm.exe – IL Disassembler peverify.exe – PE Verifier resgen.exe – Resource Generator sn.exe – Strong Name Copyright Watkins 2002

sscli\pal Platform Adaptation Layer The abstract interface is in rotor_pal.h Two subdirectories Unix Win32 Copyright Watkins 2002

Development Tools C# Compiler JScript compiler written in C# Alink, Assembly linker GacUtil, GAC Utility tool Copyright Watkins 2002

Development Tools ILASM – IL Assembler ILDASM – IL Disassembler PEVerify – A File Format and Metadata Verifier Cordbg – Debugger CLIX – Program Loader Copyright Watkins 2002

Summary Rotor is an interesting implementation of a component based software architecture The source code allows you to dig in as deep as you want Idea to use in research, you do not have to build the infrastructure Useful in teaching: compilers, security, … Copyright Watkins 2002

Questions Copyright Watkins 2002