Review for Final
Final exam is cumulative.
Major Topics (*
most important)
- GUI elements and programming model
- Forms, controls, properties
- Event-driven programming
- * Layout
- Manual layout
- Docks + Anchors
- Custom layout event handler - positions children of a node
in response to a layout event which is usually fired when the
parent or any children's bounds change
- * Model-View-Controller
architecture
- Goal: Separate data from display and interaction
- Result: Core application manipulates data and ignores UI
UI Designer can change UI independent of computation
Multiple views can be synced with model
- Use MVC to create a custom control. Should have:
- Model to specify data, ideally defined by a generic
interface
Model should fire event when data is changed
- View that renders model data
Listens to event and changes view appropriately
Includes properties to configure view
- Integated Controller that lets user interact through
view to access or modify model
- See TreeControl (Proj #5) solution for example (but doesn't
use model events)
- Data Binding
- A specific application of MVC to a control (i.e.,
ListBox.DataSource)
- Undo / Redo (Command design pattern)
- General mechanism to encapsulate an action
- See Adobe Photoshop history
- Cut, Copy, Paste
- Mechanism to share data among processes
- Can support general as well as application-specific data
types
- Internationalization
- Pull out culture-specific UI elements into resource bundles
(Globalization)
- Non-developer can create culture-specific bundles
(Localization)
- 2D Graphics
- Graphical data types (text, images, paths)
- Rendering elements (pens, brushes, bitmaps)
- Coordinate systems
- Transformations
- Color models
- Clipping
- Region management (efficiency mechanism to only re-render
what changes)
- * Event loop, event queue, threaded programming
- Technologies
- C#, Visual Studio.NET
- Piccolo.NET
- Web Services
- Server applications (i.e., JSP, Servlets)
|