Sunday, July 06, 2008

SharePoint Object Hierarchy: How it all fits together

Martin Kearn, a Microsoft Consultant from the UK, has drafted a picture of the overall Sharepoint hierarchy: How it all fits together. A very nice overview which certainly has its benefits.

Thanks Martin!

Labels:


Friday, June 27, 2008

Microsoft Certified Master: SharePoint Server 2007

The Microsoft Certified Master program has just launched. For now it only includes the following tracks:

But Per promises the Microsoft Certified Master: SharePoint Server 2007 track will be available soon! Be aware though, this is not for the faint-hearted:

"The prices for the programs are $18,500USD which includes 3 weeks of training, and the first attempts at each of the four required tests: 3 'written' tests and one lab based exam. Retakes cost $250 per written test, and $1,500 for the lab exam, and you are only allowed a maximum of three attempts per test. We know this isn’t exactly pocket change, but based on customer feedback from the Ranger program, we are confident that it is a good value to those of you who will go through the program. We recognize that the cost may be a barrier to entry to some people who could otherwise make the grade—but that is something we will have to live with in the short term; getting top notch subject matter experts in one place for three weeks, the hardware, etc. just don’t come cheap."

There does not seem to be a Developer-specific track yet. Not even an 'it-isn't-here-yet-but-will-be-soon'-track! All tracks look more or less Infrastructure-based and there is only a vague promise of a Dev MCM. Stay tuned...

Off topic: I learned of the Master Program being created at Microsoft about four months ago. I didn't want to disclose its existence before going live. Hey, you never know what those pesky NDA's can do now can you?

Labels: , ,


Tuesday, June 24, 2008

Troubleshooting SPSite/SPWeb leaks and the Importance of Loadtesting

Stefan has a good article on troubleshooting leaks in your WSS and MOSS applications. One of the very nice features is that whenever a certain threshold is crossed, an entry will be written in the ULS logs:

"Potentially excessive number of SPRequest objects (<NUMBER>) currently unreleased on thread <NUMBER>"

This is a very convenient way for a Sharepoint Administrator to keep track of sites with an excessive amount of memory consumption through SPRequest objects.

He also talks about issues surrounding the potential number of site objects generated with a site navigation control:

"That means if you have a navigation control configured to enumerate 3 levels of sites and on each level you have 20 sites that you will end up with more than 400 SPRequest objects. So you need to be very careful with how to configure your navigation controls and also how many sites to create on each level!"

Now consider that each site object will use approximately 2-4 MB of memory on the server. Combine this with the scenario above and you will end up with a huge amount of allocated IIS memory. I don't know if this is per individual user session or not, but either way, this is not something you will want to have on your environment without some consideration beforehand.

There are roughly two ways to gauge what your application will do:

Theory::Estimation

Based on the site architecture, software architecture, usage forecasts, amount of change permitted on the webpart architecture and so on, you can get an estimate on how your solution will behave. How many objects will there be any given time? What is the variance?
But -sadly- hardly anyone does this, let alone completely.

So, what's the second option?

Practice::Loadtesting

This should come as no surprise. (If it does, shame on you!) Yes you can do unit testing. Yes you can do TDD. Yes you can test against coding guidelines. And yes you all will do functional testing. That's all good.

But only, and only if you test your whole A-Z architecture against real life usage and benchmark it, stress it, stress it hard, you will be able to get information how everything will hold up. How is that pesky CrossList webpart doing? And what about that navigation control? If it looks like it is generating a whole lot of memory pressure, you might want to consider other options and go back to the drawing board.

Loadtesting also includes talking to the client to get the testing requirements. What will be their expected usage patterns? Okay, you want the application to react fast? What do you mean by fast? Can you put that in numbers? Let's talk about your Application SLA. What can you tell me about it? How can we translate this into something meaningful for the project?

I can not stress this enough: if you do not incorporate loadtesting as a core requirement in the process, you will be introducing One. Huge. Unmanaged. Risk. Factor. Period.

