Welcome to MSDN Blogs Sign in | Join | Help

Workaround for the SharePoint Asset Inventory Tool ';' error

I was preparing for the upcoming conference and wanted to demo some of the new tools coming for SharePoint. Often I have heard the customer's IT department talk about finding rogue SharePoint installations and getting better metrics on how these servers were being used, so I thought I would spend some time with the SharePoint Asset Inventory Tool. This tool is currently in Beta, but is publicly available through Microsoft's Connect site. It is basically a scanning solution that looks for SharePoint servers and dumps metrics about them into a SQL store with some nice SQL Reports. I installed the tool, only to get an error half-way through the scan. The error was something about a malformed SQL statement near a ';' and an ELSE statement. Unfortunately, I had nothing in the repository to even show as part of the demo. So the hunt began...

Looking through log files, I found the offending stored procedure to be dbo.SP_INSUPD_DEVICES_PORT_NUMBER. This proc was in the SATAssets database on my SQL server. If you modify this proc, you will notice that it builds a dynamic SQL string. In this string, one of the variables is not covered by two single quptes ''. So ...

IF('' + PORT_NUMBER + '' IS NOT NULL)

notice that I added the 2 ''. This proc and the SATAssets DB seem to be recreated each time you run a new scan after the initialization screen. Start the wizard, wait for the initialize prompt to go away, modify the proc, and then it works.

I also am a big fan of host headers in my dev environments. I noticed I also had to make sure that I had a web application that resolved the the server name on port 80 (or one of the ports it was looking for) to get my results.

I've also posted this workaround in the forums so hopefully you'll have some luck before the next drop happens on the Connect beta site.

Posted by edhild | 1 Comments
Filed under: ,

Just Released: WSS 3.0 Tools for Visual Studio 2008

The wait is over... change your dev environment!

http://www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&displaylang=en

 From the Download site:

Version 1.2 of the Visual Studio 2008 Extensions for Windows SharePoint Services contains the following tools to aid developers in building SharePoint applications:

Visual Studio 2008 Project Templates

  • Web Part
  • Team Site Definition
  • Blank Site Definition
  • List Definition
  • Empty SharePoint Project


