Neal stublen nstublen@jccc edu
1 / 43

C#: Introduction for Developers - PowerPoint PPT Presentation

  • Uploaded on

Neal Stublen [email protected] C#: Introduction for Developers. Inheritance Walkthrough. Interfaces. What’s an interface?. It’s like a class with… No member data All methods are public All methods are abstract An interface implies nothing about the implementation behind it

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' C#: Introduction for Developers' - ince

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Neal stublen nstublen@jccc edu

Neal Stublen

[email protected]

C#: Introduction for Developers

What s an interface
What’s an interface?

  • It’s like a class with…

    • No member data

    • All methods are public

    • All methods are abstract

  • An interface implies nothing about the implementation behind it

  • A class can only inherit from one class

  • A class can implement multiple interfaces

    • Interfaces often represent only a portion of a class’ functionality

Example interface
Example Interface

public interface IStreamable


bool Read(FileStreaminInput);

bool Write(FileStreaminOutput);


public interface IHTMLDisplayable


void Render(OutputStreaminStream);


What s a generic class
What’s a generic class?

  • A class definition that doesn’t explicitly declare all of the types it uses internally

  • Allows creation of new types by specifying those internal types later

Generics example average a series of integer values
Generics ExampleAverage a Series of Integer Values

Common generics
Common Generics

  • Collection classes

  • Math classes

  • Enumeration (foreach)

    • IEnumerable<T>

Generic constraints
Generic Constraints

public class MyGeneric<T> where T: class


// T is a class (can be assigned null)


public class MyGeneric<T> where T: class, IComparable<T>


// T implements IComparable interface


public class MyGeneric<T> where T: struct


// T is a struct


public class MyGeneric<T> where T: new()


// T has a default constructor


Generics example
Generics Example

class Average<T>


public void Include(T inValue);

public T Average


get { ... }



Average<int> integerAverage;

Average<double> doubleAverage;

Code organization
Code Organization

  • Multiple classes in a single file

    • Closely related classes (e.g. EventArgs)

  • Nested classes

    • Objects that only exist within the context of another type of object

  • Split a single class over multiple files

    • Forms split Designer code into separate file

    • Possible to split interface implementations into separate files


  • Organize classes into logical groupings

  • Avoid name collisions

  • using <namespace>

  • <namespace>.<ClassName>

    using ns1


    using ns2




    using ns1.ns2



Class libraries
Class Libraries

  • Share class across multiple projects

  • Projects “reference” other projects

  • Move Product, Book, Movie into Product class library


  • Client-server architecture

    • One server, many clients

    • Server runs Microsoft SQL Server

    • Clients use ADO.NET 4

  • Relational databases

    • SQL (Structured Query Language)


  • Tables store data

  • One or more records (rows)

  • A primary key uniquely identifies each row

  • Indexes provide an efficient way to access data based on values in specific columns

Relations among tables
“Relations” Among Tables

  • Key columns are used to relate tables

  • Foreign keys correspond to primary keys in another table

    • One-to-many

    • One-to-one

    • Many-to-many

Table columns
Table Columns

  • Columns are defined by a name and data type

    • bit

    • char, varchar, text

    • datetime, smalldatetime

    • decimal, numeric

    • float, real

    • bigint, int, smallint, tinyint

    • money, smallmoney

Column values
Column Values

  • null – maybe, maybe not

  • Default value

  • Identity column (auto-increment)

  • Constraints


  • Select data from a database

    • SELECT column_name,column_nameFROM table_name;

    • SELECT * FROM table_name;

Inner join

  • Select all rows from two table where specified columns have matching values

    • SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_name=table2.column_name;

    • SELECT column_name(s)FROM table1JOIN table2ON table1.column_name=table2.column_name;

  • INNER JOIN is the same as JOIN

Add update delete

  • Add a row to a table

    • INSERT INTO table_nameVALUES (value1,value2,value3,...);

    • INSERT INTO table_name (column1,column2,column3,...)VALUES (value1,value2,value3,...);

  • Update a row in a table

    • UPDATE table_nameSET column1=value1,column2=value2,...WHERE some_column=some_value;

  • Delete a row from a table

    • DELETE FROM table_nameWHERE some_column=some_value;

Online reference
Online Reference

  • Tutorials and references


Mmabooks sql command file sqlexpress linqpad
MMABooks .sql Command FileSQLExpressLINQPad

Ado net1

  • Data providers

    • SQL Server

    • OLE DB

    • ODBC

    • Oracle

  • Third party

    • MySQL

    • SQLite


  • Database server

  • .NET data provider

    • Connection

    • Command

    • Data adapter

  • Dataset

Database concurrency
Database Concurrency

  • Multiple clients accessing data

  • ADO.NET datasets are “disconnected”

  • Optimistic concurrency

    • Check for data changes before writing

    • Throw an exception if data has changed

  • “Last in wins”

    • Data is written by last operation

    • Data may be lost

Avoid concurrency issues
Avoid Concurrency Issues

  • Update and refresh datasets frequently

  • Avoid updating large tables in datasets

  • Only reduces risk!

    • You still must handle the exceptions


  • Dataset contains a collection of tables

    • Not necessarily the same table from the database

    • May be a subset of columns and rows

    • May be joined to another table

  • Tables contain a collection of columns

  • Tables contain a collection of rows

  • Tables contain a collection of constraints

  • Dataset contains a collection of relations

  • Everything is accessed through object properties

Alternatives to datasets
Alternatives to Datasets

  • You can use Command and Connection objects directly

  • Select, Insert, Update, Delete

Dataset summary
Dataset Summary

  • Instead of a database, we can pull data from:

    • WCF Data Services

    • Custom objects

    • SharePoint

  • Entity Framework

    • Object-relational mapping framework

    • Maps database table data to C# objects

  • View > Server Explorer

Dataset summary1
Dataset Summary

  • Connection strings can be stored in app.config

  • Allows reuse of the connection string

  • A dataset can be modified in Visual Studio to add tables, columns, etc.

  • Visual Studio generates .xsd schema files for the dataset

Datagridview control
DataGridView Control

  • Bound control

  • Table view of the dataset

  • Multiple objects are added to the form

Other bound controls
Other Bound Controls

  • Change default data control for table in Data Sources

  • Change default data control for columns in Data Sources

Behind the scenes
Behind the Scenes…

  • Load event is updated for the form

  • Save click event is updated for the binding navigator