-
Notifications
You must be signed in to change notification settings - Fork 2
Code Methodology and Dependencies
See also "Overview of Code Structure"
TriagePic is written in C#/XAML. As of December, 2015, it is built under Windows 8.1, with Visual Studio Express 2012 for Windows 8.1, with the NuGet package manager extension for 3rd party libraries.
If one were to migrate TriagePic to be a native Windows 10 app (as opposed to merely compatible), a presumed path would be:
- Under Windows 10, load the latest VS Express for Windows, and build TriagePic to an 8.1 target.
- Build it to a 10 target.
- Change the UI to use features and stylings that Windows 10 and the newest VS provides.
- Redo it as a Universal app, to also run on Windows Phones (and Xbox).
As of Dec, 2015, the API for web services (which includes both TriageTrak and People Locator services for both TriagePic and ReUnite clients on multiple mobile platforms) is called "PLUS1". A minimal listing of the API may be found at https://triagetrak.nlm.nih.gov/plus1. This is turn has links to fuller documentation, with a goo.gl/z5VnJ shortcut to https://docs.google.com/document/d/17pApAVZvg4g93sjZOY3Rp8-MfSu8wSRMycUca3LXNJc/
To perform a build, the developer will have to self-generate (e.g., in Visual Studio) a certificate file "TP8_TemporaryKey.pfx" associated with the login account. To release to the Store, the developer will have to login into Visual Studio with a valid Microsoft Store account, and generate (VS and the Store in collaboration) a "TP8_StoreKey.pfx" certificate file. These files are NOT distributed through github.com. (If you rename the Solution/Project file to something other than "TP8", then these files will be correspondingly named.)
NLM CEB developers ONLY have access to TP8_StoreKey.pfx at https://wiki.nlm.nih.gov/confluence/display/PL/TP8+Code+Signing+Information .
As of Release 5
The following libraries were installed into VS and the TP8 project using the NuGet Package Manager within VS (see Project/Manage NuGet Packages...):
- Json.Net [Newtonsoft.Json] 5.0.6, by James Newton-King. Use in project: Parse results from TriageTrak web service calls, e.g., Search().
- WinRT Xaml Toolkit [WinRTXamlToolkit] 1.3.7.2 . Silverlight XAML/C# controls ported first to WFC then RT. Pre-requisite for next item.
- WinRT Xaml Toolkit - Data Visualization Controls [WinRTXamlToolkit.Controls.DataVisualization] 1.3.7.2 . Also ported. Use in project: "Statistics" charting.
But in build as of Release 5, and mentioned in commented-out code
- Callisto, 1.2.6 by Tim Heuer. Use in project during early 8.0 days: subcategory flyouts for main App Settings. Note: Callisto also has a version of the two WinRT Xaml Toolkit libraries (which in theory might be better maintained), but the separate libs actually used were easier to get linked in.
- MyToolkit, 1.9.0. Experiment in dynamic binding; problem was addressed in another way.
- WinRTTimeZones, 0.7.4. Might be useful for time zone derivation in future.
Besides packages downloadable with NuGet, TP8 uses a separately-built popup/flyout library, PopupHelpers.Lib. A description of it is here, which includes a link to the .zipped VS project here. This was built as a separate local 8.1-target project (not included here in this GitHub project). For initial debug, the resulting .dll, .pdb, and .pri were copied over to TP8/bin/Debug and a reference to the dll created in the TP8 project. Later, TP8 just used a reference to PopupHelpers/Release/...
As of Release 5, it is used in SortFlyout.cs, FilterFlyout.cs, and StartupWizUserControl.cs. PopupHelpers was integrated during early 8.0 development (i.e., long before Callisto). Some of its early uses have now been replaced by Win 8.1 native calls; remaining uses were harder to replace, but possibly could be with further investigation.
As mentioned above, TP8 uses "WinRT Xaml Toolkit", and its "Data Visualization Controls" extension, for piecharts, bar charts, and line charts. This is an OK library, chosen because it is both no-cost and open-source. It was originally developed by a Microsoft Silverlight team, since disbanded when Silverlight development was stopped. It was ported first to WFC, then (by a different developer) to RT. (It is vaguely recalled that there is a version of this in Callisto, but the stand-alone version integrated more easily. In theory, if there's any further development of this library, it is more likely in Callisto.)
A drawback of this library is that documentation for it is diffuse on the web, mainly taking the form of third-party developers posting examples. When looking at the examples, one will need to determine whether they represent the Silverlight, WFC, or RT variants. The non-RT examples will need to be adapted for RT (e.g. Win 8 and 8.1) use. Below are some useful links, gathered before mid-2013 (so mostly pre-8.1), when the TP8 charting code was largely built.
Examples for WinRT, Win 8
- windows 8 - How to change the palette colors of WinRT XAML Toolkit Chart controls? - Stack Overflow
- WinRT XAML Toolkit Charting: Styling Legend
Examples for Silverlight
- Solution For Multi Color BarChart depends on the Value Using WCF
- How to apply Multiple colours to the Bars in bar chart?
- Databinding Multi-Series Charts | Beat Kiener's Blog. Note: Before 2015, domain was blog.thekerners.com. It is now https bkiener.wordpress.com, and if downloading files, use new domain rnd.glauxsoft.ch.
Examples for WPF
Other Alternative Libraries?
- Modern UI (Metro) Charts for Windows 8, WPF, Silverlight - Codeplex. This project is claimed to be from-scratch code, but seems at the least inspired by WinRT XAML Toolkit.
- Windows 8 Toolkit - Charts and More - Home. Mainly piecharts.
Related ASP.Net Controls with Similar Properties to WinRT XAML Toolkit Objects
- Home
- Support: Contacts
- How To Get TriageTrak Credentials
- User Guide to TriagePic from the Windows Store
- More about Mass Casualty IDs
- Using TriagePic with Windows 10
- Store Release Notes
- Retaining Local Data when Updating or Uninstalling then Reinstalling
- Privacy Policy: App and System Permissions, Privacy, and Security
- Operational Issues, including Device-Specific Notes
- TriageTrak, and TriagePic on other platforms: https://lpf.nlm.nih.gov