Microsoft C# Presentation. Team Members: Jon Limpalair, David Rak, Casey Long

Similar documents
Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Semester Review. CSC 301, Fall 2015

Evolution of the Major Programming Languages

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

To Java SE 8, and Beyond (Plan B)

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

INTRODUCTION TO C# 0 C# is a multi-paradigm programming language which is based on objectoriented and component-oriented programming disciplines.

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

How to create/avoid memory leak in Java and.net? Venkat Subramaniam

AP Computer Science Java Subset

Java CPD (I) Frans Coenen Department of Computer Science

Moving from CS 61A Scheme to CS 61B Java

C# and Other Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

An Introduction to.net for the J2EE Programmer

Introduction to programming

Fundamentals of Java Programming

Semantic Analysis: Types and Type Checking

How to simplify software development with high level programming languages? Pierre-Alexandre Voye - ontologiae@gmail.com

Praktikum im Bereich Praktische Informatik Entwicklung eines Ray-Tracing Systems. computer graphics & visualization

Programming in C# with Microsoft Visual Studio 2010

Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)

McGraw-Hill The McGraw-Hill Companies, Inc.,

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

Java Interview Questions and Answers

CSCI 3136 Principles of Programming Languages

1/20/2016 INTRODUCTION

Object Oriented Software Design

Programming Language Inter-conversion

C Compiler Targeting the Java Virtual Machine

2 Introduction to Java. Introduction to Programming 1 1

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Konzepte objektorientierter Programmierung

SE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin

An Overview of Java. overview-1

Chapter 5 Names, Bindings, Type Checking, and Scopes

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

CS170 Lab 11 Abstract Data Types & Objects

CSC 551: Web Programming. Spring 2004

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

Programming Languages

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

Crash Course in Java

Extending Desktop Applications to the Web

Lecture 22: C Programming 4 Embedded Systems

ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Object Oriented Software Design

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

2/9/2010. Standard Approach to Distribution. Remote Procedure Calls (RPC) Example: Music Jukebox in the Cloud

PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)

MEAP Edition Manning Early Access Program Nim in Action Version 1

Data Structures Lecture 1

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

Logging in Java Applications

Functional Programming

A standards-based approach to application integration

CS 111 Classes I 1. Software Organization View to this point:

Chapter 6: Programming Languages

Problem Solving. Software Engineering. Behavior. OCD in a Nutshell. Behavior. Objects Operations Algorithm. Object-Centered Design

Introduction to Object-Oriented Programming

Kotlin for Android Developers

.NET and J2EE Intro to Software Engineering

C++ INTERVIEW QUESTIONS

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

public static void main(string[] args) { System.out.println("hello, world"); } }

Programming and Software Development CTAG Alignments

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

CMSC 202H. ArrayList, Multidimensional Arrays

for Java developers Building Mobile Applications Introduction 1 Building Mobile Applications

An Easier Way for Cross-Platform Data Acquisition Application Development

CS506 Web Design and Development Solved Online Quiz No. 01

Evaluating Java for Game Development

What is a programming language?

Visual C# 2012 Programming

Inheritance in Programming Languages

Install Java Development Kit (JDK) 1.8

Computer Programming I

Application Development,.NET

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

.NET Overview. David Smith. Today s s Topics. Why am I here? A tool. Microsoft s s Vision for.net

Domains and Competencies

Input/Output Subsystem in Singularity Operating System

CSC230 Getting Starting in C. Tyler Bletsch

Course Title: Software Development

Programming Languages

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

An Internet Course in Software Development with C++ for Engineering Students

Programming in C# with Microsoft Visual Studio 2010

CS 6371: Advanced Programming Languages

A Simple Introduction to Game Programming With C# and XNA 3.1

Master of Sciences in Informatics Engineering Programming Paradigms 2005/2006. Final Examination. January 24 th, 2006

Transcription:

Microsoft C# Presentation Team Members: Jon Limpalair, David Rak, Casey Long

