microsoft java

Download Report

Transcript microsoft java

History
We first begin with Java which was
released in 1995 by Sun Microsystems
 Initially Java was 100% interpreted at
runtime and was very slow
 Eventually Just-in-Time compilers were
created and used
 The increased performance of Java and
portability helped it grow in popularity

History
The theory that Java applications could
be developed on Windows and then
easily be deployed on Unix platforms
was clearly a threat to Microsoft
 So Microsoft created their own Java
Virtual Machine which was fairly reliable
 However, their JVM introduced
incompatible extensions which ruined
portability

History

So Sun sued Microsoft for violating the
licensing terms

This hindered Microsoft’s JVM making it
obsolete quickly as Sun updated their
JVM

Clearly Microsoft and Java did not mix
well
History

In 1999 Anders Hejlsberg of Microsoft
and his team began working on a new
language initially called COOL (C-like
Object Oriented Language)

The name was eventually changed to C#
by the time it was announced, along with
Microsoft’s .NET, in 2000
History

James Gosling claimed that C# was an
“imitation” of Java
 “[C# is] sort of Java with reliability,
productivity and security deleted.”

Klaus Kreft and Angelika Langer
(authors)
 “Java and C# are almost identical
programming languages. Boring repetition
that lacks innovation.”
History

However, over time Java and C# have
taken different paths
Overview
Part of the .NET
Framework
 Compiler
creates
intermediate
code (CIL)
 CLR creates
machine code
 Just-in-time
compilation

.exe or .dll

C# code can be compiled either to
executable files or to library files
(dynamically linked library)
 csc program.cs  compile to executable
 csc /t:library lib.cs  compile to dll
C like language
For the most part, if you have
programmed in Java, C, C++ or any
other C like language, you will be used
to most C# syntax
 C# uses {..} block statements
 If else, while, do/while, for statements all
the same
 Even many keywords are the same
(especially compared to Java)

Object Oriented

At the heart it is object oriented

Supports inheritance and polymorphism

Classes are like objects with members
 methods, constructors, etc.
Basic Program

The Main method





static void Main() {…}
static void Main(string[] args) {….}
static int Main() {….}
static int Main(string[] args) {…}
“Other overloaded versions of Main are
permitted, however, provided they have
more than one parameter, or their only
parameter is other than type string[].” Microsoft
Identifiers and Keywords
C# has 80 keywords
 Some are context sensitive keywords

 They can be used as identifiers

All keywords are usable as identifiers if
the @ symbol is in front of them
 @return, @null, @double
 int @int = 5; Console.WriteLine(@int);
Formatted Output

For output:
 Console.WriteLine(…..);

Format using {…} within a string
 {parameter #, spacing : special formatting}

Console.WriteLine(“{0,-10}.”, 100);
>

100.
...WriteLine(“{1}, {0}”,
firstName,lastName);
 >Rahimi, Shahram
Basic Programs
Basic Programs
Types

Value Types
 sbyte, short, int, long, byte (unsigned),
ushort, uint, ulong, char, float, double,
decimal, bool
 Enum, Struct, Nullable

Reference Types
 Objects, string, class, interface, array,
delegate
Arrays

Arrays are treated the same as in Java
 int[] n = new int[]{1,2,3,4};
SAME AS
 int[] n = {1,2,3,4};
SAME AS
 int[] n = new int[4];
n[0] = 1;
…..
Types

Nullable type
 int?  allows the int values to also be null
 Useful for databases

Delegates
 A data structure that refers to one or more
methods
 Similar to function pointers in C and C++
Delegates
Delegates
Switch

Switch statements are mostly the same
EXECPT that they require an explicit
branch statement like break or goto due
to a static semantic rule

Also, switch statements in C# allow
strings along with int and char
Switch
Unsafe Code

While C# has made strides to eliminate
the need for pointers as data types with
references and objects, it is still allowed

One must declare unsafe code to:
 Declare and operate on pointers
 Perform conversions between pointers
 Take addresses of variables
Unsafe Code


Variables
Methods

Classes
Readability

Pro
 Basic syntax is C like (recognizable)
 Data must be explicitly typed and declared
 Very common special words and statement
structure (loops and selection)

Con
 Not necessarily simple (delegates)
 Overloaded Main
 Keywords as identifiers
 All statements end with }
Writability

Pro
 Many ways to do one thing (like array
declaration)
 Delegates can simplify method calling
 Inheritance

Con
 80 keywords to remember (and required
context)
Reliability

Pro
 Limits use of pointers, programmer
becomes very aware of possible pointer
issues.
 Uses explicitly typed and declared variables

Con
 Can write code in unsafe mode
 Can be a complex language
Cost
 Memory references and automatic garbage
collection make creating quality code simpler
and faster
 Uses Microsoft Visual Studio as compiler
○ Free open source versions are available, but
premium versions can cost $2,000+
 Similar to well known languages but can be
a complex language
Who is using C#
It’s Microsoft Who isn’t using it?
 Web design
 Gaming
 Medical
 Financial
Mono Project
 UNIX version of the Microsoft .NET
development platform
 Open sourced based on C# .NET framework
 Enables Multi platform UNIX .NET
applications
 Implements various technologies developed
by Microsoft that have now been submitted
to the ECMA for standardization.
Sources
“C# In Depth” – Jon Skeet
 Wikipedia

 http://en.wikipedia.org/wiki/C_Sharp_(programming_langu
age)
“C sharp Language Specification” –
Microsoft
 “Concepts of Programming Languages” Sebesta
 “Essential C# 4.0” – Michaelis
 http://www.mono-project.com/
