
This lesson contains a preface to the course. It focuses on explaining the title, detailing the course scope, and outlining the prerequisites for students.
Title Explanation: explains the title of the course as the management of data originating outside of the process that hosts a computer application.
Course Scope: encompasses a preface of external data sources, data integration techniques, and external data governance.
Prerequisites: emphasize that to succeed in this course, students should possess:
A fundamental understanding of Information Technology concepts.
Basic familiarity with C# programming.
Experience using Visual Studio for development.
Basic knowledge of GitHub for version control and collaboration.
As usual, after the lesson introduction, we try to ask the most important questions to be answered during the Intangible Assets lesson. In this lesson, students will learn why C\# has been selected to prepare all examples supporting the content of this course. They will also be introduced to Visual Studio, a powerful and versatile integrated development environment. Additionally, the lesson will cover the basics of GitHub, enabling students to manage and share the examples effectively. This lesson covers the following topics:
Lesson Introduction
What is our problem?
Programming Language Selection
Why CSharp
Language familiarity
- Visual Studio
Visual Studio introduction
Opening a solution
Unit Tests
How to get help
How to go to the definition
- GitHub
Executive summary
GitHub how to find
Readme and reference documents
GitHub how to clone and open in VS
Cloning versus copying
As usual, after the lesson introduction, we tried to ask the most important questions to answer during the Graphical User Interface (GUI) lesson. This lesson addresses key aspects of representing process information graphically. It explores designing and deploying a graphical user interface (GUI). Students will learn the bootstrap procedure and understand how to start sample code, create a Master-Detail interface, handle data entry, and design interactive and reactive user interfaces. This lesson covers the following concepts:
Program Bootstrap: introduction to bootstrapping a program.
Starting Sample Code: examination of sample code to understand the basic structure and functionality of the application.
Master-Detail Interface: techniques for creating a Master-Detail interface to display and manage related data.
Entering Data: methods for implementing data entry functionality within the user interface.
Pop-up Window: creating and managing pop-up windows for additional user interactions.
Interactive and Reactive User Interface: designing user interfaces that are both interactive and reactive, providing a seamless and dynamic user experience.
This lesson concerns selected issues related to the representation of process information in graphical form to develop a comprehensive user interface. It presents the MVVM programming pattern as an implementation of the program presentation layer using sub-layers, namely Model, View, and ViewModel. This lesson covers the following concepts:
Layered Architecture Benefits: Understanding the advantages of using a layered architecture in software design, such as the separation of concerns and improved maintainability.
What is MVVM: Introduction to the Model-View-ViewModel (MVVM) design pattern and its components.
MVVM Implementation: Step-by-step guide on how to implement the MVVM pattern in applications.
MVVM Implementation Using Namespace Concept: Techniques for organizing MVVM components using namespaces.
MVVM Implementation Using Project Concept: Approaches for structuring MVVM components across different projects.
MVVM Implementation Conclusion: Summary of key points and best practices for implementing MVVM effectively.
As usual, after the lesson introduction, we try to ask the most important questions that are to be answered during the User Interface Description lesson. This lesson concerns selected issues related to the representation of process information in graphical form to develop a comprehensive user interface (UI). It presents XAML Domain-Specific Language as a description of the user interface. Essential concepts for creating dynamic and responsive user interfaces through effective data binding techniques are also explored. This lesson covers the following concepts:
In this lesson, This lesson covers the following concepts:
UI Elements Appearance: techniques for customizing the look and feel of user interface elements
UI Modification: methods for dynamically updating and modifying the UI
XML-Based Application Markup Language (XAML): introduction to XAML and its role in UI design
Why XML: explanation of the benefits of using XML for UI design
XML Meaning: understanding the structure and purpose of XML
XML Compilation Process: overview of how XML is compiled into executable code
Partial Class: explanation of partial classes and their use in XAML
Conversion of XAML to C#: the process of converting XAML code into C#
XAML Semantics: understanding the meaning and structure of XAML elements
Rendering Types: different methods for rendering UI elements
Code-behind: using code-behind files to handle UI logic
Using a Tool to Design a User Interface: utilizing design tools to create and modify user interfaces efficiently
Coupling Controls with Data: ensuring that UI controls are properly linked to data sources for real-time updates
DataContext: utilizing the DataContext property to provide a data source for binding, allowing for a streamlined and consistent data flow within the UI
Binding: understanding the process of connecting UI elements to data sources to facilitate dynamic updates
INotifyPropertyChange: using this interface to notify the UI of data changes, ensuring that the UI remains current
ICommand: leveraging this interface to handle user actions in a decoupled manner, promoting a clean and maintainable codebase
This course explores the principles and practices behind building modern, responsive, and maintainable user interfaces. Participants will gain a deep understanding of how information and data flow through interactive and reactive user interfaces, emphasizing the importance of data binding, external data integration, and event handling.
The course introduces the Model-View-ViewModel (MVVM) design pattern as a foundation for layered design and separation of concerns, enabling scalable and testable presentation layer implementation of a computer program. Attendees will learn how to shape user interface behavior and appearance through effective rendering strategies, while mastering techniques for exposing and entering data seamlessly.
Key topics include:
Structuring the user interface with layered design patterns
Implementation of the Model-View-ViewModel (MVVM) design pattern
Implementing inter-layer communication
Designing for reactivity and data-driven rendering
Managing UI events and user interactions
Best practices for data exposure and input handling
Structuring a user interface with layered design patterns means organizing the program text of a user interface into distinct, logical layers, each as a set of custom types. Each layer has a well-defined role and communicates only with adjacent layers. This approach improves the separation of concerns, maintainability, testability, and scalability of the application. In user interface development, this often aligns with patterns like MVVM (Model-View-ViewModel).
Implementation of the Model-View-ViewModel (MVVM) design pattern refers to applying a structured approach to building a program presentation layer by separating concerns into three distinct layers: Model, View, and ViewModel. This pattern is especially popular in modern libraries.
By the end of the course, developers will be equipped to build a robust, maintainable user interface that responds fluidly to both user input and dynamic data sources. All topic examinations are backed by examples gathered in a GitHub public repository.