Visual Studio 2008 Item Templates (items that can be added into an existing project)

  • Web Part
  • Custom Field
  • List Definition (with optional Event Receiver)
  • Content Type (with optional Event Receiver
  • Module
  • List Instance
  • List Event Handler
  • Template


SharePoint Solution Generator

  • This stand-alone program generates a Site Definition project from an existing SharePoint site. The program enables developers to use the browser and Microsoft Office SharePoint Designer to customize the content of their sites before creating code by using Visual Studio.

 

Posted by edhild | 1 Comments

Book Review: Beginning Web Development, Silverlight, and ASP.NET AJAX: From Novice to Professional

Beginning Web Development, Silverlight, and ASP.NET AJAX: From Novice to Professional by Laurence Moroney

This book has a bit of everything leaving everyone from new .NET web developers to experienced ones coming away with a good experience. This book is almost like having 2 books in one. The first half is an introduction to ASP.NET. It covers the foundation, basics,etc and includes examples of some common coding scenarios. The second half of the book is a real treat for experienced developers. Especially ones that have been coding in ASP.NET for some time, but have been on projects that have kept them locked in the .NET 2.0 framework. In the second half of the book, you get a whirlwind tour of all the new advances that .NET 3.0 and .NET 3.5 bring. For me, this was a great read since I have been more SharePoint focused lately. But now since MOSS SP1 supports AJAX, Silverlight, etc it was time for me to get up to speed. You will chapters on WCF, WF, WPF, AJAX, and Silverlight. My favorites were WPF which made me take some serious hands on time with Blend and the several AJAX chapters. What I liked about the AJAX chapters is that it started bare bones and built up to include the ASP.NET extensions and calls to services.

So even if you are a MOSS dev... you need to start paying attention to the advances in ASP.NET.

Posted by edhild | 0 Comments
Filed under:

I actually got the Silverlight BluePrint for SharePoint samples to work

And from reading the forums, blog comments, etc it seems like others are having a tough time. After going through the motions myself, I can see why. The first thing to realize is that the setup instructions in the Silverlight BluePrint tools assume that you have already done a lot to your environment in preparation of the Silverlight controls. I spent a good deal of time this week digging through it and since I achieved success, I thought I would write down my steps so others can follow.

Just to understand my environment, I am doing all of these steps in a dev environment which is virtualized (I recommend Undo disks as you will be making a lot of changes). I have a MOSS server with VS.NET 2005 on it for the WSS extensions and a separate VS.NET 2008 dev vm. I think this makes the problem more interesting as too often I see directions about using VS.NET 2008 on the MOSS server which I think a lot of developers have not moved to since they are waiting for the WSS Extensions. I was also only interested in Silverlight 2.0 Beta 1 samples so I didn't do anything with 1.0.

Here are the steps:

1. Make sure you are working in a MOSS SP1 environment.

2. Install the .NET Framework 3.5 on the MOSS server. You don't need to change anything in IIS in terms of the web applications since it will still use the .NET 2.0 runtime.

3. You will need to make a lot of changes to the web.config file of the web application that you plan on adding Silverlight support for. Patrick has a sample web.config file and a screencast that walks you through making the edits manually. I went an interesting route and used a new SharePoint feature on codeplex which advertises to do this for you. The codeplex project is called SharePoint 2007 Features. This is a package of some useful additions. This one in particular is called  3.5 Config feature (note that it is spelled wrong on the site). You can find more info and download it here: http://www.codeplex.com/features. I downloaded the solution file with just this feature. Used STSADM to install it and then Central Administration to deploy it. The STSADM command you will need is: STSADM -o addsolution -filemame [name of wsp]. You then need to go into Central Admin to deploy it. Once deployed, this will add a new feature at the web application scope. Here is a screenshot of my web application that has it turned on:

SharePoint 3.5 Config Feature

Now I did have one problem with this approach. For some reason, this feature added a node in the web.config httphandlers section which removed all verbs for the .asmx web services. Why I have no idea, but it created a problem. I noticed this since the media viewer Silverlight control uses lists.asmx to get the pictures and videos. You will need to find this entry and remove it. I also restarted IIS after the changes were made.

4. You will need to install the Silverlight 2.0 SDK on the MOSS server: http://www.microsoft.com/downloads/details.aspx?FamilyId=4E03409A-77F3-413F-B108-1243C243C4FE&displaylang=en. After you install it, you will need to copy the System.Web.Silverlight.dll into the GAC. That file is located at C:\Program Files\Microsoft SDKs\Silverlight\v2.0]Libraries\Server.

5. Install the Silverlight 2.0 client. This assumes you are going to view the page on the MOSS server: http://www.microsoft.com/silverlight/resources/install.aspx?v=2.0.

6. In IIS, you will need to add a MIME type for Silverlight's .xap packages. You can do this at the IIS web site level or for the whole server. I did mine on the web site level. The MIME Types are accessible HTTP Headers tab of the properties dialog of the web site. You need to add: .xap with application/x-silverlight-2-b1

7. Install the Silverlight Blueprint Samples you want. I only have tested the Media Viewer and the Slider field control. Follow the instructions within those packages. You can find out more about them here: http://www.ssblueprints.net/sharepoint/

8. As it turns out, there is a problem with the .xap files that are in the client install setups on the Silverlight Blueprint site. You will need to recompile them and replace the .xap files that the installs placed in the ClientBin folder of your web application. You will need to have VS/NET 2008 to do this. I used my separate VS.NET 2008 environment, got the source code downloads and went to work. Note that in this environment you will still need the Silverlight client installed, the SDK, and a this Silverlight Tools kit for VS.NET 2008 (http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en) installed first. When you recompile, make sure you are doing the Silverlight project, not the web part. This will recreate new .xap files that you can copy into the ClientBin folder of your web application. To make it easier for you to play, here are some links to the recompiled mediaviewer and slider projects.

9. Then begin to place the Silverlight customizations onto your sites. This is documented in the blueprint materials. Adding a web part for the media viewer or creating a survey with the slider, etc...

You are done. Here is a screenshot of it working for me:

SharePoint Silverlight Media Viewer

Posted by edhild | 0 Comments

Summer Regional SharePoint Conference announced

The SharePoint User Group of DC/VA is hosting their second conference. I will be delivering the keynote at this conference as well as repeating my SharePoint Conference 2008 session on Enforcing Governance By Provisioning Sites with Workflow. The conference is confirmed for Friday and Saturday, June 27-28, 2008 at the  Holiday Inn  , Washington Dulles   [MAP]  in Sterling, Virginia. The following site has all the details: http://www.sugdc.org/index_conf1.cfm

Three Tracks...

Presentations will loosely be categorized under 3 headlines and aligned to roles listed.
1. SP Development and Design [SP Developers],
2. SP Administration [New and Experienced SP Administrators], and
3. SP Management and Governance [Business Unit Managers, Users, and SP Project Managers].

Confirmed Speakers...

In no particular order:
-- Ed Hild, Microsoft (Keynote), [ CV ] 
-- Vanessa L. Williams (Plenary Keynote)
-- Gary Blatt, SharePoint Resources
-- Dale C Clarke, MBCS, Clarke Group, LLC [ CV ] 
-- Geetha Edala, PHE
-- Sherry Grayson, Bechtel Corporation [ CV ] 
-- Kevin Fox, Trinity Consulting [ CV ] 
-- Sahil Malik, MVP, Author [ CV ] 
-- John Stover, MVP, Author [ CV ] 
-- Gary Vaughan, WINS

Posted by edhild | 0 Comments

Book Review: Dreaming in Code by Scott Rosenberg

I came across a really good read while at the book store. "Dreaming in Code" is written by Scott Rosenberg who is cofounder of Salon.com and not a programmer. This book takes you through his observations and insight into the world of software creation. He picks a team and their solution Chandler and follows them for several years. Out of this are very keen observations on project management (or lack there of), the open source world, and just how hard it is to create the vision that the team set forth on. This is an easy read and isn't a book for programmers, but anyone who has tried to write software will find themsleves chuckling and relating to some of the problems the Chandler team run into. My only criticism is that it is a shame Scott couldn't wait longer to see Chandler to any type of real conclusion. But as he puts it he had to write the book sometime and he definitly had enough material! So if you are looking for something besides the technical books you are taking on your plane trip, pick this up. It will be hard to put it down. 
Posted by edhild | 0 Comments
Filed under:

My fan club in Norway

Well not really...

But Bjørn in Norway has taken some of my content from my Apress book and created a few demonstrations. Nothing like hearing you name in the middle of a bunch of Norwegian. Anyway, thanks for the credit. Keep up the good work!

http://www.nittitre.no/Pages/Demo/OfficeGenerator/Office%20Generator.html

Posted by edhild | 0 Comments

System Center Capacity Planning Tool for SharePoint

This week, one of our infrastructure architects asked me to create a MOSS capacity planning model for one of his customers. I was aware that we had released a System Center Capacity Planning Tool add-in for MOSS, but was completely surprised to find that you can download this tool and the add-in completely free from Microsoft. It does not require a System Center deployment. I ran everything on my laptop. If you haven't seen it, this tool is quite good. It allows you to specify things like: your central and branch offices, users with usage profiles, WAN details, your supported server configurations, and the standard types of disks you use for machines. After you complete the wizard, it builds the model for you. The tool also allows you to run simulations against the model to look for potential bottlenecks, CPU spikes, full disks, WAN utilization, etc. And it will even output nice Visio diagrams for you. So much for telling your boss you slaved over them. One area I was suprised to see missing, was the ability to specify how much content outside of MOSS I would be indexing. For exmple, if I was going to index my 2 TB of file server content, that would have a big impact on disks in the environment. That option may be there, but I haen't found it yet. You can get these tools at the following Urls. Again, you need both the Capacity Planning Tool, and then the SharePoint specific modeler.
Posted by edhild | 0 Comments

Playing with Popfly Explorer in VS.NET 2008

I continued today to play around with more Popfly goodness. My favorite part is that there is a new Popfly Explorer add-in for VS.NET 2008. This add-in integrates the Popfly block development experience into Visual Studio. I am a big fan. Right from the beginning, you can see from this pic that you get to create Popfly blocks from the New Web Site interface:

 

And then once the project is open, you get a schema with the XML block description file. As well as intellisense when writing the javascript including the AJAX and Popfly environment methods. This explorer syncs your project with the Popfly service. Even cooler, just clicking Start Debugging publishes the project to Popfly, launches the browser, and gives you a test mashup with your block in it. Click Preview and it will run including support for VS.NET breakpoints. Here is a pic of the explorer:

 

You can get the Popfly explorer by downloading it from the Popfly service site. Just click Create Stuff -> Block. You will see a link in the tutorial window for the Beta.

Last but not least, I discovered in the Create Block functionality of the Popfly service a new link to "Generate Block from WSDL". I played with a few services and sure enough it built a functioning block including formatting the SOAP message.

Posted by edhild | 2 Comments

Book Review: Foundations of Popfly. Rapid Mashup Development

Foundations of Popfly: Rapid Mashup Development by Eric Driffin is a must read for SharePoint developers wanting to stay ahead of the curve. Though the author doesn't make a direct connection to SharePoint, it is obvious that this mashup development environment will have an impact on the SharePoint world (I should point out that this conclusion is something I've reached on my own and not a company statement or roadmap). For those that have not heard the name, Popfly is a Mashup development tool that makes mashup creation something almost anyone can do. Mashups are basically ways of taking various streams of data and presenting them in the same presentation or visualization. Very cool examples can be built with little code and its web based designer is a tool that business users will feel very comfortable with. Of course there is still some goodness for developers as they can extend the platform by creating their own blocks. This book is an easy read with lots of pictures and samples to get you through the basics. Eric includes a bit of history of how mashups have come about but everything else is hands-on examples. There is even an example of creating your own block in Visual Studio. You won't really need to write any code until the last few chapters of the book and if you are approaching this as a developer, be sure to brush up on those javascript skills. Here is an an amazon.com link

 

