Skip to content

VS Extension Discussion #1

@govert

Description

@govert

This topic is for general discussion of the Visual Studio extension for Excel-DNA.
We can create individual issues for specific work items as these are more clearly defined.

My thoughts for the first iteration of the VS extension:

  • The first iteration of the extension is mainly about project and item templates, and some related tools for setting up and managing an Excel-DNA add-in solution.
  • We are building this for the Excel-DNA v1.1 generation, so this always targets .NET Framework. (There are some future plans for Excel-DNA to target .NET 5, and have a different model for loading the add-ins.)
  • We want to support both C# and VB.NET (and possibly F# where this is easy, but it's not an initial priority).
  • There are different solution and project layouts we should define and then make easy to build and configure. For example:
    • Simplest add-in is just a Class Library that has the ExcelDna.AddIn NuGet package installed.
    • A complicated solution might have:
      • an implementation Class Library project which does not reference Excel-DNA at all, with the core code, and other references
      • a Test project that does unit testing of the implementation library, and
      • an add-in Class Library that references Excel-DNA and the implementation library, and adds the functions and add-in specific feature that are relevant to the Excel addin part of the project.
      • possible other projects that also reference the implementation library, like a GUI front-end.
  • There are different features that an Excel-DNA add-in project might have, and that we want to make easy to add. For example:
    • Have a reference to the Excel PIA assemblies installed (perhaps with an option about the version).
    • Runtime-registration of functions using the Excel-DNA Registration extensions - with some related features
    • Support for a Ribbon extension, perhaps with ribbon definitions in a separate xml file that is embedded as a resource
    • Support for one or more CTP, with some help in setting up the WinForms // WPF // WebView and maybe dealing with a CTP that is linked to a workbook.
    • Documentation support through ExcelDnaDoc (which also needs the help compiler tools to be installed - I can't remember if the NuGet package does this automatically).
    • Embedding of the IntelliSense library
  • We might consider whether to interact with the .dna file that defines an add-in, for example can we help manage the list of <Reference ... Pack='true' \> tags to help with the packing.

General extension features:

  • I'd like to understand the options for licensing of the extension, particularly how we link the extension to a back-end user id and authorization to use the extension. Does the VSIX model have any built-in support for licensing?
  • I'd like to understand the options for building in some telemetry into the extension, so that we might get information about how many add-ins are created, and what aspects are used. This should be anonymous and optional to the user so they can opt out.

Future topics, not for the first iteration:

  • Setting up an installer project (from the WiXInstaller) is not for the first iteration, but perhaps for future work.
  • Improve debugging cycle through some unloading / reloading link to a 'live' Excel instance. There are some debugger implications to this too.
  • A test framework for integration testing of add-ins.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions