Be the First to get Office 365

Be the First to get Office 365

?Discover how your organisation can benefit from the power of cloud productivity today.

Award-winning Microsoft Partner Content and Code invite you to an exclusive seminar on May 30th at Broadgate Tower. Come and join us to see Office 365 in action and learn how your business can save time, money and free up valued resources.

Microsoft Office 365 brings together cloud versions of the most trusted communications and collaboration products that your users already count on every day, giving them anywhere-access to email, documents, contacts, and calendars on nearly any device. Office 365 includes Microsoft Exchange Online, Microsoft SharePoint Online, Microsoft Lync Online and Microsoft Office Professional Plus. The pay-as-you-go pricing options give you predictability and flexibility for all or part of your organisation and allow you to experience the seamless integration across services and devices.

For more information:
http://www.contentandcode.com/whoweare/events/Pages/be-the-first-to-get-office-365.aspx
Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

PSIGEN Continues Technical Leadership in SharePoint Scanning and Capture with Enhanced Feature Release

IRVINE, Calif., June 2, 2011 – PSIGEN Software, Inc., the technical leader in SharePoint scanning and capture, announced the release of an Enhanced Feature Set for SharePoint. The new release provides unmatched “out of the box” features, with a focus on automated document routing and Managed Metadata. PSI:Capture now provides a capture solution that allows dynamic routing to SharePoint sites, libraries and folders, as well as setting content type and file naming based on document characteristics. Along with routing enhancements, the product allows the ability to automatically populate the SharePoint Term Store based on information extracted from documents.

“We found that our SharePoint partners and customers were looking for the next level in automation and integration, and wanted to fully leverage the SharePoint feature set.” said Steve Boals, V.P. of Sales for PSIGEN. “Our product now provides enhanced document routing and integration with SharePoint Managed Metadata that is unmatched in the market.”

SharePoint Scanning and Capture
Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

Quick Start programme for SharePoint

IRW have developed an effective ‘Quick-Start’ programme for SharePoint understanding and adoption within an organisation.
IRW’s KickStart for SharePoint is an approach designed for businesses or departments that want to utilise the core SharePoint product features and explore the possible maximisation of the product. The KickStart for SharePoint includes the following deliverables:
•Project Definition, Initiation and Requirements Definition
•Analysis and consultancy work regarding these requirements
•Initial SharePoint customisation and deployment
•Training/Knowledge Transfer sessions
•Workshop and presentation on options, benefits and roadmap going forward
•Project Report, Benefits review and forward planning
IRW’s KickStart for SharePoint provides a number of benefits; it allows your organisation to see the potential of Microsoft Office SharePoint, gain acceptance and buy-in from users, and the business, but from a very low initial cost base. The length of engagement is 10 days. Additional days can be added as needed after the initial engagement.
For more information visit IRW Systems and SharePoint
Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

Window Boxes, Window Planters and Flower Boxes : Windowbox.com

Window Box Brackets
Make your gorgeous plants stand out even more by using decorative window box brackets or stunning plant stands. Regardless of whether you choose to spotlight the beauty of your flowers in a very window box under a window as well as hanging lightly from a balcony, deck and patio railing is key. Don’t fret if you have a wood, aluminum, iron and other railing – there exists a mounting bracket right for the porch, balcony, deck and patio railing.If you’re just looking to enhance the look of your flower box, take into account faux window box brackets.Some brackets and hangers are decorative and some are usually invisible but all are extremely strong and also functional. Regardless of whether your concern is a window box or perhaps flower box, attaching the planter to a railing or maybe stopping any box from drooping we likely have your answer.
For more information or to obtain window boxes, planters along with brackets for window boxes or self watering reservoirs, go to http://www.windowbox.com/brackets-container-accessories.
Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

O365/SPO + Azure + AuthN – Critical Path Training’s Office365 AuthN Helper Library

This post is part of a series on Office365/SharePoint Online, Windows Azure and Authentication. The other posts in this series are as follows:

In this last post in my Office365/SharePoint Online + Windows Azure + Authorization blog series, I want to introduce a little helper project I am using. To make life easier I created a little O365 authorization helper library that does a lot of the heavy lifting for you. It covers two of the three things I outlined in my series as workarounds.

