Visual Studio 2010 Release Candidate available

9 02 2010

vs2010_logo As of today Microsoft released Visual Studio 2010 RC for MSDN Subscribers. The release will be available for the public on Wednesday February 9th.

http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx

Note: Silverlight 3 projects are supported, Silverlight 4 not yet. That will be supported in the next Silverlight 4 public release.





Creating Service Applications in SharePoint 2010 beta

4 02 2010

A colleague (@BurggraafW) and I are setting up a SharePoint 2010 portal for our unit. I installed Windows Server 2008 R2, SQL Server 2008 SP1 and all the pre-requisites to install SharePoint Server 2010 beta 2. SharePoint is configured to be in a farm, and not as a standalone server. The installation went smoothly, no errors occurred!

 

Creating the Web Application

After the installation I created a web application for the portal. As a preparation I created several user accounts that I probably needed for the application pool(s) and service applications.

From Central Administration, click on Manage Web Application and from the Ribbon click New. The following popup screen appears:

image

Fill in you’re desired settings and click OK. However, there’s an issue here (I suppose beta’s do not have bugs, right?). If you change the path from the default c:\inetpub\wwwroot\… to, let’s say, d:\VirtualDirectories\, SharePoint will ignore that. The web application will always be located at the default location.

 

Creating Service Applications

Managed Metadata and taxonomy is awesome in SharePoint 2010. We definitely want to experience it ourselves, so we need to create a new Managed Metadata Service Application. From Central Administration select Manage Service Application and from the Ribbon select the New button and the option Managed Metadata Service. The following popup screen appears. Besides the server name, the form is completely empty.

image

While the popup screen for the Search Service Application looks like this and is suggesting some names and accounts.

image

Some suggestions I find doubtful if their are useful names, such as the database names in the User Profile Service Application:

image

If you have created the Service Application providing it a proper name for the Application Pool, you think it can be found opening the IIS Manager:

image

Nope. You will find GUIDs (?) instead of the given names.

Let’s wait for the Release Candidate and see what’s improved. For now, it works just fine to set up a new portal in a single farm environment.





SharePoint Connections 2010 Review

24 01 2010

SPC2010b The last 2 days there was a great event in Amsterdam: SharePoint Connections 2010. If you missed Las Vegas in October (like I did), this event was the place to be with more than 40 sessions for IT Pros, developers and end users. Besides seeing SharePoint 2010 in action it was also a good moment to meet colleagues, friends and those I speak on Twitter. My company Ordina was Gold Sponsor, so we had a booth and we delivered a speaker for the Solutions track: Michiel Hazen. You can read more about his session on his blog.

On Monday I attended the following sessions:

  • KeynoteMike Fitzmaurice

Everybody started with the keynote hosted by Mike Fitzmaurice (Nintex). He took us all down memory lane and reviewed the SharePoint versions over the years and why they we’re not enough. After some metaphors with the cheetah, shark and the eagle, the main message was out: we have reached the center of the universe and wow, what great product (or was is platform?) SharePoint 2010 is!

  • SharePoint 2010 overview and what’s new for the End User by Matthijs Hoekstra.

As a developer/consultant I decided to start easily and getting the point of view by an end user how to explore the new stuff in SharePoint. Matthijs was a little bit nervous at the beginning but he delivered a pretty good session. He talked about new interface, the ribbon, how create and edit pages, using rich media content, Access services, external lists, Office integration, Social Networking and so on… So, the conference has my attention! I was ready get more input, input, input… :)

  • Understanding the Service Application Architecture of SharePoint 2010 by Richard Taylor

Time to take a deep dive. We had Shared Service Providers in MOSS2007 and now we have Service Applications. I didn’t know Richard Taylor, but.. man! can he do a presentation! Although he is more a IT Pro, he kept my attention and explained this subject very well. Main point of this sessions was: SSP had one database serving all services (Search, Excel Services, Profiles, …) and in SP2010 all services are split up into Service Applications each having it own database. In total there will be 21 databases. Keep that in mind when architecting your solution!

