Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: ".NET Overview. 2 Objectives Introduce.NET –overview –languages –libraries –development and execution model Examine simple C# program."— Presentation transcript:

1 .NET Overview

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

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

4 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.

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

6 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

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

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

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

10 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 { public uint Add(uint a, uint b) { return a + b; } not CLS compliant to use uint in public interface of public class

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

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

13 13 IL C# compiler translates C# source code into IL C# source 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 Calc c = new Calc(); int sum = c.Add(2, 4); C# compiler

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

15 15 Cache 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 IL code F() G() H() JIT runtime compiler Execute machine code for F()

16 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 IL ngen Execute native image cache machine code

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

18 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

19 19 MyApp.cs 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 namespace MyNamespace { class MyApp { static void Main() { System.Console.WriteLine("hello"); }

20 20 Building console executable Can use C# compiler to build console executable –use /t[arget]:exe –use /out: 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 C:\> csc /target:exe /out:MyApp.exe MyApp.cs explicit options C:\> csc MyApp.cs implicit options

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

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

23 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


Download ppt ".NET Overview. 2 Objectives Introduce.NET –overview –languages –libraries –development and execution model Examine simple C# program."

Similar presentations


Ads by Google