Dotnet Basic Slides

Preview:

Citation preview

Shibu lijack

LECTURE 01

Shibu lijack

MICROSOFT .NET FRAMEWORK

OVERVIEW:-

.NET Enterprise Vision

What is .NET?

.NET Framework

.NET Enterprise Vision

ERP & BillingCustomerService

Sales

UsersAny device,Any place,Any time

XML Web ServicesIntegrate business applications and processes

Back OfficeHeterogeneous application and server infrastructure

SchedulingAuthentication

Notification

So what is .NET?So what is .NET?

.NET is a platform that provides a standardized set of services. It’s just like Windows, except distributed over the

Internet. It exports a common interface so that it’s programs

can be run on any system that supports .NET.

A specific software framework Includes a common runtime

.NET Framework.NET Framework

Programming model for .NET Platform for running .NET managed code in

a virtual machine Provides a very good environment to

develop networked applications and Web Services

Provides programming API and unified language-independent development framework.

The Core of .NET Framework: FCL & CLR

Common Language Runtime Garbage collection Language integration Multiple versioning support (no more DLL hell!) Integrated security

Framework Class Library Provides the core functionality:

ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, etc.

.NET Framework

Common Language Runtime

CLR manages code execution at runtime

Memory management, thread management, etc.

Operating System

Common Language Runtime

.NET Framework Base Class Library

Object-oriented collection of reusable types Collections, I/O, Strings, …

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

.NET Framework Data Access Layer

Access relational databases Disconnected data model Work with XML

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

.NET Framework ASP.NET & Windows Forms

Create application’s front-end – Web-based user interface, Windows GUI, Web services, …

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

ASP .NETWeb Forms Web Services

Mobile Internet Toolkit

WindowsForms

.NET Framework Programming Languages

Use your favorite language

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

ASP .NETWeb Forms Web Services

Mobile Internet Toolkit

WindowsForms

C++ C# VB.NET Perl J# …

.NET Framework Common Language Specification

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

ASP .NETWeb Forms Web Services

Mobile Internet Toolkit

WindowsForms

Common Language SpecificationC++ C# VB Perl J# …

.NET Framework Visual Studio .NET

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

ASP .NETWeb Forms Web Services

Mobile Internet Toolkit

WindowsForms

Common Language Specification

C++ C# VB Perl J# …

Vis

ua

l Stu

dio

.NE

T

Operating System

Common Language Runtime

.NET Framework (Base Class Library)

ADO .NET and XML

ASP .NETWeb Services Web Forms

Mobile Internet Toolkit

WindowsForms

Common Language Specification

C++ C# VB Perl J# …

Vis

ua

l Stu

dio

.NE

T

Open LanguageSpecification

C# Language – Submitted to ECMA

XML-baseddata access

Web services –XML, SOAP-based

.NET Framework Standards Compliance

Video:-

LECTURE 02

OVERVIEW:-

Common Language Runtime(CLR)

Managed Code

Automatic Memory Management

Multiple Language Support

Intermediate Language

Common Language RuntimeCommon Language Runtime

Manages running code – like a virtual machine Threading Memory management No interpreter: JIT-compiler produces native code –

during the program installation or at run time Fine-grained evidence-based security

Code access security• Code can be verified to guarantee type safety• No unsafe casts, no un-initialized variables and

no out-of-bounds array indexing Role-based security

Managed Code

Code that targets the CLR is referred to as managed code

All managed code has the features of the CLR Object-oriented Type-safe Cross-language integration Cross language exception handling Multiple version support

Managed code is represented in special Intermediate Language (IL)

Automatic Memory Management

The CLR manages memory for managed code All allocations of objects and buffers made from a

Managed Heap Unused objects and buffers are cleaned up

automatically through Garbage Collection

Some of the worst bugs in software development are not possible with managed code

Leaked memory or objects References to freed or non-existent objects Reading of uninitialized variables

Pointerless environment

Multiple Language Support IL (MSIL or CIL) – Intermediate Language

It is low-level (machine) language, like Assembler, but is Object-oriented

