Microsoft recommends to develop Office add-ins using the new Office.JS Add-ins mainly because of cross-plataforming.
We all saw a new player arriving, .NET Core. If Microsoft used .NET Core to create VSTO cross-plataforms, it would be awesome. VSTO has the benefit to be much more tied to Excel's process (not as tied as VBA) than the asynchronous Office.JS. This would please a lot of VSTO/VBA developers as they wouldn't have to learn JavaScript/CSS/HTML and a new deploying paradigm.
VSTO is based on COM, but I believe it would be possible to extends the existing APIs on VSTO to support Linux and Mac. It is undeniable that a VSTO add-in running in Excel's process is better than an Office.JS add-in.
My questions is: Is there a huge technical reason why this is not possible or too hard to implement?
To create a new Excel VSTO Add-in project in Visual StudioStart Visual Studio. On the File menu, point to New, and then click Project. In the templates pane, expand Visual C# or Visual Basic, and then expand Office/SharePoint. Under the expanded Office/SharePoint node, select the Office Add-ins node.
Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the . NET Framework Common Language Runtime (CLR) to expose their functionality via .
Get started programming VSTO Add-ins - Visual Studio (Windows) | Microsoft Learn. This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Based on Microsoft's . NET environment, VSTO is used to create Office "add-ins" that perform functions such as automatically filling in fields in a Word or Excel document and emailing the files or uploading them to a SharePoint server. As of VSTO 2005, support for enhancing Outlook was added.
COM interop requires IDispatch in order to allow late binding to COM objects, which is for Windows only and obviously not a component that satisfies .NET Core's cross-platform compatibility. So .NET Core cannot integrate with Interop assemblies without this support for IDispatch.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With