Understanding Code Compilation and Deployment Lesson 4.

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

Ahead of Time Dynamic Translation PreJit/NGEN by any other name George Bosworth Microsoft MRE04 March 21, 2004.
Introduction to .NET Framework
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.
History of.Net Introduced by Microsoft Earlier technology was VC++ and VB VC++ comes with so many library and VB was so easy to use and not flexible to.
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
Programming Our First Java Program Yingcai Xiao. What to Do Set up for Java Programming Write our first Java Program with IDE Write our first Java Program.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
.NET deployment and configuration (but mostly about security) Jørgen Thyme Microsoft Denmark.
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
ASP.Net Security: Fundamentals Chapters 1-4 Freeman and Jones Book.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Effective C# 50 Specific Way to Improve Your C# Item 50 Scott68.Chang.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
.NET Framework Introduction: Metadata
Introduction to .Net Framework
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
Module 1: Introduction to C# Module 2: Variables and Data Types
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.
CIS NET Applications1 Chapter 2 –.NET Component- Oriented Programming Essentials.
.NET Framework & C#.
Microsoft Visual Basic 2005: Reloaded Second Edition
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Importing outside DLLs into.Net platform and using them By Anupama Atmakur.
Compiling and Executing Code in.Net Microsoft Intermediate Language and Common Language Runtime.
ASSEMBLY. A SSEMBLY Assemblies are the fundamental units of applications in the.net framework An assembly can contain classes, structures, interfaces.
All 300/400 Level CS Major Courses Tutoring Location: SEC 3433 Sign up or walk-in Introduction2-1.
Introduction .NET Framework
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
ASSEMBLIES AND THE GAC CHAPTER 1, LESSONS 4-7 & LAB.
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
Agenda Assemblies 101 Anatomy of an Assembly What is Metadata? Assembly Variations Signing Assemblies Global Assembly Cache.
.NET Framework Danish Sami UG Lead.NetFoundry
MSIL & CLI Kun-Yuan Shieh.
Programming in C#. I. Introduction C# (or C-Sharp) is a programming language. C# is used to write software that runs on the.NET Framework. Although C#
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
AUC Technologies Projects Consulting, Development, Mentoring, and Training Company Application Foundation Presented By : Naveed Sattar Software Engineer.
Languages and IDE (Integrated Development Environment)
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
.NetDeploymentNOEA / PQC 2005 Application Deployment and Versioning Source: Joe Hummel, kursus i.Net, jan
AUC Technologies Projects Consulting, Development, Mentoring, and Training Company.NET Assemblies Presented By : Muhammad Atif Hussain Deputy Manager IT.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Lecture 4: J# Execution Model. 2 MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET 4-2 Objectives “J# programs execute like any other.NET program.
.NET Ying Chen Junwei Chen. What is Microsoft.NET. NET is a development platform Incorporated into.NET COM+ component services ASP web development framework.
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.
Module 4: Deployment and Versioning. Overview Introduction to Application Deployment Application Deployment Scenarios Related Topics and Tools.
Text Introduction to.NET Framework. CONFIDENTIAL Agenda .NET Training – Purpose  What is.NET?  Why.NET?  Advantages  Architecture  Components: CLR,
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Assemblies. 2 Objectives Introduce assemblies –concept –creation –naming Discuss deployment –main.exe –dependent assemblies.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
METADATA IN.NET Presented By Sukumar Manduva. INTRODUCTION  What is Metadata ? Metadata is a binary information which contains the complete description.
ClickOnce Deployment (One-click Deployment)
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Introduction to .NET framework
An Introduction to the Shared Source Common Language Infrastructure (SSCLI) Damien Watkins Copyright Watkins 2002.
Introduction to Visual Basic 2008 Programming
.NET and .NET Core 2. .NET Runtimes Pan Wuming 2017.
Module 0: Introduction Chapter 2: Getting Started
Module 1: Getting Started
ClickOnce Deployment (One-click Deployment)
Presentation transcript:

Understanding Code Compilation and Deployment Lesson 4

Objective Domain Matrix Skills/ConceptsMTA Exam Objectives Understanding Code Compilation Understand the fundamentals of Microsoft Intermediate Language (MSIL) and Common Language Infrastructure (CLI) (3.1) Understanding Assemblies and Metadata Understand the use of strong naming (3.2) Understanding Assemblies and Metadata Understand assemblies and metadata (3.4) Understanding Code Deployment Understand version control (3.3)

