My good friend and colleague Anders Dissing that has taken over the SharePoint Manager project has now released a SharePoint Manager 2010 version on codeplex!
Anders blog on: SharePoint Manager 2010 Release
Download here!
Doing SharePoint stuff
My good friend and colleague Anders Dissing that has taken over the SharePoint Manager project has now released a SharePoint Manager 2010 version on codeplex!
Anders blog on: SharePoint Manager 2010 Release
Download here!
A lot of people at the SPC2009 conference asked me about the future of WSPBuilder. Facts are that SharePoint 2010 is under way and the new SharePoint tools for Visual Studio 2010 are going to replace VSeWSS.
Here some conclusions from the SPC2009 conference.
This means that all the current solutions out there for SharePoint 2007 will still need to depend on a 3rd party tool to get the job done.
Regarding WSPBuilder, a new version will be release to support the new possibilities in the WSP package for SharePoint 2010. The new version will still provide support for SharePoint 2007 packages, so bug fixes and added functionality will also be available for old 2007 projects. I plan for that WSPBuilder Extensions will support 3 versions of Visual Studio 2005 / 2008 / 2010 in one MSI packaged.
So WSPBuilder will still be around for a couple more years to support SharePoint 2007. Only time will tell if it will be popular for SharePoint 2010.
Tobias Zimmergren has just released this awesome SharePoint Discussion Forum for SharePoint. Check it out!
From my presentation of Building WSP Packages Efficiently (schedule), the PowerPoint presentation and Visual Studio Project can be found below.
/keutmann
Some new updates have been made for WSPBuilder...
The “Reference” folder
One of the new features of WSPBuilder, is the possiblility to add assemblies to the wsp package without getting them reflected upon. This means that there will not be created any safecontrols tags or permission policies for the assemblies. This will improve wsp build speed greatly for very large assemblies. So when you have some 3rd party assemblies that you would like to include into your wsp package, just add the 3rd party assemblies to a “Reference” folder under the GAC folder or 80\bin folder.
| Project folder |
| ..\MyProject ....\GAC ......\Reference ........SomeVeryLarge.DLL ......MyOwnSmall.DLL ....\. |
As showing in the folder structure above, the SomeVeryLarge.DLL is located under the Reference folder and will therefore be included into the wsp package (and manifest.xml) but not reflected upon. This will greatly reduce the time needed to build the wsp package. However if there are UI controls in the SomeVeryLarge.DLL that will be used, you are forced to add it directly under GAC or 80\bin so the SafeControls tags can be created and added to the web.config otherwise you will get a security error. The MyOwnSmall.DLL is located directly under the GAC folder and therefore is reflected upon as normal.
Warning: There will not be created any security policies for the DLL’s in the “80\bin\Reference” folder, so you will need to manually change the policy settings in the SharePoint configuration files to allow the reference assemblies to be used from the 80\bin folder. When using the “GAC\Reference” folder, the assembly will be deployed to the Global Assembly Cache and therefore automatically be fully trusted.
Recycle the Windows SharePoint Services Timer
A new function in the WSPBuilder Visual Studio context menu have been added. This will recycle the Windows SharePoint Services Timer. (OWSTimer service). This function is intented to be used when developing SPTimerJobs, so you quicly can redeploy to GAC and recycle the Timer service from Visual Studio when testing.
Manually modifing the Manifest.xml
I had some request about being able to modify the manifest.xml and DDF file before building the wsp package. But the idea of WSPBuilder is that this should not be necessary. You should be able to do everything you need by use of the folder structure and wspbuilder.config file. But maybe I have missed something, so I would to hear from you if you have any case where you need to modify the manifest.xml file. Please e-mail me on carsten@keutmann.dk
/keutmann
Bjørn Furuknap has done a great video on how to get starting with WSPBuilder Extensions. In the demo he shows how to replace the Cablib.dll file with a 32 bit version. This is because of a bug in the installer installing the wrong version. However now it has been fixed and it's no longer necessary to replace the file.. New version here WSPBuilder.
Bjørn Furuknap WSPBuilder demo...
http://www.youtube.com/watch?v=ljKnLllZbxU
/Cheers
I updated my Windows Server 2003 running on a VMware image with the lasted April 2009 updates from Microsoft this morning. The result was that none of my SharePoint sites worked afterwards. The solution for me and one of my colleagues turns out to be this old known issue
http://wcornwill.wordpress.com/2006/06/06/mapping-host-headers-causes-looping-windows-authentication/
and
http://www.sharepointblogs.com/george/archive/2009/04/16/error-401-connecting-to-local-iis-website-after-3-credential-prompts.aspx
I would only recommend to disable the Loopback checking for developing environments.
Disable Loopback Checking
Over the years of programming, I have gone from a simple spaghetti developer to an object oriented, method mineralized, property loving, defensive coding and structure focused (spaghetti) developer. So what is the difference? When I think about it, my code may look like a spaghetti program today, for the untrained eye that is, because of object inheritance, events, properties and so forth. But it's much better organized than it was just 20 years ago. The big advantage is that it is much easier to spot and avoid errors than in the good old spaghetti programming days. But I still need to avoid programmatic and logic errors, therefore I follow these 10 basic commandments in writing code.
You will find some of the commandments more relevant than others but they all still holds an important message.
Defensive programming (link)
When using a defensive programming strategy and following the commandments I tend to think what can go wrong in my code and how to prevent it from doing so or simply handling it. This turns into rock solid applications that help me sleep better at night. The effort required is actually less than that of the ordinary "spaghetti code", because you don't spend the time constantly debugging your code in the end when the users keeps coming back with new errors that they have found.
Three strikes and you're program is out.
In the beginning when a user first starts to use a program, they have the stomach for three errors before they tend to give up on it and look for another solution. Therefore it's very important that the users are not presented with the errors directly in the face every time something goes wrong. Fallback gracefully when an error occurs is very important so the users don't feel abandoned.
Detailed description of the commandments.
This more or less concludes my 10 commandments. Read it, learn from it and hopefully improve on it.