Posted by edhild | 0 Comments
Filed under:

So I ran into an interesting problem in my MOSS development environment

It happened last week and I am not sure of the exact cause... I have a few demonstrations that provision site collections and I am constantly deleting and recreating them as I show the solutions to customers. I should also point out that I recently was updating everything in the environment... WSS SP1, MOSS SP1, the new WSS Extensions for VS.NET etc. Bottom line, I had a site collection that would show up in Central Administration that wasn't really there. I tried to navigate to it and got a 404 message. Interestingly, I could select it in the "Delete Site Collection" tool in Central Administration, but none of the details would show up on the right hand side of the selection dialog. Clicking OK so that I could delete the site, simply did nothing. For some people, such an oddity in a dev environment isn't that big a deal. However, I was intrigued and I strongly resisted the urge just to go to the database and delete the record myself.

My first approach to a solution, involved trying the database repair operations of STSADM. These are detailed here. http://technet.microsoft.com/en-us/library/cc263282.aspx. The problem was that this approach didn't report any orphaned objects. So no help.

So I did solve the problem and as I told others the solution, they told me I had to definitly include a blog entry about it. My solution was to drop the content database in Central Administration. I remembered that as part of a content database attach process, SharePoint would examine the db to see what site collections existed. So after detaching and then re-attaching, sure enough the site showed up in Central Admin and I could delete the site collection.

