Welcome to MSDN Blogs Sign in | Join | Help

I've invented a new acronym (well Microsoft TLA, anyways...)

CGF - Computer Grog Factor.

 This is the amount of time it takes from when you take your computer out of sleep mode until it becomes usable. 

Right now this is top of mind because the CGF on my laptop has been getting a lot worse.  It now takes 15 minutes after I come out of sleep mode for me to be able to use Outlook.  Now, to be fair, I am running Server 2008 with SQL Server 2008, MOSS, IIS, etc running so there is a lot of stuff that has to spin back up.

Still, I would like to have access to my computer a lot faster.  You constantly see people walking around with their laptops open.  The reason they do this is because they dont want the expense of closing their laptop, having it go to sleep, and then reopening it again and waiting for their computer to awake and start listening for instructions.

What's your CGF?

 

The PDC Session that we did on Commerce Server "Mojave" is now available online.

You can access it here: http://channel9.msdn.com/pdc2008/PC59/

Tom does a great demo where he constructs a working E-Commerce site in about 5 minutes using the out of the box Commerce Server "Mojave" web parts.

It really shows how powerful this new release really is.

 

See our e-commerce blog post for more details:

http://blogs.msdn.com/commerce/default.aspx

 

I am going to be at the Professional Developers Conference October 25th - 29th.

We are doing the following Session:

PC59 - Commerce Server "Mojave": Overview
Session Day/Time: 10/27/2008 15:30-16:45
Room: 408A

I will be copresenting with Tom Schultz.

Stop by and see us, if you are there.

 

Ran into this problem and searched high and low for a solution but never found another post detailing the solution.

The issue is that, according to the documentation for GetListItem, located here:

http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx

Paging should be  done like this:

The GetListItems method supports server-side paging. The XML data returned by this method includes a ListItemCollectionPositionNext attribute inside the rs:Data element that contains the information to support paging. This string contains data for the fields in the sort and for other items needed for paging. You should consider this string internal and not to be modified; modifying it can produce unexpected results. The following example shows the form of this return value when paging is supported.

Xml
<rs:Data ListItemCollectionPositionNext=" 
Paged=TRUE&p_ID=100&View=
      %7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
      101" Count=1000 >
   <z:row ows_FirstName="Nancy" ows_LastName="Name" ….. />
   ...
</rs:Data>

To get the next page of data, the queryOption parameter is used, as shown in the following example.

Xml
<QueryOptions>
  <Paging ListItemCollectionPositionNext=" 
    Paged=TRUE&p_ID=100&View=
    %7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
   101" />
</QueryOptions>
 
The issue with the above documentation is that when you try to load the above into an XmlElement, then it will fail because the attribute has invalid characters in it.  You can try escaping those characters, however then Sharepoint will not recognize it as a valid pagination token and you wont get proper pagination.
 
 

The trick is to build the XML string with that information blank like this:

 

<QueryOptions>

  <Paging ListItemCollectionPositionNext=”” />

</QueryOptions>

 

Then load it into the XmlElement using the InnerXML, as before.

 

optionsQuery.InnerXml = queryOptions;

 

The go directly to the attributes innertext and set the value:

optionsQuery.ChildNodes[0].Attributes["ListItemCollectionPositionNext"].InnerText = "Paged=TRUE&p_ID=100&View=
    %7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=101";

 

 

We should move away, and push our clients to move away, from solutions where business knowledge is encoded into programming languages to solutions where business knowledge in encoded into business models and solutions drive from the business model.  The majority of the costs of standing up a site and maintaining a site occurs in that layer of code that, essentially, replicates business knowledge derived from the analysis phase.  When the business model changes the code has to change.  This represents risk to the business.  When technology changes, sometimes the entire code base has to change.

Model driven solutions better survive technology changes because the business knowledge is encapsulated within rigid models rather than loosely enforced coding standards that change with every software release and every pattern fad.

Model driven solutions better convert into SaaS solutions because they minimize the amount of C# code which may be disallowed or discouraged on shared Saas platforms. 

 

Welcome to my blog!

 My name is Kerry Havas and I am a Product Architect working for Microsoft in the Microsoft Commerce Server Product Unit.

I'll be writing about trends in Commerce applications and about Commerce Server 2007 and our upcoming product release.

I will also be blogging examples and tips and tricks for getting the most out of your e-commerce implementation.

 

Kerry Havas

 

 
Page view tracker