Accompanying Files, Links & Software

Note that these materials are subject to the Copyright Notice and all source code is licensed under the Apache License, Version 2.0 (the “License”); you may not use this source code except in compliance with the License. You may use the freely available 7-zip File Archive Utility to unzip these files.

Source Code

You may download a zip of these files here Learning Visual F# – Foundations I Code 20160822. The file is 109,604,305 bytes (104 MB) in size.

  • csResx: A C# project whereby we may generate a skeleton RESX file as a template for usage in F#.
  • csSilverlightApplication: A Visual Studio Blend Project to create a simple Silverlight Page for testing from F#.
  • MVVM: A third-party C# sample WPF Application for testing with F# to create methods using .NET Reflection to initialise a WPF Window from F#.
  • saTrilogy.Forms: A C# Windows Forms Library project with a sample form for handling RESX modification under the control of F#.
  • saTrilogy.Resources: An F# solution demonstrating a variety of RESX and Satellite Assembly functionality.
  • saTrilogy.Wpf: An F# WPF Control solution demonstrating various aspects of extracting WPF resources from an assembly manifest, handling of assembly resolution errors, Reflection techniques and the Graphing of a WPF Framework Element and all of its descendents using recursive functions and a recursive union to model the Framework Element.
  • saTrilogy.Wpf.Library: A Visual Studio Blend Project to create a number of simple WPF elements for testing from F#.
  • Viewer: The WPF Controls Gallery Sample C# application that we host via F#.
  • WpfImages: A Visual Studio Blend C# WPF Application used to demonstrate WPF Image assignment methodologies and how we may reassign dynamic WPF image sources via resources from an assembly manifest.
  • Xceed: A C# WPF application using the Xceed WPF Toolkit that we use from F# to investigate the dynamic loading of third-party assemblies required by a BAML/Xaml resource in F# via assembly resolution exceptions.

Files

You may download a zip of these files here Learning Visual F# – Foundations I Files 20160822. The file is 24,404,494 bytes (23.2 MB) in size. This archive comprises the set of folders…

  • F# Snippets containing the files…
    1. FsEye.snippet: A Visual Studio snippet file for adding Swenson’s FsEye code to an F# Interactive script file based upon a common download location for FsEye
    2. FSI-References.snippet: A Visual Studio snippet file for adding a variety of references and open statements to an F# Interactive script.
  • Files containing the files…
    1. Lukes ISO Countries.txt: An aged copy of Luke Duncalfe’s ISO Country with Region Codes file.
    2. OpenGeoCode Country Codes to Country Names.txt:  An aged copy of the OpenGeoCode Country Codes to Country Names (no link – the account is suspended) file.
    3. FSharp.UnitTests.zip: The exported template covered in the material for an F# Unit Test project.
  • Images containing the files…
    1. Dowload.png: Used as a button image in the material’s Windows Forms project.
    2. Folder.ico: Used as a button image in the material’s Windows Forms project.
    3. flags-normal.zip: A set of 550 pixel country flags downloaded from Flagpedia.
    4. NoIcon.ico: An icon used as a “null graphic” in dynamically re-assigning WPF images where no reassignment is possible.
    5. NoImage.png: A GDI+ image used as a “null graphic” in dynamically re-assigning WPF images where no reassignment is possible.
    6. open file.ico: Used as a button image in the material’s Windows Forms project.
  • Resx containing the files…
    1. Empty.resx: A “skeleton” RESX XML template that can be copied into an F# project.
    2. Japanese.resx: A sample RESX file using Shift-JIS encoding.
  • Samples containing the files…
    1. cms05.jpgcms07.jpgcms12.jpg and cms15.jpg: Sample RESX images.
    2. Japanese.txt and Sample Text.txt: Sample RESX text files.
    3. SampleAudio.wav: A sample RESX Audio file.
    4. Sample.xml SampleAudio.mp3 SampleExcel.xlsx SamplePDF.pdf SamplePowerPoint.pptx SampleText.txt and SampleWord.docx: Sample RESX “File” objects.

Links

The following are links to a number of items of recommended software – for which we include the Visual Studio 2015 Community Edition and samples used by the material…

Source Code

You may download a zip of these files here Learning Visual F# – Foundations II Code 20160924. The file is 97,788,352 bytes (93.2 MB) in size.

  • IetfCodes: An “unwieldy” F# Union of IETF Language Codes for demonstrative purposes of what you shouldn’t, perhaps, use a union for!
  • NuGet: A private NuGet repository for solution code distribution.
  • ProviderCores: A selection of F# scripts and source code used to develop our Type Providers. Additionally, code for parsing and creating an Xml schema for IANA BCP47 Language, Script and Region tags.
  • saTrilogy.Core: A Core F# Library, stand-alone Dynamic Provider for retrieving assembly XSettings; stand-alone application Instrumentation assembly and a Kernel Library for implementing instrumented Dynamic Providers for XResources and Manifest Resources.
  • saTrilogy.ETW: The initial ETW assembly – enhancements in the saTrilogy.Core solution.
  • saTrilogy.Instrumentation: The initial ETW and WMI Performance Monitoring assembly – enhancements in the saTrilogy.Core solution.
  • saTrilogy.State: Simple demonstration and development of function state.
  • saTrilogy.TypeProviders: Source for each of the XSettings, XRersources and Manifest Resources Type Providers.
  • TPTest: The simple, sample Type Provider used to demonstrate static data encapsulation of Type Provider provided properties in a host assembly.

Additionally, much of the Type and Dynamic Provider source makes reference to assemblies from the Volume I material as sample sources for resources so you should also download that source code archive.

Files

You may download a zip of these files here Learning Visual F# – Foundations II Files 20160924. The file is 179,447 bytes (174 KB) in size. This archive comprises the following…

  • The folder Files containing the files…
    1. BCP47 Repository.txt: A text file sample of IANA BCP47 data dated 2015-06-08
    2. EtwDatabase.sql: The SQL DDL to create the data and entities for evaluating ETW permutations of channels, levels and opcodes.
    3. saTrilogy.Etw.saTrilogy-Etw-Logging.etwManifest: A sample ETW Manifest in its Xml format.
    4. Test.XResources: A sample Xml file for use as an XResources localisation repository.
    5. Test.XSettings: A sample Xml file for demonstrating assembly configuration settings for the XSettings providers.
    6. utf-8.txt: A sample UTF8 encoded text file.
    7. utf-16.txt: A sample UCS2 LE BOM – UTF16 encoded text file with the same content as utf-8.txt.
    8. www.freeformatter.com media-type-sub-parameters-1.xlsx: The MrForms downloaded Apache Virtual Server Media Types repository as an Excel spreadsheet.
  • The folder Schemas: containing the Xml schemas for…
    1. BCP47Tags.xsd: The IANA BCP47 Language, Script and Region tags.
    2. EtwPayload.xsd: A single ETW Event Payload.
    3. EtwPayloads.xsd: A collection of ETW Event Payloads.
    4. MediaTypes.xsd: The Apache Virtual Server Media Types.
    5. XResources.xsd: Our XResources localisation repository as a RESX alternative – including the Media Type and BCP 47 schemas.
    6. XSettings.xsd: Assembly configuration settings for the XSettings providers.
  • The folder Style: The XSLT style sheets for a single and multiple ETW payload events and the associated cascading style sheet.
  • The folder Xml: Xml sample inputs for ETW Payload/s and XSettings providers.

Links

The following are links to a number of items of recommended software – for which we include the Visual Studio 2015 Community Edition and samples used by the material…

Software

The 7zip zip file Learning Visual F# – Foundations II Software 20160924 contains three folders – including a zip of the stand-alone Semantic Logging Application Block at Version 2.0.1406. The file is 121,705,931 bytes (116 MB) in size. The folders comprise…

  • PerfView: Vance Morrison’s stand-alone PerfView executable and a range of saved ETL files from test runs against the material’s ETW/WMI functionality. It also contains some XSLT output for some ETW Payload samples.
  • ProcessExplorer: The Microsoft Windows Sysinternals Process Explorer created by Mark Russinovich at Version 16.05.
  • SemanticLogging-svc: The implementation of SLAB used within the volume including the configuration entry for our “sample” ETW Event Source.