lecture 1 net
Skip this Video
Download Presentation
Lecture 1: .NET

Loading in 2 Seconds...

play fullscreen
1 / 20

Lecture 1: .NET - PowerPoint PPT Presentation

  • Uploaded on

Lecture 1: .NET. What Is It And Why Use It?. Software from Components. In the industrial revolution, engineers learned to build things in a consistent, predictable, repeatable way Design once, build many identical parts

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Lecture 1: .NET' - marv

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
lecture 1 net

Lecture 1: .NET

What Is It And Why Use It?

.NET - What and Why

software from components
Software from Components
  • In the industrial revolution, engineers learned to build things in a consistent, predictable, repeatable way
    • Design once, build many identical parts
    • They learned to use assembly lines to assemble multiple items from sets of identical components
  • Any component of a given type and specification is interchangeable with another of the same type

.NET - What and Why

why not build software the same way
Why not build software the same way?
  • Multiple languages and incompatibilities
    • Basic, C, C++, COBOL, Visual Basic, C#, F#, Java, Fortran, Perl, Python, Eiffel, Delphi, SQL, Pascal, PL/I, APL, assembly, Scheme, Smalltalk, Prolog, Lisp, RPG, Ada, Snobol, Forth, Algol, Modula-2, HTML, Haskell, JavaScript, Objective C, ABAP, …
    • Cannot just take a block of code from a Lisp program, for example, and plug it into a COBOL program and expect it to work
    • Usually, cannot easily call an Ada method from a Python program, for example

.NET - What and Why

why not build software the same way1
Why not build software the same way?
  • Different Data Types
    • Many different data types
    • Not implemented the same way in all languages
    • Implementations vary in size
      • Character type may take 1 byte (ASCII or EBCDIC) or 2 or more bytes for Unicode
      • Integers may occupy 8 bits, 16 bits, 32 bits, 64 bits, 128 bits, . . .

.NET - What and Why

why not build software the same way2
Why not build software the same way?
  • Different conventions
    • Argument passing may be left-to-right or right-to-left
    • Arguments in one language may be passed using a stack; others use registers, pointers, or someothermeans; not consistent among languages
  • Name collisions
    • Same term may be used differently in different languages – a classname in one language may be a keyword in another

.NET - What and Why

why not build software the same way3
Why not build software the same way?
  • Different platforms and architectures
    • Addresses and data: 16-bit, 32-bit, 64-bit,…
    • Big-endian (ABCD) vs. little-endian (DCBA)
    • Different instructionsets
    • Differences in registerarchitecture

.NET - What and Why

why not build software the same way4
Why not build software the same way?
  • Different operating systems even on the same hardware
    • Almost all user software depends on and uses services provided by the OS and its subsystems
    • Different OperatingSystems have different ways of implementing the services, different API’s, different conventions, different security approaches, different levels of support for various activities

.NET - What and Why

why not build software the same way5
Why not build software the same way?
  • Different Human Languages; Different Cultures
    • English, French, Japanese, Chinese, German, Spanish, Arabic, Russian, Hebrew, …
    • In the US, 1.23 represents 1 and 23 hundredths, while in many European cultures, the same value would be represented as 1,23
    • Fahrenheit vs. Celsius; in US,30 degrees is cold while in Canada,30 degrees is hot
    • US Dollars vs. Canadian Dollars, Euros, Yen, Rubles, Riyals, Dirhams, Pesos, Yuan, ...
    • Dates: 03/04/2014 is March 4, 2014 in the US, but it is April 3, 2014 in much of Europe
    • Inches, miles, gallons, pounds vs. centimeters, kilometers, liters, and kilograms . . .

.NET - What and Why

com corba enterprise java beans
COM, CORBA, Enterprise Java Beans
  • Various companies and groups of companies came up with approaches that could be used to standardize things and allow components to work together
  • Problems:
    • All approaches were proprietary
    • Approaches incompatible with each other
    • Not based on open standards

.NET - What and Why

  • Based on a standard developed by Microsoft, Intel, IBM, and others
    • Approved as a standard by ECMA
    • Approved as a standard by ISO
    • Standards cover CTS, CLS, C#, and other items
    • Designed to be languageagnostic
    • Platformneutral
    • Open to development by anyone

