Visual Studio 2011 – SharePoint developer preview – Screenshot’s for everyone!
Visual Studio 11 Developer Preview is available for you to download for free.
I took the liberty to download it and install it on a new cloudshare environment server and explored the newest version. While doing so I took some screenshots to share with you..
They seem very promising!
the installation took some time, but I received not a single error or warning message during the process.
The package interface has been updated, the 3 tabs design, advanced and manifest are located at the top of the form.
The content type designer allows you to select and order the site columns that are available, the grid view has smart intellisense so it filters the available fields based on what you’ve provided in the textbox.
The package option has been switched to an new publish option.
With this dialog you can decide if you want to publish your sandboxed solution to a SharePoint (online) environment or a specific folder, what in my opinion means you are packaging the solution into a single wsp file.
The MSDN library has been updated in a topic called
“What's New SharePoint Development in Visual Studio 11 Developer Preview”
Hope you like it!
Tom
SharePoint 2010 – The Performance Guide – Part 3 – SharePoint out of the box performance boosters
- Why is performance important?
- SharePoint out of the box performance boosters
- Track bottlenecks while using the SharePoint Developer Dashboard
- Track bottlenecks while using firebug
- Track bottlenecks while using Ants Performance Profiler
- SharePoint API considerations and best practices ....
Caching
In my opinion on of the most important tools in a performance improver toolbox is the proper use of caching.
Caching is a technique that allows us to store a specific result in memory. This allows us to retrieve the same information very quickly from memory as soon as it is retrieved from the first time. A huge performance improvement can be archived when the application doesn’t have to access the ‘slow"'’ web service or calculation each time an end users performs an action.
There is however a very important downside with caching that could have a huge impact on your application. As soon as you cache a certain result, it is not ‘up-to-date’ anymore.
Browser caching
Browser caching is always available but the browser needs direction on what files are the same and what files need to be retrieved from the site again. The files are stored in a specific folder in your OS. For Internet Explorer, these hidden files are stored in:
C:\Users\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files\
When the browser performs the request to the website, normally it receives a 200 OK response code and the Last-Modified value in the header will be used by the browser in order to decide if a new version of the file needs to be retrieved from the specific website.
When the site returns instead of a 200 OK response code a 304 not-modified response, it means that the file in the browser cache can be reused.
A variety of cache related headers are superior to the Last-Modified header because they can do more than merely provide a clue about the version of a resource…
Expires Header can be used to specify static content like images to ‘never expire’, but for dynamic content it is better to make use of the Cache-Control Header like ‘Expires: Fri, 20 Jan 2012 01:00:00 GMT’ or ‘max-age=28800’. This latest example states that the object is stale after 8 hours in the browser cache.
How does this affect my SharePoint solution?
Well SharePoint sets these Cache-Control headers for us, the following table explains what values are set.
style library has the value private,max-age=0, this means do not cache
_layouts folder has the value max-age=31536000, this means cache 1 year
Blob caching
Blob caching is a setting you enable in the web.config file of your web application. As soon as this configuration option is enabled it modifies the max-age value to the max-age attribute of each file with the extension described in the configuration element.
<BlobCache location="C:\biwug\blobcache" path="\.(gif|jpg|jpeg|jpe|jfif|…|wma|wmv)$" maxSize="10" enabled="true" max-age="86400" />
Information: http://technet.microsoft.com/en-us/library/cc770229.aspx
flush cache:http://technet.microsoft.com/en-us/library/gg277249.aspx
Internals:http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/
ASP.NET Session State
ASP.NET Session state provides a place to store values that will persist across page requests. Values stored in Session are stored on the server and will remain in memory until they are explicitly removed or until the Session expires.
The combination of using ASP.NET Session State with a SQL server to store the data in is a perfect scenario whenever you are working in a farm with multiple WFE’s and you want to store data in the Session object of the Page and don’t have to worry about the load balancer.
More details concerning the SharePoint 2010 Session State Service can be found here:
http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx
Page output cache profiles caching
Publishing feature infrastructure and publishing feature are required on your site collection
The page output cache stores the rendered output of a page. It also stores different versions of the cached page, based on the permissions of the users who are requesting the page. Page output cache settings can be configured at the site collection level, at the site level, and for page layouts. By default, the page output cache is turned off.
http://shannonbray.wordpress.com/2010/04/04/digging-deeper-into-the-2010-caching-options-part-2/
Object cache
Publishing feature infrastructure and publishing feature are required on your site collection
In SharePoint Server 2010 you’ve got the option to use Object Caching, this technology allows us to cache specific page items. This is very useful while using Cross-List data queries.
Working with large lists , Resource Throttling
A new feature in SharePoint Server 2010, resource throttling provides options for monitoring and throttling server resources and large lists for Web applications. This enables you to control resource utilization during peak usage and prevent user activity from negatively affecting server performance.
SharePoint 2010 – The Performance Guide – Part 3 – Track bottlenecks while using the SharePoint Developer Dashboard
- Why is performance important?
- SharePoint out of the box performance boosters
- Track bottlenecks while using the SharePoint Developer Dashboard
- Track bottlenecks while using firebug
- Track bottlenecks while using Ants Performance Profiler
- SharePoint API considerations and best practices ....
Track bottlenecks while using the SharePoint Developer Dashboard ?
As SharePoint developers we aren’t only responsible for creating the functionality that is required, but we are also responsible for the overall quality of the solution we build. This means an ergonomic fluent user interface, code that is suitable for changes and in my opinion one of the most important aspects, a good performance. Most of these topics are described in white papers, best practices and millions of books and blog posts… but wouldn’t it be a pleasure if it was already in the platform? Yes, indeed!
SPMonitoredScope
That is why the SharePoint team provided us with the developer dashboard and the SPMonitoredScope class! I’ve already written a blog post concerning the how and the what of the developer dashboard here: http://bit.ly/yKmBSR
Custom master page
When you are using a custom master page and not the out-of-the-box v4 master page the controls that are rendering the dashboard aren’t available. But it is allowed to provide these controls in your custom master page in order to benefit from the functionality it contains. Remember to specify the SharePoint webcontrols assembly in order to use the DeveloperDashboardLauncher and the DeveloperDashboard controls. In combination with the SPSecurityTrimmedControl you can enable this control only for members of a specific SharePoint group.
MSDN: Implementing and using the Developer Dashboard: http://msdn.microsoft.com/en-us/library/ff512745.aspx
Developer Dashboard CSS
Most times the branding is not the default css, so when you open the develop dashboard the formatting is not as readable as you would want to.
Add these CSS classes to your css file in order to format the developer dashboard.
.ms-developerdashboard > table
{
vertical-align: top;
width: 100%;
border: 2px solid;
float: left;
background-repeat: repeat-x;
background-color: white; /* [RecolorImage(themeColor:"Dark2")] */
background-image: url("/_layouts/images/settingsgraphic.jpg");
white-space: nowrap;
padding: 0;
margin: 0;
}
.ms-developerdashboard > table tr td
{
vertical-align: top;
background-color: transparent;
font-family: tahoma;
font-size: 8pt;
text-align: left;
}
.ms-developerdashboard > table th
{
background: #ebf3ff url("/_layouts/images/bgximg.png") repeat-x -0px -381px;
border: 1px solid #add1ff;
width: 100%;
vertical-align: top;
font-size: 8pt;
font-weight: bold;
color: #606060;
}
.ms-developerdashboardnav > ul
{
margin-top: 0px;
white-space: nowrap;
}
.ms-developerdashboardnav ul li
{
list-style-type: disc;
line-height: 14px;
margin-left: 25px;
}
.ms-developerdashboardnav ul li a
{
font-size: 8pt;
color: #6699CC;
}
Anonymous access.
Waldek Mastykarz has written an excellent blogpost about this:
http://blog.mastykarz.nl/enable-developer-dashboard-anonymous-users/
Hope it helps
Tom
Installing nopCommerce step by step
Nopcommerce is a very popular (23642 downloads) opensource asp.net shopping application platform. Even if you are not interested in a webshop solution it is a very good reference project for your custom asp.net application.
from http://www.nopcommerce.com: nopCommerce is a fully customizable shopping cart. It's stable and highly usable. nopCommerce is an open source e-commerce solution that is ASP.NET 4.0 based with a MS SQL 2005 (or higher) backend database. Our easy-to-use shopping cart solution is uniquely suited for merchants that have outgrown existing systems, and may be hosted with your current web host or our hosting partners. It has everything you need to get started in selling physical and digital goods over the internet.
Before we start I want to mention how easy it was to install this application on my dev environment. My first impression about a custom solution is based on how easy and professional the installation is done. In order to get the installation wizard working I had some minor options I needed to tweak on my development instance and I would like to share them with you. If you see room for improvement don't hesitate to post a comment!!!
- Download the nopcommerce (no source code) rar file from codeplex from here:
http://nopcommerce.codeplex.com/releases/ - Create a new Domain Service Account called nopcommerceServiceAccount, this account will be used as service account for the application pool in IIS.
- Open run and type inetmgr
- Create a new website in IIS
- Right click the website node and create a new site
- Open the application pool node and right click the application cool that is created for your new site
- change the application pool identity to a new created domain account that is created specific for your shop
- domain\nopcommerceServiceAccount
- click on the Advanced settings
- Verify that the .NET Framework Version is set to v4.0