Ow.. and if you ask him about preparations for upgrading from MOSS2007 to SharePoint 2010, he’ll answer with: NUKE IT ALL AND START OVER FROM SCRATCH! (@JoostSmit, comprendes? woehahaha). Without kidding, Richard strongly believes you have two problems with upgrading: time and money. Fixing will cost as least the same as starting over, so you’d better nuke it all and start over with a clean environment.

  • ECM for the Masses – How SharePoint 2010 Delivers on the Promise by Erica Toelle

Erica was also new to me, but during our Twitter contact I got curious about her session. What’s her story about Enterprise Content Management? She was nervous since this was the first time doing this presentation and on top of that: her machine with the demo’s crashed the day before. Luckily she had done some recordings before, so she was not all that empty handed. Not a great start for her. Back to the content: she pointed out that user’s store their content everywhere: in portals, in file shares, etc… and how to manage that? She demonstrated how SharePoint 2010 can help on this matter. Even Windows Server 2008 can help with the File Share Manager feature. Good story!

Client-Side Technologies in SharePoint 2010 by Jan Tielens

Last session of the day was a developer session with lots of code. Yeah! I know Jan and I’ve seen his work before. A lot has changed with creating solutions outside the SharePoint environment. With MOSS2007 we only had WebServices for connection to SharePoint data, now SharePoint 2010 introduces the Client Object Model that comes in 3 flavors: .NET object model, JavaScript object model and Silverlight object model. No matter what flavor you use, the approach is all the same:

  • Get a ClientContext reference
  • Setup your SharePoint objects (like Web, List or ListItem)
  • Load these objects into the ClientContext
  • Execute the query, which fills up the loaded objects with the data.

Code sample (.NET flavor):

ClientContext ctx = new ClientContext(siteUrl);
Web myWeb = ctx.Web;
ctx.Load(myWeb);
ctx.ExecuteQuery();

In this example, all the properties are loaded and filled with data. It’s possible to be more efficient and load only the properties you need:

ctx.Load(myWeb, w => w.Title);

Of course, Jan showed all the flavors. It was a good session and very understandable.

At the end of the day there was a SharePint meeting. It was sponsored by U2U and they had Belgian beer coming over! Good moment to catch up with (ex) colleagues and new friends!

On Tuesday I attended the following sessions:

  • Web Content Management in SharePoint 2010 by Donald Hessing

Maybe it’s me, maybe I drank too little coffee for starters, but this session was a little bit boring. Not the content, that was interesting, but I guess Donald was a bit nervous and talked a bit slow and too calm. He couldn’t break the ice, sort of speak. He demonstrated how the new pages and interfaces work in SharePoint 2010. And also how the new web parts, such as Content By Query Web Part and List Web part, have improved. Add some great rich media and using styles and you end up with a pretty looking demo.

  • SharePoint 2010 Search by Richard Taylor

After his session from Monday I had to go to this one. And I was not the only one thinking this. The room was loaded. Therefore this session as held again later that day.

The session was not about implementing Search or customizing search. No it was all about Findability. Basically, you need to have a good information architecture. User’s must know what to find using Search. If they do not know what they want to find, Search won’t help you. You will only get lots of data and you will end up with clicking each result item and saying “No, that’s not it.”, “No, that’s not it too.”

  • Growing SharePoint from Small Libraries to Large Scale Repositories and Massive Archives by Mirjam van Olst

One of the most discussed subject is managing large lists. In this session Mirjam very well showed how to manage all kinds of lists in size. Using the metadata navigation is one thing and setting the List Throttling property is another. List Throttling is per web application and it prevents executing queries that returns more items than set by List Throttling property. The user will then get a message “Sorry, your query returned too many items”.

Another nice feature is to use Drop Off locations. Based on rules, the document can be moved to another list. The session lasted an hour because she talks fast! So, plenty of time to ask questions. :)

  • Sandboxed and Client-Only Solutions with SharePoint by Daniel McPherson