CTS is a rich type system built into the CLR Implements various types (int, float, string, …) And operations on those types

CLS is a set of specifications that all languages and libraries need to follow This will ensure interoperability between

languages

Intermediate Language

.NET languages are compiled to an Intermediate Language (IL)

IL is also known as MSIL or CIL CLR compiles IL in just-in-time (JIT) manner

– each function is compiled just before execution

The JIT code stays in memory for subsequent calls

Recompilations of assemblies are also possible

Example of MSIL Code.method private hidebysig static void Main()

cil managed{ .entrypoint // Code size 11 (0xb) .maxstack 8 IL_0000: ldstr "Hello, world!" IL_0005: call void

[mscorlib]System.Console::WriteLine(string) IL_000a: ret} // end of method HelloWorld::Main

Common Type System (CTS) All .NET languages have the same primitive

data types. An int in C# is the same as an int in VB.NET

When communicating between modules written in any .NET language, the types are guaranteed to be compatible on the binary level

Types can be: Value types – passed by value, stored in the stack Reference types – passed by reference, stored in

the heap Strings are a primitive data type now

Common Language Specification (CLS)

Any language that conforms to the CLS is a .NET language

A language that conforms to the CLS has the ability to take full advantage of the Framework Class Library (FCL)

CLS is standardized by ECMA

.NET Languages

Languages provided by Microsoft C++, C#, J#, VB.NET, JScript

Third-parties languages Perl, Python, Pascal, APL, COBOL, Eiffel, Haskell,

ML, Oberon, Scheme, Smalltalk…

Advanced multi-language features Cross-language inheritance and exceptions handling

Object system is built in, not bolted on No additional rules or API to learn

QUESTIONS????

LECTURE 03

OVERVIEW

C# Language

Code Compilation and Execution

The Visual Studio .NET Development

Environment

Console Applications

Windows Application Forms

C# Language

Mixture between C++, Java and Delphi Component-oriented

Properties, Methods, Events Attributes, XML documentation All in one place, no header files, IDL, etc. Can be embedded in ASP+ pages

Everything really is an object Primitive types aren’t magic Unified type system == Deep simplicity Improved extensibility and reusability

C# Language – Example

using System;

class HelloWorld{public static void main(){

Console.WriteLine(“Hello, world!”);}

}

Code Compilation and ExecutionCode Compilation and Execution

Compilation

Before installation or the first time

each method is called

Execution

JIT Compiler

NativeCode

MSILCode

Metadata

Source Code

Language Compiler

Also called Assembly(.EXE or.DLL file)

The Visual Studio .NET Development Environment

Console Applications

Windows Application Forms

private void button1_Click(object sender, EventArgs e) { MessageBox.Show("The first Windows app in the book!"); }

Output…

Video for the program:-

SUMMARY

How the Visual Studio 2008 development

environment works

How to create a simple console application

How to get a Windows application up and

running

QUESTIONS????

LECTURE 04

OVERVIEW

Basic C# Console Application Structure

Variables and Expressions

Using simple type variables

Naming Convention

Flow Control

Complex Variable Types

Basic C# Console Application Structure

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1 {

class Program {

static void Main(string[] args) { Console.WriteLine("The first app in Beginning C# Programming!"); Console.ReadKey(); } } }

Variables and Expressions

variables are concerned with the storage of

data.

The C# syntax for declaring variables simply

involves specifying the type and variable name

as follows:

<type> <name>;

Using simple type variables

static void Main(string[] args)

{ int myInteger;

string myString;

myInteger = 17;

myString = "\"myInteger\" is";

Console.WriteLine("{0} {1}.", myString, myInteger);

Console.ReadKey(); }

The output is followed by:-

Video of output:-

Naming convention:-

Variable names are something you will use a lot.

Until recently the most popular system was what

is known as Hungarian notation.

There are currently two naming conventions in

use in the .NET Framework namespaces,

known as Pascal Case and camel Case.

Expressions

By combining operators with variables and

literal values (together referred to as operands

when used with operators), you can create

