NET Overview Objectives

NET Overview Objectives

.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 – development tools and languages –platform – application management servers – value-added services development platform servers services Languages Common Language Runtime SQL Server My Services Compilers Framework Libraries BizTalk Alerts Visual Studio .NET SharePoint Passport ... ... 3 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 Software development • .NET software development and execution has many actors – languages –libraries – compilers – intermediate language – execution engine 5 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 Language power • All languages can access .NET infrastructure class Hello { static void Main() { C# System.Console.WriteLine("hello"); } } Class Goodbye Shared Sub Main() VB.NET System.Console.WriteLine("goodbye") End Sub End Class 7 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 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; unsigned integer uint u; } } VB.NET Class Greeting Shared Sub Main() signed integer only Dim i as Integer End Sub End Class 9 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 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 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 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 Execution engine • Common Language Runtime (CLR) is the execution engine – loads IL – compiles IL – executes resulting machine code CLR Runtime IL machine code Execute compiler 14 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 F() JIT runtime Execute G() compiler H() 15 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 IL ngen machine code image Execute cache 16 Execution command • CLR automatically invoked when .NET application executed execute C:\> MyApp hello 17 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 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 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 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 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 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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us