.NET - What and Why

Many others including IronPython, IronRuby, Cobol, Delphi, JavaScript, etc.

The virtual machine runs this

.NET - What and Why

common type system cts
Common Type System (CTS)
  • All .NET languages support common types – though not necessarily using the same names
    • System.Int32 is called int in C++ and in C#, and Integer in VB, but they are same type and can be passed back and forth as arguments
    • System.Single is called Single in VB and float in C++ and C#, but all are the same type and are interchangeable in the .NETlanguages

.NET - What and Why

common language runtime clr
Common Language Runtime (CLR)
  • All .NET compilers emit platform-neutralIntermediate Language (IL) object code (like byte-code in Java) rather than native machine language code
    • IL is the same regardless of hardware, OS, or .NETlanguage
    • Output of a project is called an Assembly: may be either a .EXE or a .DLL
  • Only the CLR needs to know on what platform it is running

.NET - What and Why

clr continued
CLR, continued
  • CLR contains a Just-In-Time (JIT) compiler that turns IL into nativemachinelanguageoptimized for its targetmachine
    • Very fast and efficient
    • Done only once and only if needed
    • Thus code is compiled, not interpreted as in some languages
  • CLR also handles garbage-collection, exceptionhandling, cross-language debugging, and distributeddebugging, and other common features
  • Includes runtimesupport for thousands of .NETclasses

.NET - What and Why

il example
IL Example

.method public hidebysig static void Main() cil managed



.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = Code size 14 (0xe)

.maxstack 8

IL_0000: nop

IL_0001: newobj instance void ManageDB.frmTblMgmt::.ctor()

IL_0006: call void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)

IL_000b: nop

IL_000c: nop

IL_000d: ret

} // end of method frmTblMgmt::Main

.NET - What and Why

Which language?

VB.NET compiler


C# Compiler

JIT compiler

Runtime Compilation and Execution


C# code

Visual Basic .NET code



.NET - What and Why

platform neutral
Platform Neutral
  • Because the IL code is not targeted at any platform, it is portable between systems of different HW, SW, etc.
  • A (.NET) .exe and a (.NET) .dll compiled on a Windows system will run on a Mac, a Sun, or an IBMmainframe

. . . IF. . .

the target machine has its ownCLR with a JIT compiler to convert the IL code to nativecode targeted to the machine on which it is to run and to provide the runtime support for the .NET classes

.NET - What and Why

language interoperability
Language Interoperability
  • The standards that are part of .NET insure that:
  • A Windows control developed in VB.NET can be used in a C# program
  • A method written in a business-tierclass in COBOL.NET can be invoked by a VB.NETWindowsForms front end
  • A .NETstring in a Delphi.NET program compiled using a Borland compiler on a Windows computer can be passed to a C# method written using a SSCLI compiler running on an Apple OS-X platform

.NET - What and Why

net implementations
.NET Implementations
  • Implementations of .NET include
    • Microsoft’s .NETFramework and Visual Studio.NET
    • The SharedSourceCommonLanguageInitiative (SSCLI) that runs on BSDUnix and AppleOS-X
    • Mono - opensource effort up until recently led by Novell and others
  • More than 30 languages support .NET:
    • Microsoft: VB.NET, C#, managed C++, Cω, Spec#, F#
    • Python, Perl, Cobol, Delphi, Pascal, Eiffel, Fortran, RPG, Scheme, Smalltalk, Ruby, Forth, and many others by non-Microsoft vendors
    • Thousands of tools are available from third-party vendors to aid in .NET Framework development, including more than 1000 add-ins for VisualStudio.NET, as well as compilers with their own IDE’s from Borland and Macromedia

.NET - What and Why

Thus, …
  • Solutions/Applications can be developed in any .NETlanguage or languages (by project) that fully supports the features used by the application and that adheres to the standards
  • Differentparts of the application (solution) can be developed in differentlanguages
    • A VB main program can use a class developed in C# that uses another class developed in F#, for example
    • In a .NET web application, each web page at a web site could be developed in a separate .NET language

.NET - What and Why