CodeDotNet

This site is often under construction as it is used to expand my skills by exploring ideas and techniques for .NET, combining ASP.NET, Silverlight applications, web services, and a VB/C# desktop client to access selfsame web services.

Updates and Announcements


2019-02-04

Plugin development for Excel

This is a response to an old question on Stack Overflow:

As mentioned by others, there are three basic Office technologies other than XLL's, they are VSTO, VBA, and Office JS API.

My personal experience having worked with all three, is that VSTO is the most powerful, in either VB.NET or C#, as they are essentially the same language. The future road map for the two languages will show divergence because C# will receive higher-end features while VB.NET will be targeted as the easy to use one, but as this point, there is little difference between the two for programming Excel. VSTO will provide built-in processes for versioning, release, automatic updates, and rollback, and is capable of anything within the .NET library.

VBA is the original programming language for Office and most samples are based on that. You can create fairly complex ribbons and context menus with it, but that said, it will be incapable of async/threaded operations and is lightweight for service related work. That said, if you don't need such operations, VBA can work, but you should have some plan for managing versioning and code management, which is not natively part of the VBA sphere, and will be entirely managed by you.

The office API is like programming web pages with Office, defining and using JS for operations - newer ones leverage React and Angular - with HTML and CSS for the panels. My recent experience converting Outlook VSTO add-ins was frustrating as many easy-to-implement features in VSTO/VBA are not available or are more complicated in JS. The experience and the interface though is quite nice, are much better looking than the typical WinForm, and it will be capable of working in web-based office clients, unlike VSTO.

The XLL link you provided is for a wrapper around C++. This is likely more complicated than any of the other types, and although there is power in going lower, you would need to have the experience and skills to make it worthwhile.

Synopsis:
  • Desktop: All (VSTO, VBA, JS)
  • Web/Mobile: JS only
  • Easy Upgrade and Code Management: VSTO, JS
  • UI: JS is better looking, VSTO/VBA is WinForm looking
  • Skills: HTML/CSS/JS (Web) vs VBA/WinForms vs VSTO/WinForms (C#/VB.NET)
  • Examples: VBA, VSTO, JS, in decreasing order

2019-01-31

4 Tips for Surviving a Toxic Workplace Culture

In retrospect, when I've decided to leave an organization, I haven't documented everything, but I can see from others how that might matter.

For myself, I've focused on the following, very much the same as the article:
  • Refining and developing skills
  • Being one's best, aiming to shine while searching for an exit
  • Connecting with everyone with which you have a positive relationship