1 Program Execution in the 21 st Century Modern Software Development in.NET and C# A webcast series for C++, Java, and VB6 developers – Part 1 of 15: [

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

ACT! “Web” Plugins ACC Webinar (Part 1of 2) Brian Mowka and Jamie Aurand December 2010.
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.
Wrap-up: Where Do You Go From Here? MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET Objectives “.NET is the future of software development.
Henrico Dolfing Business Segment Partners. Océ Document Technologies GmbH2 June, NET Framework Version 3.0.
.NET Technology.
Smart Clients What, Why, and Where By: Richard Arthur.
CSE3030Lecture 11 Know Your User The First Slogan.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
Programming A Historic Perspective on Code Reuse Yingcai Xiao.
Keith Elder Microsoft MVP It’s the new wave…man…..
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
.NET’s CLR How does it really work? 7/2/20151Bhavani Sankar Ikkurthi CS 795 Presentation.
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.
Lecture 2: An Introduction to J# and.NET. 2 MicrosoftIntroducing CS using.NETJ# in Visual Studio.NET 2-2 Objectives “Microsoft.NET is based on the.NET.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
Computer Science 317 Database Management Introduction to Web Access to Databases.
1..NET Architecture Based on slides by Joe Hummel.
Introduction to .Net Framework
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
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.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
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.
CIS NET Applications1 Chapter 2 –.NET Component- Oriented Programming Essentials.
.NET Framework & C#.
Microsoft.NET Vs Sun JAVA
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Understanding Code Compilation and Deployment Lesson 4.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Importing outside DLLs into.Net platform and using them By Anupama Atmakur.
ASSEMBLY. A SSEMBLY Assemblies are the fundamental units of applications in the.net framework An assembly can contain classes, structures, interfaces.
Introduction .NET Framework
ASSEMBLIES AND THE GAC CHAPTER 1, LESSONS 4-7 & LAB.
CS795/895: Introduction. Topics Distributed Systems –Availability –Performance –Web Services Security –Authentication –Authorization –Confidentiality.
Component-Based Software Engineering Introduction to.NET Paul Krause.
1..NET Architecture Based on slides by Joe Hummel.
.NET Framework Danish Sami UG Lead.NetFoundry
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Week 1: THE C# LANGUAGE Chapter 1: Variables and Expressions ➤ Included in Visual Studio.NET ➤ What the.NET Framework is and what it contains ➤ How.NET.
Sage ACT! 2013 SDK Update Brian P. Mowka March 23, 2012 Template date: October 2010.
Deploy.NET Applications with Ease Brian Noyes IDesign, Inc.
Introduction to VB.Net. What is.NET? A brand of Microsoft technologies A platform for creating distributed Web applications A combination of new and updated.
1.NET FRAMEWORK CE-105 Spring 2007 Engr. Faisal ur Rehman.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
.Net – The First Glance What Is.Net, Why Use.Net.
.NetDeploymentNOEA / PQC 2005 Application Deployment and Versioning Source: Joe Hummel, kursus i.Net, jan
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
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.
1. The .NET Architecture 1. The .NET Architecture 2003
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.
OE-NIK HP Advanced Programming Using and creating DLL files.
ClickOnce Deployment (One-click Deployment)
Lecture 1: The .NET Architecture
“An Introduction to .NET, C# and Visual Studio 2005”
CE-105 Spring 2007 Engr. Faisal ur Rehman
2.1. Compilers and Interpreters
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Module 10: Implementing Managed Code in the Database
ClickOnce Deployment (One-click Deployment)
Presentation transcript:

1 Program Execution in the 21 st Century Modern Software Development in.NET and C# A webcast series for C++, Java, and VB6 developers – Part 1 of 15: [ ] Joe Hummel, PhD Software Architect, Author & Professor Lake Forest College:

2 "Modern Software Dev in.NET and C#" A series for C++, Java, and VB6 developers PPT-based lectures Lab exercises — i.e. homework! DateTopic 1. Tues, March 1 Program Exec in the 21 st Century 2. Tues, March 15 Classes, Components & Namespaces 3. Tues, March 22 Modern OO Programming in C# 4. Tues, March 29 Class Design for the.NET Framework Tues, June 28 The Microsoft.NET Team System

3 Session Prerequisites This is an intro of how.NET executes an app Prereqs:developer object-based programming experience Level 200

4 Today's objectives “ The days of compiling and linking a program to produce a single native executable (.EXE) are coming to an end. While program execution in Windows ® has long been DLL-based (dynamic linking), with.NET we are moving towards a virtual machine model of execution… ” Topics: Topics: Managed Execution Component-Based Design Deployment

5 Agenda Managed Execution Component-Based Design Assembly Resolution Deployment

6 Managed Execution Idea: modern software executes within run-time environment why? portable and safer execution… Hardware Operating System Run-time Environment Your Application

7 Java Based on run-time environment called JVM JVM = Java Virtual Machine JCL = Java Class Library x86 Windows JVM PPC Mac OS JVM ARM Palm OS JVM Java Application … … JVM JCL

