580 likes | 698 Views
Neal Stublen nstublen@jccc.edu. C#: Introduction for Developers. Class Objectives. Develop an understanding of the .NET Framework Gain proficiency using Visual Studio Begin learning the C# programming language Apply object-oriented concepts within the C# language
E N D
Neal Stublen nstublen@jccc.edu C#: Introduction for Developers
Class Objectives • Develop an understanding of the .NET Framework • Gain proficiency using Visual Studio • Begin learning the C# programming language • Apply object-oriented concepts within the C# language • Develop basic Windows Forms applications • Learn basic .NET database concepts
Suggestions • Install Visual Studio • Visual Studio Express 2013 for Windows Desktop • Review each chapter • We won’t necessarily hit every point in class • Bring back questions • Work projects at end of each chapter • Make changes and experiment
Tonight’s Agenda • Overview of .NET • Using Visual Studio • Designing a Form • Object-Oriented Programming • Walk through a simple object example • Apply what we’ve learned • Q&A
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 • They all have their own unique syntax • Java has many similarities • .NET class library instead of the Java support classes • Might be considered a "safer" version of C++.
Using Visual Studio • Start Visual Studio • Create a project • Windows Forms for desktop applications • Web Forms for web-based applications • Console applications for the command line • The project represents all or part of an application • A solution is a container for multiple projects
Express Editions • Free Visual Studio versions • http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
Visual Studio Summary • 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 • Open/close a project/solution • 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 • Projects can be “built” and “run” from within Visual Studio
Form Design • Add controls from the toolbox • Set control properties • Name, Text • Enabled, ReadOnly, TabOrder, TabStop, TextAlign • AcceptButton, CancelButton, StartPosition • Specify access keys (&) • Specify tab order between controls • 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.
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
Object-Oriented Programming • .NET represents everything as an "object" • What objects can we identify in our InvoiceTotal application? • Forms, Controls
Object-Oriented Programming • 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 its 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.
What’s in a form? • A form is defined by a class • Controls on the form are member variables • Event handlers are member functions