• Stars
    star
    130
  • Rank 275,827 (Top 6 %)
  • Language
    C#
  • License
    MIT License
  • Created over 11 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VSTO Contrib lets you easily unit test, use IoC/DI and develop in a MVVM style within Office Add-ins. It supports Outlook, Word, Excel and PowerPoint 2007 or 2010, and has both .net 3.5 and 4.0 builds

VSTOContrib

VSTO Contrib is all about making VSTO development better for developers. It allows you to separate your concerns, use IoC and write more testable clean code in your VSTO add-ins.

Getting Started

A getting started video is available at http://youtu.be/TxRjNsaVX6U, it goes through quite a few of the concepts in VSTO Contrib to help you get started

If you just want to dive in, install VSTOContrib.<OfficeProduct> from nuget, for example VSTOContrib.Outlook for an outlook package.

Included in the package is a readme with some code snippets to help you get started. Also check out the sample projects in this repo, there is a simple one for each of the Office applications and will help you get started

Features

Simplified Model

VSTO Contrib makes it easier to deal with things like:

  • Automatically registering your custom task panes for new windows
  • Keeping ribbon controls in sync across windows
  • Keeping custom task pane state in sync across windows (size, visibility etc)
  • Allow your code to be contextually aware, for example in work, you know the current window and the document when the user clicks on a ribbon button

VSTO Contrib allows you to create a 'ViewModel' for a particular ribbon type, and you will get a new instance of your view model for each context (document, spreadsheet, mailitem etc).

Convention over configuration

Your Ribbon XML will be discovered based on your ViewModels name, it will automatically be discovered and given to VSTO on demand.

The default convention can be overridden by providing your own IViewLocationStrategy

More powerful ribbon XML

Ribbon XML give you a lot more power and flexibility than the VSTO Designer, at the expense of lack of context. VSTO Contrib makes sure you have the current window, the context (document, worksheet etc), ribbon all available to you.

Centralised error handling

Got try/catch's around every method in your add-in? VSTO Contrib allows you to write your own custom IErrorHandler which gives you a central place to handle the errors and stop them getting to Office.

IoC Container Support

VSTO Contrib has full support for IoC containers, there is currently only an Autofac NuGet package, but it is easy to write a simple adapter to any container!

Samples

There are sample applications for Word, Excel, PowerPoint and Outlook available at https://github.com/JakeGinnivan/VSTOContrib/tree/master/src/Samples, check them out and if there are more scenarios which you would like to see covered raise an issue

Each sample is a bit different and VSTO Contrib's model is exactly the same for all Office apps, so the concepts from one sample will apply to other Office Apps!

More Repositories

1

WebApi.Hal

Adds support for the Hal Media Type (and Hypermedia) to Asp.net Web Api
C#
212
star
2

react-popout

React popout is a React component wrapping window.open allowing you to host content in a browser popup window.
JavaScript
188
star
3

react-redux-notifications

Redux powered notification React components.
TypeScript
113
star
4

SettingsProvider.net

Simple Settings provider for .net applications
C#
59
star
5

ExpressionToString

Expression.ToString() is not so nice to look at sometimes, this library will ToString your expression in the way you want
C#
26
star
6

GitHubFlowVersion

The easy way to use semantic versioning (semver.org) with GitHub Flow
C#
18
star
7

WebPack-React-Starter

Understanding starter repos is sometimes hard, this repo will show you how we got there. Commit by commit
18
star
8

VSTest.TeamCityLogger

Enables TeamCity to display output when tests are run through VSTest.console.exe
C#
9
star
9

Drone

Drone gives you a birdseye view of all your OSS projects to help you see what to do next. It may even do some of it for you down the track!
JavaScript
9
star
10

TfsBuildResultPublisher

Based off http://blogs.msdn.com/b/jpricket/archive/2010/02/23/creating-fake-builds-in-tfs-build-2010.aspx and http://msmvps.com/blogs/vstsblog/archive/2011/04/26/creating-fake-builds-in-tfs-build-2010-using-the-command-line.aspx
C#
8
star
11

spectacle-typescript-boilerplate

Boilerplate for https://github.com/FormidableLabs/spectacle using TypeScript
TypeScript
8
star
12

XamlAttributeOrderingCodeCleanup

ReSharper Plugin which orders Xaml Attributes
C#
7
star
13

ndc-sydney-pulumi-demo

TypeScript
6
star
14

XText

Allows you to create nicely formatted WPF text from code behind with a syntax similar to the way XDocuments work
C#
6
star
15

SqlConnectionControl

Code for http://jake.ginnivan.net/wpf-sql-connection-user-control
C#
6
star
16

UITextBlock

Wpf TextBlock that supports UI Automation and some other nice things
C#
4
star
17

urban-plate

JavaScript
4
star
18

gru

Gru is a node clustering helper, because he is the leader of the minions
TypeScript
4
star
19

practical-typescript

TypeScript
4
star
20

AsyncAutomapper

C#
3
star
21

TestCaseAutomationAssigner

Allows you to assign non-mstest tests to Test Cases in TFS
C#
3
star
22

AsyncAllTheThings

JavaScript
2
star
23

DelegateInvoker

Invoke methods via reflection without wrapping errors in a TargetInvocationException
C#
2
star
24

jakeginnivan.github.io

My Blog
JavaScript
2
star
25

wee-dram

JavaScript
2
star
26

example-project-structure

Example of how I setup my NPM projects
JavaScript
2
star
27

merge-refs-hook

This package makes it easy to have a component which requires a ref but also wants to support forwarding refs
TypeScript
2
star
28

modern-typescript-is-awesome-demos

1
star
29

advent-of-code

JavaScript
1
star
30

vite-ssr-build-issue

TypeScript
1
star
31

getting-more-out-of-typescript

TypeScript
1
star
32

IsThatEvenJS

JavaScript
1
star
33

dotfiles

Shell
1
star
34

node-git-release-notes

TypeScript
1
star
35

es6-samples

TypeScript
1
star
36

pulumi-fargate-task

TypeScript
1
star
37

pulumi-locked

Pulumi CLI wrapper which supports taking locks in DynamoDB.
JavaScript
1
star
38

ArgyBargy

A simple clean API for showing flexible WPF dialogs
C#
1
star
39

react-json-pages

Create your layouts and components then compose them with JSON. Opens up opportunities to CMS manage your React pages and cut down on boilerplate across pages. Useful if you are building websites with React rather than applications
1
star