Feb 15, 2016
Windows Applications
Microsoft Windows OS / Intel Platform
Windows Application
File System NetworkDisplay
.NET Applications
.NET Framework
Class Libraries
Common Language Runtime (CLR)
.NET Application (or "Assembly")
Non-Microsoft OS? / Non-Intel Platform?Microsoft Windows OS / Intel Platform
File System NetworkDisplay
C#, .NET, and Windows
C# Source Files
.NET "Assembly"
(MSIL)
C# Compiler
.NET "Assembly"
(MSIL)
CLR
"Native" Code
How does C# compare? VB.NET, F#, Managed VC++ are
other .NET languages. They all compile into MSIL assemblies that run on the .NET CLR.
Java has many similarities, but the .NET class library is different from the Java support classes.
Might be considered a "safer" version of C++.
Visual Studio Summary Open/close a project/solution Project
A collection of files that are used to generate an application or class library
.csproj file extention Solution
A collection of projects.sln file extension
Projects target a specific version of the .NET Framework
Visual Studio Summary Menus and toolbars can be customized Solution Explorer manages project files Form Designer allows us to create and
modify forms Controls are added to a form using the
Toolbox Properties change the appearance
and/or function of a form or control
Visual Studio Summary Tabbed windows can be docked just about
anywhere Tabbed windows can be floating or docked Tabbed windows can be pinned or hidden
Code Editor allows you to edit source code Editing window can be split into two panes
Visual Studio Summary Settings can be imported and exported We will work with WinForms applications
in this class.
Form Design Summary Control Toolbox Tab Order Properties Window
Name, TextEnabled, ReadOnly, TabOrder, TabStop, TextAlignAcceptButton, CancelButton, StartPosition
Access keys (&) Document Outline View Renaming and saving files
Form Exercise Create a project named "InvoiceTotal" in
your S: folder Reproduce the following form:
Consider tab order, access keys, etc.
Object-Oriented Programming .NET represents everything as an "object" What objects can we identify in our
InvoiceTotal application?Forms, Controls
Objects are made up of data and a set of functions that act on that data
What data would be stored in the InvoiceTotal form and controls?Position, Text
What functions might use that data?
Objects and Classes An object is represented by a "class" A class has “member” data
Variables A class has “member” functions
Methods
A class Definitionclass Counter{ // “class” is a keyword that tells the // compiler we are defining a new type of // object.
};
Member Variablesclass Counter{ private int mValue;
// We declare member variables that will // hold data for the class.
};
Member Visibilityclass Counter{ private int mValue;
// “private” is a keyword that tells the // compiler the class member is not visible // to other objects.
};
Member Typeclass Counter{ private int mValue;
// “int” is a built-in type that tells the // compiler we are defining an integer // value.
};
Member Nameclass Counter{ private int mValue;
// “mValue” is the name we will use when // referring to this data member.
};
Member Initializerclass Counter{ private int mValue = 0;
// (Optional) We can assign an initial value to // the data member.
};
A class Constructorclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
};
Constructor Visibilityclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// “public” is a keyword that tells the // compiler the class member is visible to // other objects.
};
Constructor Nameclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// “Counter” repeats the class name, which // tells the compiler we are defining a // constructor for the class. };
Constructor Parameterclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// “int inInitialValue” is a parameter of // the constructor. It is used to set the // initial state of the object.
};
Constructor Bodyclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// The body of the constructor assigns // initial values to any data members of // the class.
};
Assignment Operatorclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// “=” is an assignment operator that assigns // a value to a variable.
};
A class Methodclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Method Visibilityclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Method Return Typeclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Method Nameclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Method Bodyclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Prefix/Postfix Operatorsclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public int Increment() { return ++mValue; }};
Code Commentsclass Counter{ private int mValue;
// Constructor public Counter(int inInitialValue) { mValue = inInitialValue; }
// Increment the counter by one. public void Increment() { mValue = mValue + 1; }};
Counter myCounter = new Counter(0);
Instantiating a classclass Counter{ ...};
Counter myCounter = new Counter(0);Counter yourCounter = new Counter(10);
Instantiating a classclass Counter{ ...};
Counter myCounter = new Counter(0);Counter yourCounter = new Counter(10);
// “new” is a keyword that tells the compiler// we want to create an instance of the class.
// We have created two instances of the Counter// class.
Instantiating a classclass Counter{ ...};
Counter myCounter = new Counter(0);myCounter.Increment();
// We call a method by using the “.” operator on// a class instance.
// All statements are terminated by a semi-colon.
Form Summary The Code Editor allows us to expand
and collapse blocks of code. Forms are just objects Forms are created by making changes
to the object’s properties and calling the object’s methods.
The Designer just adds code to the form’s class.