newtelligence poweredRSS 2.0
# Friday, December 04, 2009

Yesterday I gave my first public group presentation to the Madison .Net Users Group on SharePoint 2010. Even though I was working on the demos up until the time I left my house for the meeting, I still managed to do ok. The speaker evaluation ratings were mostly 4 or 5’s, but I would have had to been pretty bad to get anything lower.

I did get one comment, and that was that I let my voice trail off, and I remember doing this. I tend to think out loud, so that’s probably what this was. However, for a presentation, talking to one’s self looks kind of goofy, and would be even worse if I was mic’d up. So I need to work on this and make sure that I am either speaking to the group, or not at all.

What Worked

  • Writing out everything I wanted to say, word for word on the notes, which I know that you are not supposed to do (read from notes). This ended up working because I was able to recall most of what I wrote down without looking at the notes. I think that I will continue to try to write out what I want to say as a one more way of practicing for the presentation.
  • Overall length of the presentation was good
  • Demo to Slide mix was ok for this topic even though it was slide heavy. There was a lot of information to convey, and I felt that the audience was mostly new to SharePoint that they would appreciate a solid foundation
  • Demo’s worked out pretty well. I may want to consider adding more code comments to help explain things, as well as help me remember talking points

What Didn’t Work (or what do I need to do next time)

  • Number one on my list is don’t procrastinate. I need to allow myself enough time to run thru the presentation at least once.
  • Create some index cards that contain key information that I want to make sure I cover. This would have been useful on a couple of the slides were there was a lot of information to cover.
  • Make sure if you need to read something, that it’s readable in low light situations
  • Don’t re-use step by step hands on lab notes with pictures. Demo notes should be on a single page, unless you need to copy code.

Client Object Model

There were a couple of questions on the Client Object model, and I wasn’t able to answer them as well as I wanted to. So I did a little research and came up with a key points.

The Client Object Model provides a subset of the server object model functionally, which is exposed via a WCF web service. This is intended as  a replacement for custom wrappers around the asmx web services that have been available in the past. The client object model is unified across JaveScript, .Net CLR, and the SilverLight CRL, so if you learn it for one platform, you can re-use that knowledge on the other supported platforms.

The object model was designed in a way to encourage efficient network utilization thru the use of batching. As a developer, you add a series of commands to the context, invoke the cotnext’s ExecuteQuery method, and receive a set of batch results back from the service in JSON. Most of the details are handled for you by the object model, so it’s not like you have to worry about parsing JSON.

Links

Here are all of the links I used for my demo. And as an added bonus, I have included links to all of the SharePoint 2010 videos from PDC 2009. I only wish I would have had the time to watch them all before giving my presentation.

My Power Point Presentation

SharePoint Foundation (Server) 2010

Extra Stuff needed to Install SharePoint 2010 Beta

SharePoint 2007 – WSS 3.0 (Some of these resources still apply to 2010)

SharePoint PDC Videos

Friday, December 04, 2009 4:16:30 AM (GMT Standard Time, UTC+00:00)  #    Comments [1] -
SharePoint
# Wednesday, December 02, 2009

Tomorrow night I am presenting at the Madison .Net Users group. Tonight, I am pulling my hair out, trying to get my demos to work. How far am I? Well I’m on my second demo, but the first one involves 0 programming, so I don’t think that counts.

What is was getting in my way, was a nasty System.Data.Services.Client.DataServiceRequestException, complaining of an invalid DateTime value…somewhere.

System.Data.Services.Client.DataServiceRequestException was unhandled
  Message=An error occurred while processing this request.
  Source=Microsoft.Data.Services.Client
  StackTrace:
       at System.Data.Services.Client.DataServiceContext.SaveResult.HandleBatchResponse()
       at System.Data.Services.Client.DataServiceContext.SaveResult.EndRequest()
       at System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions options)
       at System.Data.Services.Client.DataServiceContext.SaveChanges()
       at Demo1.Program.AddEmployees() in C:\_Files\Projects\Demo1\Demo1Completed\Demo1Completed\Program.cs:line 48
       at Demo1.Program.Main(String[] args) in C:\_Files\Projects\Demo1\Demo1Completed\Demo1Completed\Program.cs:line 19
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Data.Services.Client.DataServiceClientException
       Message=<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="
http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="en-US">Error reading syndication item: 'Error in line 5 position 14. An error was encountered when parsing a DateTime value in the XML.'.</message>
</error>
       Source=Microsoft.Data.Services.Client
       StatusCode=400
       StackTrace:
            at System.Data.Services.Client.DataServiceContext.SaveResult.<HandleBatchResponse>d__20.MoveNext()
       InnerException:

After installing Fiddler so I could analyze the post and it’s subsequent response, I tried setting the Modified and Created properties on the Entity to DateTime.Now to give them an actual value. The Modified and Created properties are on all SharePoint list objects. I hadn’t bothered setting them, because they were of type DateTime? and I assumed that SharePoint would set them. As a matter of fact, I watched a PDC session on this very topic and blogged about it. In the demo, the only thing Pablo set was the name and the job title and posted it via CURL, and it worked.

I tried setting the values to null, but I got the same error (and why wouldn’t I). I ended up setting the values to DateTime.Min value. This allows the POST operation to succeed, and the Created and Modified values are correctly set by SharePoint.

Other notes of interest:

  • Even though I installed VS 2010 with .Net 4.0, I still had to install the Ado.Net Data services 1.5 CTP2 for SharePoint 2010 to expose data via ListData.svc
  • When building an application in VS 2010 with the .Net 4.0, System.Data.Services.Client is added for you when you add a Service Reference. You do not need to add a reference to Microsoft.Data.Services.Client in the CTP 2.
  • Be sure to check out the different SaveChangesOptions available when you call SaveChanges for your service. The batch option really speeds things up, but if one update fails, they all fail.
Wednesday, December 02, 2009 4:36:17 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Data Access | Programming | SharePoint
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Copyright 2010
Adam Salvo
Sign In
Statistics
Total Posts: 234
This Year: 13
This Month: 1
This Week: 1
Comments: 34
Themes
Pick a theme:
All Content 2010, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)