Code samples I show in this post were taken from a code sample CPT’s Office365/SharePoint Online Claims Authentication Helper Library… you can get the code from the Critical Path Training site’s Members sectionlook in the Code Samples section.

Introducing the Claims Auth Friendly ClientContext: ClaimsClientContext

First it creates a special Client Site Object Model (CSOM) ClientContext object. This object has a few properties needed for authenticating with Microsoft Online (MSO) to obtain the SAML token. It then rewrires the ClientContext so that every request includes the SAML token:

   1: namespace CriticalPathTraining.Office365.AuthLibrary {

   2:   public class ClaimsClientContext : ClientContext {

   3:     public string MsoUsername { get; set; }

   4:     public string MsoPassword { get; set; }

   5:     public string MsoRootSiteCollectionUrl { get; set; }

   6:  

   7:     public ClaimsClientContext(string webFullUrl) : base(webFullUrl) { }

   8:     public ClaimsClientContext(Uri webFullUrl) : base(webFullUrl) { }

   9:  

  10:     private MsOnlineClaimsHelper _claimsHelper;

  11:     /// <summary>

  12:     /// Microsoft Online claims helper used to authenticate to 

  13:     /// SharePoint Online.

  14:     /// </summary>

  15:     private MsOnlineClaimsHelper MsftOnlineClaimsHelper {

  16:       get {

  17:         if (_claimsHelper == null) {

  18:           _claimsHelper = new MsOnlineClaimsHelper(

  19:                                     MsoUsername, 

  20:                                     MsoPassword, 

  21:                                     MsoRootSiteCollectionUrl);

  22:         }

  23:         return _claimsHelper;

  24:       }

  25:     }

  26:  

  27:     /// <summary>

  28:     /// Rewire event for client context so that 

  29:     /// every request includes authenticated cookies.

  30:     /// </summary>

  31:     protected override void OnExecutingWebRequest(WebRequestEventArgs args) {

  32:       args.WebRequestExecutor.WebRequest.CookieContainer = 

  33:         MsftOnlineClaimsHelper.CookieContainer;

  34:     }

  35:   }

  36: }

Usage is very simple… the downloadable library includes a test project that shows the usage:

   1: [TestMethod]

   2: public void CliamsClientContextTest() {

   3:   using (var context = new ClaimsClientContext(MSO_SPSITE_URL) {

   4:     MsoUsername = MSO_USERNAME,

   5:     MsoPassword = MSO_PASSWORD,

   6:     MsoRootSiteCollectionUrl = MSO_ROOT_SPSITE_URL

   7:   }) {

   8:     // get the web

   9:     var web = context.Web;

  10:     context.Load(web, w => w.Title);

  11:     context.ExecuteQuery();

  12:  

  13:     Assert.IsNotNull(web.Title);

  14:     Assert.IsTrue(web.Title.Length > 0);

  15:  

  16:     Console.WriteLine("Retrieved site title:" + web.Title);

  17:   }

  18:  

  19: }

Introducing the Claims Friendly Web Client: ClaimsWebClient

The other thing I give you is a special version of the WebClient class that’s makes working with claims a bit easier. It has a single property where you specify the CookieContainer that will contain the SAML token. The library exposes the samples Wictor Wilen provided on to do the authentication for you and generate the CookieContainer:

   1: namespace CriticalPathTraining.Office365.AuthLibrary {

   2:   public class ClaimsWebClient : WebClient {

   3:     /// <summary>

   4:     /// Cookies that should be included on every Web request.

   5:     /// </summary>

   6:     public CookieContainer CookieContainer { get; set; }

   7:  

   8:     /// <summary>

   9:     /// Override base GetWebRequest() method to always include 

  10:     /// cookies if they were specified.

  11:     /// </summary>

  12:     protected override WebRequest GetWebRequest(Uri address) {

  13:       var request = base.GetWebRequest(address);

  14:       if (request is HttpWebRequest && CookieContainer != null)

  15:         ((HttpWebRequest)request).CookieContainer = CookieContainer;

  16:  

  17:       return request;

  18:     }

  19:   }

  20: }

