Book Content Summary by Volume

In Volume I, with 30 hours of accompanying videos, we cover an introduction to Visual F# and the Community Edition of Visual Studio 2015. We adopt the theme of globalisation and the creation and access of a variety or resources that, amongst other uses, cover the internationalisation aspects of software development in this environment.

We introduce, use and extend the .NET RESX methodology via F# and its collection types and use this methodology as the basis of constructing Console and Windows Forms applications that exercise resource access and the modification of underlying RESX XML files.

There are many things to learn thereby about resources but, to extend our reach, we then consider the usage of the Windows Presentation Foundation under F# control that requires a detailed consideration of .NET and F# Reflection, the dynamic loading of assemblies and invocation of types therein and extend our resource consideration to cover any type of resource within an assembly manifest – including both raw and optimised XAML resources.

The consideration of Windows Presentation Foundation (WPF) based resources requires one to also consider a variety of recursive functions for accessing their control hierarchy as well as a simplistic, in principle, recursive discriminated union to graph a framework element and all of its descendants. Alongside such functionality, the dynamic update of WPF images from assembly manifest specified resources.

Tables of Contents

The following are links to PDF files that are extracts of the volume’s contents summary pages and each of the parts’ contents that include page referencing for the accompanying videos…

Sample Chapters

As sample of the material you may browse the following chapters – these are links in PDF format…

  • Record, Dictionary & Tuple Types – wherein we discuss these types in relation to the contextual theme of the material leading up to the an introduction of “contemporary” category totalling via an F# List.collect and thence “doing it the F# way” by using a List.fold against sets, lists and sequences to collate English and Native names from the Microsoft Cultures.
  • Enumerating the Control Hierarchy – wherein we develop a recursive union type to map the hierarchy of controls in an external assembly encoded WPF BAML or Xaml stream.
 
In Volume II, with 32 hours of accompanying videos, we continue the theme of Volume I in the consideration of the definition, access and usage of resources generally – rather than just as a vehicle for the internationalisation of software.

Firstly we cover a variety of techniques used in the chaining and composition of functions and how we can use such to greatly simplify the process of exception control. With such a foundation for error control we then tackle Event Tracing for Windows and WMI Performance Monitoring – both core tools in error management and the tracing of programme execution whilst also facilitating the reporting of auditing and diagnostic information without the need for runtime administrative authority.

We then consider the subject of F# Type Providers – we demonstrate a trivial Type Provider to expose its methodology and then code three Type Providers to deal with the business of exposing configuration settings to a runtime assembly; the extraction of resources from an assembly to further address an application’s needs in both accessing and using one’s own WPF and/or third party libraries for presenting a rich user interface via F# and, finally, an external, Xml based alternative to using the .NET RESX methodology in providing internationalisation of resources for an application.

In the closing sections we undertake the building of a core assembly that “pulls together” our accumulated F# knowledge to expose a common range of functionality to referencing applications. With this core assembly we then implement a dynamic programming interface as a converse of the configuration settings Type Provider and then create such dynamic data access mechanisms whilst incorporating instrumentation through event logging and performance monitoring, as potential alternatives to the developed Type Providers for accessing an assembly’s resources and providing internationalised resources for referencing applications.

Tables of Contents

The following are links to PDF files that are extracts of the volume’s contents summary pages and each of the parts’ contents that include page referencing for the accompanying videos…

Sample Chapters

As sample of the material you may browse the following chapters – these are links in PDF format…

  • Coding the XSettings Type Provider wherein we actually collate our common library work into coding the implementation of the Type Provider for XSettings – assembly configuration settings.
  • Developing a Core Library – wherein we cover various aspects of the functionality of the Core library to be used by our Dynamic Providers and for “general” utilitarian usage.