I realize it's not mind blowing... but just in case anyone has had a similar situation creep up on them... 

Posted by edhild | 2 Comments

My SharePoint Conference Wrap Up

All went well with my presentation on "Enforcing Governance by Provisioning Sites with Workflow". The feedback was positive and thank you all who attended. I saw a lot of good things at the conference which will give me a lot to blog about as I investigate a bit deeper. My favorite demonstration was actually part of the Day 1 keynote. As part of that keynote, Richard Riley did an awesome presentation of a search solution running in MOSS that used an interface built in Silverlight with a FAST index on the back-end. You can watch video highlights of the keynote on the conference site, but I haven't checked to see if that made the editting cut. http://www.mssharepointconference.com/pages/default.aspx

Two big announcements/emphasis points:

Silverlight Blueprint for SharePoint.
http://www.ssblueprints.net/sharepoint/.

This is basically a bunch of reference projects about how to combine the power of rich internet applications (Silverlight) into a SharePoint environment. There is a lot of variety here in the projects. My favorite was a slider Silverlight control being used as a custom field type in MOSS.

New Solution Accelerators and Toolkits

SharePoint cross-site configurator: http://www.codeplex.com/SPConfigurator/

SharePoint monitoring toolkit: http://www.microsoft.com/downloads/details.aspx?familyid=E4600FD9-F53D-4DED-88BF-6BB1932794F9&displaylang=en

