A Team 2 Technical Presentation
Vadim Kim
Kirk Guotana
Adam Partlo
Shreyas Thiagarajasubramanian
History of Computer Programming
First program and algorithm
Analytical engine
Charles Babbage
(1791-1871)
Difference Engine
What is a Program?
Artificial language with instruction
Manipulation of variables
Input and output
Program Example
Program Major Components
Syntax
Semantics
Introduction to C#
Started in 1999
C.O.O.L.
Led by Anders Hejlsberg
Direct competitor with Java
Readable
Current version: C# 4.0
C# 5.0 expected
OOP
Andy
C#’s Mascot (Retired in 2004)
What Is OOP?
Object oriented programming
Defined by objects
State (Fields)
Behavior (Methods)
Classes
Example
Object: Jeep
SUV
Fields:
• Current Speed
• Current Gear
• Current
Transmission
Methods:
• Speed Up / Apply
Brakes
• Change Gear
• Change Transmission
(4x2 / 4x4)
Example (cont.)
Object Definition:
class SUV {
private:
int currentSpeed;
int currentGear;
int currentTransmission;
public:
void SpeedUp(int);
void ApplyBrakes(int);
void Change Transmission(int);
void PrintStates(void);
}
How to use object:
// Define objects
SUV Jeep = new SUV();
// Methods on object
Jeep.SpeedUp(10);
Jeep.ChangeGear(2);
Jeep.ChangeTransmission(4);
Jeep.PrintStates();
Benefits of C#
Managing memory in C/C++
Responsibility of the programmer
Need to allocate resources for objects
Resources must be released when finished
Garbage Collection in C#
Handled by common language runtime (CLR)
Provided by .Net Framework
Runs code and provides services
Periodically checks memory heap
Releases resources held by unreferenced objects
Benefits of C# (cont.)
.Net Framework
Consistent programming model
Supports building and running the next generation of applications and XML
web services
Extremely easy to write C# in visual studio (VS)
Visual designers to create applications with GUI’s
.Net Framework
Six Major Objectives
1) Consistent object-oriented programming environment
Code-execution environment that…
2) Minimizes software deployment
3) Promotes safe execution of code
4) Eliminates the performance problems of scripted environments
5) Developer experience consistent across widely varying types of applications
6) Build all communication on industry standards
Visual Designers
• Windows Forms Designer
Visual Designers (cont.)
• Windows Presentation Foundation
(WPF) Designer
Introduced with Visual Studio 2008
Supports Drag and Drop
Provides flexibility by using XAML
An XML based markup language to describe the UI
C# code is separated from the XAML markup
Visual Designers (cont.)
• Class designer
Author and edit the classes using UML modeling
Visual Designers (cont.)
• Data designer
Graphically edit database schemas
Design queries from the graphical view
Web designer/development
ASP.NET applications
.NET Framework
A framework with which applications can be made
for a variety of Microsoft platforms
Very easy to use, and code can be shared between
platforms
Example:
A game built for Windows can be very easily ported to
XBox360
Windows Phone 7
Windows Phone 7 apps can be made with Visual
Studio and C#
Web Applications
ASP.NET, Microsoft’s web application framework, is
also integrated with C# and VS
Netduino Applications
Netduino Applications can be made with C#, VS, and
the .NET Micro framework
Video
App Demo
Conclusion
C# is a very popular and rapidly growing language
Backed by a large company, it will continue to evolve
alongside the technologies of the future
It is very easy to learn, very fast to develop in, and very
well integrated with a variety of platforms through .NET
and VS
Windows, Windows Phone, Web, Xbox, Netduino, etc.
Questions?