Welcome Parents! Mrs. Roeder’s Kindergarten 2009-2010 Copyright 2008 Sandra Roeder.
Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)
-
Upload
baldwin-powers -
Category
Documents
-
view
232 -
download
0
Transcript of Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)
![Page 1: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/1.jpg)
Introduction to C#
Tom Roeder
CS 215 2006fa
(R01-2008Q4.me)
![Page 2: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/2.jpg)
Goals of the course
Introduce C# language ECMA standard originally developed by MSR not just Java + C++ many extensions
Introduce .NET framework future of Windows base of Microsoft’s C# implementation
![Page 3: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/3.jpg)
Non-goals
Teach you to program should be very comfortable writing OO code we will not cover much if any basic programming
Introduce object oriented languages not even teach you OO style (except wrt C#) expected to write all code in OO style
Give you a detailed grade S/U only even homework
![Page 4: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/4.jpg)
S/U Details
Requirements for the course come to lecture participate do three assignments
Assignments are S/U will not be giving a detailed grade show me that you understand the concepts, and can write
C# code
All three assignments will be online soon must be completed by the end of the course
![Page 5: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/5.jpg)
Administrative Details
Class time MWF 12:20-1:10 office hours: W 10:30-12 or by appointment
[email protected] (4112 Upson) Prerequisites: CS 211/212
really: experience in OO coding/concepts Academic Integrity
Do not submit work that is not your own minimum penalty: U in the course
![Page 6: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/6.jpg)
Useful Tools
Visual C# Express: Google “Visual C# Express” in Visual Studio: MSDNAA
must be version 2005: we need C# 2.0
Mono: http://www.go-mono.com Open Source impl for Linux: not quite at 2.0
Rotor: http://msdn.microsoft.com/net/sscli Shared Source impl for Windows (through 2.0) Used to work on BSD / OS X, too
![Page 7: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/7.jpg)
Useful Tools
Portable.NET: http://www.dotgnu.org yet another open source impl
CMS: http://cms.csuglab.cornell.edu we will use this for homework turn on your email notifications!
Course Webpage: http://www.cs.cornell.edu/courses/cs215 will post lectures online as well as any errata for the homework
![Page 8: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/8.jpg)
CSUGLab
You all will have accounts MSDNAA access: let me know if you don’t
currently have it http://www.csuglab.cornell.edu/userinfo.html Visual Studio .NET 2005 should be installed there
![Page 9: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/9.jpg)
Syllabus
Syllabus (10 more lectures) C# constructs: 5 lectures
Types, Delegates, Generics, Reflection, Iterators .NET Memory Management: 1 lecture Topics: 4 lectures
C# 3.0, Threading, Security, MSIL, MSH
![Page 10: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/10.jpg)
Quiz 1
Each class will begin with a quiz not for credit but for knowledge but I will collect them and see what you know
Today’s quiz will be on prerequisites OO programming, mainly to do with Java If you don’t know Java, but do have OO
experience, it’s OK talk to me after if you have trouble
![Page 11: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/11.jpg)
What is .NET?
A Framework in which to run code A Common Language Runtime (CLR)
runs all programs C# compiles to Microsoft Intermediate Language MSIL runs on CLR Virtual Machine like Java code written in many languages compiles to MSIL
A Common Language Specification (CLS) A Common Type System (CTS)
![Page 12: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/12.jpg)
What is .NET?
Runtime
Operating System
.NET Framework
Common Type
System
Common Language Runtime
Building Blocks (e.g. for Services)
Services: .NET and COM+
SQL Server BizTalk ...
Languages:
C#, Visual Basic, etc
.NET Applications
Enterprise Servers
...Sharepoint ...
Web Services
From MSDN
![Page 13: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/13.jpg)
What is the CLR?
Class Loader
MSIL to NativeCompilers (JIT)
CodeManager
GarbageCollector (GC)
Security Engine Debug Engine
Type Checker Exception Manager
Thread Support COM Marshaler
Base Class Library Support
From MSDN
![Page 14: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/14.jpg)
What is the CTS?
A set of common types any language that runs in CLR should implement no syntax specified Languages often define aliases
For example CTS defines System.Int32 – 4 byte integer C# defines int as an alias of System.Int32
![Page 15: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/15.jpg)
What is the CTS?
From MSDN
![Page 16: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/16.jpg)
What is the CLS?
A specification of language features how methods may be called when constructors are called subset of the types in CTS are allowed
For example Code that takes UInt32 in a public method UInt32 is not in the CLS
Can mark classes as CLS-compliant not marked is assumed to mean not compliant
![Page 17: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/17.jpg)
The Class Libraries
The common classes used in many programs like Java Class Library eg.
System.Console.WriteLine XML, Networking, Filesystem, Crypto, containers
Can inherit from many of these classes Many languages run on .NET framework
C#, C++, J#, Visual Basic even have Python (see IronPython)
![Page 18: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/18.jpg)
Assemblies
Code contained in files called “assemblies” code and metadata .dll as before to run: public static void Main(string[] args) types
private: local directory, not accessible by others eg. Wolfram .NETLink
shared: well-known location, can be GAC strong names: use crypto for signatures
then can add some versioning and trust
![Page 19: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/19.jpg)
COM vs .NET
Historically, COM provided this integration support for interfaces and interaction given a GUID, lookup the type library dynamically instantiate class do RPC to make calls in many cases
Difficult to get right software engineering problems not type safe at all
![Page 20: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/20.jpg)
ASP.NET and ADO.NET
Use .NET languages in web pages thus can write typesafe code server-side or client-side Sharepoint interactions can log in
Use the CLR to access databases in the manner of ODBC provides classes for access
![Page 21: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/21.jpg)
Windows PowerShell
New shell originally for MS Vista available for WinXP/2k3 native .NET
instantiates arbitary .NET classes and accesses them Also can access COM objects
Allows better interaction with programs Can it surpass bash and others?
![Page 22: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/22.jpg)
First C# Program
using System;
namespace Test { int a = 137;
class Hello { public static void Main(string[] args) { Console.WriteLine(“Hello {0}”, a); } }
}
![Page 23: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/23.jpg)
Constructions of Note
using like import in Java: bring in namespaces
namespace disambiguation of names like Internet hierarchical names and Java naming
class like in Java single inheritance up to object
![Page 24: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/24.jpg)
Constructions of Note
Console.Write(Line) Takes a formatted string: “Composite Format” Indexed elements: e.g., {0}
can be used multiple times only evaluated once
{index [,alignment][:formatting]} also can use as in Java
“Test “ + a
![Page 25: Introduction to C# Tom Roeder CS 215 2006fa (R01-2008Q4.me)](https://reader036.fdocuments.net/reader036/viewer/2022081421/5697bfcf1a28abf838ca9cd3/html5/thumbnails/25.jpg)
More C# : basic inheritance
class A {
protected int a;
public virtual void print() {
Console.WriteLine(“a = “ + a);
}
}
class B : A {
public override void print() {
Console.WriteLine(“a really = “ + (a + 137));
}
}