VS Extension Discussion

Open
#1 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
15/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
csharp

Research direction

No source file, test, or entry point is named; start by reviewing the repository structure and separating this discussion into specific, independently scoped work items. A useful outcome is a defined first-iteration feature with an identified code location, acceptance criteria, and a dedicated issue rather than implementing this broad discussion directly.

Written by the indexing model from the issue text.

Description

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.
Dominant language
C#
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Excel-DNA/DeveloperTools

All issues in Excel-DNA/DeveloperTools

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.