Get SharePoint Designer 2007 for Free

Today I was looking to download a trial version of SharePoint Designer 2007 to test it with a project I’ve under development and I discovered that since 31/03/2009 Microsoft is ‘giving it away’ for free.

Here’s the link where you can download it: http://www.microsoft.com/downloads/details.aspx?familyid=BAA3AD86-BFC1-4BD4-9812-D9E710D44F42&displaylang=en

I tried to quickly install it to verify, and I cannot see any reminder to an evaluation version or expiration period, the license agreement specifies ‘Retail License’ too.

Related Content


NHibernate: how to give a name to your Primary Key using SchemaExport (in SQL Server/ SQL Express)

If in your project, you let NHibernate generate the database from the information you provide with the schema mappings (a thing extremely useful, especially for testing cause you can build up the database in engines like SQLite)...

mmm...where did I heard something similar ?!?!? ah yes...in my previous post: NHibernate: how to control Delete Rule and Update Rule in a foreign key when using SchemaExport

This time I want to focus on giving a proper name to your Primary Key in the table (which is usually auto-generated in NHibernate 1.2, have to check in 2.0+), this can be useful when you need to generate a database dynamically and then you need to build up update or synchronize it with successive versions using SQL scripts.

NHibernate doesn’t offer (yet) a facility to give a name to your primary key (nothing that I found however, I admit I’m not an NHibernate guru, but an average user). You can use an approach similar to that exposed in my previous post.

In this example I’m using SQL Server/SQL Express as my database engine and the queries are built with that in mind.

   1: <?xml version="1.0" encoding="utf-8" ?>

Resharper 4.5 beta - give it a try!

I’m a fan of Resharper, I think it’s one of the best (if not THE best) Visual Studio add-in you can find around; but it always have had stability problems (mitigated by a wrapper used to launch Visual Studio, see my previous post: Resharper and the OutOfMemoryException) and it tended to slow down the whole IDE when you were working on medium to large projects (let’s say 30+ projects in a solution) and especially if you have to deal with old style web projects (it was a little better with web application projects).

Thus I got the habit of keeping it disabled and enable it only when I have to do some refactoring to the project I’m working on, anyway this was you loose a lot of the great features Resharper offer to you.

Usually I do not install beta version of tools in my main production environment; but after having heard some enthusiastic feedback from a couple of friends (Alkampfer's Place and moleskine di un programmatore), I decided to give it a try.

I can say this new version is a big improvement in speed and responsiveness of the whole environment, you do not have to wait anymore that Resharper caches all the assemblies in the project so you can start working immediately after opening the solution while it continues to load and parse assemblies in background. It’s generally faster in opening new code files and analyze them, that can be seen especially when working with aspx pages or xaml files.

It also seems to use less memory and be more stable than the previous version: opening a very big solution with mixed language (C#, VB.net) and very different kinds of projects (library, Silverlight, WPF...) didn’t resulted in the usual OutOfMemoryException without using the wrapper.

Technorati Tags:

Related Content


VS2008 SP1 + PowerCommands = Toolbox AddItems...Crash!

And it happened to me too...I was trying to add some new controls to my toolbox (the Silverlight toolkit in the specific) and I got that nasty IDE crash, it all shut down without notice nor errors.

I started to look around in the Internet to see if some else had the same problem with a solution for it and I came to this forum post, which states it clearly a conflict between PowerCommands and VS2008 SP1:

Xaml Editor, Class Explorer Crashes after Visual Studio 2008 SP1

They propose two solutions:

1- a workaround from Microsoft, that I report here:

Through Microsoft's help they came up with a work around which is a simple modification to the devenv.exe.config file.
This will exist in (64 bit systems) C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE
Or (32 bit systems) C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
Add this XML token to the dependentAseembly list. They had me add it after the office one, but im not sure if that matters.

<dependentAssembly> 

C#/VB interop and reference problems in Visual Studio 2003 (BC30007)

You never end learning something new, I taught I have seen enough when dealing with solutions with C# and VB.NET mixed projects, today working on a legacy system I found the following scenario:

Project A - VB project, defines a set of base classes

Project B - C# project, uses the base classes and defines a set of controls

Project C - VB project, main application module, uses both classes defined in project A and B

All the reference were made to the corresponding projects selecting the projects via the standard Visual Studio add reference dialog box.

When we compiled the solution the compiler kept telling us:

BC30007: Reference required to assembly ‘Project A’ containing the base class ‘XXX’. Add one to your project.

The funny thing is that the reference is already there; I tried to build a test ‘Project C’ project using C# instead of VB and it all worked well...this seems to me like a bug in the compiler.

Surfing around I wasn’t able to find a lot of info but a single reply to a post that says something like:

This is a known bug in the VB compiler -- there's a problem whereby the
compiler doesn't recognize that the "Project 1" that "Project 2" refers
to is the same "Project 1" that you've got open in the IDE. The
workaround is to do this: delete the references from Project 3 and
Project 4 to Project 4 and re-add them as file references. That is,
instead of making a reference from the Project tab of the references
dialog, go the .NET tab and Browse for the actual DLL built by Project
1. This should make the error go away and workaround the problem until
there is a fixed compiler.’

And actually I cannot remind the source nor the author, I’m sorry I cannot give the credits for this but I copied and paste the text in a blob document while I was gathering information and I wasn’t able to find it again...but I tried to use the workaround he proposed and it worked.

But making a reference to the file instead to the project you have to be very careful about the compilation order of the assemblies, especially if you change something in the ‘Project A’ assembly.

To completely fix the situation and let Visual Studio to handle the right compilation order for projects you have to follow a series of steps:

  1. Go to ‘Project A’ properties and make sure that each configuration build places the final output files in the same directory (this is important cause we make reference to the compiled assembly instead of the project)
    CSharpVBInterop1
  2. Then we have to look for any reference made to ‘Project A’ inside the solution and change it to a file reference; point the reference to the compiled assembly inside the project bin folder
  3. To let Visual Studio handle the correct order of projects compilation we need to explicitly inform the project that it depends from another project in the solution. So after changing the reference right click on the project and from the context menu select ‘Project dependencies...’
    CSharpVBInterop2
    In this dialog box place a check-mark on your ‘Project A’.
    In this way when you recompile the projects or the solution you will always be sure that ‘Project A’ is compiled (or recompiled) before the ones that use it; the right compilation order is respected in the same way as we have used a project reference.

I don’t know if this problem is present in Visual Studio 2005 and 2008, I didn’t had the chance to test it yet; if someone has more information or suggestions about the whole thing, please write a comment here or contact me directly.

Related Content


Windows SharePoint Services - Developing and (Remotely) Debugging a Web Part

Previous articles of this series:

Windows SharePoint Services - first setup

SharePoint Services - setting up a Website with Forms Authentication

There are a lot of tools available to help you build up and deploy new SharePoint solutions, the two biggest are:

Both those tools help you generate a valid Visual Studio 2005/2008 solution to successfully develop and deploy SharePoint extension projects.

But being a newbie in SharePoint and WSS development I believe it’s better to keep things simple and start from the scratch with a very basic project and do everything by hand.

The following links present some very good guides that allow you to develop a Web Part in a workstation machine (WinXP/Vista) without the need of a SharePoint or WSS installed.

Remote WebPart Development for MOSS 2007

Remote Development, Deployment, and Remote Debugging your first SharePoint 2007 Program

How to get Remote Debugging work properly

To develop a Web Part in Visual Studio you basically have to copy all the SharePoint library assembly from the Server machine to the Dev Machine (the one with Visual Studio installed); those files can be found inside the path: “C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\isapi”.

Create the corresponding folder in your dev machine and copy only the files that match the pattern: Microsoft.SharePoint.*.dll.

To allow Visual Studio to correctly resolve the assembly reference if you use the above mentioned tools to generate your projects you have to install those assembly to the GAC too (use the standard gacutil.exe to perform the task).

To keep things simple I’ll skip all the step needed to create setup projects for Web Parts and we do all the steps by hand, as said before almost anything can be automated using STSDEV or VSeWSS.

If you do not have a domain with active directory, but you have access to the WSS machine via VPN make sure to create an account on the server that matches the same username and password you use on your develop machine, it will simplify a bit the deployment of the assemblies to the WSS website directories and it will be very useful to successfully setup remote debugging.

Let’s start by creating a very simple Web Part:

  1. Open Visual Studio 2008.
  2. Create a new C# library project names TestWebPart.
  3. Add a reference to System.Web.dll
  4. (Optional) Add a reference to Microsoft.SharePoint.dll if you plan to use the SharePoint Object Model.
  5. Create a class TestWebPart.cs with the following code:
    public class TestWebPart : WebPart