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.


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:

Stuck and Stressed: The Health Costs of Traffic

I responded to an article in the NY Times, Stuck and Stressed: The Health Costs of Traffic, several times, and the following is relevant to technology::

The ability to work remotely can be a big enhancement, particularly for those with long commutes. It's not for everyone, but it can greatly enhance productivity and feeling of well-being. I recently reposted an article touting how tech employees are both more productive and more satisfied when they have the remote work option. Granted, this is not always an choice for roles that require face time and presence, but for many - currently, I am spending 60% of my time coding - it could personally reduce the need for transportation and clothing costs, and for companies it could reduce turnover and site costs - people can share desk space - as well as make some more productive and happier.

Granted, it is not for everyone. A study looking at personality traits conducive to remote work found that autonomy and stability were associated with having the least stress working from home. I'm sure there are other views, differences dependent on the level of extroversion, tech-savvy, and independence, etc., as well as aspects of the physical environment, but regardless, it would certainly go long way to reduce problems of commuting.

Organize your life with Personal Kanban

Responding to an article in TreeHugger:

If one manages software processes, the same inclination is carried over into one's own life. One can't help but think of applying Kanban to one's personal tasks. That said, efficiency is not always a virtue. I've read that people are happier multi-tasking, so striving for efficiency is not necessarily pleasurable.

My personal code and sites are managed in VSTS, while my work environments have used a variety of systems, most recently Jira. Although I have explored a variety of Kanban systems to manage my life, I also settled on Trello, owing to its cost and ease of use. That said, I more often manage tasks as simple lists either in Wunderlist, Instapaper, email - I find my inbox a very effective way of tracking diverse items - or OneNote. As was always the case with lists, they can become unwieldy and outdated, so they require periodic review, deletion, and reorganization.

James Igoe's Reviews > Godel's Proof

Godel's ProofGodel's Proof by Ernest Nagel
My rating: 4 of 5 stars

Interesting and not terribly written but in a few areas highly repetitive. My background is not deeply mathematical, so maybe I was missing a subtlety here and there, but it seemed to be stating the same meanings over and over, although the bulk of the book was engaging and thought-provoking for someone 'mathy' like myself...

View all my reviews
read all...