Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Tiffany 11 posts 86 karma points MVP 2x c-trib
    Sep 08, 2017 @ 10:25
    Tiffany
    0

    Solution file out of date with published site

    Hi there

    First time posting on forums although I've been working with Umbraco for well over a year.

    My current set-up is using Visual Studio 2013 with a Nuget umbracoCMS package to develop a solution and project that I then deploy and publish locally on a test server - once done I publish to a staging version on a live server where I then run my final testing before I publish.

    My problem is that I've inherited a huge site with a number of people editing the site externally - of which I only have an old solution file which is completely out of sync with the live deployed site.

    I need to make some urgent changes to the deployed site, and in order to do this I need an updated solution file that is in sync with the deployed version.

    I've taken a copy of the live deployed site which I have stored locally along with a recent copy of the MS SQL database- and I need to find a way of merging this with my old solution file to incorporate all the content changes that have happened since the last time it was deployed from a solution file - which is last August.

    Normally this sort of thing would be straight forward however the changes I need to make include an urgent update of the Umbraco Version (currently on 7.4.2) and a re-compile of the whole site - as it is built with umbraco.extensions and some of my fixes need to reference these.

    If there are any useful guides or if I'm missing something obvious then please let me know (I'm still quite a novice with VS and .net).

    Otherwise any ideas or suggestions are most welcome - I'm sure I'm not the only one with this problem and I'm well prepared that it is just my lack of knowledge of using VS to deploy and develop sites - so any pointers that can help would be most welcome!

    Many thanks

  • Paul Stephenson 19 posts 129 karma points
    Sep 08, 2017 @ 13:56
    Paul Stephenson
    0

    Hi Tiffany,

    This sort of thing can be tricky and time-consuming, but usually possible!

    I would start by getting your old solution (and therefore your development and staging machines) to match the live site as closely as possible.

    Is the live site on the same Umbraco version as your VS solution? If not, I would start by upgrading your VS solution to the same version as on live by updating the UmbracoCms NuGet package.

    After that, look at the differences in the files between the copy of the live deployed site and the old solution directory. What types of things are there? Do your huge number of editors add templates, for example, or just content and media nodes?

    Any file differences should probably be copied into your old solution.

    For content nodes, these should all be stored in the database, so restoring your database copy over your development database will restore them in your development environment.

    For media nodes, the metadata is also stored in the database, so you'll have those too, but image files (for example) are in the Media folder. You can copy these back into your development machine if you like, but in my experience it doesn't often matter if there are broken links in development unless you are doing design work on the front end.

    Once your development machine is in a similar state to live, you may want to consider how such changes are best deployed in future before going ahead with changing things. Our development process looks something like this:

    • The whole filesystem of the site is stored in source control
    • Developers with access to the source control system are the only ones able to edit files apart from media, so this includes Templates, for example
    • Don't let any of the live-system editors upgrade Umbraco through the UI!
    • The deployment process replaces the whole site with the new build
    • Media is preserved across deployments
    • Content is also preserved because the database isn't touched during a deployment

    Basically you get to a point where the master copy of your site is stored in source control, and only the database and media folder are allowed to be specific to the live site.

    Then, things like binary changes and Umbraco version upgrades become a little less risky, because you can practise the deployment from source control to staging before doing the same thing on live.

    Note that I'm not too familiar with Visual Studio's own deployment system, because we have developed our own scripts to ensure the right files are in the right places on the right servers. The concepts should be similar though.

    There are other areas related to this sort of thing that you may or may not need to worry about right now. For example:

    • dealing with different Web.config settings between environments (eg DB connection strings, debug settings)
    • using uSync to create document types and the like on the target servers directly from source control
    • ensuring that personal information from live servers doesn't "leak" onto insecure development machines when you take database copies (we are thinking about this a lot at the moment)

    Where possible, script everything you can so that the live deployment doesn't involve hand-editing config files on the morning of a release!

    Good luck!

  • Tiffany 11 posts 86 karma points MVP 2x c-trib
    Sep 11, 2017 @ 09:52
    Tiffany
    0

    Thanks Paul

    That's really useful info.

    However - I'm hoping to find someone who can help me more with the visual studio side of things.

    Our problem is one of compiling - most of the sites I work on are fine - as they are basic umbraco sites so doing something like this isn't much of a problem and have used packages such as USync before to match the databases.

    However the site in question here is one that is built upon the hybrid framework (now called umbraco extensions I believe) and any changes made within the extensions requires a rebuild / re-compile of the site - so I'm looking for some more advice on top of the advice already given on how to build a new solution file for an existing site that has been designed in this way.

    Hope thats a little more clear. Any experienced visual studio developers out there who can help?

  • Paul Stephenson 19 posts 129 karma points
    Sep 11, 2017 @ 15:31
    Paul Stephenson
    0

    Hi Tiffany,

    I'm not familiar with the Umbraco.Extensions or Hybrid Framework specifically, so hopefully someone else has experience of this to help you. It looks like the forum at https://our.umbraco.org/projects/developer-tools/hybrid-framework-for-umbraco-v7/ might be useful, if fairly inactive.

    How were changes made in the live site that made it differ from your old solution? Is it only things that can be done through the Umbraco backoffice, or other changes such as binary DLLs as well?

    Does your old solution contain all the source code from the last time the site was "properly" deployed from VS? If so you may be able to copy the latest site files into your old solution and see how it goes. Otherwise it is probably much harder, like recreating a recipe when you only have the finished cake :-( .

    It doesn't sound like there's an obvious easy solution I'm afraid, but maybe someone with more experience will be able to provide some insight.

Please Sign in or register to post replies

Write your reply to:

Draft