Want to edit a page in the Beta2? Well if there is a workflow running....  I guess there is a tag that is supposed to be closed

 

This page is currently locked for editing because a workflow is running which will stop if the page is changed. Do you want to continue ?

  • Loading...', true);if (document.forms['aspnetForm']['MSOLayout_InDesignMode'] != null) document.forms['aspnetForm']['MSOLayout_InDesignMode'].value = 1;if (document.forms['aspnetForm']['MSOAuthoringConsole_FormContext'] != null) document.forms['aspnetForm']['MSOAuthoringConsole_FormContext'].value = 1;if (document.forms['aspnetForm']['MSOSPWebPartManager_DisplayModeName'] != null) document.forms['aspnetForm']['MSOSPWebPartManager_DisplayModeName'].value = 'Design';__doPostBack('ctl05','edit')" _fcksavedurl=" type=button _layouts images loadingcirclests16.gif?>Loading...', true);if (document.forms['aspnetForm']['MSOLayout_InDesignMode'] != null) document.forms['aspnetForm']['MSOLayout_InDesignMode'].value = 1;if (document.forms['aspnetForm']['MSOAuthoringConsole_FormContext'] != null) document.forms['aspnetForm']['MSOAuthoringConsole_FormContext'].value = 1;if (document.forms['aspnetForm']['MSOSPWebPartManager_DisplayModeName'] != null) document.forms['aspnetForm']['MSOSPWebPartManager_DisplayModeName'].value = 'Design';__doPostBack('ctl05','edit')" value="OK" />

I run windows server 2008 R2 to enable Hyper-V and I run it off a VHD.  As well I run Windows 7 x64 from another VHD.  So I can boot into either environment depending on what I need.  Also I can simply backup my machine in whole by just copying the VHD's to a backup drive.  I backup my code with SVN, and host my own SVN server on a colo machine I have.  That is backed up as well.  So I am covered in case of problems.  Well expect when I run out of hard drive space!

I actually ran out of hard drive space on host system when booting into Windows 7.

I have installed applications that I use everyday, and have hit my 30 GB max I set on my drive.  I looked around and saw that there was a tool called VHDResizer, but I know there has to be an easier way, and well there is.  As long as you have HyperV available. 

Make a copy of the VHD first, just in case...

Open Hyper-V manager, select Edit disk, select the vhd you want to resize.  Select expand, give it a new size.  The tool will run, depending on whether it is fixed or expandable, it should not take too long.

After all that expansion is finished, open the Storage manager, and attach the VHD.

Open a command prompt, run diskpart

Then type in the following:

>list disk

locate the disk you want, say it is Disk 3...

>sel disk 3

This will select disk 3.

>list part

This displays the partitions

>sel part 1

Selects the partition

>expand

Expands the partition to the rest of the allocated space.  It is important to note that the volume must be formatted NTFS for this operation to work.

Finally, simply reboot into Windows 7 (in my case) and the new storage is available.

Then, copy the new backup to a saved location and you are all set!

 

A co-worker pointed out to me today that MSDN has SP 2010 public beta ready for download.

Go get it and start playing with it.

I guess I am building a VM with it on there tonight!

The thing with CAML to me, is that it is not well defined.  There are potholes everywhere, and sketchy information online, even from MSDN.

I was trying to lookup a SPUser I have selected in another list.  In the source list, I have a field with a lookup for user named Employee, the rest is like a Contancts list.

So normally, I break open U2U's CAML Query builder, build a query... but this is no good, the standard uses the display name?

Here is the query that was generated:

 <Where>
      <Eq>
         <FieldRef Name='Employee' />
         <Value Type='User'>Daniel Keeling</Value>
      </Eq>
   </Where>

That looks fine right? Well for small environments sure, but what if there were two Daniel Keelings!  (There is actually a music producer from England who shares my name :)  )

Anyways, so there has to be another way to lookup the user, I mean I have the SPUser in code, I can get anything, email, ID, etc.

Well it just so happens that you CAN use ID.

Amend the Query to look like so:

<Where>
      <Eq>
         <FieldRef Name='Employee' LookupId='TRUE' />
         <Value Type='User'>UserId</Value>
      </Eq>
   </Where>

Then just wrap it into a SPQuery, replacing UserId with the SPUser.ID (int)... and now you are unique.

So one of my clients is using a product for social networking on Linux.  Wait, why is a SharePoint developer working on a project like that to begin with?  Well, the client wants to integrate the two, WSS to be specific, and their other product.