expressions, which are the basic building blocks

of computation.

There are 3 operators namely unary, binary and

ternary.

Flow Control

Two methods of controlling program flow:-

Branching, where you execute code conditionally,

depending on the outcome of an evaluation.

Looping, or repeatedly executing the same

statements.

foreach Loops

A foreach loop allows you to address each

element in an array using this simple syntax:

foreach (<baseType> <name> in <array>) { //

can use <name> for each element }

Lets see an example…..static void Main(string[] args)

{

string[] friendNames = {"Robert Barwell", "Mike Parry", "Jeremy Beacock"};

Console.WriteLine("Here are {0} of my friends:", friendNames.Length);

foreach (string friendName in friendNames)

{

Console.WriteLine(friendName);

}

Console.ReadKey();

}

Output….

Video:-

Complex Variable Types

Complex Variable Types:-

Enumerations

Structures

Arrays

Example for Enums:-

Namespace

{

enum orientation : byte

{ north = 1,

south = 2,

east = 3,

west = 4

}

class Program

{ static void Main(string[] args)

{ orientation myDirection = orientation. north;

Console.WriteLine("myDirection = {0}", myDirection);

Console.ReadKey(); } } }

Output…

Video:-

Example for array:-

string[] friendNames = {"Robert Barwell", "MikeParry","Jeremy Beacock"};

int i;

Console.WriteLine("Here are {0} of myfriends:",friendNames.Length);

for (i = 0; i < friendNames.Length; i++)

{

Console.WriteLine(friendNames[i]);

}

Console.ReadKey();

Output…

Summary

How basic C# syntax works?

What Visual Studio does when you create

a console application project?

How to understand and use variables?

How to understand and use expressions?

Techniques for structuring your code

Exercises

Write a console application that obtains four int values from the

user and displays the product. Hint: you may recall that the

Convert.ToDouble() command was used to covert the input from

the console to a double; the equivalent command to convert from a

string to an int is Convert.ToInt32().

Write an application that includes the logic from Exercise 1, obtains

two numbers from the user, and displays them, but rejects any input

where both numbers are greater than 10 and asks for two new

numbers.

QUESTIONS???

LECTURE 05

OVERVIEW

String Manipulation

Functions

Overloading and Delegate Functions

String Manipulationstring myString = "This is a test.";

char[] separator = {' '};

string[] myWords;

myWords=myString.Split(separator);

foreach (string word in myWords)

{

Console.WriteLine("{0}", word);

}

Console.ReadKey();

Output…

Video:-

Functions

Functions in C# are a means of providing blocks

of code that can be executed at any point in an

application.

Overloading and Delegate Functions

Function overloading provides you with the ability to create multiple

functions with the same name, but each working with different

parameter types.

A delegate is a type that enables you to store references to

functions.

The delegate declaration specifies a function signature consisting

of a return type and the parameter list.

Example..

class Program

{

static int MaxValue(int[] intArray)

{

int maxVal = intArray[0];

for (int i = 1; i < intArray.Length; i++)

{

if (intArray[i] > maxVal) maxVal = intArray[i];

}

return maxVal;

}

static void Main(string[] args)

{ int[] myArray = {1, 8, 3, 6, 2, 5, 9, 3, 0, 2};

int maxVal = MaxValue(myArray);

Console.WriteLine("The maximum value in myArray is {0}", maxVal); Console.ReadKey();

}

}

Output…

Video:-

Summary

Passing parameter arrays to functions

Function overloading, where you can supply

different parameters to the same function to get

additional functionality

Delegates and how to dynamically select

functions for execution at runtime

QUESTIONS???

Exercises

Write an application that uses two command-

line arguments to place values into a string and

an integer variable, respectively. Then display

these values.

Create a delegate and use it to impersonate the

Console.ReadLine() function when asking for

user input.

LECTURE 06

OVERVIEW

Debugging and Error Handling

Object Oriented Programming

Objects

Properties and Fields

Methods

Debugging and Error Handling

error-handling techniques available in C#

enable us to take precautions in cases where