- Extract the content of the nopCommerce(nocode).rar file into the c:\inetpub\wwwroot\shop folder
- Right click the shop folder, open properties and give your application pool identity (nopcommerceServiceAccount) the following permissions :
- Read & Execute
- Write
- Modify
- Or give your secret account full control
- Open SQL Server management studio
- Create a new SQL Database on your database server named (servername_nopcommerce)
- Give your application pool identity the correct permissions (read and write is sufficient I think)
- Open the website in your browser and navigate towards the following url: http://server/install
- Provide the requested information
- Admin user mail
- Admin user password
- Checkout create sample data
- Check use an existing SQL server database
- Provide the correct connectionstring settings like servername and database name
- Click Install (see possible messages below)
- Behold your nopcommerce site operational
- Specific configuration
HTTP Error 500.19 - Internal Server Error".
This issue occurred when the application pool identity didn't have permissions towards the inetpub/wwwroot folder where the nopcommerce files were copied. (see 3.6)
Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.
This issue occurred when the application pool .NET Framework Version was note set to v4.0 (see 3.4)
Access to the path 'C:\inetpub\wwwroot\shop\Plugins\bin' is denied.
This issue occurred when the application pool identity didn't have the writepermissions towards the inetpub/wwwroot folder where the nopcommerce files were copied. (see 3.6)
Setup failed: System.Exception: Database does not exist or you don't have permissions to connect to it at Nop.Web.Controllers.InstallController.Index(InstallModel model) in f:\Own\NopCommerce\Sources\src\Presentation\Nop.Web\Controllers\InstallController.cs:line 406
This issue occurred when the SQL database that you provided was not created yet (see 4)
Nopcommerce projects are not loaded in Visual Studio 2010
ASP.NET MVC 3 Tools Update is required:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1491#overview.
Hope it helps!
Tom
SharePoint 2010 – The Performance Guide – Part 5 – Track bottlenecks while using Ants Performance Profiler
- Why is performance important?
- SharePoint out of the box performance boosters
- Track bottlenecks while using the SharePoint Developer Dashboard
- Track bottlenecks while using firebug
- Track bottlenecks while using Ants Performance Profiler
- SharePoint API considerations and best practices
....
Track bottlenecks while using Ants Performance Profiler?
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/download-b
This is the difficult part, because
ANTS Performance Profiler does not support SharePoint 2010!
A workaround :
- Open the IIS applicationHost configuration file. By default, this is located in C:\Windows\system32\inetsrv\config\applicationHost.config
- In the <globalModules> element, find the SharePoint14Module and add in the preCondition value before SharePoint Central Administration the following value: RGTestAppPool;
This sets a precondition allowing ANTS Performance Profiler to load the SharePoint server DLL. ANTS Performance Profiler will now be able to profile code on the SharePoint server.
From Profiling SharePoint 2010
Froml Profiling SharePoint
SharePoint 2010 – The Performance Guide – Part 1 – Why is performance important?
- Why is performance important?
- SharePoint out of the box performance boosters
- Track bottlenecks while using the SharePoint Developer Dashboard
- Track bottlenecks while using firebug
- Track bottlenecks while using Ants Performance Profiler
- SharePoint API considerations and best practices
....
Why is performance important?
The success of the web performance movement shows that there is increasing interest and value in fast websites. That faster websites lead to more revenue and reduced costs is a well proven fact today. So being exceptionally fast is becoming the dogma for developing (SharePoint) web applications and solutions.
As we want to be exceptionally fast this means that our pages have to load in less than two seconds (based on forrester research) to exceed user expectations. If we want to apply this rule of thumb, we need to ask ourselves:
How can we improve the performance of our SharePoint sites?
A blog post called "The Importance of Website Performance" by Louis Lazaris contains a very nice summary of very good articles about why web site speed matters:
- Speed Is A Killer – Why Decreasing Page Load Time Can Drastically Increase Conversions
Sherice Jacob, KISSmetrics(May 10, 2011) - Page load time – the online business killer
David Mercer, Business Insider (May 24, 2011) - Google’s Marissa Mayer: Speed wins
Dan Farber, ZDNet(November 9, 2006) - Page Load Times vs Conversion Rates
Gabriel Svennerberg, In usability we trust(December 18, 2008) - Speed Matters
Jake Brutlag, Google Research Blog(June 23, 2009)
I hope this series can assist you while improving the performance of your SharePoint solutions!
Idea's and comment are more than welcome,
Hope it helps!
Tom
BIWUG on SharePoint 2010 Multilingual Solutions (Variations) Deep Dive
Pascal Benois, SharePoint Premier Field Engineer at Microsoft, will explain more than just variations. This session will cover level 400 topics on SharePoint 2010 Variations. The following topics will be covered: concepts and internals of variations (page vs. site variations), concepts and internals of configuration, variation Timer Jobs internals, different flavors of variations (automatic, manual, different site templates, same site templates, …), the “famous relationships list”, stsadm and PowerShell commands which assist variations, changes between 2007 and 2010.
Hope to see you there
Microsoft
Corporate Village - Bayreuth Building
Leonardo Da Vincilaan 3
Zaventem , 1935

BIWUG on SharePoint 2010 Multilingual User Interface (MUI) Deep dive
18:00-18:30 – Welcome and snacks
18:30-19:30 – SharePoint MUI – Part I
19:30-19:45 – Break
19:45:20:45 – SharePoint MUI – Part II
20:45 – … SharePint!
Location: Blarenberglaan 3B 2800 Mechelen
REGISTER YOUR FREE SEAT HERE (http://biwug3011.eventbrite.com/)

BIWUG on SharePoint Governance and the past, the present and the future
Agenda
18:00-19:00 Welcome with snacks
19:00-19:15 Introduction
19:15-20:15 SharePoint Governance (Speaker Patrick Sledz): Stop thinking about features features features when talking about governance.
When designing governance for a SharePoint implementation, a lot (not to say all) energy and words go out to technical stuff, SLA's and not to the things that define the business value. And the business value is not only a perfect technically tuned and performant SharePoint farm (if that even exists).
20:15-20:30 Break
20:30-21:00 The past, present and the future of BIWUG
During a seemingly quiet period, a lot has been going on behind the scenes. The result of all this secrecy will be revealed in the second part of the evening.
21:00-21:30 SharePint!
Of course there is also an opportunity to network, socialize and discuss the matter explained the previous hours... therefore SharePint!
Location: Microsoft Belgium Corporate Village - Bayreuth Building, Leonardo Da Vincilaan 3, 1935 Zaventem

Windows PowerShell Command Builder – Silverlight Tool for SharePoint Administrators
This SilverLight tool guides you in an interactive WYSIWYG way while you are creating your SharePoint PowerShell commands.
This little gem could be useful for everyone, but it is a powerful learning tool for those who are new, interested and motivated to learn the power of PowerShell in combination with SharePoint.
You can use the silverlight application from HERE
From microsoft.com:
The Windows PowerShell Command Builder enables IT professionals and power users to visually assemble commands related to SharePoint 2010 Products and Office 365 on a Design Surface in a browser and take those commands to their respective products. The Windows PowerShell Command Builder provides an intelligent user experience. After you drag a verb or noun object on the Design Surface, the interface will hide either the verbs or nouns that are not associated with the verb or noun placed on the Design Surface. After you construct a command, you can copy the command to Windows PowerShell script, the SharePoint 2010 Management Shell, or other desired location to be saved or executed.
Getting started guide:
http://www.microsoft.com/download/en/details.aspx?id=27588
TIP: You can install it on your desktop (right-mous-click on the application).

