'NET and C - PowerPoint PPT Presentation

About This Presentation
Title:

'NET and C

Description:

DCOM location transparency does not hold on the web. CORBA and ... Console.WriteLine('Invalided time'); else. start = value; class Demo { public static Main ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 39
Provided by: petergro
Category:
Tags: net | invalided

less

Transcript and Presenter's Notes

Title: 'NET and C


1
.NET and C
  • Peter Groenewegen
  • Vrije Universiteit
  • pgroene_at_few.vu.nl

2
.NET and C
.NET
  • Part 1

3
The .NET Evolution
As big a transition as from DOS to Windows
4
.NET
5
Many Devices
Intel
Win32
universal runtime
Winforms
6
Intermediate Language
  • All languages are compiled to an intermediate
    language

7
Intermediate Language
Computer Language
Intel
PPC
6502
8
Intermediate Language
Computer Language
libraries
Intermediate Language
runtime
Intel
PPC
6502
9
Intermediate Language
C
Perl
Pascal
libraries
MSIL
runtime
Intel
PPC
6502
10
Common Language Runtime
11
.NET
12
Web Services
DCOM
ASP
SOAP
ASP, Webforms
Biztalk
13
Web Services
ASP
14
Web Services
Webservice
Webservice
Webservice
Webservice
15
Web Services
DCOM location transparency does not hold on the
web
CORBA
DCOM
CORBA implementations are not compatible
CORBA
DCOM
CORBA
DCOM
CORBA and DCOM are not compatible
CORBA
CORBA
16
Web Services
  • Functionality for development and management of
    .NET services
  • Application Center 2000 Extreme reliability and
    scalability
  • Internet Security Acceleration Server Firewall
    and proxy server
  • Commerce Server analyzing site usage
  • BizTalk Server 2000 Business process
    orchestration Business-to-business document
    interchange using XML
  • SQL Server 2000 Easy-to-use database systems
    with native Extensible Markup Language (XML)
    support
  • Host Integration Server 2000 Integration with
    host systems and their data
  • Mobile Information 2001 Server Integration with
    mobile devices

17
.NET
18
Simpler programming model
ComponentBased
Java
C
Cobol
Object Oriented
Haskell
Python
Perl
C
VB
19
Simpler programming model
  • Cross-language implementation inheritance
  • Cross-language exception handling
  • Cross-language debugging
  • ASP pages in any language
  • Client-side scripts in any language
  • Languages include
  • Perl, Python, COBOL, Pascal, Oberon, ...
  • Haskell, Mercury, Eiffel,
  • C, C,C,

20
Versioning
Office 2000SP1
Leisure suit Larry
The programmer was aware of a bug and thought he
was smart to use the feature
X.dll Version 1949
X.dll Version 2001
Salary
Implementation relied on secret API removed in
new version
21
What else...
  • Free standards
  • XML
  • Performance
  • Backwards compatibility
  • Lots of code ready to use
  • ...

22
The .NET evolution
DOS ? Windows Windows ? .NET
23
.NET and C
C
  • Part 2

24
C
Not MS alternative for Java
Language for programming.NET framework
Which is MS alternative forJVM ?
25
Hello World
using System class Hello static void Main()
Console.WriteLine("Hello world")
DEMO
csc HelloWorld.cs
ildasm HelloWorld.exe
26
C Program Structure
  • Namespaces
  • Types, namespaces
  • Type declarations
  • Classes, interfaces, structs, enums, delegates
  • Members
  • Fields,methods, constants, properties, events,
    indexers, operators, constructors, destructors

package
inner classes
Java Beans
void finalize ()
27
Boxing/Unboxing
  • Boxing
  • Allocates box, copies value into it
  • Unboxing
  • Checks type of box, copies value out

int i 123 object o i int j (int)o
123
i
System.Int32
o
123
123
j
28
Value Types
  • Struct type
  • struct Point int x, y
  • Simple type
  • int i
  • Enums type
  • enum State Off, On

Everything is really an object
29
Refrence types
  • Interface type
  • Delegate type
  • Class type
  • Array type

30
Unsafe code
  • Unsafe code
  • Low-level code without leaving the box
  • Enables unsafe casts, pointer arithmetic
  • Declarative pinning
  • fixed statement
  • Basically inline C

31
Unsafe code
class FileStream Stream int handle
public unsafe int Read(byte buffer, int index,
int count) int n 0 fixed (byte
p buffer) ReadFile(handle, p
index, count, n, null) return n
dllimport("kernel32", SetLastErrortrue)
static extern unsafe bool ReadFile(int
hFile, void lpBuffer, int nBytesToRead,
int nBytesRead, Overlapped lpOverlapped)
32
Properties
  • Properties are smart fields
  • Natural syntax, accessors, inlining

class Borrel private int start public int
Start get return start
set if (value lt 1700 value gt 2400)
Console.WriteLine(Invalided time)
else start value
class Demo public static Main ()
Borrel b new Borrel() b.Start 1745
int start b.Start
33
Indexers
  • Indexers are smart arrays
  • Can be overloaded

class Borrel private Dictionary participants
public Borrel() participants new
Dictionary() public bool thisString name
get return (participants.Contains(na
me) (bool)participantsname)
set participants.Add(name,value)

class Demo public static void Main ()
Borrel b new Borrel () bPeter true
Console.WriteLine(bBill)
34
Dogs Demo
Thanks Roger and Eric Sessions!
using Systemnamespace VirtualDog public
class Dog public virtual void RollOver ()
Console.WriteLine("Scratch my tummy.")
Bark() public virtual void Bark
() Console.WriteLine("WOOF WOOF (Dog)")

import VirtualDogvar d new Dog()var m
new Mopje()d.RollOver()m.RollOver()
Imports SystemNamespace VirtualDog Public
Class Mopje Inherits Dog Public overrides
Sub Bark () Console.WriteLine("WOEF WOEF
(Mopje)") End Sub End ClassEnd Namespace
35
What more?
  • Versioning
  • XML comments (Demo?)
  • Conditional compilation
  • ...

36
References and more info
  • C session by Tony Goodhew, TechEd 2000
  • .NET session Eric Meijer
  • C session Eric Meijer
  • http//www.cs.vu.nl/pgroene/Vakken/Oop/oop.html

37
Questions?
38
Where do you what to go today?
Write a Comment
User Comments (0)
About PowerShow.com