The way i have been working with Umbraco in the past is with webmatrix. Everything was very basic. Downloaded the latest zipped version from Our Umbraco, unzipped, rename unzipped folder to project name, right click on said folder and Open as website with Microsoft Webmatrix. I have an external MSSQL database but everything else was kind of "out of the box".
Why Visual Studio?
I never got Webmatrix to work well with NuGet. Either it just didn't fire up or it slowed down Webmatrix so bad i couldn't work with it. As more and more Umbraco packages get NuGet support it really would streamline a lot of the work process to get it to work. So I've been trying to switch over to Visual Studio and it feels promising. This is how to get my setup:
There are a lot of exciting things happening in Visual Studio for us Front end developers right now. ASP.NET 5 and MVC6 will have new folder structure where using tools like Gulp and Grunt have been taken in to account. So what we need to do is download the Visual Studio 2015 preview version that matches the latest Web Essentials tools; currently CTP 6.
This may be obsolete in a couple of months (when the final version of Visual Studio 2015 is released) but currently Web Essentials has to be locked to the specific release preview since the APIs in Visual Studio are prone to change.
After downloading and installing VS we need NuGet. Just go to "Tools" -> "Extensions and Updates" and search for "NuGet Package Manager" and install it.
Do the same thing for Web Essentials. If you downloaded and installed the right version of Visual Studio it will appear there too.
Web Site vs. Web Application
A Web Site Project works like PHP or classic ASP in that it compiles your C# and Razor on the fly. A Web Application Project compiles everything down to a DLL when you build your project but generates some more files and folders. Umbraco works on both so we have to make a choice here. Since Tim Geyssens uses Web Application in his Umbraco.tv videos i'm going with that too until i encounter any drawbacks or advantages with any of them.
Choose the Empty project template. Since Unit testing and cloud hosting is out of scope for this bog post we uncheck them to. When you've created your package you can remove the web.config. Umbraco comes with its own config files and will be generated in the next step.
NuGet is a package manager like NPM or Composer. You can search for packages on nuget.org or Tools -> NuGet Package Manager -> Manage NuGet Packages.... But since we already know what we want (We want the latest version of Umbraco); go to Tools -> NuGet Package Manager -> Package Manager Console and paste in the following.
If this isn't the first time working with Umbraco you'll notice that there are some folders missing in the solution explorer. They need to be added to the project. A click on the don't lie to me-button (see image) should reveal them. Then just right click the spooky ghost files and folders and choose include in project.
I'm using Bitbucket as code repository. It's free, awesome and you can use both Git and Mercurial. @peteduncanson has written a pretty great hgignore file. Should be easy to convert to a gitignore if you use that. To install; run:
From the package manager console.
It's time for launch. One thing i have noticed with my very limited experience in VS is that building the Umbraco application is slooow. So, if you don't need to debug anything hit
CTRL + F5 instead of a simple
F5. This will run the application without the debugger. Much faster!
If you want to try out a new version of Umbraco or something it can be ok to just hit
install after the form in the first step. In all other cases; hit
Customize. This lets us set up a custom SQL server and prevent the default starter kit Fanoe from installing.
By default Umbraco installs on SQL CE. I have experienced a lot of problems with SQLCE so i would highly recommend download and install SQL Server Express, it's free. Go to downloadsqlserverexpress.com!
And Fanoe is great in every way but you should never use it as a boilerplate start. Get inspired by it instead. The best thing about Umbraco is that you have total control over the markup, don't waste that privilege :P.
We haven't touched upon Web Essentials yet. Will be covering that in a follow up post.
Update: The follow up post is called "Visual Studio and the front end"