Office Web Apps and WOPI - c#

We have Office Web Apps and WOPI working and can load a powerpoint file and edit it.
However getting edit working for Word require implementing Cobalt or FSSHTTP/FSSHTTPB protocol?
The user here has kindly provided most of the code for everything(Can I just use Office Web Apps Server)
Has anybody implemented a Cobalt or FSSHTTP/FSSHTTPB protocol within this context?

I write a Wopi Host demo.
With Cobalt(FSSHTTPB/D) support for Office Web Apps.
Support DOCX Editing, and also PPTX,XLSX.
Requires Microsoft.CobaltCore.dll
https://github.com/marx-yu/WopiHost
thanks thebitllc's great work

Well you could start by grabbing a cobalt assembly from the Office Web Apps machine, I think its called Microsoft.Cobalt.dll.. It should help you to decipher the messages. I am trying to get back to work on this proof-of-concept. If I get it to work I'll post a quick reference here. But the documentation sucks, I have to intercept the messages between the sharepoint and office web apps to make sense of them.

As of February 13, 2015 it seems the WOPI protocol now allows the server to specify whether it supports co-authoring of a given file in the CheckFileInfo endpoint response. So you can avoid the nastiness of the Cobalt implementation.

Related

RESTful Web API implementation to save Office documents remotely

I'd like to implement somehow an endpoint on a .NET core WebAPI that allow a user to edit an Office document that he has beforehand downloaded and automatically opened in office from my WebAPI, and save it directly from the Office desktop client.
How could I do that ? One possibility is to DAV enable my API but I'm looking for a more lighter solution as I only want to manage opening and editing office document.
Currently my API sends the file and I'm planning to implement my web client to tells the system to open it in Office via Office URI Schema. I managed to open a word file in my Word Desktop app but I am stuck at this point and don't know how to edit and save it back.
Thanks for your help.

Azure Web Forms and HTML to PDF converters

If you are using Windows Azure Web Sites for deployment (not Cloud Services) and developing an ASP.net Web Forms application, is it possible to use a 3rd party HTML to PDF converter? I'm starting to think I must convert to a Web Application instead of being a Web Form. I'm kind of new to all of this, so I'd appreciate anyone's input.
If by chance there are 3rd party HTML to PDF converters that are compatible with Web Forms and Azure Web sites, that would be useful. I'm rather happy with the site as-is, but I need to add in the ability to generate a PDF report and I don't fancy tearing up the code if I can avoid it.
Thanks.
Subsequent to my comment 27-dec I had to find a solution and 8 cents per document wasn't an option for thousands of documents. Eventually we build our own solution service http://www.html2pdfrocket.com and made it free.
We pretty much ended up doing exactly what you said - hosting it on Microsoft Azure Cloud Services - as you also discovered the Azure websites didn't have the flexibility or scalability to do what we needed but their cloud services is perfect for it.

Analytics in a restricted environment

Does anyone know of an analytics package, either open source or commercial, that can be integrated into a corporate MVC3 site running in a restricted environment?
The (rather rigid) requirements for my project are: -
The solution must be installed locally, which sadly rules out Google Analytics.
The solution must track analytics for individual users / customers.
The solution must work on a Microsoft technology stack and work under IIS 7.5.
Unfortunately due to client sensitivities (I.E., security and brand reputation) they cannot use publically analytics packages and thus rule out Google, Open Web Analytics, etc.)
Thanks, and let me know if I need to make the requirements clearer.
Piwik is one of the best open source Web Analytics solution. I understand you need a solution in Microsoft stack but this is based on PHP.
I am using this to tracking SharePoint web applications and I am running Piwik using IIS 7.5.
Configure IIS to use a detailed log. Then use a IIS log analayzer tool (there is plenty, google).
http://awstats.sourceforge.net/ is pretty popular. (PHP, but easy to configure in a separate website in IIS)
A .NET based analyzer: http://www.iis.net/community/default.aspx?tabid=34&i=1864&g=6

Creating Cloud Document Server in Asp.Net

Are there any free C# Asp.Net API's to host a server that has cloud capabilities.
All I really want is for users to be able to download Word Documents, The server marks it as locked. Then the user can edit and click "SAVE AS" And it saves it back to my server.
I dont want to use a third party server for this it.
The Microsoft .Net Framework is a free API that has cloud capabilities (ASP.Net).
You will have to implement the code to present the documents and lock them. And find a way to expose the server to the web.
Sounds like Sharepoint to me. A foundation version with the functionality you describe comes free with Small Business Server

How to access sharepoint data using C#?

I am working on project where I have to access SharePoint data in C#.
I've never done this before; and have the following questions?
How would I access SharePoint data from C#? What API do I use? Are there any tutorials out there that will help me get started?
There two ways in which you can access Sharepoint data:
By Using Microsoft.Sharepoint.dll
In this case you need to do coding on same machine (windows server).
Second way is to use Sharepoint Web Services.
This will allow developer to do developement work on different machine.
The SDK is a good place to start. The real crux of question lies in whether you are writing code which will live in a SharePoint environment, or writing code which will consume SharePoint data in an external application.
In the case of the former, SharePoint has its own API which you gain access to by simply referencing the appropriate DLL.
For the latter, SharePoint comes with a set of web services which allow external applications to consume its data. Either these or a set of custom services (running in the SharePoint environment) will be your entry point into SharePoint.
This is how you would do it in PowerShell which is very similar in how you would do it in in C#:
# Lets reference the assembly / GAC that we need for this
function getUsers
{
param ([string] $verify_sitepath="https://extranet.something.com")
$verify_site=new-object Microsoft.SharePoint.SPSite($verify_sitepath)
$verify_web=$verify_site.Rootweb
$verify_web.site.url
$verify_groups = $verify_web.groups | ? {$_.Name -match "^.*$CurrentGroup" }
foreach($verify_group in $verify_groups)
{
foreach($verify_user in $verify_group.users)
{
$verify_user = $verify_user -replace "WRKGRP\\",""
Write-Output "$verify_user" | Out-File -filepath "$splist$currentGroup.txt" -append
}
}
}
What this does is gets all the users from SharePoint that are in a text file. Hopefully this gets you at least thinking about how SharePoint is set up.
A great resource is the MSDN page with all the functions. They provide a lot of programming samples in C#!
Start at the Sharepoint SDK page. Download the SDK, and look at the sample code on MSDN.
Added later: according to MS, this is a better site for all things related to Sharepoint development.
You have to install VS 2005 or VS 2008 extensions for sharepoint. Intsllaing them on xp can be tricky and this page should hep you with that.
you should also CAML Query which you should know to query data from sharepoint lists
you can make use of such a tool http://www.u2u.be/Res/Tools/CamlQueryBuilder.aspx
To me it sounds like you should use the Out Of The Box SharePoint web services. There is no reason why you should have to learn the entire SharePoint API when you could get along just talking to the web service.
This primer on InfoQ is good, but do a seach on SharePoint Web Services and you will find plenty of sources

Categories