I have seen too many deployments go down in flames because of this. You might have created a stunning application which leaves the customer absolutely breathless with tears in their eyes, but if he finds out that it will only scale to 6 concurrent users with no more that 5 pages per second before another Web Frontend (WFE) is needed, which, by the way, is definitely NOT the solution to your problem, you will have a serious problem. And this will not be easy to solve if you have come this far in the project.

This is what Microsoft has to say about it: "Load testing should be part and parcel of every Web development effort, and it should be performed early in the process. However, if you think you can load test using your development environment, you're going to have some surprises when you go live..."

So, to sum it all up: "if you do not loadtest, you fail".

Links

Stefan Goßner : Troubleshooting SPSite/SPWeb leaks in WSS v3 and MOSS 2007
MSDN: Real-World Load Testing Tips to Avoid Bottlenecks When Your Web App Goes Live
Modeling the Real World for Load Testing Web Sites

Labels: , ,


Wednesday, June 18, 2008

Sharepoint Templates - Types

Aravindhan has compiled a list of Templates:

Template Name

Description

GLOBAL#0

 Global template (1033)

STS#0

 Team Site (1033)

STS#1

 Blank Site (1033)

STS#2

 Document Workspace (1033)

MPS#0

 Basic Meeting Workspace (1033)

MPS#1

 Blank Meeting Workspace (1033)

MPS#2

 Decision Meeting Workspace (1033)

MPS#3

 Social Meeting Workspace (1033)

MPS#4

 Multipage Meeting Workspace (1033)

CENTRALADMIN#0

 Central Admin Site (1033)

WIKI#0

 Wiki Site (1033)

BLOG#0

 Blog (1033)

BDR#0

 Document Center (1033)

OFFILE#0

 Records Center (1033)

OFFILE#1

 Records Center (1033)

OSRV#0

 Shared Services Administration Site (1033)

SPS#0

 SharePoint Portal Server Site (1033)

SPSPERS#0

 SharePoint Portal Server Personal Space (1033)

SPSMSITE#0

 Personalization Site (1033)

SPSTOC#0

 Contents area Template (1033)

SPSTOPIC#0

 Topic area template (1033)

SPSNEWS#0

 News Site (1033)

CMSPUBLISHING#0

 Publishing Site (1033)

BLANKINTERNET#0

 Publishing Site (1033)

BLANKINTERNET#1

 Press Releases Site (1033)

BLANKINTERNET#2

 Publishing Site with Workflow (1033)

SPSNHOME#0

 News Site (1033)

SPSSITES#0

 Site Directory (1033)

SPSCOMMU#0

 Community area template (1033)

SPSREPORTCENTER#0

 Report Center (1033)

SPSPORTAL#0

 Collaboration Portal (1033)

SRCHCEN#0

 Search Center with Tabs (1033)

PROFILES#0

 Profiles (1033)

BLANKINTERNETCONTAINER#0

 Publishing Portal (1033)

SPSMSITEHOST#0

 My Site Host (1033)

SRCHCENTERLITE#0

 Search Center (1033)

SRCHCENTERLITE#1

 Search Center (1033)

SPSBWEB#0

 SharePoint Portal Server BucketWeb Template (1033)

Labels: ,


Saturday, May 17, 2008

Quickly installing MOSS 2007 on Windows Server 2008

You can slipstream SP1 yourself, but it turns out there's an easier way.  First, install the trial version of MOSS 2007 with SP1 (32 bit or 64 bit).  After you install the trial version, upgrade from the trial version.

  1. In Central Administration, on the top link bar, click Operations.
  2. On the Operations page, in the Upgrade and Migration section, click Convert license type.
  3. On the Convert License Type page, in the Enter the Product Key box, type the new product key.

Thanks to Kirk Allen Evans for the tip!

Labels: ,


Sunday, April 27, 2008

I Need a Good SharePoint Admin. What should I be looking for?

"SharePoint represents the first true class of products by Microsoft that completely blurs the line of Admin and Developer. [...] So when asked, by my customers how and what should I be looking for in an finding an administrator for SharePoint, my response is always STOP looking for an administrator and start searching for the NEXT GENERATION IT STAR that can code and administer your solution."

