SlideShare a Scribd company logo
Lecture 1:

The .NET Architecture
Objectives

    “Microsoft .NET is based on the .NET Framework, which consists of
       two major components: the Common Language Runtime (CLR)
       and an extensive set of Framework Class Libraries (FCL). The
       CLR defines a common programming model and a standard type
       system for cross-platform, multi-language development.”




    •   CLR-based execution
    •   Application designs




Microsoft                                                               2
Part 1

    •   CLR-based execution…




Microsoft                      3
Influences

    •   .NET is the result of many influences…


                          OOP                JVM




               GUI
                                  .NET                Web




              component-based
                  design                     n-tier design



Microsoft                                                    4
.NET is multi-language

    •   .NET supports VB, C# (C-sharp), C++, J# (Java 1.2), Eiffel, etc.


            code.vb    code.cs         code.cpp         ...




                         Development Tools                      FCL




                                 app.exe


Microsoft                                                                  5
.NET is cross-platform

    •   Compiled .NET apps run on any supported platform:



                               APP.exe




                                                    ?
             Win64        Win32          WinCE
                         (XP,2K,98)

Microsoft                                                   6
How is cross-platform achieved?

    •   Cross-platform execution realized in two ways:

            1. apps are written against Framework Class Library (FCL), not
               underlying OS

            2. compilers generate generic assembly language which must be
               executed by the Common Language Runtime (CLR)




Microsoft                                                                    7
(1) FCL

    •   Framework Class Library
         – 1000's of predefined classes
         – common subset across all platforms & languages
         – networking, database access, XML processing, GUI, Web, etc.




    •   Goal?
         – FCL is a portable operating system




Microsoft                                                                8
(2) CLR-based execution

    •   Common Language Runtime must be present to execute code:

                  APP.exe


                                    OS Process


                                                    other FCL
                JIT Compiler
                                                   components


                   obj code        Core
                                   FCL

                    CLR


                  Underlying OS and HW

Microsoft                                                          9
Implications of .NET's execution model

    1. Clients need CLR & FCL to run .NET apps
       – available via Redistributable .NET Framework
       – 20MB download
       – runs on 98 and above, NT (sp6a) and above



    2. Design trade-off…
       + managed execution (memory protection, verifiable code, etc.)
       + portability:
       – slower execution?




Microsoft                                                               10
Part 2

    •   Application design…




Microsoft                     11
Monolithic

    •   Monolithic app: all source code compiled into one .EXE




                         APP.exe




            – *not* the norm on Windows…


Microsoft                                                        12
Component-based

    •   Component-based app: .EXE + 1 or more .DLLs



                                      compute.dll

                  GUI.exe

                                        data.dll




            – standard practice on Windows…