8.NET Based on CLR and FxCL CLR = Common Language Runtime FxCL = Framework Class Library Hardware Operating System Common Language Runtime.NET Application.NET Framework Class Library

9 Software Development in.NET Pick your language and platform… x86 Windows CLR ARM Pocket PC CLR PPC FreeBSD CLR x86 Linux CLR … … CLR.NET Application FxCL VBC#C++J#…

10 Implications… Your clients must have the.NET Framework available via Redistributable.NET Framework (20MB) 3 versions: v1.0 (2002), v1.1 (2003), v2.0 (june 2005?) Windows 2003 ships with v1.1 otherwise correct version must be installed Design trade-off:  portable  safer execution (memory management, security, …)  slower?

11 Managed code C#, VB, J# compilers generate managed code code that requires CLR to run & manage C++ plays a dual role: generates managed code (i.e..NET dll/exe) generates unmanaged code (i.e. native dll/exe) common for OS work, legacy apps, etc.

12 CIL CIL = Common Intermediate Language CIL is the assembly language of the CLR managed code == CIL code // adds 2 integers together and returns the result… public int Add(int x, int y) { return x + y; } C:\> ildasm app.exe

13 Agenda Managed Execution Component-Based Design Assembly Resolution Deployment

14 Apps are Component-Based Apps consist of 1 or more components (DLLs) Example: typical n-tier design Front-end object DB GUI.exe business.dll data.dll

15.NET is Component-Based CLR and FxCL are components: CLR = Common Language Runtime FxCL = Framework Class Library CLR (MSCOREE.dll) CLR (MSCOREE.dll) JIT Compiler Process Underlying OS and HW Core FxCL (MSCOR LIB.dll) Core FxCL (MSCOR LIB.dll).DLL.EXE obj code additional FxCL components (DLLs)

16 Assemblies.NET components are called assemblies Unit of deployment in.NET 1 assembly = 1 or more compiled source files Visual Studio.NET.EXE /.DLL code.vb code.cs assembly

17 Where are FxCL assemblies? FxCL assemblies are stored in the GAC GAC = Global Assembly Cache LocalSharedVersion-awareSecureTamper-proof Some pre-JIT

18 Agenda Managed Execution Component-Based Design Assembly Resolution Deployment

19 Assembly Resolution CLR must be able to locate correct assemblies FxCL assemblies as well as our own assemblies CLR JIT Compiler Process Core FxCL Core FxCL.DLL.EXE obj code additional FxCL components (DLLs)

20 Executive Summary… Returning to the days of old, i.e. DOS-like.NET applies a well-known search algorithm (like a path) can customize search via.config file (like an.ini) no use of registry!

21 Resolution Algorithm 1..NET figures out what version is needed 2..NET searches GAC ( Global Assembly Cache ) 3. If not found and.config file is present then.NET searches where configured to else.NET searches directory containing.EXE else.NET searches directory containing.EXE 4. If not found then application terminates with error

22 Typical n-tier app…

23 How does.NET know version, etc.? Compiled into.DLL/.EXE as manifest use ILDASM tool to peek inside assembly ILDASM = Intermediate Language Disassembler manifest reveals dependencies, versions, etc. C:\> ildasm CustomerGUI.exe

24 Observations… Manifest contains reference to assembly name, version #, hash of public key token, etc. Manifest does not contain: code for assembly registry information (no more GUIDs!) location information (.NET uses search path)

25 Implications No more registry!.NET uses well-defined search path No more DLL hell! applications never use the wrong version unless you say so via.config file Config file hell? machine config, user config, app config, etc.

26 How are assemblies referenced? Tracked via References folder in VS project You can add more:

27 Agenda Managed Execution Component-Based Design Assembly Resolution Deployment

28 Deployment Options 1. Install assemblies in same dir as.EXE  simplest, called xcopy deployment 2. Install some in.EXE dir, remainder in GAC  GAC allows you to share, install multiple versions 3. Custom deployment via.config file  allows custom location, e.g. on a server 4. "Zero-touch" deployment  clients install via URL:  clients install via URL:  app can update itself periodically  improved ClickOnce coming in VS 2005

29 Lots of deploymet details… How do you write.config files? How do you put something in the GAC? Assign a version number? Make an assembly tamper-proof? Topics for webcast #11: Tues, 31 May 2005

30 That’s it for today! Thank you for participating Next webcast: DateTopic TODAY Program Exec in the 21 st Century 2. Tues, March 15 Classes, Components & Namespaces 3. Tues, March 22 Modern OO Programming in C# 4. Tues, March 29 Class Design for the.NET Framework Tues, June 28 The Microsoft.NET Team System

31 Additional Resources Web site for slides, demos, homework: Resources: J. Richter, " Applied Microsoft.NET Framework Programming " Rocky Lhotka, “ Expert C# Business Objects ” Juval Löwy, “ Programming.NET Components ” Zero-touch deployment: touchdeploymentinnetframework.asp

32