errors are likely, and write code that is resilient

enough to cope with errors that might otherwise

be fatal.

Debugging

Console.WriteLine("MyFunc() Function about to

be called.");

MyFunc ("Do something.");

Console.WriteLine("MyFunc() Function execution

completed.");

Exceptions

The C# language includes syntax for Structured Exception Handling

Try

{ ... }

Catch

(<exceptionType> e)

{ ... }

finally { ... }

Object Oriented Programming

Object-oriented programming is a relatively new

approach to creating computer applications that

seeks to address many of the problems with so-

called traditional programming techniques.

Objects

An object is a building block of an OOP application. This building

block encapsulates part of the application, which may be a process,

a chunk of data, or some more abstract entity.

Objects in C# are created from types, just like the variables.

We picture classes and objects using Universal Modeling

Language (UML) syntax. UML is a language designed for modeling

applications, from the objects that build them up, to the operations

they perform, and to the use cases that are expected.

UML representation

UML representation of printer class, called Printer and of an instance of this Printer class called myPrinter.

Properties and Fields

Properties and fields provide access to the

data contained in an object. This object data

is what differentiates separate objects,

because it is possible for different objects of

the same class to have different values stored

in properties and fields.

Example of property and fields

Accessibility: A + symbol is used for a public

member, a - symbol is used for a private

member. In general, though, I won't show

private members in the diagrams in this

chapter, because this information is internal to

the class. No information is provided as to

read/write access.

The member name.

The type of the member.

A colon is used to separate the member names

and types.

Methods

Method is the term used to refer to functions exposed by objects. These may be called in the same way as any other function and may use return values and parameters in the same way.

Video:-

QUESTIONS???

LECTURE 07

OVERVIEW

OOP Techniques

OOP in windows Applications

OOP Techniques

Interfaces

Inheritance

Interfaces

An interface is a collection of

public methods and properties

that are grouped together to

encapsulate specific

functionality.

One interface of particular

interest is IDisposable. An

object that supports the

IDisposable interface must

implement the Dispose()

method

Inheritance

Inheritance is one of the most important

features of OOP. Any class may inherit

from another, which means that it will

have all the members that the class it

inherits from has. In OOP terminology,

the class being inherited (also known as

derived) from is the parent class (also

known as the base class).

OOP in Windows Applications

private void button1_Click(object sender, EventArgs e)

{

((Button)sender).Text = "Clicked!";

Button newButton = new Button();

newButton.Text = "New Button!";

newButton.Click += new EventHandler(newButton_Click);

Controls.Add(newButton);

}

private void newButton_Click(object sender, System.EventArgs e)

{

((Button)sender).Text = "Clicked!!";

}

OUTPUT..

Video:-

SUMMARY

What object-oriented programming is?

The key terms and features of OOP.

How to create, use, and delete an object?

How to use OOP in a Windows application?

QUESTIONS???

EXERCISES

Write some code for a function that will accept either of the two cup objects in the preceding example as a parameter. The function should call the AddMilk(), Drink(), and Wash() methods for any cup object it is passed.

LECTURE 08

OVERVIEW

Class definitions in C# Access Modifiers Interfaces The System.Object class Constructors and Destructors A comparison between interfaces and abstract

classes

Class Definitions in C#

C# uses the class keyword to define classes. The basic structure required is:

class MyClass {

// Class members.

}

Access Modifiers

Modifier Meaning

none or internal Class accessible only from within the current project

public Class accessible from anywhere

abstract or internal abstract Class accessible only from within the current project, cannot be instantiated, only derived from

public abstract Class accessible from anywhere, cannot be instantiated, only derived from

sealed or internal sealed Class accessible only from within the current project, cannot be derived from, only instantiated

public sealed Class accessible from anywhere, cannot be derived from, only instantiated

Video:-

Interfaces

Interfaces are declared in a similar way to classes, but using the interface keyword rather than class.

For example: interface IMyInterface { // Interface members. }

System. Object

Since all classes inherit from System. Object, all

classes will have access to the protected and

public members of this class.

System. Object contains the methods shown in the following table:-

Method Return Type Virtual Static Description

Object() N/A No No Constructor for the System.Object type. Automatically called by constructors of derived types.

Equals(object) bool Yes No Compares the object for which this method is called with another object and returns true if they are equal. The default implementation checks to see if the object parameter refers to the same object (because objects are reference types). This method can be overridden if you wish to compare objects in a different way, for example if they hold equivalent data.

ToString() string Yes No Returns a string corresponding to the object instance. By default, this is the qualified name of the class type (see earlier example), but this can be overridden to provide an implementation appropriate to the class type.

GetType() System.Type No No Returns the type of the object in the form of a System.Type object.

GetHashCode() int Yes No Used as a hash function for objects where this is required. A hash function is one that returns a value identifying the object state in some compressed form.

Video:-

Constructors A simple constructor can be added to a class

using the following syntax:

class MyClass

{

public MyClass()

{

// Constructor code.

}

}

Video:-

Destructors

The destructors used in .NET is called Finalize().

class MyClass

{

~MyClass()

{

// Destructor body.

}

}

Interfaces versus Abstract ClassesSimilarities:-

First, the similarities: both abstract classes and

interfaces may contain members that can be

inherited by a derived class. Neither interfaces

nor abstract classes may be directly

instantiated, but you can declare variables of

these types.

Differences:-

derived classes may only inherit from a single base

class, which means that only a single abstract class may

be inherited directly (although it is possible for a chain of

inheritance to include multiple abstract classes).

Conversely, classes may use as many interfaces as

they wish.

Summary

How to define classes and interfaces in C#

The basic syntax for C# declarations

How to define constructors and destructors

How to use System. Object

LECTURE 09

OVERVIEW

We will here learn about field, property, and

method class members

Interface Implementation

Defining Fields

Fields are defined using standard variable

declaration format (with optional initialization),

along with the modifiers discussed previously.

For example:

class MyClass

{

public int MyInt;

}

Defining Methods

Methods use standard function format, along

with accessibility and optional static modifiers.

For example: class MyClass

{

public string GetString()

{

return "Here is a string.";

}

}

Defining Properties

Properties are defined using get and set keywords.

public int MyIntProp

{

get{ // Property get code. }

set { // Property set code. }

}

Interface Implementation

Interface members are defined like class members except for a few important differences: No access modifiers (public, private, protected, or

internal) are allowed — all interface members are implicitly public.

Interface members can't contain code bodies. Interfaces can't define field members. Interface members can't be defined using the keywords

static, virtual, abstract, or sealed. Type definition members are forbidden.

Summary

Learned how to define fields, methods, and

properties.

Learned about interface definition and

implementation.

LECTURE 10

OVERVIEW

Collections

Comparisons

Generics

Collections

Collections enable you to maintain groups of

objects.

Collections enable you to maintain groups of

objects.

There are number of interfaces in

System.Collections namely

IEnumerable,IComparable.

IEnumerable

Provides the capability to loop through items in a collection.

The IEnumerable interface requires only one method: GetEnumerator.

The job of GetEnumerator is to return an object of a class that implements IEnumerator.

Enumerator Provides following Methods or the properties:-

Method or property Description

MoveNext() Advance the enumerator

Reset() Set the enumerator to initial position

Current Get the current element

IComparable

To sort the Array List, the objects in the array

must implement IComparable.

IComparable has only one method:

CompareTo().

Comparisons

Here we come across two values:-

Type comparisons

Value comparisons

Type Conversion

Syntax:-

if

(myObj.GetType() == typeof(MyComplexClass))

{

// myObj is an instance of the class MyComplexClass.

}

Value Comparison

Syntax:-

if (person1.Age > person2.Age)

{

...

}

if (person1 > person2)

{

...

}

Generics

A generic class is one that is built around

whatever type, or types.

class MyGenericClass<T>

{

...

}

Where T can be any identifier.

Followed by…

A generic class can have any number of types in its definition, separated by commas, for example:

class MyGenericClass<T1, T2, T3>

{

...

}