Attemting to install Umbraco from github (ver 7.2 master) and run in visual studio 2013 express, but can't get the dang thing to work. Instructions say to run build/build.bat, but when running that, it says that one package can't be found. Visual studio closes with "program has stoppped" type error. Does this solution need to run in the full version of Visual Studio 2013? Any help and advice would be great. Thanks.
Umbraco from the GitHub account is the source code, so you can contribute by helping resolve some bugs, by creating pull-request. If you want to install Umbraco you have some difference option.
Wow. I'm impressed with the quick response. Thanks. I've used VS2013 nuget package from a blank project for now.
To be frank, I'm still weighing up different options for CMS. We started off using wordpress which is great, but doesn't integrate well with our existing Microsoft stack. I've also been looking at Orchard. I'm a web / dot net developer.
Would it be possible for you to answer a few questions based on our requirements which are:
Must be easy to customise html layouts.
Must be easy to get a list of "posts" and manipulate those posts to display on a single page with links, filters etc.
Must have good SEO functionality (we've used yeost on wordpress before and it was brilliant)
Ideally like to be able to step through code is VS.
Must be easy to write server side and client side unit tests
Are those things easily achievable using umbraco? What is the best source for documentation?
What is the best I'm not really interested in paying for training video's because our budget already has pluralsight and other dot net based classroom lead training, so my boss won't be happy to pay for anything more.
In addition tothewrittendocumentation, you will so be able to find some videos toturials on how to work with Umbraco on Umbraco TV. The video tutorias are showing the basic concepts of working with Umbraco. Some of the videos are free to watch, but other require that you subscribe to Umbraco TV. You can find the plans and prices here: http://umbraco.tv/plans-signup/
But since you dont want to pay for training video's because our budget already has pluralsight and other dot net based classroom lead training, I think that you still should take a look that the Umbraco TV there are some free videos that explains the conecpts of Umbraco very well. You can find the videos about how to edit content in your Umbraco installation here http://umbraco.tv/videos/umbraco-v7/content-editor/, these videos about editing content are free to watch, you will also find free videos about how you setup the backend, with templates stylesheets, and so on here. http://umbraco.tv/videos/umbraco-v7/implementor/ On of the milestones in Umbraco is the concept called document types. On the document types you difine which fields should be editble for the user. If you have a page document type you could for instance have fields for headline, teaser body text and so on, here are the video chapter about document types. http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/document-types/what-is-a-document-type/
Then I will try to answer your specific questions about Umbraco
If you are trying to create a blog and using Umbraco 7 you have some different options, you could create a blog yourself or you could have a look on one of the blog packages for Umbraco.
For the SEO functionality as I said before you have full control over your HTML markup, and which fields should be avaible for the end user in the Umbraco backoffice. Try to see the video chapter about the document type conecpt.http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/document-types/what-is-a-document-type/ There are also some packages that can help you with SEO functionality in Umbraco, one of the packages are SEO Checker from Soeteman Software, http://soetemansoftware.nl/seo-checker the SEO checker helps you find common SEO issues in your Umbraco website such as missing meta tags, broken links etc. SEO checker allows you to fix issues on the page before publishing the page.Every page that has a template assigned can be validated. But the SEO checker package is not free, and require that you buy a license.
Another package that could be handy to know about when you are working with SEO in Umbraco is the 301 URL tracker package, this package helps you to manage URLs within umbraco. It automatically tracks URL changes, for instance when a node is renamed, and makes sure the old URL will redirect to the new location. This is great for SEO and great for people visiting your website via this old URL. Search engines will update the indexed URL and people won't visit the old, broken URL. You can also create your own redirects, based on a simple URL or using a Regex pattern. You can redirect to an existing node or a manually entered URL. This is great for migrating existing indexed URLs to your new website! And the 301 URL tracker package can you find here. http://our.umbraco.org/projects/developer-tools/301-url-tracker and this package is free to use.
For the unit tests question I think that you should have a look at the blogpost from Andy Butland, you can find them here:
I've only just got it installed properly. I had some trouble using Visual Studio 2013 express - complained about not beeing able to find certain .cs files, so had to use Visual studio 2012 but had the same problem, so had to download the "mini profiler" from git and add it in the web folder to get it to work. I couldn't figure out how to use an existing SQL server instance on webmatrix. It would be good if these issues could be sorted out.
I think it would make sense to answer some of your immediate questions directly so that you can get a gauge on where umbraco "sits" in the CMS space. Hopefully then you can make some more informed decisions.
Firstly, I feel it's most import to make it clear that Umbraco is a framework project, the project owners do NOT provide a plethora of core modules desiged to tick as many boxes as possible when you get started. Umbraco does have an extremely well supported plugin (package extensions) architecture, but that architecture can be a boon as well as a huge thorn in your side depending on your needs.
The key thing to bear in mind is if you're happy to build a project for a client where the Umbraco build version largely remains set in stone, you can indeed knock yourself out with third party extensions and add whatever functionality is required to meet your needs. If you have any intention of keeping Umbraco build versions up-to-date you should only be picking plugins that are either highly active or commercial. Sadly there are occasions when bug fix builds can break your packages, but it happens most often when Umbraco jumps major versions and the APIs have changed enough to cause your all important plugins to stop working. Sadly. you can be faced with a long wait before those problems are rectified!
If you prefer to write required functionality yourself, you have the ability to react very quickly to API changes and fix as you upgrade. In regards to third party extensions, many are open source but that isnt necessarily a magic bullet to future proofing them! Be objective and plan carefully what you will write yourself and add in from other suppliers!
The umbraco team do offer two home grown commercial extensions, a forms package and a tool for moving prototypes to staging and live builds of your projects, these are called Umbraco Forms (previously Contour) and Umbraco Courier. Both (now) work well and are well worth adding to your project.
Seriously, don't build from source, use Visual Studio 2013 and download Umbraco 7 from nuGet, you can even use VS2103's "localDB" to completely remove the need for a full commerical database server during development. Avoid SQLCE it has too many limitations.
Here's some answers to your questions...
Must be easy to customise html layouts.
Absolutely, this is one of Umbraco's biggest strengths and currently you can build templates using all current .Net web techs so... WebForms/Mastepages/UserControls, MVC/Razor and XSLT. XSLT is quickly becoming deprecated but can be used as a mixin with Webforms or MVC. Umbraco also has a built templating tech. called Macro's which allow you to build paramterized template objects using either XSLT, UserControls or Razor Partials. All of this provides maximum flexibility to the developer....but do yourself a favour and start with MVC/Razor.
Must be easy to get a list of "posts" and manipulate those posts to display on a single page with links, filters etc.
You have two choices here, build it yourself or load an extension. Explanation above applies.
Must have good SEO functionality (we've used yeost on wordpress before and it was brilliant)
Basic SEO is one of the easiest things to add yourself in Umbraco, the property system you use in Umbraco allows you to add complex datatypes and here you can define just about anything you like, including metadata. Again you can use extensions to fill in any gaps you feel are too much to implement yourself.
Ideally like to be able to step through code is VS.
You would NEVER need do this for the core Umbraco code OR package extensions and you will quickly learn where Umbraco has weaknesses and/or bugs through an active community and learn how best to avoid them in your project.
If you write your own code, you of course can debug this as easily as any .net code and this includes your forms/razor/xslt templates.
Must be easy to write server side and client side unit tests
If you only end up writing template code, preferably via MVC, unit testing is total overkill. You are working generally against a single object which is always IPublishedContent. IPublishedContent exposes your known documents types and properties and it's all so straight forward unit testing it all would be nuts!
If you need to use a lot of the Umbraco APIs and, for example serve Umbraco content to other sources, unit testing is totally possible and can be implemented via a well contstructed MVC project. Other helpers can also be integrated with relative ease, so techs like NHibernate, AutoFac are just two examples that can be integrated added to improve workflow and make a project easier to test in isolation.
In general wiring up any client or server side test is down to you as a developer to decide how best to implement. Umbraco doesnt provide you with the answers on how to achieve it. Although the forums are very helpful and often better than the documentation!
Thanks Martin. This is really good. Have you used Orchard? I'm busy trying to decide between the two. I like the general design of umbraco and I love the quick responses I'm getting. I'll spend the next few days trying out things and making sure I can achieve my requirements using umbraco.
No problem, As a quick summary, the core strengths of Umbraco are...
A very well supported and strong community who are happy to answer your questions quickly (with the exception of Courier and Contour, but bugs fixes come thick and fast because they are commerical projects). Umbraco TV (slow) and official documentation (faster) improves periodically.
An excellent back office tool for end users...I would argue one of the best i've seen and used. It still has a few small annoyances but it's an excellent user experience (v7).
Its VERY fast at delivering content to the client. Effecient caching sits at the core of Umbraco. Sometimes its a bit too good, and is a bugger to clear down! lol.
Being open source Umbraco is also built on top of a number of other excellent OS tools. Umbraco Examine is an extension of Lucene which is a fantastic indexing engine originating from Java. It also implements an excellent logging engine which is a boon for debugging and monitoring. I also use the Client Dependency Framework to bundle and minimise my JS/CSS. There's more, but i'll stop here!
The templating engine extends to all current .net techs, so you have the flexibility to use whatever you feel most comfortable with.
You can build everything from the ground up, so you get full control if required. For larger projects that need to scale, I would recommend you do as much yourself as possible!
Integrates well with VS2013 via nuget. TFS and GitHub repos are also possible with small amount of effort.
I've done some reading on Orchard, it has many features in common with Umbraco, but it also looks to do what a lot of "other" CMS try so hard to do, ie layout/widgets and blogging out of the box!
In Umbraco they've very recently added a "Grid" datatype, which will give end users the power to move content around the website design layout. But I personally wont be using it, it's bad design and you should never give that level of flexibility to end-users!
Umbraco is without a doubt one of easiest CMS's to lock down content and prevent an end-user from turning a website into a horrible nasty visual mess!
Originally our main projects were written in Webforms/Usercontrols/XSLT and we've since changed the code to use MVC/Razor Views/Razor Partials. Unfortunately because so much of codebase exists as XSLT we havent yet convert it to Partial Views. So for now our XSLT co-exists with our new MVC codebase in the same way it did with Webforms.
As you're starting from scratch my advice would be to avoid Webforms, User controls and XSLT. It's all considered "old" tech. Go MVC all of the way.
How do I deploy? I've done my initial development and I've used a SQL server database. I'd like to make sure I can deploy to test before I continue. I don't want to back up and restore the database because in practice, users may add pages etc. that shouldn't be lost. What is the best way to achieve this? I don't really want to have to buy a package to do this.
Working on a successful and painless deployment strategy is one of the hardest things to achieve in Umbraco. You will find people go about it in very different ways on the forums....here's how we do it...
Local DEV setup pre-reqs:
Windows 7 Workstation
VS2013/TFS Client
Umbraco from nuGet
LocalDB and IISExpress 8 (now all part of Visual Studio 2013 install)
SQL DB management tools
The database runs on VS2013's "localDB" rather than a full blown instance of SQL. It's based on SQL2012 and supports pretty much all of the features of SQL Server but runs without all of the heavyweight requirements. The same goes for IIS, we use IISExpress 8 as it's as close as you're going to get to the real thing without all of the heavyweight requirements.
My solution file is actually two projects, one for Umbraco (nuget) and one for my Views and XSLT. I've modified my project file slightly to ensure the Umbraco nuget files copy local on build because we've found this rather annoyingly doesn't happen when another developer gets latest from TFS. I've added a virtual directory in my applicationHost.config in IISExpress to ensure it serves up the Views/XSLT in the seperate project. This means I can debug everything in both projects without any manual file copying at build time. I have a small "libs" folder inside my Umbraco project which has a few models, controllers and helper utilities which makes use the excellent Lucene indexing engine. The reason for separating out our view code into another project is due to running more than one Umbraco site on pretty much the same codebase, so we treat this as a shared code area.
Staging setup pre-reqs...
Windows Server 2012
SQL Server 2012
Make sure you have IIS and file sharing setup correctly on your staging box I'd also recommend you add the IIS management service and the IIS web deployment services which you can add via the Web Platform Installer.
We treat staging purely as a developer area to ensure the necessary levels of quality assurance are met before we deploy to live. I have spent a lot of time lately tidying up my VS project and can use the publishing feature in VS2103 to push an entire build as a single zip. It's our first step towards continuous integration and we are in the process of setting up a TFS build server for this.
So for us any database changes halt at the staging box and NEVER go any further so that we don't destroy content changes on the live server.
Our sites are now very mature so the number of changes involving site structure are minimal, in the event of changes/additions to doctypes, templates or macros. We simply add them manually in the Umbraco back office on the live box. Now this is where, tools like uSync or Courier come in. If you choose to use either, I would only recommend their use during the earliest stages of development, when the project(s) are in flux. I wouldn't recommend you view them as a long term solution. This is mostly out of years of frustration over the quality Courier as a product, but there are good signs it's finally starting to work as intended. My worries are that long term use could damage the schema. So keep DB backups!
Once we've got acceptance on any code changes I use the same publishing mechanism from Visual Studio to push my changes to the live box. This time in release mode. As explained earlier eventually, we'll get a build server to do this.
I've succeeded with deploying a small prototype. I used USync which worked to a degree, but had some niggles / errors (the author also states that it shouldn't be used in production), so then I did a package as described in this article http://www.uquickstart.com/umbraco-tips-and-tools/package-up-your-umbraco-website and that seemed to work the best.
That's an interesting article and building packages from Umbraco is the "manual" alternative to uSync. uSync is generating exactly the same XML package files using the same Umbraco APIs. The difference is that uSync doesnt deal with content at all.
I suppose you could continue to work this way, choosing the manual package approach, but omit the content which would prevent content loss on live. The key to all of this is a good design from the start so that you don't need to keep going back to your dev project to make changes to your doctypes and datatypes. Be careful if you do as it could have a detremental affect on existing content on live!
I know, but It's taken me a while to convince my boss that we need to use Umbraco and not Wordpress, so he won't be impressed if I say we have to pay for courier at this stage. I think my best course of action is to to just use the package export and maybe uSync at first and then once everyone is impressed with umbraco, I can start requesting we pay for packages.
Newbie - Umbraco Git Visual Studio 2013 Express
Attemting to install Umbraco from github (ver 7.2 master) and run in visual studio 2013 express, but can't get the dang thing to work. Instructions say to run build/build.bat, but when running that, it says that one package can't be found. Visual studio closes with "program has stoppped" type error. Does this solution need to run in the full version of Visual Studio 2013? Any help and advice would be great. Thanks.
Hi Leon and welcome to Our. :-)
Umbraco from the GitHub account is the source code, so you can contribute by helping resolve some bugs, by creating pull-request. If you want to install Umbraco you have some difference option.
First option is to install Umbraco using WebMatrix, this is a very straightforward method, after this is done, you can easy use the visual studio 2013 express as your favourite editor http://our.umbraco.org/documentation/installation/install-umbraco-with-microsoft-webmatrix
The next option is the one that I am thinking you are asking for, is by create a visual studio project and install umbraco using NuGet http://our.umbraco.org/documentation/installation/install-umbraco-with-nuget and perhaps, this article by Lee Kelleher from this year advent calendar about Git is useful too. http://24days.in/umbraco/2014/upgrading-umbraco-using-git/
The last option is to make the installtion of Umbraco manually where you need to setup the site in your IIS and so on you can find the guide for a manually installation of Umbraco here. http://our.umbraco.org/documentation/installation/install-umbraco-manually
Hope this helps, if not don't hesitate to ask further questions,
/Dennis
Wow. I'm impressed with the quick response. Thanks. I've used VS2013 nuget package from a blank project for now.
To be frank, I'm still weighing up different options for CMS. We started off using wordpress which is great, but doesn't integrate well with our existing Microsoft stack. I've also been looking at Orchard. I'm a web / dot net developer.
Would it be possible for you to answer a few questions based on our requirements which are:
Are those things easily achievable using umbraco? What is the best source for documentation?
What is the best I'm not really interested in paying for training video's because our budget already has pluralsight and other dot net based classroom lead training, so my boss won't be happy to pay for anything more.
Thanks again for the quick response.
Hi Leon,
Since you are new to Umbraco I think that I could help you with some good starting points learning Umbraco.
The first starting point is some written documentation on the basic concepts of Umbraco, on how to create a basic website. http://our.umbraco.org/documentation/Using-Umbraco/Creating-Basic-Site/ and Blake Smith has written a newbie guide on this year advent calendar on how to set up an Umbraco Website. http://24days.in/umbraco/2014/how-to-set-up-an-umbraco-site/
In addition to the written documentation, you will so be able to find some videos toturials on how to work with Umbraco on Umbraco TV. The video tutorias are showing the basic concepts of working with Umbraco. Some of the videos are free to watch, but other require that you subscribe to Umbraco TV. You can find the plans and prices here: http://umbraco.tv/plans-signup/
But since you dont want to pay for training video's because our budget already has pluralsight and other dot net based classroom lead training, I think that you still should take a look that the Umbraco TV there are some free videos that explains the conecpts of Umbraco very well. You can find the videos about how to edit content in your Umbraco installation here http://umbraco.tv/videos/umbraco-v7/content-editor/, these videos about editing content are free to watch, you will also find free videos about how you setup the backend, with templates stylesheets, and so on here. http://umbraco.tv/videos/umbraco-v7/implementor/ On of the milestones in Umbraco is the concept called document types. On the document types you difine which fields should be editble for the user. If you have a page document type you could for instance have fields for headline, teaser body text and so on, here are the video chapter about document types. http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/document-types/what-is-a-document-type/
Then I will try to answer your specific questions about Umbraco
Must be easy to customise html layouts. In Umbrco you have full control over your makup, so this is one of the forces as Umbraco has. And here is a free video chapter that show how to work with HTML and templates in Umbraco http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/templating/introduction/
If you are trying to create a blog and using Umbraco 7 you have some different options, you could create a blog yourself or you could have a look on one of the blog packages for Umbraco.
The http://our.umbraco.org/projects/starter-kits/articulate is a very popular blog package if you are running Umbraco 7.x.x another blog package for Umbraco 7 could be SmartBlog http://our.umbraco.org/projects/starter-kits/smart-blog The last blog package is uBlogsy.http://our.umbraco.org/projects/starter-kits/ublogsy
And here are some documentation on how to install a package on Umbraco. I am always uing the install local package option.http://our.umbraco.org/wiki/how-tos/packages-and-projects/how-to-install-a-package
For the SEO functionality as I said before you have full control over your HTML markup, and which fields should be avaible for the end user in the Umbraco backoffice. Try to see the video chapter about the document type conecpt.http://umbraco.tv/videos/umbraco-v7/implementor/fundamentals/document-types/what-is-a-document-type/ There are also some packages that can help you with SEO functionality in Umbraco, one of the packages are SEO Checker from Soeteman Software, http://soetemansoftware.nl/seo-checker the SEO checker helps you find common SEO issues in your Umbraco website such as missing meta tags, broken links etc. SEO checker allows you to fix issues on the page before publishing the page.Every page that has a template assigned can be validated. But the SEO checker package is not free, and require that you buy a license.
Another package that could be handy to know about when you are working with SEO in Umbraco is the 301 URL tracker package, this package helps you to manage URLs within umbraco. It automatically tracks URL changes, for instance when a node is renamed, and makes sure the old URL will redirect to the new location. This is great for SEO and great for people visiting your website via this old URL. Search engines will update the indexed URL and people won't visit the old, broken URL.
You can also create your own redirects, based on a simple URL or using a Regex pattern. You can redirect to an existing node or a manually entered URL. This is great for migrating existing indexed URLs to your new website! And the 301 URL tracker package can you find here. http://our.umbraco.org/projects/developer-tools/301-url-tracker and this package is free to use.
For the unit tests question I think that you should have a look at the blogpost from Andy Butland, you can find them here:
http://web-matters.blogspot.it/2014/03/unit-testing-umbraco-surface-controllers.html
http://web-matters.blogspot.it/2014/04/unit-testing-umbraco-with-base-test-classes.html
Hope this helps, and if you have further questions keep asking them, or if it´s about another topic, then just create a new topic on the forum.
/Dennis
Wow - I'm loving these quick responses. Thank you so much for all the info. This is really great. I'll let you know when I need more info.
I've only just got it installed properly. I had some trouble using Visual Studio 2013 express - complained about not beeing able to find certain .cs files, so had to use Visual studio 2012 but had the same problem, so had to download the "mini profiler" from git and add it in the web folder to get it to work. I couldn't figure out how to use an existing SQL server instance on webmatrix. It would be good if these issues could be sorted out.
Hi Leon
I think it would make sense to answer some of your immediate questions directly so that you can get a gauge on where umbraco "sits" in the CMS space. Hopefully then you can make some more informed decisions.
Firstly, I feel it's most import to make it clear that Umbraco is a framework project, the project owners do NOT provide a plethora of core modules desiged to tick as many boxes as possible when you get started. Umbraco does have an extremely well supported plugin (package extensions) architecture, but that architecture can be a boon as well as a huge thorn in your side depending on your needs.
The key thing to bear in mind is if you're happy to build a project for a client where the Umbraco build version largely remains set in stone, you can indeed knock yourself out with third party extensions and add whatever functionality is required to meet your needs. If you have any intention of keeping Umbraco build versions up-to-date you should only be picking plugins that are either highly active or commercial. Sadly there are occasions when bug fix builds can break your packages, but it happens most often when Umbraco jumps major versions and the APIs have changed enough to cause your all important plugins to stop working. Sadly. you can be faced with a long wait before those problems are rectified!
If you prefer to write required functionality yourself, you have the ability to react very quickly to API changes and fix as you upgrade. In regards to third party extensions, many are open source but that isnt necessarily a magic bullet to future proofing them! Be objective and plan carefully what you will write yourself and add in from other suppliers!
The umbraco team do offer two home grown commercial extensions, a forms package and a tool for moving prototypes to staging and live builds of your projects, these are called Umbraco Forms (previously Contour) and Umbraco Courier. Both (now) work well and are well worth adding to your project.
Seriously, don't build from source, use Visual Studio 2013 and download Umbraco 7 from nuGet, you can even use VS2103's "localDB" to completely remove the need for a full commerical database server during development. Avoid SQLCE it has too many limitations.
Here's some answers to your questions...
Must be easy to customise html layouts.
Absolutely, this is one of Umbraco's biggest strengths and currently you can build templates using all current .Net web techs so... WebForms/Mastepages/UserControls, MVC/Razor and XSLT. XSLT is quickly becoming deprecated but can be used as a mixin with Webforms or MVC. Umbraco also has a built templating tech. called Macro's which allow you to build paramterized template objects using either XSLT, UserControls or Razor Partials. All of this provides maximum flexibility to the developer....but do yourself a favour and start with MVC/Razor.
Must be easy to get a list of "posts" and manipulate those posts to display on a single page with links, filters etc.
You have two choices here, build it yourself or load an extension. Explanation above applies.
Must have good SEO functionality (we've used yeost on wordpress before and it was brilliant)
Basic SEO is one of the easiest things to add yourself in Umbraco, the property system you use in Umbraco allows you to add complex datatypes and here you can define just about anything you like, including metadata. Again you can use extensions to fill in any gaps you feel are too much to implement yourself.
Ideally like to be able to step through code is VS.
You would NEVER need do this for the core Umbraco code OR package extensions and you will quickly learn where Umbraco has weaknesses and/or bugs through an active community and learn how best to avoid them in your project.
If you write your own code, you of course can debug this as easily as any .net code and this includes your forms/razor/xslt templates.
Must be easy to write server side and client side unit tests
If you only end up writing template code, preferably via MVC, unit testing is total overkill. You are working generally against a single object which is always IPublishedContent. IPublishedContent exposes your known documents types and properties and it's all so straight forward unit testing it all would be nuts!
If you need to use a lot of the Umbraco APIs and, for example serve Umbraco content to other sources, unit testing is totally possible and can be implemented via a well contstructed MVC project. Other helpers can also be integrated with relative ease, so techs like NHibernate, AutoFac are just two examples that can be integrated added to improve workflow and make a project easier to test in isolation.
In general wiring up any client or server side test is down to you as a developer to decide how best to implement. Umbraco doesnt provide you with the answers on how to achieve it. Although the forums are very helpful and often better than the documentation!
I hope this helps
Kind regards
Martin
Thanks Martin. This is really good. Have you used Orchard? I'm busy trying to decide between the two. I like the general design of umbraco and I love the quick responses I'm getting. I'll spend the next few days trying out things and making sure I can achieve my requirements using umbraco.
Hi Leon
No problem, As a quick summary, the core strengths of Umbraco are...
Hi Leon
I've done some reading on Orchard, it has many features in common with Umbraco, but it also looks to do what a lot of "other" CMS try so hard to do, ie layout/widgets and blogging out of the box!
In Umbraco they've very recently added a "Grid" datatype, which will give end users the power to move content around the website design layout. But I personally wont be using it, it's bad design and you should never give that level of flexibility to end-users!
Umbraco is without a doubt one of easiest CMS's to lock down content and prevent an end-user from turning a website into a horrible nasty visual mess!
I have a quick question about creating dynamic navigation. What can you recommend? Shall I use XSLT (I don't like it) or a partial view macro?
Hi Leon
Originally our main projects were written in Webforms/Usercontrols/XSLT and we've since changed the code to use MVC/Razor Views/Razor Partials. Unfortunately because so much of codebase exists as XSLT we havent yet convert it to Partial Views. So for now our XSLT co-exists with our new MVC codebase in the same way it did with Webforms.
As you're starting from scratch my advice would be to avoid Webforms, User controls and XSLT. It's all considered "old" tech. Go MVC all of the way.
Happy holidays
Martin
How do I deploy? I've done my initial development and I've used a SQL server database. I'd like to make sure I can deploy to test before I continue. I don't want to back up and restore the database because in practice, users may add pages etc. that shouldn't be lost. What is the best way to achieve this? I don't really want to have to buy a package to do this.
Hi Leon
Working on a successful and painless deployment strategy is one of the hardest things to achieve in Umbraco. You will find people go about it in very different ways on the forums....here's how we do it...
Local DEV setup pre-reqs:
The database runs on VS2013's "localDB" rather than a full blown instance of SQL. It's based on SQL2012 and supports pretty much all of the features of SQL Server but runs without all of the heavyweight requirements. The same goes for IIS, we use IISExpress 8 as it's as close as you're going to get to the real thing without all of the heavyweight requirements.
My solution file is actually two projects, one for Umbraco (nuget) and one for my Views and XSLT. I've modified my project file slightly to ensure the Umbraco nuget files copy local on build because we've found this rather annoyingly doesn't happen when another developer gets latest from TFS. I've added a virtual directory in my applicationHost.config in IISExpress to ensure it serves up the Views/XSLT in the seperate project. This means I can debug everything in both projects without any manual file copying at build time. I have a small "libs" folder inside my Umbraco project which has a few models, controllers and helper utilities which makes use the excellent Lucene indexing engine. The reason for separating out our view code into another project is due to running more than one Umbraco site on pretty much the same codebase, so we treat this as a shared code area.
Staging setup pre-reqs...
Make sure you have IIS and file sharing setup correctly on your staging box I'd also recommend you add the IIS management service and the IIS web deployment services which you can add via the Web Platform Installer.
We treat staging purely as a developer area to ensure the necessary levels of quality assurance are met before we deploy to live. I have spent a lot of time lately tidying up my VS project and can use the publishing feature in VS2103 to push an entire build as a single zip. It's our first step towards continuous integration and we are in the process of setting up a TFS build server for this.
So for us any database changes halt at the staging box and NEVER go any further so that we don't destroy content changes on the live server.
Our sites are now very mature so the number of changes involving site structure are minimal, in the event of changes/additions to doctypes, templates or macros. We simply add them manually in the Umbraco back office on the live box. Now this is where, tools like uSync or Courier come in. If you choose to use either, I would only recommend their use during the earliest stages of development, when the project(s) are in flux. I wouldn't recommend you view them as a long term solution. This is mostly out of years of frustration over the quality Courier as a product, but there are good signs it's finally starting to work as intended. My worries are that long term use could damage the schema. So keep DB backups!
Once we've got acceptance on any code changes I use the same publishing mechanism from Visual Studio to push my changes to the live box. This time in release mode. As explained earlier eventually, we'll get a build server to do this.
I hope this helps
M.
Umbraco deploy.
I've succeeded with deploying a small prototype. I used USync which worked to a degree, but had some niggles / errors (the author also states that it shouldn't be used in production), so then I did a package as described in this article http://www.uquickstart.com/umbraco-tips-and-tools/package-up-your-umbraco-website and that seemed to work the best.
Thanks for all the help.
Hi Leon
That's an interesting article and building packages from Umbraco is the "manual" alternative to uSync. uSync is generating exactly the same XML package files using the same Umbraco APIs. The difference is that uSync doesnt deal with content at all.
I suppose you could continue to work this way, choosing the manual package approach, but omit the content which would prevent content loss on live. The key to all of this is a good design from the start so that you don't need to keep going back to your dev project to make changes to your doctypes and datatypes. Be careful if you do as it could have a detremental affect on existing content on live!
Martin.
Thanks Martin.
Usync does have a content edition ( http://our.umbraco.org/projects/developer-tools/usynccontentedition) but it clearly states that it should only be used for sharing stuff between developers and not for production. No wonder it had a few niggles and errors for me.
For now I think using packages will work for me. Thanks for the help.
Leon
Hi Leon
Hmm, yea the content edition still needs work!
Remember Courier is the alternative and it has improved enormously of late.
M.
I know, but It's taken me a while to convince my boss that we need to use Umbraco and not Wordpress, so he won't be impressed if I say we have to pay for courier at this stage. I think my best course of action is to to just use the package export and maybe uSync at first and then once everyone is impressed with umbraco, I can start requesting we pay for packages.
Thanks for all the help.
Hey Leon
WORDPRESS......yyyyuuuuuck! You made the right choice! Good luck in your venture.
M.
is working on a reply...