Professional Documents
Culture Documents
User Interface Programming in C#: Model-View-Controller: Chris North CS 3724: HCI
User Interface Programming in C#: Model-View-Controller: Chris North CS 3724: HCI
Model-View-Controller
Chris North
CS 3724: HCI
GUI Topics
Components
GUI layouts
Events
Graphics
Manipulation
Animation
Databases
MVC
(Shneiderman)
DM processing steps?
1.
2.
2 Challenges!
User interface design
Paint event
-display data
Interaction events
-modify data
Model-View-Controller (MVC)
Model
Program State
-data structures
View
Paint event
-display data
Controller
Interaction events
-modify data
Model-View-Controller (MVC)
UI:
refresh
View
Data display
Controller
events
refresh
Data:
User input
manipulate
Model
Data model
Advantages?
Advantages?
Multiple views for a model
Multiple models
Software re-use of parts
Plug-n-play
Maintenance
Multiple Views
View
Controller
View
Controller
Model
View
Controller
Data display
Model
Data model
View
Controller
treeView1.Nodes
Java:
model listeners
Nodes collection
Model
C# DataBase Controls
DataGrid control
-scroll, sort, edit,
View
Controller
DataSet class
-tables
-columns
-rows
Model
dbConnection: connect to DB
dbCommand: SQL query text
dbAdapter: executes query
DataSet: resulting data
Bind to UI control, DataGrid
or Manual data processing
DB
Alternative: DataReader,
retrieve data incrementally
DB Example
Get data:
Using System.Data.OleDb;
// Jet = MS Access DB driver
con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/mydb.mdb);
cmd = new OleDbCommand("SELECT * FROM mytable, con); // SQL query
adpt = new OleDbDataAdapter(cmd);
data = new DataSet( );
adpt.Fill(data); // execute the query and put result in data
Display data:
dataGrid1.DataSource = data.Tables[0];
// show the table in the grid control
MessageBox.Show(data.Tables[0].Rows[0][5].ToString( )); // or process manually, this is row 0 col 5
GUI Topics
Components
GUI layouts
Events
Graphics
Manipulation
Animation
Databases
MVC