In the associated test project you’ll also find the usage for this as well:

   1: [TestMethod]

   2: public void ClaimsWebClientTest() {

   3:   // file to download

   4:   string fileToDownload = "/_layouts/images/siteIcon.png";

   5:  

   6:   var claimsHelper = new MsOnlineClaimsHelper(

   7:                             MSO_USERNAME, 

   8:                             MSO_PASSWORD, 

   9:                             MSO_ROOT_SPSITE_URL);

  10:   using (var webClient = new ClaimsWebClient() {

  11:     CookieContainer = claimsHelper.CookieContainer

  12:   }) {

  13:     // get the file

  14:     var fileStream = ((ClaimsWebClient)webClient).OpenRead(

  15:         string.Format("{0}{1}", MSO_SPSITE_URL, fileToDownload)

  16:     );

  17:         

  18:     // download & write local        

  19:     string tempFilePath = Path.GetTempFileName();

  20:     var tempFile = File.Open(tempFilePath, FileMode.OpenOrCreate);

  21:     fileStream.CopyTo(tempFile);

  22:     fileStream.Close();

  23:     tempFile.Close();

  24:  

  25:     Console.WriteLine("Downloaded file to:" + tempFilePath);

  26:  

  27:     // make sure file exists & bigger than 0 bytes

  28:     Assert.IsTrue(File.Exists(tempFilePath));

  29:     var fileInfo = new FileInfo(tempFilePath);

  30:     Assert.IsTrue(fileInfo.Length > 0);

  31:   }

  32: }

Last but not least, for completeness I threw in a test for working with any of the SharePoint *.ASMX or *.SVC Web services. You don’t need any special helpers here as they include a CookieContainer class already:

   1: [TestMethod]

   2: public void WebServiceTest() {

   3:   XmlNode results;

   4:  

   5:   var claimsHelper = new MsOnlineClaimsHelper(

   6:                             MSO_USERNAME, 

   7:                             MSO_PASSWORD, 

   8:                             MSO_ROOT_SPSITE_URL);

   9:   using (var client = new Lists() {

  10:     Url = string.Format("{0}_vti_bin/Lists.asmx", MSO_SPSITE_URL),

  11:     UseDefaultCredentials=true,

  12:     CookieContainer = claimsHelper.CookieContainer

  13:   }) {

  14:     results = client.GetList("Shared Documents");

  15:   }

  16:  

  17:   Assert.IsNotNull(results);

  18: }

Technorati Tags: ,,,,,


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

O365/SPO + Azure + AuthN – Workarounds and Fixes for Claims-Based Auth Sites

This post is part of a series on Office365/SharePoint Online, Windows Azure and Authentication. The other posts in this series are as follows:

Now let’s see how we can address the authentication fixes for each of the different ways you can access SharePoint remotely. In this post I’ll cover each of the specific tools (REST or OData / CSOM / Web Services / WebClient) and how to address each of the tricks. Each one has it’s pros & cons, hence why I had to use all four tools in my demo in my breakout session Out of the Sandbox and into the cloud: Build your next SharePoint app on Azure at the Microsoft SharePoint Conference 2011 (see that link for where you can download the sample).

Any code samples I show in this post were taken from my session Out of the Sandbox and into the cloud: Build your next SharePoint app on Azure at the Microsoft SharePoint Conference 2011… you can get the demo code from the Critical Path Training site’s Members section… look for the AC’s SharePoint Conference 2011 Sessions download in the Presentations section.

For all the samples below, I created a private property in my class called MsftOnlineClaimsHelper that creates a local instance of the MSO helper and automatically authenticates.

   1: private MsOnlineClaimsHelper _claimsHelper;

   2: /// <summary>

   3: /// Microsoft Online claims helper used to authenticate to SharePoint Online.

   4: /// </summary>

   5: private MsOnlineClaimsHelper MsftOnlineClaimsHelper {

   6:   get {

   7:     if (_claimsHelper == null) {

   8:       _claimsHelper = new MsOnlineClaimsHelper(

   9:                 RoleEnvironment.GetConfigurationSettingValue("SharePointUsername"),

  10:                 RoleEnvironment.GetConfigurationSettingValue("SharePointPassword"),

  11:                 RoleEnvironment.GetConfigurationSettingValue("SharePointRootSiteUrl"));

  12:     }

  13:     return _claimsHelper;

  14:   }

  15: }

