Multi-phase MS Office Application Level Add-Ins - excel

I am tasked with upgrading a current add-in, and creating a new add-in for Office Excel. The requirements dictate that these solutions be implemented as application level add-ins as opposed to document-level. Each solution is isolated in a separate group within the same proprietary tab on the Office Ribbon.
Is is possible to have multiple application-level add-in solutions or must these be contained within one Visual Studio solution. If they must be contained within a single solution what would be the best practice for tabling (and hiding from the end-user) the solution that is still a work in progress? \
---APPEND---
To clarify, I will define each programmatic entity to be accomplished as a task. Each task is contained within a single group on the Ribbon. All tasks/groups are on the same custom ribbon "tab". How do I release these projects individually to end-users? I should be able to release Task-A to to end-users without worry about the status of Task-B even though they are on the same ribbon tab?

There is no issue in having all the application addin under single solution, I preferred to have it in a single solution in my projects.
With regards to hiding from the end user, if you are going for Click once deployment then just publish the addins which are ready for release. Even if you go for MSI you should be able to do the same by deploying only the addins which are ready to release.
You could also hide the ribbon tabs if they are not completed yet. Hope this answers your question.
Reply to your Appended Question:
In our project we just hide the buttons from the ribbon by setting Visible = False so that the QA or enduser could not be able to see this hidden button. Eventhough there is unfinished/untested code they are never invoked.

Related

How to show Taskpane selected data in ribbon command using officejs

We are populating list of users in dropdown list Task pane UI. When we are selecting the user in the list we were able to show selected user in taskpane itself.
Also we wanted to show the selected user in ribbon command Menu like in attached screen shot.
The screen shot which took from Excel DNA with .net application the same wanted to achieve in Excel add-in using OfficeJS.
The Fluent UI extensibility level leaves much to be a desire for Web add-ins. See Add-in commands for Excel, PowerPoint, and Word for more information.
If you need to implement dynamic ribbon customizations you need to consider developing a VSTO based add-in instead.
this feature is not yet available with add-in commands. One capability we just announced on the community call was "contextual tabs api". This will be available soon for public preview where you will be able to test it. Please stay tuned for our next community call for an update.

Launch one addin from another addin in excel

We have developed a couple of excel addins with office-js and are finding that it would be really handy to be able to launch one addin from another addin and even possibly pass some data between the 2. Is the launching at least possible?
If you own both add-ins, you could navigate to one or the other via the URL's you placed in your manifest file. This could allow you to launch another add-in, however it would be inside the same task pane.
You could also pass data between both apps via url query parameters.
I've done this before when I made an add-in that was a landing page for other add-ins. When you clicked on a button for another tool, it would navigate to another add-in (which was a separate project) and pass the previous tool as a parameter in the URL so you could navigate back to where you came from.
It'd also be possible to share data on a private sheet inside Excel.
This would be security issue when an add-in will be able to manipulate others. For this obvious reason this is not possible.
Usually I advise to use https://officespdev.uservoice.com/ to request unimplemented feature, but based on your description, Office team most likely won't allow it anyway.

Popup window inside a task pane add-in

