Deploying Outlook Add-in by region - outlook-addin

I can't seem to find an answer to this one in the MS docs, but I have an MS Outlook add-in, that due to some regulations, we would like to deploy across multiple web servers in different regions (US, EU, APAC, etc).
Is it possible, through the manifest.xml file, to target a specific web host based on the client's region. If not, is it possible to create multiple XML files and have the Office Store distribute them on a per region basis.
I'm trying to avoid having multiple per region add-ins available in the store and assuming the user will choose the correct one.

Yes, it is possible. You simply use Override element on your Url, as in example:
<bt:String id="insertGistLabel" DefaultValue="Insert Gist">
<bt:Override Locale="es-ES" Value="Inserte el Gist"/>
</bt:String>
So in your case it would be something like:
<bt:Urls>
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="https://[hostname]/index.html">
<bt:Override Locale="es-ES" Value="https://[hostname]/el-indexo.html"/>
</bt:Url>
</bt:Urls>
You can add as many locale as you want.

Related

TIBCO SPOTFIRE : Redirect Dependent Elements

I'm searching for a way to switch from a test to a prod1, prod2 and prod3 environments having same structure, but the schemas have different names.
Is it possible to do it with the same analysis that will be opened later with a Spotfire web clients (Dedicated for each environments )
I found this in the Doc, but as i said i need something configurable depending on the environment
EDIT
DATASource name : DbParc,
username : DB_PARC2.
So for example when using this analysis in an env with username DB_3, the information link or Procedure element will still use DB_PARC2
Thanks 4 any Advices..
You can create a dashboard (dxp) that has its own set of Information Links and its own set of datasources objects. You need to have all those objects in one folder.
Then you can use Library Administration tool and take Copy action.
You pick the destination and confirm Copy action.
The newly created folder will contain newly created dashboard and what is essential, the dashboad and its Info Links and column objects etc (all depenedcies of the dashboard) will be connectd to the newly created/copied data sources. Now you can change the datasource specific information as per your needs.
You should be able to do this using the (SOAP) Web Services API: https://docs.tibco.com/pub/spotfire_server/7.14.0/doc/api/TIB_sfire_server_WebServices_API_Reference/index.html
There is also an Automation Services task that might be useful: https://docs.tibco.com/pub/sfire_autsvcs/7.14.0/doc/html/TIB_sfire_autsvcs_7.14.0_UserGuide/GUID-A7A5FC46-2DC1-4E70-81F4-B34476AE9221.html

How do you switch to a different site template in SharePoint 2010?

If you used a site template (such as the Document Center template) and wish to use a different template (such as a Team Site), how can you accomplish this? More importantly, how do you do this without losing permissions that have been setup on the document libraries, lists, etc?
This functionality is not available in SP2010. Once a site is setup with a template that is how it is created. That being said, you can simply add the functionality you require to make the site appear to be of another template. By selecting a template, you are simply setting a starting point and not restricted future usage.

Programmatically accessing a Sharepoint list at runtime (without creating a service reference at design time)

I'm creating an app that will be configurable by the end-user to access SharePoint lists, on various different SharePoint sites, that are entered by the user.
All of the examples for reading SharePoint lists I've come across online are of the form:
Open or create a Visual Studio
project.
In Solution Explorer,
right-click the References node, and
then click Add Service Reference.
In the Address box, type the URL to
the target site and append
/_vti_bin/ListData.svc. For example,
the address for the site
intranet.wingtip.com would be
http://intranet.wingtip.com/_vti_bin/ListData.svc.
Change the default name in the
Namespace box from ServiceReference1
to something more appropriate, such
as WingtipSite.
etc, etc, etc
This method creates proxy classes within your project based on the specified server reference. However, in my case, the server/site is not known at design time, only runtime by reading the sites/lists specified by the user. How would one go about doing that (reading the list via http://intranet.wingtip.com/_vti_bin/ListData.svc, but at runtime only)?
Note: I am making this call from a different machine than the one running Sharepoint.
There are a couple answers.
If the lists schemas will be consistent across all the sites you are querying, you can still use the generated proxy. When you create the DataContext, you just need to pass in the URI to the ListData.svc for the site chosen by the user.
If not, then you can use an ASP.NET WebRequest with an appropriately formatted URI and parse out the ATOM or JSON response that comes back.
For more information on using the REST APIs, check out this talk from the 2009 SharePoint Conference
http://msdn.microsoft.com/en-us/sharepoint/ff462048
You can set the URL in your proxy class at runtime with the Url property.
SharePoint does not provide a proxy class for their web services. Therefore it's not possible to set the url at runtime. WHat I have had to do is add 2 service references and then paramaterize which one I will access. I use a config setting to determine which one to access. If the site name changes or list changes, then I need to remove the references, re-add them, recompile and redeploy. There is no way to change the SharePoint site/list at runtime. Have been searching for 3 days for an answer. Microsoft does not know how to accomplish this.

prevent duplicate site / page / layouts / templates / webparts, possible

We have a sharepoint environment with many sites (and sometimes many site collections). Each site (or site collection) has the same default page with some custom webparts that use sitecolumn values (for example a projectcode or clientcode) to show information from external systems. (for each project we have to create a separate site (or site collection) because of other reasons)
What is the best approach to minimize duplication? The dynamic parts of the page are stored in site columns. When we add a new webpart, ideally the default page every site/page should show the new webpart without spreading the update to the individual pages
Thanks
One approach you may want to take is to use the web part as a wrapper for a user control. The user control does the heavy lifting on the site. Once the web part is included on your pages, the user control should be able to tell which site it is being executed on and pull the necessary dynamic data from your site columns.
When you need to make updates, you update the user control and then redeploy the solution package to the farm. Each site will pick up the change as soon as the solution is deployed.
Here is a little information about this approach:
http://msdn.microsoft.com/en-us/library/ff649867.aspx.
The above article relates to WSS 3.0, but that should give you a starting point.
An approach you may want to look at for SharePoint 2010 is a visual web part. More info can be found here: http://msdn.microsoft.com/en-us/library/ff597539.aspx.

sharepoint 2010 document library ip filtering

I need to set up IP filtering in a SharePoint document library based on a group that a user is a member of. More specifically, we have groups set up for each of our customers. Each group should have an allowed IP address attached to it. When a user accesses this document library, we then need to ensure that the user is coming from the IP address attached to their customer group. The IP filtering would only apply to a single document library, not the entire site.
My only idea so far is to create a webpart that checks the user's IP address and redirects if it isn't correct. Then I could put that webpart at the top of a webpart page, and display the document library webpart below that. That's a little hokey, so I was hoping someone had a better idea.
The problem with your proposed solution of a webpart on the AllItems.aspx page is that there multiple ways to get to a document and this would not prevent someone with a direct URL from accessing the document.
You want to take advantage of SharePoint's permission structure. If the documents can be grouped by security, then you could create one library per customer (or one folder within a single library) and set the permissions based on your SharePoint groups for the library/folder. That may not work for you if you need to have one document that is available to multiple groups.
Another option is to set the library security to be restricted to only one system account. Then you could write a webpart (or application page) that checked the user's IP address and using RunWithElevatedPermissions you could get the contents of the libary that are applicable to that user. That would solve the issue of a direct link because they would have to go through your page to access the documents.