E143 C# Project Requirements
Ø Can be a Windows App, Web App, or Web Service
Ø
The
App must show OOP and C# features use
§
Visual
Inheritance must be used
§
New UDT’s must
exist- base class, derived class(es), all with class fields, properties, and
methods
§
At least one new
UDT must be capable of use as part of collections (enumerable), sortable
(comparable), and cloneable
§
At least one new
UDT must have an indexer, and at least one new operator
§
At least one new
delegate, and event must exist
Ø
The
App must be automatable and documented
§
Other Apps, such
as SQA (Software Quality Assurance) programs that regression test your App, or
demonstrate your app, must be given public methods that can be used via
reflection. A sample SQA test program or “Demo Mode” should be provided.
§
Public App
methods should be commented for XML Documentation capability (///) to produce
HTML docs using the “Tools\ Build Comment Web Pages”
Ø
The
App must use IO, and/or database capability
§
All such code
must be guarded by meaningful exception handling
§
Appropriate
technology use (such as object persistence only via “serialization”) must be
used.
Ø
The
App must use at least three of the following technology requirements-
§
Threads, and
thread safe code
§
User defined
attributes, used in project code
§
Interaction with unmanaged code (COM Interop
and/or external library access)
§
XML and XSL with
XSLT of some sort
§
GAC, shared
assembly
§
Internationalization
(System.Text), the use of mixed language display capability
§
User defined
controls
Ø
New technology requirements (as
defined by student) can be substituted, but must be approved (by TA)
§
Project requirements may be altered, to eliminate
requirements that may not have value for a specific project, and add
challenging .NET FCL elements as appropriate. If, for example, Delegates
do not fit the design paradigm, one need not use them. Project
developers must replace the requirement, however, with some other specified
(to grader) non-trivial and useful language feature or .NET FCL feature set.
Ø
The
project can be “real work”, or just really neat
§
Verification of
individual effort will be necessary
§
Individual
(non-work) submissions may be posted (or referred to) by this Web site in a
“Projects Hall of Fame”