SharePoint asset inventory toolkit: http://technet.microsoft.com/en-us/library/cc295797.aspx

SharePoint capacity planning toolkit: http://www.microsoft.com/downloads/details.aspx?FamilyID=dbee0227-d4f7-48f8-85f0-e71493b2fd87&DisplayLang=en/P>

Posted by edhild | 0 Comments

Site Provisioning Workflow with Custom SharePoint Designer Activity

I've been working on my presentation and demos for the upcoming SharePoint Conference in Seattle. If you haven't heard of the conference, you are one of the few. It is sold out and there is even a wait list for Microsoft employees to get in. My session is entitled "Enforce Governance by Provisioning Sites with Workflows". It is in the last timeslot on Monday. Stop by and I promise you will see demos that you haven't seen anywhere else. And I should have a few books to give away as well.

For one of my examples, I wanted to create a SharePoint Designer workflow activity that could be used by a site collection owner to control how subsites within their collection are provisioning. Creating a custom activity isn't that hard, but there were a few twists that I had to uncover to get this vision to work. If you have never tried one, there is a Workflow Activity Library project in VS.NET 2005.

This is by no means a complete walkthrough (there is a nice one on MSDN link at the end of this post), but I wanted to highlight some of the major points.

Instead of declaring private fields for your properties use the DependencyProperty class like so:

public static DependencyProperty __ContextProperty = 
       System.Workflow.ComponentModel.DependencyProperty.Register
       ("__Context", typeof(WorkflowContext), typeof
       (SubSiteProvisionActivity));
public static DependencyProperty SiteUrlProperty =
       DependencyProperty.Register("SiteUrl", typeof(string), typeof
       (SubSiteProvisionActivity));
public static DependencyProperty SiteTitleProperty =
       DependencyProperty.Register("SiteTitle", typeof(string), typeof
       (SubSiteProvisionActivity));
       

This is going to allow the user to specify the site title, url, etc. The first one in particular is special. It is going to allow our activity to be aware of the context of the site it is running within. With the dependencies setup, you can create your properties with get/set like so:

