C# For Programmers

rangaleclickSoftware and s/w Development

Nov 4, 2013 (3 years and 7 months ago)

58 views

C# For Programmers


Three phases of this class


Basics


CLR, Types, C# Language syntax, Object
Oriented Programming(OOP) concepts


Applications Development


ADO.Net
,
ASP.Net
,
Windows Forms, Web Services, WPF, WCF


Select Topics
-

A class or two that will cover
selected by students topics


Intensive Course of Study


brace yourself



C# For Programmers


Instructor


Boris
Zlatev


Sr. Applications Developer, TDC


The Doctors
Company


MS in E
-
Commerce Technology, DePaul University,
Chicago, 2004


boris@zlatev.net


Course site
at
www.zlatev.org/csclass



The .NET Framework


Extensive and powerful development
platform


SDK


freely downloadable from
Microsoft.com


Windows XP and Vista


.NET already
embedded in the operating system


In the future


possible support by other OS


UNIX
\

Linux


.NET Framework


Platform
Architecture

.NET Framework
-

Design Goals


Component Infrastructure


Portable executable(PE)
-

DLL, EXE


Language Integration


Language independence


Internet Interoperation


Uses widely accepted standards, such as SOAP,
XML, and HTTP


Simple Development

.NET Framework
-

Design Goals


Simple Deployment


XCOPY

deployment


Reliability


Reliable language


Robust runtime and infrastructure


Type safety


Automatic memory management

.NET Framework
-

Design Goals


Security


Protects access to specific parts of the executable
code


Declarative security checks (attributes)


Imperative security checks (explicit security
checks)

NET Framework


Building Blocks

The Common Language Runtime (CLR)


The engine responsible for executing
managed code
.


Managed code



code written and compiled in
a .NET language and compiler


CLR

-

Key

Features


Cross language integration


Cross language exception handling


Automatic memory management


garbage
collection


Code access security


Side


by


side execution


Easier deployment and versioning


CLR



Major Components

Intermediate language (IL)


Full name


Microsoft Intermediate Language
(MSIL)


Non native compiled code


A sort of assembly language


Only calls to functions defined in the .NET core
types and base classes


No calls to Windows API


CPU Independent
-

no CPU specific functions and
calls


Just


In


Time Compilation (JIT)


IL code is loaded by the CLR and compiled into
machine code


Compilation on “as needed” basis on first call


Compiled code cached for subsequent
requests


Code checked for
type safety
-

compiler
ensures that the code doesn’t try to access
invalid memory addresses and that it returns
and passes variables of the right type


Metadata


Information about the types used and
referenced by the IL code


Name of the types(classes), class members,
parameters, references to other types


Advantages:


Code safety and verification


Reflection
-

ability to examine metadata in code


IntelliSense


Visual Studio feature


Assembly


A product of compilation (IL + metadata)



Assemblies are
Portable Executables (PE)
-

The smallest unit of code that can be executed
and reused.


Made of one or more
managed modules

and
resource files (optional), such as images


Manifest



lists all the files that the assembly
is made of



The format of a .NET PE file

The Common Type System (CTS)


Value types


Reference types


Boxing and
unboxing


Classes, properties, indexers


Interfaces


Delegates


Generics

What Is A Type?


The CTS provides every language running on
the .NET platform with a base set of data
types (classes)


Two Categories


Value Types:

Value types directly contain their data.


Reference Types:

Reference types store a reference to the value's
memory address


The Common Type System (CTS)


Types are defined by CLR, hence they are the
same across languages

The Common Type System (CTS)

The Common Language Specification
(CLS)


A series of basic rules that are required for
language integration


Spells out the minimum requirements for
being a .NET language


Compiler vendors can build their compilers to
the specification and provide languages that
target .NET.

The Framework Class
Libraray

(FCL)


Thousands of classes and interfaces


Encapsulate a lot of system objects and
functionality that help us write:


Windows Applications
(Win Forms, WPF
Applications, Windows Services)


ASP.NET Applications


use server side controls


Web Services


the FCL classes hide all the
underlying details of SOAP and network
communications

Integrated Development
Environments (IDE)


Visual Studio.NET


Visual C#.NET


We will use it in this class

http://www.microsoft.com/express/download/