Microsoft                                             13
Why component-based?

    •   Many motivations:
            – team programming
            – multi-language development (I like VB, you like C#)
            – code reuse (e.g. across different .EXEs)
            – independent updating (update just component X)



    •   FCL ships as a set of components!




Microsoft                                                           14
Assemblies

    •   .NET packages components into assemblies
    •   1 assembly = 1 or more compiled classes
         – .EXE represents an assembly with classes + Main program
         – .DLL represents an assembly with classes

                         code.vb
                          code.vb
                            code.cs




                      Development Tools



                                              .EXE / .DLL
                          assembly

Microsoft                                                            15
CLR-based execution revisted
•   CLR must be able to locate all assemblies:

                                           .DLL
                      .EXE                   .DLL
                                               .DLL

                                       OS Process


                                                      other FCL
                  JIT Compiler
                                                      assemblies


                   obj code          Core FCL
                    obj code
                      obj code       assembly
                        obj code

                      CLR


                    Underlying OS and HW
Microsoft                                                          16
Assembly resolution

    •   How does CLR find assemblies?

    •   For now, simple answer is sufficient:
         – our DLLs must reside in same directory as our EXE
         – FCL assemblies reside in GAC
         – CLR looks in GAC first, then EXE's directory…




Microsoft                                                      17
GAC?

    •   GAC = Global Assembly Cache
         – C:Windows or C:WinNT directory



    •   Observations:
         – explorer yields a flat view of GAC
         – command-shell yields actual representation
         – GAC can hold different versions of the same assembly
         – some assemblies have been pre-JIT ("native image")
         – tamper proof via digital signatures…




Microsoft                                                         18
Summary

    •   .NET architecture is:
         – multi-language
         – cross-platform
         – based on the CLR, FCL, and JIT technology

    •   Application designs are typically multi-tier
    •   Application designs yield component-based development
         – .NET components are packaged as assemblies




Microsoft                                                       19
Resources

 •   Books:
      – J. Richter, "Applied Microsoft .NET Framework Programming" (C#)
      – J. Richter and F. Balena, "Applied Microsoft .NET Framework
        Programming in Microsoft Visual Basic .NET" (VB)
      – T. Thai and H. Lam, ".NET Framework Essentials"

 •   Web sites:
     – http://msdn.microsoft.com/net
     – http://www.gotdotnet.com/
     – Linux port (Mono): http://www.go-mono.com/
     – MS source (Rotor / SSCLI): http://msdn.microsoft.com/net/sscli




Microsoft                                                               20

More Related Content

What's hot

Microsoft .Net Framework
Microsoft .Net FrameworkMicrosoft .Net Framework
Microsoft .Net Framework
Rohit Rao
 
.Net Framwork Architecture And components
.Net Framwork Architecture And components.Net Framwork Architecture And components
.Net Framwork Architecture And components
syedArr
 
Web technology slideshare
Web technology slideshareWeb technology slideshare
Web technology slideshare
GuruAbirami2
 
Calling The Notes C Api From Lotus Script
Calling The Notes C Api From Lotus ScriptCalling The Notes C Api From Lotus Script
Calling The Notes C Api From Lotus Script
dominion
 
.Net overview by cetpa
.Net overview by cetpa.Net overview by cetpa
.Net overview by cetpa
sharmamohan13989
 
.Net Introduction
.Net Introduction.Net Introduction
.Net Introduction
Muzzammil Wani
 
Net overview
Net overviewNet overview
J interop
J interopJ interop
J interop
Muhammad Yousaf
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
Sisir Ghosh
 
Net framework
Net frameworkNet framework
Net framework
mayankingeniar
 
The compilation process
The compilation processThe compilation process
The compilation process
Alexander Bollbach
 
Understanding how C program works
Understanding how C program worksUnderstanding how C program works
Understanding how C program works
MindBridgeTech
 
.Net overview
.Net overview.Net overview
C#
C#C#
Different types of Editors in Linux
Different types of Editors in LinuxDifferent types of Editors in Linux
Different types of Editors in Linux
Bhavik Trivedi
 
Computer Programming - Lecture B
Computer Programming - Lecture BComputer Programming - Lecture B
Computer Programming - Lecture B
CMDLearning
 
C Programming[Sample]
C Programming[Sample]C Programming[Sample]
C Programming[Sample]
Mostafa Ali
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
Bill Buchan
 
LLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time OptimizationLLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time Optimization
Vivek Pansara
 

What's hot (19)

Microsoft .Net Framework
Microsoft .Net FrameworkMicrosoft .Net Framework
Microsoft .Net Framework
 
.Net Framwork Architecture And components
.Net Framwork Architecture And components.Net Framwork Architecture And components
.Net Framwork Architecture And components
 
Web technology slideshare
Web technology slideshareWeb technology slideshare
Web technology slideshare
 
Calling The Notes C Api From Lotus Script
Calling The Notes C Api From Lotus ScriptCalling The Notes C Api From Lotus Script
Calling The Notes C Api From Lotus Script
 
.Net overview by cetpa
.Net overview by cetpa.Net overview by cetpa
.Net overview by cetpa
 
.Net Introduction
.Net Introduction.Net Introduction
.Net Introduction
 
Net overview
Net overviewNet overview
Net overview
 
J interop
J interopJ interop
J interop
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
Net framework
Net frameworkNet framework
Net framework
 
The compilation process
The compilation processThe compilation process
The compilation process
 
Understanding how C program works
Understanding how C program worksUnderstanding how C program works
Understanding how C program works
 
.Net overview
.Net overview.Net overview
.Net overview
 
C#
C#C#
C#
 
Different types of Editors in Linux
Different types of Editors in LinuxDifferent types of Editors in Linux
Different types of Editors in Linux
 
Computer Programming - Lecture B
Computer Programming - Lecture BComputer Programming - Lecture B
Computer Programming - Lecture B
 
C Programming[Sample]
C Programming[Sample]C Programming[Sample]
C Programming[Sample]
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
 
LLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time OptimizationLLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time Optimization
 

Viewers also liked

劇的に変える10月シェア2pdf
劇的に変える10月シェア2pdf劇的に変える10月シェア2pdf
劇的に変える10月シェア2pdfNobuhito Ohigashi
 
人生を劇的に変えるWs1ヶ月後share
人生を劇的に変えるWs1ヶ月後share人生を劇的に変えるWs1ヶ月後share
人生を劇的に変えるWs1ヶ月後shareNobuhito Ohigashi
 
παραδειγμα
παραδειγμαπαραδειγμα
παραδειγμαkparisis1527
 
Tbmu20130515
Tbmu20130515Tbmu20130515
Tbmu20130515
Nobuhito Ohigashi
 
IT Case Study
IT Case StudyIT Case Study
IT Case Study
Saurabh Sarkar
 
Sdlc
SdlcSdlc
Agile softwareengineering
Agile softwareengineeringAgile softwareengineering
Agile softwareengineering
Mahfuz1061
 
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmu
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmuGoogleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmu
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmuNobuhito Ohigashi
 
OST - TCIL final
OST - TCIL finalOST - TCIL final
OST - TCIL final
Saurabh Sarkar
 
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
kparisis1527
 
Test plan
Test planTest plan
Test plan
Mahfuz1061
 
It case study[1]
It case study[1]It case study[1]
It case study[1]
Saurabh Sarkar
 
親指シフトの凄さ 俺聞け5
親指シフトの凄さ 俺聞け5親指シフトの凄さ 俺聞け5
親指シフトの凄さ 俺聞け5Nobuhito Ohigashi
 

Viewers also liked (17)

劇的に変える10月シェア2pdf
劇的に変える10月シェア2pdf劇的に変える10月シェア2pdf
劇的に変える10月シェア2pdf
 
人生を劇的に変えるWs1ヶ月後share
人生を劇的に変えるWs1ヶ月後share人生を劇的に変えるWs1ヶ月後share
人生を劇的に変えるWs1ヶ月後share
 
παραδειγμα
παραδειγμαπαραδειγμα
παραδειγμα
 
Tbmu20130515
Tbmu20130515Tbmu20130515
Tbmu20130515
 
IT Case Study
IT Case StudyIT Case Study
IT Case Study
 
Sdlc
SdlcSdlc
Sdlc
 
Agile softwareengineering
Agile softwareengineeringAgile softwareengineering
Agile softwareengineering
 
Chim
ChimChim
Chim
 
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmu
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmuGoogleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmu
Googleアドセンス3つの疑問 -東京ブロガーミートアップ- #tbmu
 
13 m3i
13 m3i13 m3i
13 m3i
 
OST - TCIL final
OST - TCIL finalOST - TCIL final
OST - TCIL final
 
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
ΗΓΕΣΙΑ ΧΩΡΙΣ ΤΙΤΛΟ
 
Llt4 pino
Llt4 pinoLlt4 pino
Llt4 pino
 
Test plan
Test planTest plan
Test plan
 
It case study[1]
It case study[1]It case study[1]
It case study[1]
 
U nconference nicola
U nconference nicolaU nconference nicola
U nconference nicola
 
親指シフトの凄さ 俺聞け5
親指シフトの凄さ 俺聞け5親指シフトの凄さ 俺聞け5
親指シフトの凄さ 俺聞け5
 

Similar to Dot net

Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
GaytriMate
 
election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...
dnnindia
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
Arun Prasad
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
Raghuveer Guthikonda
 
Presentation1
Presentation1Presentation1
Presentation1
kpkcsc
 
srgoc dotnet_ppt
srgoc dotnet_pptsrgoc dotnet_ppt
srgoc dotnet_ppt
Gaurav Singh
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .net
pinky singh
 
Introduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutions
Quontra Solutions
 
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Lorenz Lo Sauer
 
DotNet Framework
DotNet FrameworkDotNet Framework
DotNet Framework
Wani Zahoor
 
.Net
.Net.Net
NETOverview1.ppt
NETOverview1.pptNETOverview1.ppt
NETOverview1.ppt
VivekRaj101435
 
NETOverview1ppt.pptx
NETOverview1ppt.pptxNETOverview1ppt.pptx
NETOverview1ppt.pptx
charusharma165
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3
aminmesbahi
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
Karthika Parthasarathy
 
Introduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsIntroduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutions
QUONTRASOLUTIONS
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
SynapseindiaComplaints
 
.Net framework
.Net framework.Net framework
.Net framework
sanya6900
 
Best DotNet Training in Delhi
Best   DotNet Training  in DelhiBest   DotNet Training  in Delhi
Best DotNet Training in Delhi
Information Technology
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
vijayakumari kaliannan
 

Similar to Dot net (20)

Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
 
election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Presentation1
Presentation1Presentation1
Presentation1
 
srgoc dotnet_ppt
srgoc dotnet_pptsrgoc dotnet_ppt
srgoc dotnet_ppt
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .net
 
Introduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutions
 
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
 
DotNet Framework
DotNet FrameworkDotNet Framework
DotNet Framework
 
.Net
.Net.Net
.Net
 
NETOverview1.ppt
NETOverview1.pptNETOverview1.ppt
NETOverview1.ppt
 
NETOverview1ppt.pptx
NETOverview1ppt.pptxNETOverview1ppt.pptx
NETOverview1ppt.pptx
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
Introduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsIntroduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutions
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
.Net framework
.Net framework.Net framework
.Net framework
 
Best DotNet Training in Delhi
Best   DotNet Training  in DelhiBest   DotNet Training  in Delhi
Best DotNet Training in Delhi
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
 

More from Mahfuz1061

Test case
Test caseTest case
Test case
Mahfuz1061
 
Sql presentation
Sql presentationSql presentation
Sql presentation
Mahfuz1061
 
Sql
SqlSql
Software testing
Software testingSoftware testing
Software testing
Mahfuz1061
 
Pl sql
Pl sqlPl sql
Pl sql
Mahfuz1061
 
Net framework
Net frameworkNet framework
Net framework
Mahfuz1061
 
Change management
Change managementChange management
Change management
Mahfuz1061
 

More from Mahfuz1061 (7)

Test case
Test caseTest case
Test case
 
Sql presentation
Sql presentationSql presentation
Sql presentation
 
Sql
SqlSql
Sql
 
Software testing
Software testingSoftware testing
Software testing
 
Pl sql
Pl sqlPl sql
Pl sql
 
Net framework
Net frameworkNet framework
Net framework
 
Change management
Change managementChange management
Change management
 

Recently uploaded

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 

Dot net

  • 1. Lecture 1: The .NET Architecture
  • 2. Objectives “Microsoft .NET is based on the .NET Framework, which consists of two major components: the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” • CLR-based execution • Application designs Microsoft 2
  • 3. Part 1 • CLR-based execution… Microsoft 3
  • 4. Influences • .NET is the result of many influences… OOP JVM GUI .NET Web component-based design n-tier design Microsoft 4
  • 5. .NET is multi-language • .NET supports VB, C# (C-sharp), C++, J# (Java 1.2), Eiffel, etc. code.vb code.cs code.cpp ... Development Tools FCL app.exe Microsoft 5
  • 6. .NET is cross-platform • Compiled .NET apps run on any supported platform: APP.exe ? Win64 Win32 WinCE (XP,2K,98) Microsoft 6
  • 7. How is cross-platform achieved? • Cross-platform execution realized in two ways: 1. apps are written against Framework Class Library (FCL), not underlying OS 2. compilers generate generic assembly language which must be executed by the Common Language Runtime (CLR) Microsoft 7
  • 8. (1) FCL • Framework Class Library – 1000's of predefined classes – common subset across all platforms & languages – networking, database access, XML processing, GUI, Web, etc. • Goal? – FCL is a portable operating system Microsoft 8
  • 9. (2) CLR-based execution • Common Language Runtime must be present to execute code: APP.exe OS Process other FCL JIT Compiler components obj code Core FCL CLR Underlying OS and HW Microsoft 9
  • 10. Implications of .NET's execution model 1. Clients need CLR & FCL to run .NET apps – available via Redistributable .NET Framework – 20MB download – runs on 98 and above, NT (sp6a) and above 2. Design trade-off… + managed execution (memory protection, verifiable code, etc.) + portability: – slower execution? Microsoft 10
  • 11. Part 2 • Application design… Microsoft 11
  • 12. Monolithic • Monolithic app: all source code compiled into one .EXE APP.exe – *not* the norm on Windows… Microsoft 12
  • 13. Component-based • Component-based app: .EXE + 1 or more .DLLs compute.dll GUI.exe data.dll – standard practice on Windows… Microsoft 13
  • 14. Why component-based? • Many motivations: – team programming – multi-language development (I like VB, you like C#) – code reuse (e.g. across different .EXEs) – independent updating (update just component X) • FCL ships as a set of components! Microsoft 14
  • 15. Assemblies • .NET packages components into assemblies • 1 assembly = 1 or more compiled classes – .EXE represents an assembly with classes + Main program – .DLL represents an assembly with classes code.vb code.vb code.cs Development Tools .EXE / .DLL assembly Microsoft 15
  • 16. CLR-based execution revisted • CLR must be able to locate all assemblies: .DLL .EXE .DLL .DLL OS Process other FCL JIT Compiler assemblies obj code Core FCL obj code obj code assembly obj code CLR Underlying OS and HW Microsoft 16
  • 17. Assembly resolution • How does CLR find assemblies? • For now, simple answer is sufficient: – our DLLs must reside in same directory as our EXE – FCL assemblies reside in GAC – CLR looks in GAC first, then EXE's directory… Microsoft 17
  • 18. GAC? • GAC = Global Assembly Cache – C:Windows or C:WinNT directory • Observations: – explorer yields a flat view of GAC – command-shell yields actual representation – GAC can hold different versions of the same assembly – some assemblies have been pre-JIT ("native image") – tamper proof via digital signatures… Microsoft 18
  • 19. Summary • .NET architecture is: – multi-language – cross-platform – based on the CLR, FCL, and JIT technology • Application designs are typically multi-tier • Application designs yield component-based development – .NET components are packaged as assemblies Microsoft 19
  • 20. Resources • Books: – J. Richter, "Applied Microsoft .NET Framework Programming" (C#) – J. Richter and F. Balena, "Applied Microsoft .NET Framework Programming in Microsoft Visual Basic .NET" (VB) – T. Thai and H. Lam, ".NET Framework Essentials" • Web sites: – http://msdn.microsoft.com/net – http://www.gotdotnet.com/ – Linux port (Mono): http://www.go-mono.com/ – MS source (Rotor / SSCLI): http://msdn.microsoft.com/net/sscli Microsoft 20

Editor's Notes

  1. Other platforms? As of May 2003: Mono : open-source Linux port of .Net, beta, no GUI support. Rotor : MS has released the source to the standardized components of .Net, compiles on Windows, FreeBSD, and Mac OS X. 1.0 Release, C# only, no GUI support. Mono can be downloaded from http://www.go-mono.com/ Rotor, officially known as SSCLI, can be downloaded from http://msdn.microsoft.com/net/sscli
  2. JIT = Just-in-time, which gets its name because you generate the actual x86 code at the last possible moment, i.e. run-time. Java uses same approach with its JVM
  3. CLR = Common Language Runtime FCL = .NET Framework Class Library