Developer Blog
Comments
 
Daniel Hollmann
Nexusone ApS
05 March 2021 at 13:55

How do you create a multi developer site, where you share a database?

We had some problems with it earlier, especially with some item type XML files, that got out of sync? Any good resources?

/Daniel
Nexusone

 
Lars Hejgaard Sørensen
Lars Hejgaard Sørensen
Dynamicweb Software A/S
05 March 2021 at 14:59

Yeah, that's a tricky one. Because usually your source code authoring goes on in your IDE, but for things as Item Types, Data Integration tasks, Repository configuration goes on in Dynamicweb, and the configurations are saved directly to the file archive. But the Item Types also affect the database, and any change to the Item Type xml file will update the item type table in the database, when the application is recycled, and if you a group of developers, who share the database, but might have different versions of the item type xml, you're unknowingly batteling for the item type each time you build the solution.

In our environment we set up publishing to a central development solution, and some developers use that instead of a local environment. We use file publishing and publish directly to the share, which also gives us the opportunity to fetch files from the development solution. So - ideally - when someone makes a change to an item type or one of the other object types mentioned, they right-click the folder or file in the Solution Explorer and click "Replace from server". That will retrieve the file to your local dev, which you can then commit to source control. But then everyone should update immediately, which is not always the case, and then you're back to, where we started.

So, I don't see anything system-wise that can deal with this, but hosting the database locally will mitigate this, and it's so convenient to have it locally. I update mine with a new bacpac file now and then from the main dev solution I'm working on.

It's a question I've received many times, so it would be great to hear from others how they are dealing with it.

 

 
Daniel Hollmann
Nexusone ApS
30 March 2021 at 15:04

Hi again Lars

I have faced some other issues when following this guide, mainly related to .NET versioning.
After setting up the project, I was able to install the Dynamicweb.Render module that you used in the demonstration, and I got intellisense help on all the changes you did to the frontend files. However, since this is setup as a .NET 5 project, a lot of the standard DW pages had errors all over since they used @helper functions, that are deprecated in NET 5. Therefore, the project could not be built. Since it should only be used for holding my razor files, it might not matter a lot, but I do not like that the project cannot be build.

I also tried to add a class library for backend processing and notification subscribers in .NET 5, but when I added the .dll to my bin folder, I got a version conflict and the project failed to run. When I build a .NET framework 4.7.2 project everything was fine. Do you have any suggestions on how to handle these problems?

 
Lars Hejgaard Sørensen
Lars Hejgaard Sørensen
Dynamicweb Software A/S
12 April 2021 at 15:49

Hi Daniel,

Sorry for the late reply.

If it works on 4.7.2 I assume it's a DW 9.9.x or earlier, and if you're installing the lates version of the renderer from nuget, that one is for 9.10.

If that's the case, just upgrade the application to 9.10 and upgrade your project to .Net Standard 2.0, or use an earlier version of your DW references to continue running on the pre 9.10 release.

Br.

Lars

 

You must be logged in to comment