This is my final project for the subject L OOP 3 (Object Oriented Programming) at my school.
I got this subject in the first semester of the 2nd year of my professional bachelor in Electronics-ICT.
This project is a remake of Project DMX Light Controller, my project in the first semester of the 1st year.
The requirements for the project, given by the teacher.
- The project consists of the realization of a personal idea, implemented in a C# WPF Application. This may be combined with other self-written software, for example: Android app, C-code for a microcontroller, a website, ...
- The app is crash resistant through thoughtful exception handling.
- The code is made up of logical blocks (methods) that stimulate the code.
- You make correct and well-considered use of self-written delegates and events.
- Data is stored in an external file via serialization.
- At least one design pattern is used (for example Singleton, MVVM, factory, ...).
- Polymorphism is used in at least one place.
- You work with asynchronous methods where necessary (whether or not multi-threaded).
- The application meets the expectations (smooth and correct operation).
- The application is divided into different "layers". For example by means of self-written classes and their derivatives (which may be in a Class library).
Evaluation my own work, whether I fulfilled the project requirements.
- 1. The project consists of the realization of a personal idea, implemented in a C# WPF Application. This may be combined with other self-written software, for example: Android app, C-code for a microcontroller, a website, ...
Check! The idea was to remake my previous project and add more flexibility and functionality. - 2. The app is crash resistant through thoughtful exception handling.
Check! I have some self-made exceptions, but most of it is preventing exceptions by using if's in critical places. - 3. The code is made up of logical blocks (methods) that stimulate the code.
Check! - 4. You make correct and well-considered use of self-written delegates and events.
Check! Delegats and events for transfering data from windows to the mainWindow, and for DataBinding. - 5. Data is stored in an external file via serialization.
Check! Data is stored and read into the program. The JSON file contains all 'available' devices, with their characteristics, and makes for easy modification, addition and deletion of devices without changing code. - 6. At least one design pattern is used (for example Singleton, MVVM, factory, ...).
Check! The Singleton design pattern is used for theLogger
class. There is also something that looks like MVVM, but is not 100% MVVM. - 7. Polymorphism is used in at least one place.
Check! DmxDevice is the base class for the classes of all the types of DMX devices that are used. - 8. You work with asynchronous methods where necessary (whether or not multi-threaded).
I don't have asynchronous methods, nor use multi-threading, but I found no place to use any of those things. - 9. The application meets the expectations (smooth and correct operation).
Check! - 10. The application is divided into different "layers". For example by means of self-written classes and their derivatives (which may be in a Class library).
Check! I have 2 Class libraries,Logger
andDMX
. The last one contains all classes for DMX devices and all theTabItem
's that have a device specific GUI.
¬ Fishezzz « 4 June 2019 »