State machines very often hide in applications and technical systems we are using every day, without being aware of it. This course uses a pragmatic and simple approach to lead you into the exciting world of state machines. Get a taste of the power and flexibility of this architectural concept. You'll never want to miss it again!
Alexander Wechsler has been working many years doing project and partner management for customers in the enterprise and embedded market. Many of his projects turned into showcases for the successful use of modern software technology.
Implementing an Active State Machine - Part 1 In module 4 of our Building State Machines in. NET course, we are starting to implement an ActiveStateMachine. We're focusing on the generic part of the implementation. That means that we are implementing the classes for the active state machine base framework, and in addition to that, we're going to implement the generic application services. To be a bit more specific, we're going to implement the ActiveStateMachine framework, which consists of the StateMachineAction class, which is one of the essential generic classes we're going to implement. The same is true for the transition, as well as the state class, and of course we're also creating the ActiveStateMachine service. In addition to that, we are also implementing the application services. Therefore, we really have some work before us because we need to implement all managers starting with event manager, view manager, device manager, as well as log manager, and we're also implementing a base class for devices, which will be used to derive devices, which can be managed by our device manager. And after we've done all this, we're going to wrap up the module and see what we've achieved.
Implementing an Active State Machine - Part 2 Welcome to our final module of the Building State Machines in. NET course, and in this module, module 5, we're going to implement the custom functionality we are required to satisfy our telephone incoming call use case. Let's have a look at the outline of our module 5. And we're going to complete the system by adding the custom implementation of a use case, and we're doing this by implementing devices, adding device configurations, we're also creating the telephone state machine by deriving it from the TelephoneStateMachine class, we're implementing custom events, as well as custom actions that are carried out during the state transitions or entry exit actions, we create the state configuration following the implementation view of our state model we have created in the preceding modules. We're also configuring our event system communication infrastructure. And after these basic infrastructure tasks, we're adding the user interface, which will be a Windows Forms- based user interface. It requires view states, as well as a corresponding configuration. Therefore we're going to implement this as well. And then we bootstrap the telephone state machine, initialize the system, and we are up and running. Of course even in state machines, errors occur. I'm going to show you two error handling approaches, one for global catastrophic failures and the second one for state level errors, which degrade the user experience, but are not as serious that the system should be shut down. And as we get to the end of the course, we're going to talk about which are the next steps to create your own custom state machine-based solution, and then we're going to wrap up module 5, as well as the complete course.