How does Umbraco manages website code separate in github/MsTeam repo. What it keeps in umbraco database?
Hi Team,
As I am confused while using umbraco cms.
Please assist on below points,
When we create asp.net website project/solution(using .net f/w 4.7.2), do we need to keep it in azure repo?
We then need to create one database (e.g. SampleDB) in SQL2017 (or azure sql).
After installing umbraco 7 or 8 in above web application, when we run (ctrl+f5) application.
After successfully login to umbraco website it ask to configure SQL db. Suppose we configure above created DB.
Now it will show umbraco instance is up and running.
My query is, now if we add/update/delete something(content/media/code) using umbraco running instance then,
a. it will save all changes into the SQL database.
b. it will internally change asp.net application code accordingly (this changed file we need to include it into project/solution, and then need to perform checkin/checkout in github/msTeams).
If this is the scenario then -
a. As umbraco maintains every changes then, is it required to keep website code in github/msTeams? If so, then why?
b. If umbraco keeps changes into its instance then why it need of keeping website code in github/msTeams.
c. When we deploy our final code will it take all libraries,scripting and page files from umbraco instance, then packages it and then deploy it on virtual directory of PROD environment.
The answer is... there is a mixture of resources that come together in an Umbraco solution, and they would typically be handled differently in terms of source control and deployment, and how you choose to work with Umbraco eg - Visual Studio locally, build + deploy - or updating via the Umbraco backoffice - This article here is useful for explaining some of the different parts: https://our.umbraco.com/Documentation/Getting-Started/Code/Source-Control/index-v7
In summary, you have:
Umbraco installation folders: Umbraco & Umbraco_Client (these relate to the particular version of Umbraco you are currently running on and change during an upgrade - you shouldn't need to include these in Visual Studio nor source control them, but they will need to be deployed to your production environment.
Document Type Implementation: the definition of the types of pages in your Umbraco site, these are stored in the database, it's tricky to synchronise changes in Document Types between environments - it's one of the compelling reasons to use Umbraco Cloud hosting that enables this - additionally a third party package called uSync is designed to serialise these database stored items into files on disk so that they can be source controlled and deployed to another environment.
Implementation Files = Views, Partial Views - these contain your specific implementation html + razor code, and live on the file system therefore they should be source controlled and deployed between environments. Templates also need a reference in the database, which can either be manually created between environments, or moved automatically with Umbraco Clould or uSync.
Implementation Code - you may have a supporting C# class library project that contains custom models, helpers etc, this would be source controlled, but only the compiled dll would need to be deployed.
Content - Content is stored in the database, again it is tricky to move Content between environments - generally people will either not try to move content! - have content only entered in the live environment or they will use Umbraco Cloud - or a further paid for product uSync Complete.
Media - Media, is stored on disk and also has a reference to the media item stored in the database - people will either use Azure Blob storage and therefore Media is accessible between environments in a common container - or use Umbraco Cloud or uSync Complete to move media between environments - but you wouldn't source control the files on disk.
Frontend assets - Your CSS/JS/SCSS/ETC lives in the file system and therefore you would source control changes and deploy changes between environments.
There isn't a requirement to source control your implementation, you can just install Umbraco, and update templates, css etc via the Umbraco backoffice... but people tend to use a source control system in order to see what has changed when and by whom, and also utilise the repository in deployments of those other environments.
So in summary - not everything in Umbraco is stored in the Database! different parts live on disk, some of these resources can be source controlled, and some of these should not be! Deployment between environments without Umbraco Cloud or USync can be fiddily!
Out of suggested 2-ways of working with umbraco, we were using, umbraco backoffice for development and deployment.
We follow 2-types of development and deployment process,
A) Continuous running project content management:
we used to add/update/delete EVERYTHING required and deploy our code on prod, one every Friday.
B) Long running project content management issue:
we used to add/update/delete only CONTENT, required and deploy our code on prod, ONCE in a month.
But so as to use existing umbraco instance, separate for all environment (DEV->QA->PROD), we need to replaced/overtire existing content for testing purpose. Once we test the content and website, we again need to revert back the CONTENT changes for Continuous running project purpose.
It involves rework and missing of items, and manual mistakes.
Do we use any other methods for long running project content
management?
How does Umbraco manages website code separate in github/MsTeam repo. What it keeps in umbraco database?
Hi Team,
As I am confused while using umbraco cms. Please assist on below points,
When we create asp.net website project/solution(using .net f/w 4.7.2), do we need to keep it in azure repo?
We then need to create one database (e.g. SampleDB) in SQL2017 (or azure sql).
After installing umbraco 7 or 8 in above web application, when we run (ctrl+f5) application.
After successfully login to umbraco website it ask to configure SQL db. Suppose we configure above created DB.
Now it will show umbraco instance is up and running.
My query is, now if we add/update/delete something(content/media/code) using umbraco running instance then, a. it will save all changes into the SQL database. b. it will internally change asp.net application code accordingly (this changed file we need to include it into project/solution, and then need to perform checkin/checkout in github/msTeams).
If this is the scenario then - a. As umbraco maintains every changes then, is it required to keep website code in github/msTeams? If so, then why? b. If umbraco keeps changes into its instance then why it need of keeping website code in github/msTeams. c. When we deploy our final code will it take all libraries,scripting and page files from umbraco instance, then packages it and then deploy it on virtual directory of PROD environment.
Please assist.
Hi anilkale
The answer is... there is a mixture of resources that come together in an Umbraco solution, and they would typically be handled differently in terms of source control and deployment, and how you choose to work with Umbraco eg - Visual Studio locally, build + deploy - or updating via the Umbraco backoffice - This article here is useful for explaining some of the different parts: https://our.umbraco.com/Documentation/Getting-Started/Code/Source-Control/index-v7
In summary, you have:
Umbraco installation folders: Umbraco & Umbraco_Client (these relate to the particular version of Umbraco you are currently running on and change during an upgrade - you shouldn't need to include these in Visual Studio nor source control them, but they will need to be deployed to your production environment.
Document Type Implementation: the definition of the types of pages in your Umbraco site, these are stored in the database, it's tricky to synchronise changes in Document Types between environments - it's one of the compelling reasons to use Umbraco Cloud hosting that enables this - additionally a third party package called uSync is designed to serialise these database stored items into files on disk so that they can be source controlled and deployed to another environment.
Implementation Files = Views, Partial Views - these contain your specific implementation html + razor code, and live on the file system therefore they should be source controlled and deployed between environments. Templates also need a reference in the database, which can either be manually created between environments, or moved automatically with Umbraco Clould or uSync.
Implementation Code - you may have a supporting C# class library project that contains custom models, helpers etc, this would be source controlled, but only the compiled dll would need to be deployed.
Content - Content is stored in the database, again it is tricky to move Content between environments - generally people will either not try to move content! - have content only entered in the live environment or they will use Umbraco Cloud - or a further paid for product uSync Complete.
Media - Media, is stored on disk and also has a reference to the media item stored in the database - people will either use Azure Blob storage and therefore Media is accessible between environments in a common container - or use Umbraco Cloud or uSync Complete to move media between environments - but you wouldn't source control the files on disk.
Frontend assets - Your CSS/JS/SCSS/ETC lives in the file system and therefore you would source control changes and deploy changes between environments.
There isn't a requirement to source control your implementation, you can just install Umbraco, and update templates, css etc via the Umbraco backoffice... but people tend to use a source control system in order to see what has changed when and by whom, and also utilise the repository in deployments of those other environments.
So in summary - not everything in Umbraco is stored in the Database! different parts live on disk, some of these resources can be source controlled, and some of these should not be! Deployment between environments without Umbraco Cloud or USync can be fiddily!
if that helps!
regrds
Marc
Thank you, Marc for your quick reply to requested queries.
Almost all queries were covered with your input.
Thank you,
Out of suggested 2-ways of working with umbraco, we were using, umbraco backoffice for development and deployment.
We follow 2-types of development and deployment process, A) Continuous running project content management: we used to add/update/delete EVERYTHING required and deploy our code on prod, one every Friday.
B) Long running project content management issue: we used to add/update/delete only CONTENT, required and deploy our code on prod, ONCE in a month.
Do we use any other methods for long running project content management?
Please assist.
is working on a reply...