Relevant Paradigm and Problem Domains Paradigms: *Imperative, Object Oriented, Event-Driven, Type-Safe, Generic, Reflective *Includes Functional programming abilities >Library that adds Lambda expressions, extension methods, and anonymous types. >Implemented type safety, garbage collection, and exception handling *Used for Rapid Program Development >Largely used for 'General' Programming and applications, though has implementation to help with database management, XML parsing, searching, and more. >.NET integration hinders it's portable, making it a Windows only solution, though. >Heavy emphasis on actual programming logic and readability over repetitive boilerplate code.

Context and Evolution *Lead Designer: Anders Hejlsberg >Anders was the lead designer of TurboPascal and Delphi >Created.Net from C#, giving Microsoft a Virtual Machine implementation >Starter a project called "Cool" (C-Like Object Oriented Language) >"Cool" later became C# *Aimed to create a first class modern language for the "Curly-Brace Crowd" >"Curly-Brace Crowd" = C++ and Java devs- largest "General Applications" programmers *Obvious heavy influences from Java and C++ >Less obvious influences from Delphi 5- of which C#'s principle designer also designed >Since it's conception, Java and C# have greatly influenced one another's development

How It Evolved- Where it is today *Gained LINQ in 2007 >LINQ allowed for more functional-style programming *Has gone through 5 major revisions >Currently on C# 5.0, which is backwards compatible with all previous versions >2.0 added generics, iterators, 3.0 added Lambda expressions, typed local variables, 4.0 added dynamic binding, 5.0 added asynchronous methods *Gained popularity from XNA >XNA is Microsoft Toolkit for Game Development made in 2004 >XNA gained mass popularity after Xbox 360's Xbox Live Arcade gave independent developers a chance to release their games for profit easily *In 2004, signed deal with Novel for Mono >Mono is open source compiler for C# implementation. >If the code is 'clean' of Windows only code, the C# can be compiled for GNU/Linux

Language Concepts *Designed to be closest to Microsofts CLI >Common Language Infrastructure (CLI) is an open specification by Microsoft *Has no global variables/functions >Can be substituted with Static members, however *Syntactically similar to Java >Not entirely identical, but close enough to transfer simple code between one to another *Supports Operator Overloading *Supports Inheritance >Multiple inheritance not supported, but multiple interfaces are *Supports libraries, methods, classes, etc.

Language Concepts *Unified Type System >Called Common Type System (CTS) >All types, even primitives, use System.Object >For example, this means all types inherit ToString() *Supports generics >Both syntactically and functionally identical to Java generics *Implements "Boxing" and "Unboxing" >Boxing is converting value-type object to generic object >Unboxing is converting through explicit type casting a 'boxed' variable back >int testingvar = 3001; >object testingobj = testingvar; >int testingvar2 = (int)testingobj;

Language Features *XML based documentation system >Generates documentation based on code, much like Javadoc *Memory Address Pointer security >C# does not use a virtual machine >Memory pointers can only be used within 'unsafe' code blocks and need special permission to be run >CANNOT reference garbaged collected block or random memory block *Supports the 'type' "Dynamic" >Dynamic Language Runtime determines a type at runtime *Garbage Collection >Memory cannot be explicitly freed- it must instead be garbage collected

Usage Example (LINQ example) using System; using System.Linq; namespace Kodecsharp.Example.Linq { class LinqIntro { [STAThread] public static void Main(string[] args) { int[] numbers = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evennumbers = from number in numbers where (number % 2) == 0 select number; Console.WriteLine("Even numbers: "); foreach (int number in evennumbers) {Console.Write(number + " ");} var oddnumbers from number in numbers where (number % 2)!= 0 select number; Console.WriteLine(""); Console.WriteLine("Odd numbers: "); foreach (int number in oddnumbers) { Console.Write(number + " "); } } } } Prints out: Even numbers: 2 4 6 8 10 Odd numbers: 1 3 5 7 9

Language Comparisons *C# and Java >Syntactically very similar to Java, although C# includes more robust tools >C# does not naturally use a Virtual Machine (C# is not necessarily.net) >Java includes virtual methods, which C# does not have >C# handles Generics much better than Java >C# is generally faster than Java and generally uses less code. Does not rely on JITC. *C# and VB.NET >VB.NET doesn't rely on curly brackets or semi-colon >VB.NET is much less robust than C# >VB.NET compiles projects in the background (advantagous for small projects only) >VB.NET has no document generator from code comments