Since I skipped a session about Sandboxed Solutions before, I chose to attend this one. I am following Daniel on Twitter for some time now and he got my attention. While people were filling up the room, he was still very busy setting up his demo environment. Unfortunately, some wireless connection between the two machine left him empty handed. Too bad, because he had great things in mind. Well, if Mirjam talks fast, Daniel talks with the speed of light. Woehahaha But with the slides he was good to follow. The client-only part was already familiar to me because I attended a session about it the day before. Sandboxed Solutions however, I knew only from articles. So I was hoping to see it in action. Better next time. (or even better: do it myself!)

  • Advanced Web Part Development in SharePoint 2010 by Jan Tielens

The final session of the SPC event. Jan gave this presentation already for MOSS2007, but I never saw that one. As it turned out, I knew all the content except for what changed in SP2010.

In SharePoint 2010 the WebPart class is now directly derived from System.Web.UI.WebControls.WebParts.WebPart. For MOSS2007 Jan built a SmartPart, so you could design your web part. Now, a standard project item in Visual Studio 2010 is called the Visual Web Part. You can use the designer to drag and drop the controls for the web part. You’ll end up with a user control and a web part wrapper class (loading the user control). Because of this approach and the fact that user controls are stored in the 14-hive, you cannot use this in Sandboxed Solutions. (But you can check out Wouter van Vugt’s SharePoint DevTools on CodePlex).

So, this was the SharePoint Connections 2010 for me. I really enjoyed it. Spoke to lots of people and inspired me to go and explore SharePoint 2010 myself. I was triggered to checked out metadata navigation and taxonomy. Let’s do research on that for starters.

Edit: All the sessions at the SharePoint Connections are recorded, you can watch them over here (thanks to Matthijs Hoekstra!)

Final word: thanks to everyone who made this event possible and successful!





Free DIWUG SharePoint eMagazine

20 01 2010

The last 2 days was all about the SharePoint Connections 2010 in Amsterdam (I will blog about that later) and with this event DIWUG released a free eMagazine about SharePoint 2010. You can download it here. There’s a HiRes version and an eReader version.

Content of this magazine is:

  • SharePoint 2010 Enterprise – Sjoerd van Lochem
  • Customizing the SharePoint Ribbon – Marianne van Wanrooij
  • Visual Studio Extensions – Niels Loup
  • Working with data in SharePoint Designer 2010 – Laura Rogers
  • Sandboxed Solutions – Mirjam van Olst
  • New ECM features in SharePoint 2010 – Robert van Son
  • Creating new visual experiences with Visio Services – Toni Frankola
  • A SharePoint User eXperience – Sandra de Ridder
  • Introduction to the Business Connectivity Services – Nick Swan
  • SharePoint 2010 Client Object Models – Ton Stegeman
  • Understanding Identity in SharePoint 2010 – Michiel van Otegem
  • Happy Together in 2010! – Dux Raymond
  • SharePoint 2010 Chart Web Part – Agnes Molnar
  • Enrich your SharePoint 2010 portal by integrating SAP applications – Cyrille Visser, Johan Kroese and Huub Montanus
  • SharePointComic – Dan Lewis

Happy reading!





SharePoint 2010 on Windows7 ?

21 12 2009

One of the greatest features announced at the SPC09 was SharePoint 2010 runs on Windows7 and Vista SP1 as long as it is 64-bits. For developers, this is great. So, a few weeks ago I took the challenge to see this for myself and created a Windows7 x64 VHD. Then I read this post to see what prerequisites I needed and what steps to take. I installed all the necessary prerequisites and then I extracted the en_office_sharepoint_foundation_server_2010_beta_x64_456151.exe. Before running Setup, I modified the config.xml so SharePoint 2010 can be installed on clients, such as Windows7. The installation went smoothly until… the Configuration Wizard executed. At Step 8 (Creating Sample Data) I received this message:

SP2010CW

And I was not the only one. On Twitter it was said that a hotfix for WCF was needed. I had to wait a few days before it was available here. After the hotfix was installed the Configuration Wizard finished properly. So, SharePoint 2010 Foundation is running.

