460 likes | 586 Views
Neal Stublen nstublen@jccc.edu. C#: Introduction for Developers. Overview of .NET. Windows Applications. Windows Application . Microsoft Windows OS / Intel Platform. Display. File System. Network. .NET Applications. .NET Application (or "Assembly"). .NET Framework. Class Libraries.
E N D
Neal Stublen nstublen@jccc.edu C#: Introduction for Developers
Windows Applications Windows Application Microsoft Windows OS / Intel Platform Display File System Network
.NET Applications .NET Application (or "Assembly") .NET Framework Class Libraries Common Language Runtime (CLR) Non-Microsoft OS? / Non-Intel Platform? Microsoft Windows OS / Intel Platform Display File System Network
C#, .NET, and Windows .NET "Assembly" (MSIL) C# Source Files C# Compiler CLR .NET "Assembly" (MSIL) "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, Text • Enabled, ReadOnly, TabOrder, TabStop, TextAlign • AcceptButton, 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 Definition class Counter { };
A class Definition class Counter { // “class” is a keyword that tells the // compiler we are defining a new type of // object. };
The class Name (or Type) class Counter { // “Counter” is the name of the new class // type. };
Member Variables class Counter { private int mValue; // We declare member variables that will // hold data for the class. };
Member Visibility class Counter { privateint mValue; // “private” is a keyword that tells the // compiler the class member is not visible // to other objects. };
Member Type class Counter { privateintmValue; // “int” is a built-in type that tells the // compiler we are defining an integer // value. };
Member Name class Counter { private intmValue; // “mValue” is the name we will use when // referring to this data member. };
Member Initializer class Counter { private int mValue = 0; // (Optional) We can assign an initial value to // the data member. };
A class Constructor class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } };
Constructor Visibility class 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 Name class 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 Parameter class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // “intinInitialValue” is a parameter of // the constructor. It is used to set the // initial state of the object. };
Constructor Body class 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 Operator class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // “=” is an assignment operator that assigns // a value to a variable. };
A class Method class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Method Visibility class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Method Return Type class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Method Name class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Method Body class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Prefix/Postfix Operators class Counter { private int mValue; // Constructor public Counter(int inInitialValue) { mValue = inInitialValue; } // Increment the counter by one. public int Increment() { return ++mValue; } };
Code Comments class 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 class class Counter { ... }; Counter myCounter = new Counter(0); Counter yourCounter = new Counter(10);
Instantiating a class class 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 class class 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.
Event Summary • Forms and controls dispatch events • Event handlers respond to events
Suggestions • Install Visual Studio • Visual Studio Express 2013 for Windows Desktop • Projects at end of each chapter • Experiment