We have liftoff, well almost. We have the countdown at least! Sometime in April we will have a release candidate RC and sometime in May we will have RTM. See the MS blogs, http://blogs.msdn.com/sharepoint/archive/2010/03/05/sharepoint-2010-office-2010-launch.aspx

Looks like a bunch of new downloads showed up on MSDN, SP2007 with SP2 baked in, Office 2007 with SP2 baked in, .Net 4 RC, and a couple more.

I ran off to download the updates, and noticed one thing…

“Please note: The Microsoft Visual Studio 2010 RC release does not support Silverlight 4 development. If you are developing a Silverlight 4 application you should continue to use Microsoft Visual Studio 2010 Beta 2.”

Just a note, if you are playing around or working with Silverlight 4, beware, and do not upgrade just yet.

 

Apparently a DC in my office has the wrong time in bios, and since it is a PDC, it uses this time by default.

So how do we change this to use something like, oh NTP?

NTP is Network Time Protocol, a standard with a real following :)

http://www.pool.ntp.org/en/ is a good place to start looking for the time servers you might like to use, as well as some simple information on how to set times for both Linux and Windows servers.  One drawback is that there is a change for Windows servers since 2003.  Net Time /... is no longer used, instead there is a windows service managed by w32tm.

MS Link here: http://technet.microsoft.com/en-us/library/cc784553(WS.10).aspx

And the good stuff...

For US users, you can use the following commands to make the changes:

w32tm /config /manualpeerlist:0.us.pool.ntp.org,1.us.pool.ntp.org,2.us.pool.ntp.org,3.us.pool.ntp.org /syncfromflags:MANUAL
w32tm /config /update

Image

A few seconds later, my time is correct, and then the time on all the machines in my domain are also correct. 

Hope this helps save you some time.

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.