According to Technical Account Manager Gregory MacBeth from Microsoft.

Good to see more and more people are getting it.

Labels: ,


Friday, April 11, 2008

Terminal Services, Silverlight, Microsoft Robotics Studio and Lego Mindstorms NXT

Narenda Wicaksono has made a video of  a nice mix-up between Terminal Services, Silverlight, Microsoft Robotics Studio and Lego Mindstorms NXT.

Oh and I passed 70-631 with flying colors today.

Labels: , , , ,


Monday, April 07, 2008

Splitting TechEd US into two weeks stinks for SharePoint professionals

Andrew Connell, a MVP on MOSS, is not pleased with splitting TechEd into two weeks: "The problem I have with it is that you go to one of these major conferences, as an attendee, to get good exposure across the board. ...professionally I think it's a bad idea to separate the two because it almost tells devs/admins they don't need to know about the other's world. In some apps this might be true (for instance, I [possibly incorrectly] consider Exchange more in the admin/IT pro camp than I do in the dev camp), but for SharePoint it isn't. Even if you are a dev like me, you need to be aware of some concepts and how they work such as site collections and splitting up content databases or how admins view CAS and such. Admins need to understand how developers utilize CAS and deploy custom code."

I totally agree with him. Developers and IT Professionals should be working with each other. Especially with products like Sharepoint. There will always be a cross-over, and widening the gap is not the answer.

Besides going to the usual IT Pro events I also attend more development-centric events like MSDN Intracks and the upcoming DevDays, scheduled in May, including the Geek Night! I wonder if there will be someone from the team Coding4Fun, would like to have a chat with them. Anyone else going as well? Give me a ping!

Labels: , ,


Thursday, April 03, 2008

Access Fileserver Data via SharePoint

René Hézser has created a nice webpart to access fileservers from Sharepoint: "I guess everybody knows this scenario. You are with a customer or at home, and need a file from your company's fileserver very badly. What can you do? VPN is not possible, and you can't phone a colleague who can then send you the file via email because nobody is in the office. <SNIP> With [this] Webpart you can access files from e.g. your fileserver via SharePoint / Browser."

Haven't tried it out yet, but this looks very nice. I'm just wondering if you might need Service Principal Names (SPN) with AD delegation implemented if you're using Kerberos authentication.

Labels: ,


Thursday, March 27, 2008

Microsoft SharePoint taking business by storm

"Microsoft's SharePoint Server is on a billion dollar juggernaut to potentially become the next must-have technology, offering companies tools for building everything from collaborative applications to Internet sites and potentially handing Microsoft its next cash cow."

See link.

Update: fixed broken link.

Labels:


Tuesday, March 18, 2008

Get rid of Orphaned sites: Detach and Reattach the Content Database

"My solution was to drop the content database in Central Administration. I remembered that as part of a content database attach process, SharePoint would examine the db to see what site collections existed. So after detaching and then re-attaching, sure enough the site showed up in Central Admin and I could delete the site collection."

Update: one of my a coworkers has tried this out just as we speak and with success!

edhild's WebLog : So I ran into an interesting problem in my MOSS development environment

Labels:


Saturday, March 15, 2008

Hidden list named "User Information List"

"In case if you don't know there is a hidden list named "User Information List" which displays all the users of the site (collection) {MOSS / Sharepoint 2007}. And there is a page "Simple.aspx"  which show this list, the URL for the page would be http://YOURSITENAME/_catalogs/users/simple.aspx."

Gregory S. MacBeth : User Profiles

Labels: , ,


Friday, March 14, 2008

SharePoint Skills Advisor Tool

"If you [are] interested in ramping up on SharePoint, the Product Group has developed a very slick tool that will point you to all currently available training on SharePoint, whether it be Instructor Led, Hands on Lab, Online Course, Reading, etc..."

I downloaded the Access database and it looks like a very nice tool indeed!

How many times have you been searching though all the available sources for that particular piece of information? If so, this might come in handy. Thanks Sean.

Labels: ,


Wednesday, March 05, 2008

SharePoint 2007 and WSS 3.0 Dispose Patterns by Example

A very good article about Sharepoint 2007 and WSS 3.0 Dispose Patterns: Roger Lamb's SharePoint Developer Blog : SharePoint 2007 and WSS 3.0 Dispose Patterns by Example

Labels:


Microsoft Product Supports look at understanding and deploying hotfixes, product updates and service packs for WSS and MOSS

Daniel has a good post on a session given by Dan Winter on the Seattle Sharepoint Conference. The session deals with everything about fixes, service packs, deployment methods and so on. The thing that really caught my eye -apart from the bold facing- was the fact that you will need a Slipstreamed Sharepoint installation if you wish to add new servers to an existing MOSS farm that is already on SP1. That's good to know.

Daniel, keep up the good work!

Labels:


Wednesday, January 16, 2008

Implementing Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 Solutions

Brief Description

This document outlines a methodology for team SharePoint development combining custom code and content, with the aim of accelerating implementation and mitigating production risks.

Overview

This document outlines a methodology for team SharePoint development combining custom code and content, with the aim of accelerating implementation and mitigating production risks. To form the methodology, the document describes implementation scenarios, tools, and development environments. The document does not detail specific implementations (such as "how to write a Web Part" or "how to manage work items"), but describes the overall needs and techniques for the stated goal, and provides several references to topics for more information.

Note This white paper represents only a single methodology, and should not be considered the only Microsoft-prescribed solution methodology.

Thanks Bart.

Download details: SharePoint Products and Technologies White Paper: Implementing Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 Solutions

Labels:


Sunday, December 16, 2007

Boosting your VM Server

If you've ever worked with Virtual Machines (VM) hosted on a VM Server, you might have come across the following situation where the VM itself has not been used for some time and is running very low on resources allocated to the VM. This is noticeable from the initial sluggishness of the VM, while it is getting more CPU cycles and Memory allocated from the VM Server. This process repeats itself until the VM isn't running out of resources anymore, or if the limits imposed on it are reached. I've witnessed some occasions where the server would initially cause timeouts or other MOSS errors because it wasn't running on full throttle yet.

You can use several tricks to get more resources from the VM Server before you start working on the VM:

  1. Open a Remote Desktop session to the VM.
    While building the desktop session, the VM needs more resources. This will boost the resource allocation from 4 MHz CPU cycles and 20 MB Memory used to, say, 400 MHz CPU and 500 MB allocated memory, which is not bad.
  2. A reboot of the VM.
    This will get you even more resources. Needless to say, this can only be used on VM's which aren't serving customers.
  3. 100.000!
    If you're working with a Remote Desktop session, you can also just start Calculator, switch to Scientific Mode (View > Scientific) and let the VM calculate the factorial of 100.000 (or 100,000 if you're from the US). Depending on the VM and VM Server, this will take under a minute, during which the CPU Usage will be 100%. This causes the VM Server to allocate more CPU cycles to the VM, although the memory usage won't be as high as the first two tricks.

You can use all kinds of actions besides these tricks to get more resources, but these will do the trick every time.

Labels: ,


Thursday, August 09, 2007

MOSS with SSL Wildcard Certificates and Host Headers

We needed a setup that would work with MOSS combined with Host Headers and SSL. It was using Host Headers or having to go to the Networks Department with a big smile and handing them a RFC for 150+ IP adresses...

Just using Host Headers with IIS is not a problem. Using Host Headers combined with SSL and MOSS is tricky at best. Joel has a good place to start. Combined with the article from Adrian Spear and a bit of testing for the missing MOSS piece of the puzzle we arrived at a working solution.

We have taken the following approach. First we get a list of site ID's and put them aside for later use. We install the Wildcard certificate on the websites, temporary disabling them. Then we tell IIS to set the Host Header on the SSL-enabled websites. As a last step we let MOSS know the Web Applications are using SSL:

Requirements

Installation

  1. Get a list of site ID's:
    cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs enum w3svc /p
  2. Install the WildCard certificate on the IIS Websites.
    Only the first website will keep on running, the rest of the modified websites will stop. This is due to conflicting settings. This will be resolved in the following step.
  3. Set SecureBindings for all websites running SSL, using the following statement, for each website:
    cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set /w3svc/<Site ID>/SecureBindings ":443:<Host Header>"

    for example:
    cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set /w3svc/1073495765/SecureBindings ":443:www.domain.com"

    (Get the site ID's from the output of Step 1 and match the site ID with the site Host Header. This can be found in IIS Mananager)
  4. Perform an IISreset to start all the websites again
  5. Now, go to Central Administration > Operations > Alternate Access Mappings > Edit Public Zone URLs and change all SSL-enabled sites from http:// to https://. The precise amount of editing depends on your AAM settings used.
  6. Backup your metabase!


I'm not entirely sure about the step 5, as there are other viable scenario's. On our six MOSS Farms hosting each more than 10 Web Applications it worked like a charm however.

If you want to know more about WildCard SSL Certificates and Host Headers in IIS 6.0, an article from Chris Adams is a good introduction on the subject matter.

Labels:


Friday, July 13, 2007

How to Succesfully Expand a vhd

At the time I was deploying a complex MOSS testing environment which consisted of the following:

...when I ran out of disc space on the member servers. I had used the default 16GB disc space when creating the virtual harddiscs (vhd's).

It took me a bit of searching, but I was able to increase the discs from 16 to 40GB. I used the following procedure:

  1. Download and use VhdResize-1.0.34.zip at http://vmtoolkit.com/files/default.aspx (great tool guys!) to increase the size from the *.vhd file.
  2. And now for the tricky part. Use a bootdisc to boot your Virtual Machine. Do not boot from your current OS, because you will not be able to expand the boot partition to use the new disc size. I used a CD built with BartPE's excellent Boot disc (http://www.nu2.nu/pebuilder/).
    The bootdisc needs to have access to the NTFS File System situated on your *.vhd and it has to contain diskpart.exe (http://support.microsoft.com/kb/325590). This is the tool we will be using to extend the partition.
  3. After booting, use diskpart.exe to select the volume and finish by extending it. For the syntax, see http://support.microsoft.com/kb/325590.
  4. Now boot into your default OS.

That's it!

Labels: ,


Thursday, March 29, 2007

What a wonderful world

We live in interesting times.

I haven't posted for quite a while because of job and daddy-related responsibilities. Having two kids glee of joy at the prospect of embroidering with their mother is, well, a bit out of my world at times. But I love them still.
As of late, things are clearing up, giving me the possibility to start blogging again.

There are a lot of interesting things going on, like the Windows Home Server Beta, Team Foundation Server and ofcourse MOSS.


Windows Home Server.
This is a very interesting development, as Windows Home Server (WHS) will give your family at home the opportunity to have all your pictures, documents online, as well as access to all your home computers while you are away. How about backups of the laptop of your wife? Included. Central Printing facilities? Included. Can I go wild and create all kinds of websites? Yes you can. The base is good old Windows 2003 Server, which provides the platform you can build on. Think of the endless possibilities of Home Server combined with Visual Studio Express!

In a Proof Of Concept I have added WSS2.0 to Home Server. (I'll provide detailed instructions of how to accomplish soon.)

The goal of this exercise was to be able to add WSS to Home Server without too much tinkering, like adding a second website on a different port, or to go wild with host header mappings. This is why I have chosen WSS2.0 and not WSS3.0, because WSS2.0 still provides the possibility to exclude a part of the website. And we want to be able use the default Home Server website. Perhaps I'll look at the feasibility of WSS3.0 combined with WHS later.

Team Foundation Server
We'll start using Team Foundation Server (TFS) in a couple of weeks. It will be nice to see how this integrates and changes our way of working together. The approach I have chosen is a minimalistic one: we'll provide an environment with just the basics and work from there. I'll try to get a movement going of how we can improve things, adjust processes, use TFS to enhance the visibility of the things we do and what we accomplish. I try to keep an open mind for now and see where this approach takes us.

MOSS
In a couple of weeks our first -of three- MOSS projects will really take off.
Later more...

Labels: , ,


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]