Understanding Code Compilation Code written in high-level programming language must be translated to the machine language before it can be executed. Traditional compilation model:

.NET Compilation Model In the.NET Framework, compilation is a two-step process: CIL: Common Intermediate Language The Common Language Runtime (CLR) uses Just-in-Time (JIT) compilation to convert the CIL code into machine code.

Common Language Infrastructure (CLI) CLI is an international standard that provides the specifications for the executable code and the runtime environment in which the code runs. CLI makes it easier to write components and applications in any language. The Common Language Runtime (CLR) is Microsoft’s implementation of the CLI.

CLI Specifications - 1 Common Type System (CTS) – Specifies rules that allows for objects written in one language to be used by objects written in another language as if they were written in the same language. Common Language Specification (CLS) – Specifies rules that a language must comply with in order to interoperate with other CLS- compliant programming languages.

CLI Specifications - 2 Metadata - A structured way to represent information about a program structure that the CLI uses to locate and load classes at runtime. Virtual Execution System (VES) - Specifies how the runtime loads and executes CLI-compatible programs.

Language Interoperability Language interoperability means that code written in one programming language can be fully used by code written in a different programming language. CLS specifies a set of rules that enables the code written in a programming language to interoperate with the code written in other programming languages on the.NET Framework.

Assembly An assembly is a collection of types and resources that is built to work together to form a logical unit of functionality. Assemblies are the fundamental unit of deployment, version control, and security in the.NET Framework. The output from.NET language compiler (a.dll file or an.exe file) is bundled into an assembly.

Assembly Structure An assembly contains the following four pieces of information: Assembly manifest contains information such as version and identity of the assembly. Metadata related to the classes contained in the assembly CIL code that implements the classes A set of resources (such as.bmp file or a.jpg file) used by the classes.

Assembly Metadata Metadata is the data that describes the types defined by the code and the external types used by the code. Metadata has complete information about the structure of a type and its members. Metadata is independent of any particular programming language and is stored along with the CIL as part of an assembly.

IL Disassembler (ildasm.exe) Allows you to view the contents of an assembly like the manifest, metadata and the CIL.

Assembly Deployment Assemblies can be deployed as: Private assemblies Shared assemblies A private assembly is designed to be used by only a single application. A shared assembly is designed to be used by multiple applications.

Private Assemblies A private assembly is local to the application that uses it and is deployed within the application’s directory structure. Any changes to a private assembly cannot possibly affect any other installed application on the same machine. The.NET Framework does not impose any special versioning or naming requirements for a private assembly.

Shared Assemblies The shared assemblies are all installed at a common, well-known location on the file system known as the Global Assembly Cache (GAC). The.NET Framework allows multiple versions of a shared assembly to coexist. A shared assembly must have an associated strong name.

Strong Naming Strong name specifies an assembly’s unique identity. Strong name uses four attributes to identify an assembly: Simple name Version number Culture identity (optional) Public key token

Strong Name Tool The Strong Name tool helps sign assemblies with strong names. The strong name tool is used to generate keys used for creating strong names.

Signing the Assembly The Signing tab in the Visual Studio project’s properties dialog box allows you to assign a strong name to the assembly.

Assembly Information The Assembly Information dialog box allows you to specify version and other information.

Global Assembly Cache The Global Assembly Cache (GAC) is the central repository for storing shared assemblies on a computer. Ways to add an assembly to the GAC: Windows Installer: Recommended approach for installing assemblies on the end user’s computer. Global Assembly Cache tool (gacutil.exe): Recommended only for development and testing.

Global Assembly Cache Benefits Integrity check: This check guarantees that the contents of the assembly have not been changed since it was built. Security: Only users with administrator privileges can modify GAC contents. Side-by-side versioning: Multiple assemblies with the same name but different version numbers can be maintained in the GAC.

Using the Global Assembly Cache Tool Install assembly to the GAC gacutil /i assemblyFileName Uninstall assembly from GAC gacutil /u assemblyName List all versions of an assembly from GAC gacutil /l assemblyName

Assembly Versioning Side-by-side execution: Some applications still use the old version of the assembly while other applications use the new version. Publisher Policy (bug-fix update): All applications that reference the defective version of the assembly to start using the new version—and preferably without any modifications to the already installed applications.

Recap Understanding code compilation.NET Compilation Model Common Language Infrastructure (CLI) Language interoperability Assembly Assembly Metadata IL Disassembler Private Assembly Shared Assembly Strong Name Strong Name Tool Global Assembly cache Global Assembly Cache Tool (gacutil.exe) Version control