So after configuration of WSS and MOSS in a lab environment, the third party installed their product on a linux install.

Things are going very well, we have integration completed for the most part and we moved on to a provisioning tool.

Well if we want to create new site collections in SharePoint, that is no problem, what about creating sites on the other system?  Yep, just have to call some web services.  Only problem is that we do not have an install locally to dev / test against.

Well I have hyper-v running at my office, so why not just spin up a Suse install here and install the product?

Sure why not, Suse 11 install completes, but networking fails... turns out more than one processor assigned to a Suse VM caused networking to fail... I got an IP address, but could not ping anything.  Everything return Destination Host Unreachable.  To sum it up: Hyper-V Suse 11 needs to have only 1 processor and things work much nicer.

 

Now shipping wiht VS 2010 Beta 2, and with SharePoint 2010 you will have support for Linq to SharePoint.  Not the codeplex project, but true linq support from MS(Microsoft.SharePoint.Linq).  What it does in the background is to create the CAML queries for you, to keep up the speed, looks like MS realized that CAML is no ones friend, but they have to support it for backwards compatability.

Another neat feature of Linq 2 SP is that it will support filtering of items by lookups, meaning if a list say Regions, and a list for Office Locations, where Region is a lookup field, in the Linq query you can specify that you want all items from Office locations where Region = whaterver etc.  So this starts to look more like a rational database again :)

To enable the features, there is a tool called SPMetal, which creates the proxy classes for an entire site, allowing for IDE support.  Running this tool creates a .cs or .vb class file with the types used by the Linq Queries.  Good thing is that this is only run once for a site, unless ANYTHING changes... so it is not such a good thing, just make sure when you start to work with it that you generate the class again if things do change, since this is all going to be tested at runtime instead of the standard compile time, like most developers are used to.  Just another thing that is runtime for SharePoint developers I guess.

Either way, even with some of the drawbacks of the proxy classes, we have support to make complicated Linq queries in code and they execute very quickly.

 

So I just got back to Atlanta yesterday night from Vegas, and I am really tired, but also extremely excited about what I see coming.  From Visual Studio 2010 built-in features, Windows 7 development, sandboxing, to Silverlight everywhere it all looks like a good step forward.  I tried to focus mostly on technology gaps that I happen to see, or where things were still cumbersome, and I have found a couple places, that I would like to see improved, so I guess that is where I will start when Beta 2 is publically released sometime in November 2009.

Being a SharePoint consultant makes it difficult to use technology that does not provide the functionality of at least WSS, but I have installed Subtext, and want to give it a shot. I am going to give it two weeks, and see if I can stay with it or not.

Subtext Pros:

  • Simple enough to install
  • Easy to brand
  • Easily publish from MS Word or Windows Live writer
  • Skin extensions make it easy to develop with

Subtext Cons:

  • Something different to learn
  • No true masterpage, instead inside of the skin there is a file like a materpage
  • Another username and password to remember (not my hosted AD account)
  • Configuration is a bit cumbersome (not as familiar to me as WSS)
  • Limited search

WSS Blogging Pros:

  • Use/Eat my dog food
    • I am always trying to find ways to use SharePoint more, instead of just customizing or writing code for a client. I think it is very important to work with the product more, to feel some of the pains in the product to better connect with clients/colleagues.
  • Use the same AD account to login to my site
  • Supports Live writer/MS Word Publishing
  • Easily have one site for content root with a Blog sub site
    • I could store documents, photos, etc. on the Root site
  • Richer search
  • Easy for me to develop on

WSS Cons:

  • More difficult to brand
  • Limited feature set (for blog sites)
  • Not trying anything new (sometimes it is good to write some code without using Microsft.SharePoint)
  • No community growing customizations (there is the CKS, but very few updates, etc.)
  • Harder to export your posts if you plan to move elsewhere

After writing this, and looking through the options, I realize that I am primarily avoiding WSS so that I do not have to brand another WSS site… how ridiculous is that! Oh well, I will give it a couple weeks, and see how I like things.

Well it looks like the first time I will get a day off in a while will be to go to Vegas for the SharePoint Conference in Vegas. New version drops the same week October 19th, and I think the NDA is lifted for those folks who have seen things early. I am very excited to see more of the new product at the conference, and also excited to go to Vegas. I am already cooking up ideas on topics to cover and things to do when I get my hands on a VM and/or installation media.

Blogger2BlogML is a free on-line service that allows you to save your Blogger posts and comments to a single file for archival or transfer to a different Blog publishing system.

Learn more at: http://www.blogger2blogml.info