Next step was to install SharePoint 2010 Server.

I performed the same process: Checked all the prerequisites, extracted the en_office_sharepoint_server_2010_beta_x64_x16-19249.exe, modified the config.xml and ran setup.exe. The installation went smoothly until… the Configuration Wizard executed. Again at Step 8 (Creating Sample Data) I got stuck. Huh? Isn’t this the same message? I thought I had that fixed? After trying several times, giving it a rest for a few days, then bing’ed a lot: I ran into this blog post. I installed the SQLServer2008-KB976761-x64.exe again before running the Configuration Wizard and YES! I passed step 8.

Now I got stuck at step 10: Upgrading SharePoint Products. I am staring at the 10% completion for more then an hour now. I give up.

Uninstalled SharePoint 2010 Server and I will be playing with just the Foundation.





Ordina is GoldSponsor at SharePoint Connections 2010

3 12 2009

SPC2010 Good to hear that my company Ordina is GoldSponsor at the SharePoint Connections in Amsterdam next January!

Also, one of my colleagues Michiel Hazen will be on stage as a speaker. While most of the sessions will be about SharePoint development, ECM and administering, Michiel will be talking about project management for SharePoint. I think that’s a good subject, because I think such projects will be managed differently comparing to traditional .NET development projects.

And yes, I will be there too!





Visual Studio 2010 Team System session

25 11 2009

Last night I hosted a session about the Visual Studio 2010. Speaker was Gerard van der Pol from Microsoft NL. This time it wasn’t about what’s new with the (obviously) improved IDE and .NET Framework 4, but it was all about the features regarding Team Foundation Server (TFS). Of course, there are lot of new features to talk about and so little time. I’ll describe some features Gerard was demonstrating.

First, let me say that the title of this post is a bit wrong. The brand Team System will disappear, so it is only Visual Studio 2010.

Also, the editions will change a bit:

Slide5

Regarding to Team System (or should I say ALM) there are 2 new products: Visual Studio Test Elements and Visual Studio Team Lab Management.

Slide6

With Lab Management it is possible to create and configure your environments to help testers more easily test a variety of configurations in a virtual lab environment, and help developers more easily repro bugs by delivering snapshots of those virtualized environments after bugs are discovered. For more information, watch this Channel9 video.

With Test Record & Playback you can actually record and playback your test plan and steps. The video’s will be accessible for the developer from the work item. For more information, watch this Channel9 video.

Do you recognize this:

  • You’ve received reports of a crash from a tester, but on your local box you can’t get the bug to reproduce.
  • You’ve received a crash dump from the tester along with the bug. But the call stack that actually caused the crash was just a cascading effect and you can’t trace the bug back to the root issue.
  • The bug that you are currently working at resolving has an extremely long set of reproduction steps and you just accidentally stepped over the function that is returning bad data.

IntelliTrace, formerly known as Historical Debugging, can help you out now! IntelliTrace is similar to that of a black box in a plane. It’s keeping track of important points in your programs execution and allow you to play back what happened at those points at a later time. For more information, click here.

With the new Profiler you get a really great look at how your code is performing. It comes with couple of new features for developers:

  • CPU Sampling
    Measures CPU-bound applications with low overhead.
  • Instrumentation
    Measures function call counts and timing.
  • .NET Memory Allocation (Sampling)
    Track managed memory allocation.
  • Concurrency
    Detect threads memory for other threads.
    • Collect resource contention data
    • Collect thread execution data

ProfilerOverview

Profiler includes a new page called the Function Details page, which will depict the caller/callee information in a graphical way along with the performance metric. You can also view your code which includes the line-level performance measurements.

ProfilerFunctionPage

To end this post, I want to tell you about Gated Check-in. We all have colleagues who are checking in their code and you end up with a non building solution. With Gated Check-in you can prevent users to check-in their code unless it all builds! And it is also possible to run your tests too, before allowing to check-in.

For more information, click here.