CSOM Client Context & CBA Challenges

One of the most common ways to work with SharePoint 2010 from off the SharePoint server is using the CSOM. Authentication with the CSOM is pretty straight forward using the ClientContext object. The trick comes into play with claims based authentication (CBA).

When you want to switch to FBA it’s a simple property switch on the ClientContext, but as I previously stated there is no such way to do this for CBA. What you need to do is rewire the ClientContext so that every request it makes to a site collection includes a SAML token to authenticate the request. You do this by trapping the ExecutingWebRequest event of the ClientContext and injecting the cookie container generated by the MSO helper into all requests:

   1: private ClientContext _clientContext;

   2: /// <summary>

   3: /// CSOM client context.

   4: /// </summary>

   5: private ClientContext CsomClientContext {

   6:   get {

   7:     if (_clientContext == null) {

   8:       _clientContext = new ClientContext(

   9:         RoleEnvironment.GetConfigurationSettingValue("SharePointSiteUrl")

  10:       );

  11:  

  12:       // wire up claim helper to include SAML tokens (cookies) in all requests

  13:       _clientContext.ExecutingWebRequest += 

  14:             (webRequestSender, args) => {

  15:                 args.WebRequestExecutor.WebRequest.CookieContainer 

  16:                     = MsftOnlineClaimsHelper.CookieContainer;

  17:             };

  18:     }

  19:     return _clientContext;

  20:   }

  21: }

Now, almost all requests the ClientContext make will include the SAML token! I say “almost” because there is a bit of an issue with the ClientContext. There is a method called File.OpenBinaryDirect() that you can use to download a file from SharePoint. For some reason this method doesn’t raise the same ExecutingWebRequest event so your token isn’t handled! Ouch… oversight in the API me thinks… regardless, you can get around this using a stock Web Client…

Web Request & CBA Challenges

The way you can address the lack of passing along the SAML token to SPO when you try to open and download a file using the File.OpenBinaryDirect() method is to simply create a simple Web request that will download the file. However this process also needs a little bit of work to pass along the SAML token. What I did was create a custom version of the WebClient class that did this for you as follows:

   1: namespace AndrewConnell.ACsCichlids.StoreFront {

   2:   public class ClaimsFriendlyWebClient : WebClient {

   3:     private CookieContainer _cookieContainer;

   4:     public CookieContainer CookieContainer {

   5:       get { return _cookieContainer; }

   6:       set { _cookieContainer = value; }

   7:     }

   8:  

   9:     protected override WebRequest GetWebRequest(Uri address) {

  10:       var request = base.GetWebRequest(address);

  11:       if (request is HttpWebRequest)

  12:         ((HttpWebRequest)request).CookieContainer = _cookieContainer;

  13:  

  14:       return request;

  15:     }

  16:   }

  17: }

This method is handy when you want to download a file from a site collection. To use it you simply pass in the MSO helper’s cookies and they will be included on all requests:

   1: using (var webclient = new ClaimsFriendlyWebClient() 

   2:     { CookieContainer = MsftOnlineClaimsHelper.CookieContainer }

   3:   ) {

   4:       // download file into a memory stream

   5:       var fileStream = ((ClaimsFriendlyWebClient)webclient).OpenRead(cichlidPicture.OriginalUri);

   6:  

   7:       // create & save blob

   8:       var blob = AzureStorageContainer.GetBlobReference(cichlidPicture.ImportedFilename);

   9:       blob.UploadFromStream(fileStream);

  10: }

REST / OData / Web Services & CBA Challenges

My preferred way to read/write data to SharePoint lists is using the RESTful OData service ListData.svc. This service, like all the other Web services that are included with SharePoint 2010 (*.ASMX & *.SVC), don’t understand claims by default. When you want to authenticate for a Windows or FBA site you have to create a network credential object and set it as a property on the service proxy.

However this isn’t available when it comes to authenticating with CBA. Like the ClientContext, you need to rewire the calls to make sure they include the SAML token in each request. This is pretty simple as most services, like the Lists.asmx service, includes a CookieContainer property:

   1: XmlNode results;

   2:  

   3: // call lists.asmx web service to get attachments for each item 

   4: //    use same "cookie container" technique to authenticate

   5: using (var client = new Lists() {

   6:   Url = siteUrl + "/_vti_bin/Lists.asmx",

   7:   UseDefaultCredentials = true,

   8:   CookieContainer = MsftOnlineClaimsHelper.CookieContainer

   9: }) {

  10:   results = client.GetAttachmentCollection(

  11:     RoleEnvironment.GetConfigurationSettingValue("SharePointManagementListName")

  12:     , listItemId.ToString()

  13:   );

  14: }

There you have it… hopefully this series & code samples will help you authenticate into your site collections in SharePoint Online!

Technorati Tags: ,,,,,


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

SharePoint 2010, ALM and Continuous Integration Resources

When teaching SharePoint 2010 developer classes I typically get at least one question every other class as it relates to ALM. On occasion there is at least one student who is used to doing continuous integration (CI) in their non-SharePoint projects and want to know how to it in SharePoint 2010 projects.

For me, the best person you can look to is Chris O’Brien. Chris has done a ton of work around this and has presented on the subject at a few conferences. He’s now working on a blog series (in conjunction with Microsoft folks like Kirk Evans & Mike Morton) that walks though setting up a SharePoint 2010 project for CI. The series is being posted on Chris’ blog as well as SharePoint Developer Team Blog.

Its best to start with the introduction “why” posts here:

» Chris O’Brien: SharePoint 2010 Continuous Integration – Part 1: Benefits
» SharePoint Dev Team Blog: Continuous Integration for SharePoint 2010 (Mike Morton)

Both of those point to the other posts in this series. There are a few other posts on Chris’ blog I’d recommend you check out as well.

Technorati Tags: ,,,,,


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

Data in the cloud! DataMarket Add-In for Excel and Excel Services

There are some exciting things happening around Microsoft cloud services. One of the services is Windows Azure marketplace DataMarket, a cloud service that helps end users who need data for business analysis and decision making. You can conveniently consume the data you subscribe to directly in such Microsoft Office applications as Microsoft Excel 2010 and Microsoft business intelligence tools as PowerPivot and SQL Server Reporting Services. Then you can share the reports and visualization you create in SharePoint. To learn more, see the DataMarket_Whitepaper.

There are some end-to-end scenarios where Office draws data from the cloud through DataMaket, then shares it in SharePoint Server 2010 through Excel Services and perhaps from there to a PerformancePoint Services dashboard. The following diagram is a specific scenario where data is drawn from the DataMarket, then saved to your desktop, then shared on SharePoint Server 2010 through Excel Services.

Note: Office365 is included in the image only to give the big picture, in that there are three major offerings and DataMarket is a result of what is offered in Windows Azure and SQL Azure.

This post highlights the DataMarket Add-In for Excel, which is a free application that allows discovering and importing data from Windows Azure Marketplace DataMarket into Microsoft Office Excel. I also give a brief description of each cloud offering.

DataMarket Add-In for Excel (how it works)

The DataMarket Add-in for Excel (CTP1) gives you a simple experience allowing you to discover datasets published on the Windows Azure Marketplace DataMarket. You can browse and search for a rich set of datasets from content publishers within a tool you’re already familiar with, Excel. Here is how:

1. Download the add-in here, open the folder (or save to your machine), and double-click the Windows Installer Package.

Note: You may be asked to download Microsoft .NET Framework 4.0 Client Profile. The 4.0 framework installs the WCF Data Services, which is a component of the .NET Framework that enables you to create REST-based services and applications that use the Open Data Protocol (OData) to expose and consume data over the Web.

2. Open Excel and click the Data tab to see that the add-in was installed as extension to Excel. You should see a button named Import data from DataMarket in the Excel ribbon, as follows:

3. Click the Import data from DataMarket button. The sign-in dialog box opens:

This dialog box introduces the DataMarket and lets you:

  • Browse the marketplace: Clicking this link opens a new browser window where you can browse the datasets exposed by the DataMarket.
  • Sign up for DataMarket: Opens the browser with the sign-up page for the DataMarket. Signing up is free!
  • Privacy statement: Opens the browser showing the privacy statement for this add-in.

The main purpose of this dialog box is to help you sign in to your list of subscribed datasets. To sign in, you need to provide an account key. An account key is your password to access all the datasets in the DataMarket and it can be found at https://datamarket.azure.com/account/keys. Because the account key is your password (tied to your DataMarket account), you need to sign up with the DataMarket to get access to it.

Copy the account key from the account key page (https://datamarket.azure.com/account/keys) and paste it into the Account key field. Additionally, you can specify whether the account key is being saved for further use by checking the Remember my account key check box.

If you have signed up, copy your account key and click Sign-In to load your subscribed datasets.

The following screeshot shows the three datasets I signed up for. Some datasets, such as STATS, charge a fee. Other datasets are free but may have limitations on the data you can view. For example, Zillow gives you 3,000 transaction per month for free. The other data providers offer a various number of transactions.

 

For next steps see:

Excel Services overview (SharePoint Server 2010)

Publish a workbook to Excel Services

 


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

End of License for Microsoft Office SharePoint Server 2007 for Search

For any customers who might be using Microsoft Office SharePoint Server 2007 for Search, this is a reminder that in 2008, it was replaced with Microsoft Search Server 2008. At that time, Microsoft discontinued support for Office SharePoint Server 2007 for Search. This is especially important to note if you plan to install Service Pack 2 (SP2) for SharePoint Products and Technologies on a server that is running Office SharePoint Server 2007 for Search. This can cause Office SharePoint Server 2007 for Search to incorrectly register as a trial version.

We recommend that you do one of the following instead:  

 


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,

I’ve got Georgia (plus SharePoint, BI, and scenarios) on my mind …

Hal Zucati here for SharePoint IT Pro UA.

It’s Tuesday here in Atlanta and I wanted to give you a brief recap of the conversations I’ve had with customers here at TechEd 2011.

I talked with close to 30 people yesterday on the subjects of SharePoint, Business Intelligence, and what the word “scenario” meant to them.

SharePoint

  • “Very useful tool, instrumental in providing the features and functionality required to allow business to grow.”
  • “Works better than my car, and I drive a Porsche.”
  • “After we implemented SharePoint Server 2010, we saw a 50% increase in internal website traffic and a 14% decrease in internal service requests.”
  • “If only it came with a comprehensive instruction book.”

I pointed the last customer to our TechNet Library, which they had not seen: “Roadmap to SharePoint Server 2010 content”, http://technet.microsoft.com/en-us/library/ff627858.aspx

Business Intelligence

  • “What’s that? Like Military Intelligence?”
  • “SQL Server 2008 R2 and Excel, what else is there?” (I actually got several variations on this response.)
  • “Microsoft has that? Really?”

I pointed the last customer to the Business Intelligence in SharePoint Server 2010 Resource Center, http://technet.microsoft.com/en-us/sharepoint/ee692578.aspx.

Scenario

  • The most common first response I got was a funny look — one that appeared to represent a mixture of confusion, annoyance, and indifference.
  • “That’s where you (Microsoft) try and guess what we’re going to use your stuff [products] for and then tell us how to do it …”
  • “It’s what I (the customer) put together when I want to sell my boss something.”
  • “I honestly have no idea, but it sounds bad.”

After receiving the replies, I showed each of the people I talked to the following article, which includes an example of what we define as a scenario: “Approval Workflow: A Scenario (SharePoint Server 2010)”, http://technet.microsoft.com/en-us/library/ee704556.aspx

Thanks to eveyone I spoke with on Monday and to everyone reading this.

– Hal Zucati
SharePoint IT Pro UA 



 


Read More

Tagged: , , , , , , , , , , , , , , , , , , , , , , , ,