I have a task pane add-in in Office.
I have an item in the task pane, and a delete button. Now, when users click on the delete button, I want to pop up a small window to ask if users are sure about the deletion. If yes, we continue; if no, we go back to the current page.
It is like the Window confirm() method for a web page.
Does anyone know how to pop up this small window in the task pane add-in?
Additionally, if I want users to choose an option in this popup window (eg, choosing a colour between blue or red) before continuing (let's forget yes or no), how could we realise this? More generally, is it possible to create a custom confirm box?
As you design and build web apps for Office 365 or add-ins for Office and SharePoint, you can take advantage of the Office UI toolkit to make your experience look and feel like Office. The Office UI toolkit has key plug and play components that will make it easy to create web experiences that connect to and integrate with Office.
One of the controls offered by Office Fabric JS package is Dialog which has a lot of customization. I believe you'll find one suitable for your task.
Yet another option is to use any UI package which has variety of UI controls, for example jQuery mobile. And finally you may just write your own control.

QTP Addin - Object is not being recognised

QTP doesn't recognize item when I disable some add-ins which was checked when I added them in to the repository
Note: I actually selected all the add in's when I added the objects into repository - .Net, JAVA, Oracle, Siebel, SAP, Web Services, Silverlight, ActiveX(I know I am a Noob). When I just select Web right now and run the script, it's unable to recognize the object and when I add the object again(with only Web checked), it's being added as a new object and is being recognized when I run it.
So my question is what is the relationship of an object with respect to add in? How does it go on to affect the property of the same object?
Add-Ins are Collections of Pre-Defined Object Types
The add-in contains built-in property sets for a specific group of related UI objects. This helps QTP identify the runtime objects more effectively for a specific type of application.
For instance, it's quite predictable that browser-based applications will be using the standard HTML elements, so the basic web objects (i.e. Page, Frame, WebButton, WebList) have already been defined in advance inside the Web add-in.
The Evil in Enabling All Add-Ins
Most likely, you're facing the issue because all add-ins were enabled during recording. QTP had the option to choose from any of the pre-defined objects in all of those add-ins as it sees fit. You could have ended up with an object repository that's a hybrid of object types found in multiple add-ins.
We faced this similar issue before where a web button (i.e. html input type="button") was recorded as a SAPWebButton. That's because all add-ins were enabled during recording and no one noticed. It worked fine until we disabled all other add-ins, except for the Web add-in. Since the Web add-in only knows about a WebButton not a SAPWebButton, this resulted into identification problems.
Prevention and Fix
The correct approach is to decide which add-in is most appropriate for your application type before recording, enable it and disable the rest.
You will have to manually update the problematic object via Update Run Mode. If there's too much, you'd be better off recording from scratch.

Solution for Deploying & Updating Document Level VSTO Addin Including the Document

Do any of you have advice on methods for deploying an office VSTO addin, especially Excel, that makes it easy to update and deploy the document as well as the addin.
I have a document level addin for Excel 2010 that I created using VSTO. I currently deploy it using click once. However, this has a few problems. The first problem is that I publish it to ftp then users install it from my website. Since the document and addin are downloaded from the internet, I obviously have trouble getting proper permission for the addin to run and the document to be trusted. Currently I just have users manually adjust permissions and grant access when the solution is installed. That part works and is fine, but if any of you have suggestions on how to automate this that would be great.
The second problem, the main one I am wanting help with in this post, is deploying updates. I generally like using clickonce because of its ease of installation and automatic update features. The solutions I develop are used in rapidly growing fast changing companies, which means I am often making updates. Click once makes it easy enough to update the "code" or addin itself. I just have it automatically check for updates when it is started, and if there are updates it will prompt the user to download them. But what about the document? My solution doesn't only include the code. It also includes the highly customized Excel workbook.
When the solution is initially installed a copy of the workbook is just downloaded to the local computer. But what about after it is deployed to dozens of computers? Does a document level change (adding a column for example) mean going to each computer and downloading the updated workbook manually?
Surely there is a better way to automatically deploy updated versions of the workbook. Any suggestions?
Here are a few ideas I thought of:
Use some installer other than clickonce. Any suggestion on one that allows easy automatic updates?
Somehow package the workbook as an application resource. I have actually done this in some situations, but not in cases where the document itself included a VSTO addin.
Related to the previous idea. Make a "wrapper" project that includes the workbook & VSTO addin. Then the addin would be launched by clicking on a regular icon on the desktop, which would download the workbook (if an update was needed) then open it in Excel. I would prefer that method of launch over simply opening the workbook anyway.
Note: No user data needs to be preserved in the Workbook when an update is done. The old version could simply be overwritten by the new one. The workbook gets all its data from an SQL server.
You could use a Visual Studio Setup Project which leverages Windows Installer. See this deployment walkthrough guide on using VSTO 4.0.
In Visual Studio 2012, support for Setup Projects is being deprecated in favor of InstallShield LE which is another alternative.

Resources