web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Customer experience | Sales, Customer Insights,...
Unanswered

What's your preferred way of naming and managing solutions?

(0) ShareShare
ReportReport
Posted on by 283

I have finally developed an SDL process for our org and my last task is to determine a naming convention for our solutions. We'll be going with unmanaged solutions in all envs because of our size and small team (aka, me).

My question is, how do you name your solutions? So far we're thinking "SOL-CE####-INT-DESC" where we ID it as a solution for our DB sake, then note that it's a CE solution with a sequential number, then the initials of the developer, then a short description. So it could look like this: SOL-CE0004-ABC-NewContactViews. We'd also of course add a fuller description in the description field for the solution but being able to see at a glance what's in a solution is helpful.

However, my main concern with this is that I'd have to keep each solution to one main customization. I'm fine doing that but wanted to get other opinions on the matter, especially regarding how to manage the number of customizations per solution. And I know there's no one right answer but I'm sure some are better than others!

I have the same question (0)
  • Guido Preite Profile Picture
    54,086 Moderator on at

    honestly I don't see a valid reason to put "SOL" inside the name (you already know that is a solution, and if you store somewhere the containing folder will identify the content)

    same for CE

    also I don't see the need to put the developer name inside the solution (what if tomorrow you have 2 devs working on the same solution?)

    sequential number is useless because you have the version number

    name of the solution (as you probably organizing them by functionality) can be the goal of the solution.

    just my 2 cents of course

  • Lucas H Profile Picture
    283 on at

    Thanks for your thoughts, Guido!

    I agree with you on your first two points but those additions are from our DB architect and he's very particular. I could push back on it but I'd probably want a good reason.

    The way our team is set up I'm really not worried about two devs working on the same solution. It's mostly going to be me so that's there as an indication about who to ask about certain customizations in the future. In our IS team, it's somewhat of a rule to try and indicate the main dev for things for posterity sake. We've had a lot of turnaround lately with past people not signing work so it's made life hard sometimes, hence our "rule".

    Also, we won't be relying on versioning, since with this set up we're using unmanaged solutions with one type of customization per solution. Maybe we'll do patches but we'll cross that bridge when we get there. The sequence is mostly for our own record keeping sake.

    That's what I'm worried about with using the goal of the solution as the name or part of the name. It could get long and hard to write out if we include too much. Are you of the mindset to only do certain chunks or types of changes in each solution then?

    PS - I'm not trying to argue or anything with you about your naming opinions, just keeping discussion going and adding context =)

  • Guido Preite Profile Picture
    54,086 Moderator on at

    I know that is difficult to extrapolate the tone when you read a content, so don't worry :) I am also sharing opinions here, if there was a fixed way to address this I will point to the documentation link and all good :)

    If your DB architect wants that prefix there is nothing I can't do :) Let's say you have 50+ zip files that contains the exports of this solution during the last year. How this DB architect is planning to store these files? if you store inside a folder (I am doing a folder example here, but it can be of course a source control repository) with another 1000+ files having SOL as prefix you can find it easier, but I would put that kind of files in a specific folder (or repository). If the DB architect says "I want they start with SOL so they are a solution file" let him do (maybe is worried that the extension is too generic, opposite for example to a .docx or .xlsx)

    Regarding the DEV name, you put your name inside 3 solutions and you were the solely worker on these components. 1 year later you go to work for another company, the person in charge of the 3 solutions you created has a very little advantage to know that you were the one working on that. My point here is: if you want to track who did something inside the system, adding the name inside the solution doesn't help. Keeping some kind of log (for example inside an excel file) and you can have something like:

    15-Jan-2021 | Lucas H | added fields X, Y, Z to Account Entity and Forms A, B

    16-Jan-2021 | Lucas H | created new View "My Custom Account View" under Account entity

    and so on

    (just a note, this kind of log maybe be useless when there is a document already that specify what are the customizations that should be done, customer X wants A, B, C and you provide this functionality inside Solutions X and Y, from your post I have the feeling you are working for an internal CRM, so you will need to keep the log as a document that specify the customizations is absent or incomplete)

    Also the Description field of a solution is limited (I don't remember the exact number right now, maybe 4000 chars?) and you can easily fill it up with a generic change even for few solution changes

    Maybe in your case the goal of the solution should be put inside the description field, so your solution name will be "NewContactViews" but inside the description you write something: "The solution has been created to address the following needs: 1) New View called "My Regional Contacts" bla bla bla 2) New View called bla bla bla"

    Regarding Versioning: You should rely on versioning. I don't care if you do unmanaged/managed, if you plan to do patches or not. You start with version 1.0.0.0, when you feel that your solution is ready to be moved to TEST (or PROD) you export the solution file, import in TEST (or PROD) and in your DEV instance you increment to 1.0.0.1.

    Or if you have another approach, let's say that in addition to when you move the solution to another instance you also export the solution every Friday at 5PM, before this export you increment the number.

    Keep in mind that of a solution you can only change the display name, not the solution name itself. Do you want to put the version inside the zip file? then create a simple bat file (or whatever you think is convenient in your pipeline) to rename the zip file, but the version number of a solution is important, if you don't change it you can't know the exact version you have in a specific environment.

  • Lucas H Profile Picture
    283 on at

    That's definitely why our architect wants it. Loads of files and who knows what they are and what they're for??? Well it starts with SOL-CE! Easy!

    And very good point on the initials in the solution. We are planning on keep a log of each solution as well with the full name, description, etc., in addition to storing our .zip files in the DB and Sharepoint (and possibly a AzureDevOps Repo in the future). You're correct it's an internal CRM. We'll still have the requirements from stakeholders but that won't serve as our official log.

    Okay, some clarification about versions - a new solution = 1.0.0.0. When exporting it autofills to changing the version to 1.0.0.1. Why the change on export? Shouldn't it stay 1.0.0.0 and any update to it would be 1.0.0.1? And is there any reason to patch an unmanaged solution instead of just changing the version number? I'm not familiar with versioning and don't completely understand when to change what, especially major vs minor and build vs revision.

  • Guido Preite Profile Picture
    54,086 Moderator on at

    solution versioning is not an easy topic, I know that UI now prompts the increment on the export but you can override that manually (or if you have an automatic pipeline you can do there as well) but in the end change nothing, the important is to keep track when a solution has been moved to another instance (or backup), if you start from 1.0.0.1 or 1.0.0.0 is the same. They probably added the increment because people tend to forget to increase the number by themselves.

    regarding major/minor/build/revision, my suggestion is to just increase the revision so you can arrive for example to 1.0.0.153, no problems about that. I know that with patches you can have a change in build (something like 1.0.2.1) but if you divide your solutions by scope/goal you should not have the necessity to use patches. Just make sure that inside your solutions you keep only the elements you need, so for example don't add all the components (like forms, views, etc) of the account entity because your custom entity contains a lookup to account.

  • Lucas H Profile Picture
    283 on at

    That totally makes sense! You have been an INCREDIBLE help!!! Thank you so much!

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Customer experience | Sales, Customer Insights, CRM

#1
Tom_Gioielli Profile Picture

Tom_Gioielli 170 Super User 2025 Season 2

#2
#ManoVerse Profile Picture

#ManoVerse 70

#3
Jimmy Passeti Profile Picture

Jimmy Passeti 50 Most Valuable Professional

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans