Skip to content

HelloESAPI/LearningCSharpWithESAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning CSharp with ESAPI

Projects from video tutorials -- Hello ESAPI

0. Getting Started in 2023

1. Intro To CSharp Using ESAPI

  • 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

6. Stand-alone Executables with ESAPI

  • 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

7. IO | Reading and Writing Data From/To Files with CSharp

  • 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

9. MVVM without Prism

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published