I was truly amazed with all the new features of Visual Studio 2010 regarding ALM and had a great night. Go explore for yourself!





CodeCamp 2009

21 11 2009

So, today I was at CodeCamp 2009 in Rotterdam. It was organized by SDN, Stichting dotNed and VBCentral. It was a great day, learned a lot and talked to many people. In this post I will summarize the 4 tracks I attended.


Around .NET Framework 4
by Ronald Guijt

aa496123_NET_logo(en-us,MSDN_10) In this session Ronald demoed some new features of .NET Framework 4. He had 1 PowerPoint slide with items he was NOT going to talk about:

  • a new CLR. Not built on top of former CLR’s for .NET Framework 2/3, but a fresh one.
  • DLR. The Dynamic Language Runtime, for languages such as F#.
  • Garbage Collector. When cleaning-up process is executing, it’s non-blocking now.
  • Environment.Is64bitProcess and Environment.Is64bitOperatingSystem support
  • MEF. Managed Extensibility Framework.

No, Ronald had other interesting stuff to show in 23 demo’s. 

  • Keyword dynamic. With this keyword it is now possible to type a variable or method at runtime.

public dynamic TestValue( dynamic p )
{
    if( p is int )
 
       return “stringvalue”;
    else 
        return 42;
}

  • Optional parameters. Although VB.NET has this feature since ages, C# has it too, now!

public void ShowMessage( string message = “Default message”)
{

}

When having multiple parameters, the optional parameters must be defined last. But, what about overloads? Bare in mind that all signature combinations must stay unique.

  • Contract class. As with the Debug class, the Contract class is also part of System.Diagnostics. The Contract class looks like the Debug class, but it is intended to test preconditions and postconditions.
  • IObservable interface. Defines a provider for push-based notification.
  • Task class. We know threading and tasks are on top of threads. When starting multiple tasks, a finished task can take over another task which hasn’t started yet. The most common way to create tasks is by using the task factory:

var task = Task.Factory.StartNew(() => DoAction());

Other demo’s that were shown:

  • Complex class (Math)
  • Stream.CopyTo
  • Enums: HasFlag
  • String.IsNullOrWhiteSpace
  • StringBuilder.Clear
  • Parallel class for parallel computing
  • PLinq, parallel Linq
  • Entity Framework: from model create database and vice versa, ComplexType which is made of multiple fields.
  • Workflow Framework: improved performance, improved WCF support/integration
  • WCF : easier configuration, discovery

For more information on what’s new in .NET Framework 4, click here.

 

SharePoint Nightmares by Marianne van Wanrooij

The second session had a great start: a video of the Twilight Zone. Marianne was presenting real life scenario’s you don’t want. She categorized the horror scenario’s in 3 parts: Architecture, Customization and Coding.

Architecture was about choosing the number of site collections. When the project started the choice was made to have 1 site collection to store 2000 sites each having 1-4 subsites. Every site had it’s own 6 security groups. After some time the scope changed: 16000 sites and 10 security groups. You do the math, but 1 site collection does not do the job!

Hence, know you’re boundaries and be prepared for growth!

The second example was about customizations and defining content types, custom field types, templates and custom standards for metadata. This time the custom field type with validation code was the problem, because the customer used InfoPath and Word document. However, validation on custom field types in the DIP, doesn’t work. It works only in the Web UI of SharePoint.

Hence, know you’re dependencies!

The third and last example was all about coding.

  • Dispose created instances of SPSite, SPWeb and SPList. Otherwise the server keeps the resources alive and performance will drop. A good tool to use is SPDisposeCheck.
  • SPWeb.Lists[“speakers”] != SPWeb.Lists[“speakers”]. True. Both will result in a new instance of SPList.
  • Looping through list items should be done with SPQuery result and not on SPWeb.Lists[“speakers”].Items. This last statement will ALWAYS retrieve all items in the list.

for( int i = 0; i < 100 && i<list.Items.Count; i++ )
{
    SPListItem item = list.Items[i];

}

