Projects from video tutorials -- Hello ESAPI
- Value Types
- Visual Studio Shortcuts
- Things To Consider When Writing Code
- Object-Oriented Programming
- Creating a Binary Plug-in using the Eclipse Script Wizard
- Binary Plug-in vs Class Library -> spoiler...they're the same :)
- Adding a View to a Binary Plug-in/ Class Library project
- If, Else If, Else statements
- Switch statements
- Conditional Operators - single-line conditional statements
- Review the messiness of creating a UI in a single file plug-in for Eclipse
- Create Binary Plug-in
- Review the process of adding a view (like in any WPF project)
- Incorporate the MVVM design pattern in our binary plug-in
- Generate a template that we can use in the future as a starting point
- Cover the basic differences between
- views that use the "code behind" to update/manage its data/interface
- views that use a viewmodel (i.e., using MVVM, etc.) to update/mange its data/interface
- Review a project with examples of the same interface written both with a view using the "code behind" and a view using a viewmodel
- Show how easy it is to fill something like a DataGrid with a list of objects via Binding
- What are they?
- Create one using the Script Wizard and explore how they're useful
- Briefly discuss how to run them within the Eclipse Environment (more in Part 5)
- Incorporate ESAPI into our stand-alone executable
- Create an example of accessing ESAPI objects via the executable
- Incorporate ConsoleX, a NuGet Package put together by Rex Cardan
- General introduction and brief example of using it with ESAPI
- Add an "options" dictionary to the ConsoleUI object (ConsoleX)
- Further discuss launching stand-alone executables within the Eclipse environment
- Create a plugin runner (single file plugin) that can be run from the normal Eclipse scripts location to launch the stand-alone executable
- Ever want to load data for your application from a file or save data by writing it to a file?
- Cover the basics of reading data from CSV files
- Review an example by creating generic beam objects from the .csv file
- Example solution to loading templated beams from external .csv file
- Cover some examples of validating the data collected from the file
- General overview of what JSON files are
- Review an example by creating generic patient and beam objects from the .json file
- Compare the difference in efficiency between reading the beam data from .csv vs .json
- Ever wonder what the difference is between string addition (+=) and string concatenation (using a StringBuilder)?
- Build and write data of various lengths to JavaScript (.js) files via both string addition and concatenation
- Investigate the efficiency of each strategy and settle once and for all which one is faster
- Need or want to display your collected data?
- Cover the basics of loading your JavaScript file (.js) data into an HTML document
- Review an example HTML page and javascript code that displays the data from 3a in a browser
- Languages Covered: C#, HTML, and JavaScript
- Ever want to track when your scripts are used or when users are having issues?
- Cover a basic example of using text files to log information from your script.
- Cover the basics of using Prism to monitor and update Views, ViewModels, etc.
- BindableBase vs INotifyPropertyChanged
- DelegateCommands for wiring up buttons -> instead of using click events/event handlers in the "code behind"
- PubSubEvents for publishing/subscribing to events that occur in other views
- A preview of the updated project and an intro to the series and other resources for INotifyPropertyChanged, EventHandlers/Actions, and Commands
- Start our MVVM Base project
- Cover an intro to INotifyPropertyChanged with an example of how/why we use it
- Substitute our use of BindableBase with our own implentation of an observable object and view model base
- Swap out PubSubEvents for custom EventHandlers and/or Actions.
- Pass along objects with events in the form of both EventHandlers and Actions
- Substute Prism's Delegate Commands for a base command that implements the ICommand interface