[Category("Site Provision Actions"), Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string SiteUrl
{
  get
  {
    return ((string)
           (base.GetValue(SubSiteProvisionActivity.SiteUrlProperty)));
  }
  set
  {
    base.SetValue(SubSiteProvisionActivity.SiteUrlProperty, value);
  }
}

And lastly, override the Execute method to do the work. You will need to make sure this assembly is signed, deployed to the GAC, and registered in the web.config file of your web application. You'll also need an .ACTIONS file that includes the XML markup that describes your activity for SPD.  Here is mine:

<WorkflowInfo>
  <Actions Sequential="then" Parallel="and">
    <Action Name="Create SubSite"
            ClassName="SiteProvisionActivities.SubSiteProvisionActivity"
            Assembly="SiteProvisionActivities, Version=1.0.0.0,
            Culture=neutral, PublicKeyToken=45a2811e9ad438d2"
            AppliesTo="all" Category="Site Provision Actions">
<RuleDesigner Sentence="Create site named %1 at the URL %2 described as %3. Use template %4 with locale %5. %6 use unique Permissions. %7 convert if the site exists. Add to parent's navigation %8 group.">
 <FieldBind Field="SiteTitle" DesignerType="TextArea" Id="1"/>
 <FieldBind Field="SiteUrl" DesignerType="TextArea" Id="2"/>
 <FieldBind Field="SiteDescription" DesignerType="TextArea" Id="3"/>
 <FieldBind Field="SiteTemplate" DesignerType="TextArea" Id="4"/>
 <FieldBind Field="LocaleID" DesignerType="TextArea" Id="5"/>
 <FieldBind Field="UseUniquePermissions" DesignerType="Dropdown" Text="choose"  Id="6">
    <Option Name="Do" Value="True"/>
    <Option Name="Do not" Value="False"/>
 </FieldBind>
 <FieldBind Field="ConvertIfThere" DesignerType="Dropdown" Text="choose"  Id="7">
    <Option Name="Do" Value="True"/>
    <Option Name="Do not" Value="False"/>
  </FieldBind>
  <FieldBind Field="IncludeInParentWebNav" DesignerType="TextArea" Id="8"/>
</RuleDesigner>
      <Parameters>
<Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In"/>
<Parameter Name="SiteTitle" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="SiteUrl" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="SiteDescription" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="SiteTemplate" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="LocaleID" Type="System.UInt32, mscorlib" Direction="In" InitialValue="1033" />
<Parameter Name="UseUniquePermissions" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="ConvertIfThere" Type="System.String, mscorlib" Direction="In" />
<Parameter Name="IncludeInParentWebNav" Type="System.String, mscorlib" Direction="In" />
</Parameters>
</Action>
  </Actions>
</WorkflowInfo>

There is a lot here that is too much detail for a blog post. Here are some links
The MSDN article: http://msdn2.microsoft.com/en-us/library/bb629922.aspx
My complete code sample: http://cid-601cfa765e7a6fd3.skydrive.live.com/self.aspx/Public/SiteProvisionActivities.zip

Please Please Please take this code download as a sample only. I made sure it worked well enough for the demonstration. You may definitly want to modify it, add more error handling, and even possibly include RunWithElevatedPrivileges. Finally a nice pic of the end result:

Posted by edhild | 1 Comments

How To: Add security trimming info to custom actions in SharePoint

I have been asked the same question a few times in the last few weeks about custom actions in SharePoint and how to hide or show them depending on the user's identity. This information is spelled out in the SDK but I haven't seen much of it written in blogs, etc so I just thought I would post a quick summary.

From the SDK, you can find that the schema for defining a custom action is as follows:

<CustomAction
  ContentTypeId = "Text"
  ControlAssembly = "Text"
  ControlClass = "Text"
  ControlSrc = "Text"
  Description = "Text"
  GroupId = "Text"
  Id = "Text"
  ImageUrl = "Text"
  Location = "Text"
  RegistrationId = "Text"
  RegistrationType = "Text"
  RequireSiteAdministrator = "TRUE" | "FALSE"
  Rights = "Text"
  Sequence = "Integer"
  ShowInLists = "TRUE" | "FALSE"
  ShowInReadOnlyContentTypes = "TRUE" | "FALSE"
  ShowInSealedContentTypes = "TRUE" | "FALSE"
  Title = "Text">
</CustomAction>
The key to security trimming your custom action is the Rights attribute. This attribute allows you to specify SharePoint permissions that the user must have for the action to be visible. This can be a comma delimited list. For example:
"ViewListItems,ManageAlerts" 
When more than one value is specified, the set of rights are treated with an AND. This means the user must have all of the specified rights for it to be visible. Here is a list of the valid Microsoft.SharePoint.SPBasePermissions you could use:
http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx
Posted by edhild | 1 Comments
Filed under:

Video: Building Presentations from SharePoint Site Content

First sorry for the long time away from posting. It was quite a busy fourth quarter. But welcome to 2008!

I put together a quick video blog of two demonstrations I show about how to automate the creation of PowerPoint presentations based on SharePoint site content. The first part of the demo shows how a Visual Studio Tools for Office add-in for PowerPoint can call SharePoint's web services to retrieve content and build slides. The second approach shows how this can be done completely server side by manipulating the new Open XML formatted files. Both demos usually get people excited; I hope you enjoy them. The code for these is available on Apress' web site since they are from my book: Pro SharePoint Solution Development. This book is mentioned a lot in the blog so it should be easy to find more info if you are interested. Sorry for the background noise in the video. The HVAC system here is running full strength on this cold day.

Also, I will be presenting at the upcoming SharePoint conference in Seattle in March. My topic will be "Enforce Governance by Provisioning Sites through Workflows" or something like that. Stop by and say hi. I may have a few books to hand out. http://www.mssharepointconference.com/Pages/default.aspx

 Just an update: Ian at wssdemo.com has hosted this video on a streaming server which has much better quality: http://xpstream.winisp.net/imorrish/generate_ppt_sharepoint.wmv


Video: Building Presentations from SharePoint Content
More Posts Next page »
 
Page view tracker