if the list contains 1500 items, they will all be retrieved on the Count-call and once again on list.Items[i]. You don’t want that. Better to use the SPQuery object and set the RowLimit property.

SPQuery query = new SPQuery();
query.RowLimit = 100;
SPListItemCollection items = SPContext.Current.List.GetItems(query);

Surface Development by Dennis Vroegop and Freena Eijffinger

SurfaceLogo I never seen the Surface table in action, so that’s why I chose this session. And I was not the only one, so seeing the demo’s was hard. Too many people. Nevertheless, Dennis and Freena explained the concepts of Surface very well. It’s all about people sitting around the table and using the table intuitively. To achieve that you have to develop NUI applications. Natural User Interface. This means no list boxes, no checkboxes and no menu’s. It’s all about objects, like a chair, a living room, a tv, a table.

There are 2 Surface units: Commercial (€11000) and Developer (€13000,-) . When you have the developer unit you get Visual Studio 2008 Express. Yep, Express, the free one. Surface is built on Windows Vista and .NET Framework 3.5 SP1.

And developing for Surface is easy. You have 2 choices: XNA or WPF. XNA is mostly used for gaming and has the ability to access the hardware directly. WPF is more well-known among the .NET developers. Together with the Surface SDK you can quickly start creating Surface applications. There’s a Surface project template available.

For more information about Surface Development, click here.

 

SQL Azure by Marcel Meijer

Since the introduction of Azure there was no data storage yet. Well, blobs and tables, but no relational storage. But times are changing. SQL Server is now part of the Windows Azure Platform.

WindowsAzurePlatform 

With this first version of SQL Azure there are some restrictions. When creating a database you provide a name and a size (1Gb or 10Gb). Then you can set some firewall settings for accessing the database.

SQL Server 2008 Management Studio will not be able to connect to your cloudy database. You’ll the R2 version. Or, install the SQL Azure Explorer in Visual Studio .NET 2010.

For more information about SQL Azure, click here.





Finally: SharePoint 2010 beta is here!

16 11 2009

Tonight SharePoint 2010 beta and Office 2010 beta became available for MSDN Subscribers. This is what I was waiting for!

MSDN News

Click here to go the MSDN download site.





Adding an existing VHD to Windows7 boot menu

6 11 2009

In an earlier post I described how to create VHD’s for 64-bits Windows7 or Windows Server 2008 R2 and how to boot from those VHD’s. In this post I want to describe how to add existing VHD’s to the boot menu and even how to change the boot items.

In former Windows versions there was a boot.ini file in which the boot menu and sequence order could be edited. Now there is the Boot Configuration Data store and no ini file. To access the BCD use the tool called BCDEdit from a command prompt window. (NOTE: run it as an Administrator!)

Adding a VHD file

The easiest way to add an existing VHD to the BCD is to copy an existing item and modify it. In the next example a copy of the current boot item is made.

bcdedit /copy {current} /d “Windows7 x64 – VHD”

“Windows7 x64 – VHD” is the description of the new boot entry in this example. Now you have to set the entry option value for this boot entry with the following two commands:

bcdedit /set {746a1e89-bc61-11de-94e9-aa5a92178904} device vhd=[D:]\vhd\win7×64.vhd

bcdedit /set {746a1e89-bc61-11de-94e9-aa5a92178904} osdevice vhd=[D:]\vhd\win7×64.vhd

With these two commands we tell the BCD to use the VHD file win7×64.vhd located in the folder D:\VHD.

Changing an item’s description

When creating multiple VHD’s by installation, you will end up with item’s having the same description. For this change use the command line option /set. Before doing so, you need the GUID of the correct item.

Use the command /enum to list all the BCD items and then select and copy the GUID (identifier field):

BCDEdit_Enum

To change the item’s description use the following command:

bcdedit /set {746a1e89-bc61-11de-94e9-aa5a92178904} description “Windows7 x64 – VHD with Visual Studio 2010”

When rebooting the system you will see your new settings.

 

For more information about the BCDEdit tool, read the article at TechNet