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”