net overview objectives
play

.NET Overview Objectives Introduce .NET overview languages - PDF document

.NET Overview Objectives Introduce .NET overview languages libraries development and execution model Examine simple C# program 2 .NET Overview .NET is a sweeping marketing term for a family of products


  1. .NET Overview

  2. Objectives • Introduce .NET – overview – languages – libraries – development and execution model • Examine simple C# program 2

  3. .NET Overview • .NET is a sweeping marketing term for a family of products – development tools and languages – platform – application management servers – value-added services development platform servers services Common Language Runtime Languages SQL Server My Services Framework Libraries Compilers BizTalk Alerts Visual Studio .NET SharePoint Passport ... ... 3

  4. Evolution of the platform • .NET is the next evolutionary step for the Microsoft platform – new languages largely replace classic C++ and Visual Basic – new runtime model reduces need for COM style integration – XML web services used in place of DCOM – Windows Forms replace MFC – ASP.NET improves on ASP – etc. 4

  5. Software development • .NET software development and execution has many actors – languages – libraries – compilers – intermediate language – execution engine 5

  6. Languages • Many .NET programming languages available – C# – VB.NET – C++ – etc. • Language choice typically based on many factors – programmer background – problem domain – language features – corporate mandate 6

  7. Language power • All languages can access .NET infrastructure class Hello { static void Main() { C# System.Console.WriteLine("hello"); } } Class Goodbye Shared Sub Main() System.Console.WriteLine("goodbye") VB.NET End Sub End Class 7

  8. Language interoperability • All .NET languages can interoperate class Hello { static void Main() { C# calling System.Console.WriteLine(Greeting.Message()); VB.NET } } Class Greeting Shared Function Message() As String Return "hello" End Function End Class 8

  9. Language variability • Not all .NET languages have exactly the same capabilities – differ in small but important ways C# class Hello { static void Main() { signed integer int i; uint u; unsigned integer } } VB.NET Class Greeting Shared Sub Main() signed integer only Dim i as Integer End Sub End Class 9

  10. Common Language Specification • Common Language Specification (CLS) defines type subset – required to be supported by all .NET languages – limiting code to CLS maximizes language interoperability – code limited to CLS called CLS compliant public class Calculator not CLS compliant { to use uint in public public uint Add(uint a, uint b) { interface of public class return a + b; } } 10

  11. Library • Extensive set of standard libraries available – for wide range of application types – called .NET Framework class library .NET Framework class library Input/Output Collections Networking Reflection Web development Debugging XML processing Threading Windows Forms GUI Database access 11

  12. Compilation • Compilers produce Intermediate Language (IL) – IL is not executable – similar to assembly language – processor independent C# code VB.NET code <other> code C# compiler VB.NET compiler <other> compiler IL IL IL 12

  13. IL • C# compiler translates C# source code into IL C# source Calc c = new Calc(); int sum = c.Add(2, 4); C# compiler IL .locals init ([0] class Calc c, [1] int32 sum) newobj instance void Calc::.ctor() stloc.0 // c = ptr to new object ldloc.0 ldc.i4.2 // pass second arg ldc.i4.4 // pass first arg callvirt instance int32 Calc::Add(int32,int32) stloc.1 // sum = retval 13

  14. Execution engine • Common Language Runtime (CLR) is the execution engine – loads IL – compiles IL – executes resulting machine code CLR Runtime Execute IL machine code compiler 14

  15. JIT runtime compile • IL is compiled into machine code at runtime by the CLR – compiles methods as needed – called just in time (JIT) compile • JIT compilation model: – first time method is called the IL is compiled and optimized – compiled machine code is cached in transient memory – cached copy used for subsequent calls Cache machine code for F() IL code JIT runtime F() Execute G() compiler H() 15

  16. NGEN install time compile • Can compile IL into machine code when app installed – use native image generator ngen.exe – can speed startup time since code pre-compiled – but cannot do as many optimizations – original IL must still be available for type information CLR native ngen image Execute IL machine code cache 16

  17. 17 CLR automatically invoked when .NET application executed C:\> MyApp hello Execution command execute •

  18. Required CLR • CLR and .NET Framework required to run .NET app – will be incorporated into Windows and service packs – developers install as part of .NET Framework SDK – users can run dotnetredist.exe 18

  19. C# program • C# program basics – source file has .cs extension – namespace used to group related types – class defines new type – Main is application entry point – WriteLine writes output – { and } delimit code block MyApp.cs namespace MyNamespace { class MyApp { static void Main() { System.Console.WriteLine("hello"); } } } 19

  20. Building console executable • Can use C# compiler to build console executable – use /t[arget]:exe – use /out:<name> to specify output file name • Default values can simplify use – default target type is console executable – default name adds .exe to base name of file containing Main explicit C:\> csc /target:exe /out:MyApp.exe MyApp.cs options implicit C:\> csc MyApp.cs options 20

  21. Building Windows executable • Can use C# compiler to build windows executable – use /t[arget]:winexe build Windows C:\> csc /target:winexe MyWinApp.cs application 21

  22. Building library • Can use C# compiler to build library – use /t[arget]:library • Controlling output file name: – can use /out:<name> to specify output file name – default: adds .dll to base name of first input file create C:\> csc /target:library /out:MyLib.dll MyLib.cs library 22

  23. Summary • .NET requires multiple steps to develop and run software – code in one of the many .NET languages – compile into IL – install the CLR – execute • CLR JIT compiles IL at runtime – always executes compiled code – never interpreted • Can target CLS compliance – to maximize language interoperability 23

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend