Welcome to MSDN Blogs Sign in | Join | Help

SPC 2009 - Day 1

Most of day 1 was the keynotes. Got to love that the first demo was for the developers in the room. Really like that the definition of SharePoint has become more broad then simply a collaboration platform. The new pie slide simply stated Next Generation Platform. I sat in all the keynotes and then mostly IT Pro sessions. This is because I am already pretty deep in the dev stuff. I went to IT Pro Overview, and the 2 part sessions on Architecture done wy the SharePoint 911 guys which were very entertaining. Some favorite lines:

Co-authoring is the feature that lets you watch other people do your work...

If you write a bad web part, my sharepoint server will hunt you down and shoot you...

I really like all the powershell stuff done by Shane and Todd. The biggest thing to take out of this is make get-help your friend and don't forget tabbing can auto complete not only commands, but also parameters. I'll be doing more blogging once I get back with a lot of details as well as the dev work I have been doing... finally nice that the NDA has been lifted.

Posted by edhild | 0 Comments

Resolved error setting up IRM for SharePoint 2007

Was working on a proof of concept today and ran across an interesting error when trying to get the MOSS server to talk to RMS. Since this is just in a lab, the MOSS central administration web app pool was running as Network Service. When I chose to specify the RMS server, the error was that it was found, but that the local machine account did not have access. Turns out, you need to set a few permissions on one of the asmx web service files on the RMS server. In my case the RMS Server was on a domain controller- installed with the default options. To solve the problem, I simply went to c:\inetpub\wwwroot\_wmcs\certification and modified the permissions of ServerCertification.asmx. I added the computer account of the MOSS server, and the app pool identity of my other web applications, as well as the AD RMS Service Group. That fixed it. Here is another post that has some pretty pictures and more explanation:

http://blogs.technet.com/rmssupp/archive/2009/01/04/the-required-windows-rights-management-client-is-present-but-the-server-refused-access.aspx

 

Posted by edhild | 0 Comments

My Presentation for Tomorrow's SharePoint Best Practices Conference

I just wanted to post the deck I will be using for my session (SPDev 314) at the SharePoint Best Practices Conference in Reston. My session includes mostly demos around document generation scenarios with SharePoint. There is a lot of use of the new Open XML SDK. Most of the code samples have already made it onto this blog. So I'll just post the deck. Enjoy!

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/conference/SPDEV314%20Hild.pptx

 

Posted by edhild | 0 Comments
Filed under: ,

Updating demos from my book for the DC SharePoint Best Practices Conference

I’ve been updating some of my demos for the upcoming DC SharePoint Best Practices Conference (http://www.bestpracticesconference.com/). Basically, I have a session that shows different approaches to common document generation scenarios that customers have expressed an interest in. I will show why you want to be building these out with SharePoint and why you want to use some of the latest tools to help. These tools are things like the new Visual Studio Extensions for WSS, the new Open XML SDK, and the Word Content Control toolkit. Some of the demos in my session (on the first day of the conference) were solutions that I first proposed in my book: Pro SharePoint Solution Development. Those solutions were built on (gasp) VS.NET 2005 and the Packaging API which was brand new back then. For those of you who have been looking for an update, here you go. Here are some download links to updated projects:

A web part for building a PowerPoint presentation server-side:

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/DynamicPowerPoint.zip

A new feature that merges SharePoint list data into a Word document template:

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/CustomerDocumentsFeatureNew.zip

A new feature that supports the splitting of a document into discrete sections and then merged back:

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/DocumentSplitter.zip 

Just a reminder that all of these solutions are really just demo code and should have a lot more error handling and testing. But it gives you a really good starting point for your own solutions. The biggest difference with these new projects is the use of the Open XML SDK which gives you an object model to work with instead of coding nasty XML. Here is an example of an old code snippet that opened up a PowerPoint template and located the slide parts:

Using pptPackage As Package = Package.Open(fileStream, FileMode.Open, FileAccess.ReadWrite)
          
' Get the main document part (presentation.xml).
            For Each relationship As PackageRelationship In pptPackage.GetRelationshipsByType(documentRelationshipType)
                documentUri = PackUriHelper.ResolvePartUri(New Uri("/", UriKind.Relative), relationship.TargetUri)
                documentPart = pptPackage.GetPart(documentUri)

               ' There is only one document part. Get out now.
                Exit For
            Next

           ' Manage namespaces to perform Xml XPath queries.
            Dim nt As New NameTable()
            nsManager = New XmlNamespaceManager(nt)
            nsManager.AddNamespace("p", presentationmlNamespace)
            nsManager.AddNamespace("a", drawingmlNamespace)

            '  Iterate through the slides and extract the title string from each.
            Dim xDoc As New XmlDocument(nt)
            xDoc.Load(documentPart.GetStream())

            Dim sheetNodes As XmlNodeList = xDoc.SelectNodes("//p:sldIdLst/p:sldId", nsManager)

And see how this changes with the new SDK:

Dim presDoc As PresentationDocument = PresentationDocument.Open(fileStream, True)
Dim presPart As PresentationPart = presDoc.PresentationPart
Dim presentation As DocumentFormat.OpenXml.Presentation.Presentation = presPart.Presentation

If (Not (presentation.SlideIdList) Is Nothing) Then

   ' Get the title of each slide in the slide order.

   For Each slideId As SlideId In presentation.SlideIdList.Elements(Of SlideId)()

Just a reminder that you need these add-ons to VS.NET 2008 to work with these projects:

Visual Studio Extensions 1.3 March Preview:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=fb9d4b85-da2a-432e-91fb-d505199c49f6

Open XML Format 2.0 SDK April Preview:

http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&DisplayLang=en

Posted by edhild | 1 Comments

Web Part to view a User’s Claims

As promised in my earlier video demo, here is a web part that I quickly wrote to view the claims of a user when they are authenticating to the SharePoint site using a Security Token Service such as Geneva Server. There are some important sections in the code. First is the check to see if a user is actually has a claims principal:

IClaimsPrincipal icp = null;
IClaimsIdentity claimsIdentity = null;

public ViewClaimsWebPart()
{
     try
     {
          icp = this.Context.User as IClaimsPrincipal;
          claimsIdentity = (IClaimsIdentity)icp.Identity;
     }
     catch
     {
     }
}

protected override void CreateChildControls()
{
       try
       {

           if (claimsIdentity != null)

 

And then just collecting the claims into a dataset:

ClaimsInfo oData = new ClaimsInfo();

foreach (Claim claim in claimsIdentity.Claims)
{
      oData.Claims.AddClaimsRow(claim.ClaimType, claim.Value);
}

Here is a link where you can download the sample. Just be mindful it is a sample.

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/ViewClaimsWP.zip

 

Just one note that this project was built using the new Visual Studio Extensions for WSS 1.3 March CTP. You can get that here if you haven’t tried it out. Much better than previous releases – so give it a try.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=fb9d4b85-da2a-432e-91fb-d505199c49f6

Posted by edhild | 1 Comments

Microsoft Word Documents Opening in the Browser

No this is not a post on anything SharePoint 2010 related.

I get asked this question, quite a bit… It usually goes something like: I have a SharePoint site and when the user clicks on a Word document, the file is shown in the Internet Explorer viewer and not in MS Word. I had to track this down once upon a time with good old SharePoint 2003 so I can usually answer that it is a setting on the desktop that determines whether or not the rich client app will launch. At a recent conference, an attendee pushed for a little more detail and it took me a while to find the KB article. Here it is:

http://support.microsoft.com/kb/q162059/

 

As you can see there is an interactive way to set it through some very hidden settings screens as well as through the registry. The registry approach published via a group policy would be the way to go if a massive amount of users need to have the change made.

Posted by edhild | 0 Comments

Demoing Geneva Beta 2 with MOSS 2007

I put together a little video demo of using Geneva Beta 2 stuff with MOSS 2007. You can get these VMs using the links from the previous post, but it is an awful lot to download and setup. So I thought a video might be appealing.

 

Posted by edhild | 0 Comments
Filed under: ,

Geneva Beta 2 support for MOSS 2007

Since a lot of the customers I serve are government agencies, there has always been a lot of interest in ADFS with SharePoint. But there has always been lots of issues... ADFS being targeted to only federating Active Directory, what about Office client integration, SAML protocol support, etc... Well there is something new on the horizon and last month at Tech Ed there was some interesting announcements that impact the SharePoint world.

 If you haven't been watching the MS beta name list, it was probably an easy miss, but there is a new Windows Server service coming that currently goes by the beta name of Geneva Server. This service brings a Security Token Service to the windows platform building on top some new .NET libraries (the Geneva framework). This STS is an evolution of the ADFS Windows service adding support for more standards, a claims transformation rules engine, support for SQL attribute stores, and much more.

 At Tech Ed, there was an announcement that MOSS 2007 will support Geneva. In fact, there is now a set of hyper-v VMs that will allow you to play with Geneva Beta 2, MOSS 2007, RMS, and Card Space. This also has the SP2 updates for client integration so it is quite a demo when you are done. You can register and get the images here: http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx

There is only 1 error that I found going through the docs. On page 87, the Url should be https://docs.contoso.com. And I would change the demo a bit and only add the RMS protection to the confidential documents.

Posted by edhild | 1 Comments
Filed under:

Building Presentations from SharePoint Content

This is really just a publish of an old demo I have had for some time, but finally got around to putting a video together. This demo is about two different ways to build PowerPoint presentations based off of SharePoint content. The first uses an Office Add-in approach and the second does everything on the server using Open XML. Enjoy!

http://silverlight.services.live.com/55696/Building%20Presentations%20from%20SharePoint%20Content_2/video.wmv

By the way, both solutions are in my book: Pro SharePoint Solution Development

 

Local DC SharePoint Conference Early Registration Is Open

It's that time of year again. A local sharepoint user group that I am involved with is putting on a regional sharepoint conference. The dates are June 26th and 27th. Visit their web site for more information: http://www.sugdc.org/Events/Conferences/tabid/58/Default.aspx

 

Posted by edhild | 1 Comments

Been Reviewing DPM 2007 SP1 Updates

And came across a series of webcasts that I had to share:

 What's new for SharePoint in DPM 2007 SP1: http://edge.technet.com/Media/What-is-new-in-DPM-2007-SP1-for-protecting-SharePoint/

DPM Licensing Changes: http://edge.technet.com/Media/DPM-2007-sp1-Licensing/

Deep Dive on how DPM works: http://edge.technet.com/Media/DPM-2007-SP1-How-does-DPM-really-work/

Posted by edhild | 1 Comments
Filed under:

Code sample for merging SharePoint list data into Word documents

A few posts ago, I put up a silverlight video of a solution from my book on how to merge sharepoint list data into templatized Word documents. See: http://blogs.msdn.com/edhild/archive/2008/10/29/merging-sharepoint-list-data-into-word-documents.aspx

Of course the book has been out for quite a while and this new demo utilized a few new toys since then: Visual Studio 2008, the Word Content Control Toolkit, and the Open XML SDK (all discussed and links are in the prior post). I've been asked a few time for a copy of the new solution so I've posted it here:

http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/MergeSharePointWord/CustomerDocumentsFeature.zip

As usual, the code is for learning purposes only! All the usual caveats about not supporting it, etc all apply.

 

Posted by edhild | 0 Comments

Working on updating my Silverlight 2.0 stuff to RTM

And of course there would have to be an error that I had to work around... I had built several samples with the pre-release stuff of Silverlight 2.0 and just started the processing of updating my environment. So I uninstalled everything in my dev environment related to silverlight and started over. This included Visual Studio 2008 SP1, Expression Blend 2 SP1, as well as the new Silverlight Tools for Visual Studio. After getting everything in the environment, I created a simple Silverlight app along with the default web test application...and my Hello World demo gave me a wonderful parser error saying it couldn't find the Silverlight assembly.

I checked the reference and it was point to the correct dll. If I changed the setting for this to copy local then it would work fine, but i didn't want tons of copies floating around on my dev machine. I used gacutil and installed it into the Global Assembly Cache - same error. Interesting, if I changed the Register directive in the aspx page then so that it specified the strong name of the assembly then it worked. But I didn't want to have to do this for every aspx page or project that I create... So the end state solution I came up with was to add the assembly reference in the framework's root web.config file. This is located at: C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG. It is called web.config. The additional line I added was an assembly directive:
<add assembly="System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

 I still haven't gotten to my previous projects, but at least Hello World works now :)

Posted by edhild | 2 Comments

Webcast on the Podcasting Kit for SharePoint

Webcast Alert! The Podcasting Kit For SharePoint

You do NOT want to miss this week’s SharePoint Weekly Webcast Series presentation. I have lined up the folks from Microsoft's Academy Team who brought you the Podcasting Kit for SharePoint and it is sure to be a great, informative session. Please be sure to pass along this invite to your colleagues!! The meeting information for this week’s session is below as well as a download of the calendar invite in iCal format. The session will be this Thursday, November 13th from 12 noon eastern time until 1pm est. See you Thursday!!

Join us this week for a special treat on the SharePoint Weekly Webcast Series! In today’s corporate environment the needs for tacit knowledge capture and re-use, for training generated by all levels of an organization, are ever increasing. Couple that with an increasingly mobile workforce and the challenges of meeting these needs may seem insurmountable. However, if you have an investment in Microsoft office SharePoint Server 2007 then you also own the rights to an exciting new solution for SharePoint designed to meet these needs, The Podcasting Kit for SharePoint. This week’s presentation will be by the folks who brought us this fantastic solution. Be sure to join us to learn more about PKS as well as to ask those burning questions you may have about mobile training in the corporate space.

Mike Gannotti has invited you to attend an online meeting using Live Meeting.
Join the meeting.
Audio Information
Computer Audio
To use computer audio, you need speakers and microphone, or a headset.
Telephone conferencing
Choose one of the following:

· Start Live Meeting client, and then in Voice & Video pane under Join Audio options, click Call Me. The conferencing service will call you at the number you specify. (Recommended)

· Use the information below to connect:
Toll-free: +1 (866) 500-6738
Participant code: 121607

First Time Users:
To save time before the meeting, check your system to make sure it is ready to use Microsoft Office Live Meeting.
Troubleshooting
Unable to join the meeting? Follow these steps:

1. Copy this address and paste it into your web browser:
https://www.livemeeting.com/cc/microsoft/join

2. Copy and paste the required information:
Meeting ID: 2KN7GD
Entry Code: t}k9d,(>N
Location: https://www.livemeeting.com/cc/microsoft

If you still cannot enter the meeting, contact support

Notice
Microsoft Office Live Meeting can be used to record meetings. By participating in this meeting, you agree that your communications may be monitored or recorded at any time during the meeting.
Posted by edhild | 1 Comments

PDC Video: SharePoint Online - Extending Your Service

This is a pretty good video on some of the developer options for customizing SharePoint Online. If you are not familiar with SharePoint Online, it is SharePoint hosted by Microsoft for use by small organizations or companies as well as large ones. As this video explains, there are two different flavors Standard and Dedicated. Development in the Standard offering is a bit more challenging since the current offering does not allow you to deploy code to the multi-tenant infrastructure. I liked the content of this demonstation, but the presenter could have been a bit more prepared.

You can try out SharePoint Online at http://www.microsoft.com/online

And the video I am talking about can be seen here: http://channel9.msdn.com/pdc2008/BB53/

 

Posted by edhild | 2 Comments
More Posts Next page »
 
Page view tracker