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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions