|
englebart wrote: For each application, you need your release tracking such that you can rebuild any product as delivered to a customer. Source control should help here. Got CI/CD, but that still doesn't tell me which .NET or Vue version a customer is on, or if they use any library or framework that requires special attention.
Don't much care about which version was running when, we go forward only.englebart wrote: For each customer, you need to know what application releases they have purchased and installed. You could probably use source control here as well. All my customers have highly customized apps that are unique for them.
I just want to query the applications I've built, like "SELECT Application WHERE .NET < 8".
It's probably going to be a SQL database with a customized front-end.
|
|
|
|
|
visual studio and couple of folders or source control?
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
I have folders and source control, but the problem is that I have nothing that works easy and spans everything.
I'm probably going to store everything in a SQL database for easy querying.
|
|
|
|
|
u could create a build management server , check this diagram -- Automated deployment from Jenkins - Octopus Deploy .. that can also generate xml xsl report when builds complete ..those could document details of libs etc used...........its sort u making your own alm tool for your company...that you can tweaking and improve...
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
It sounds like you need an Application Portfolio Management (APM) tool.
These track applications and all the relationships between them and attributes that you'd need.
However, they're expensive.
I'm only aware of one open source tool, Essential Project. Unfortunately it's a pain to install and a bigger pain to use. There's a paid for version with web tooling but I doubt you want to throw USD $19,000 at this.
To be honest your idea of a spreadsheet sounds feasible if you keep your aims basic.
Search for APM tools; companies like BizzDesign, Value Blue and Qualiware have decent APM tools and lots of freely available information that'll give you a good idea of what you'll want to track.
|
|
|
|
|
Sounds like that is what I'm looking for, but all very bloated.
Didn't even know such applications existed (well, I could've guessed, but hadn't heard of the term application portfolio).
"APM tools" gives me application performance monitoring tools exclusively
Grotsoft wrote: I doubt you want to throw USD $19,000 at this. I can confirm your doubt!
|
|
|
|
|
How much do you want to spend? Apparently there are commercial tools available for your purpose, although other posts indicate they may not be affordable for a small business.
Create an MS Access DB. From the 1,000 foot view, 3 tables: Customer Projects, Components (software and hardware), and a join table that links Customer Projects and Components, including the specific version number used for each Component.
From there you can create reports that list all Projects (including Components) where the version number of a given component is compared to a target value, e.g., .NET Core version = 2.1 *OR* .NET Core version < 6.0.
This is from the 1,000 foot view -- the solution may be more detailed, but it may be the start you need to help you understand what you really need. Or it may be exactly what you need, done on a shoestring. And it's the potential for a commercial product geared towards small software businesses.
|
|
|
|
|
Yeah, I've opted to create my own.
Not using Access though, but SQL Server.
I can create a simple front-end for it too.
|
|
|
|
|
My company is in a similar situation. We have several large projects that are generic to all clients and over a hundred of small projects that are client specific.
We moved to GitHub several years ago and didn't find anything simple to keep track of it all. The missing piece always was the aggregation or list reporting.
Using excel always seems too easy to miss something or make a mistake.
We wrote a simple app that reads all the csproj files and puts the useful info into a database. For us the key items are the .Net or .Net framework version and all the packages and their versions.
It has a simple change log of "new", "updated", "removed" with version info.
We use it primarily to track .Net versions and package versions. The cross reference is helpful for looking up where we used some esoteric package.
We learned quickly to stay aways from odd numbered .Net versions for client use.
|
|
|
|
|
Exactly what I need as well.
I rolled out my own hour registration and billing app, so I'm just adding this to it.
Nice side-project for weekends
|
|
|
|
|
The place where I am working had the same problem, but across 100s of applications. These are all in Azure DevOps repos, so I wrote a tool to scan every repo and save to a DB a lot of metadata on each. Things like dotNet version, DLLs and packages included with version, etc. Very useful to generate report on EOL packages and frameworks. The company made it available on Github as open source if you are interested...
UPDATE: The app is called AzureDevOps.Technology-Framework-Monitor in Github.
modified 12-Feb-24 11:20am.
|
|
|
|
|
I use the code repository API (in this case Azure DevOps) to scan all our projects for a .csproj files to get the .NET version being used. It can be modified if we have other Languages/SDKs/Frameworks in use. For example reading the package.json for the node and npm versions.
|
|
|
|
|
Just saw the reply from Andreas @User-3771503 and will be taking a look the AzureDevOps.Technology-Framework-Monitor project. Seems all the meta data could be useful. Mine is much simpler, but does store some details in a LiteDB database file.
|
|
|
|
|
It's does work, and it generates a lot of metadata that can be useful. I'm still extending it with additional functionality such as documenting pipelines and such...
|
|
|
|
|
I have made a number of improvements, if you have questions let me know. It is also possible to run this in a Azure DevOps pipeline.
|
|
|
|
|
I think one thing that might both help make that more manageable and also confer supply chain protection for you would be to implement your own internal package stores. Sounds like you'd want one for nuget and one for npm.
There will be many companies doing that this year.
If this is a new concept to you -
The idea is that your solutions only pull from your own internal package stores. You pull new stuff from the public stores and into your own stores on whatever basis you choose. You get a big bit of protection against pulling in tainted packages and having them make it into your releases.
With it split in this way, your choice of updating your local package stores can serve as the "low bar". If you then open a solution and it says there are new updates, you know that means that solution is behind your own presently set standard.
This also means that you can look at your local stores and determine at least what version of any given pkg that all of your things should be using as well as which versions might possibly have been used at some point.
|
|
|
|
|
This has nothing to do with human teenagers. I woke up to a comment email from Code Project, where someone was commenting that a link wasn't active[^] on an answer I wrote thirteen years ago. Fortunately, I've been able to answer the comment with an up to date link but, given some projects just go away and die, this was pure luck on the commenters part that I could get the update for them.
|
|
|
|
|
|
Wow, is WPF that old, really?!
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Initial release: November 21, 2006; 17 years ago
Almost old enough to legally drink, in the UK at least.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Youngest Pete's son is becoming a man!
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
|
I would not even answer a comment like that because they can do their own searching. If they can't then it's about damned time they learn. Since when are we supposed to "maintain" our answers?
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
I've got over 7,500 answers in QA alone. I'll get right on that maintenance thing!
|
|
|
|
|
Hi All,
Sometimes I find myself asking myself 'why did I get out of bed?'. My company is making a device that uses USB C for connecting to the base station as alternative to Bluetooth, fine. This part on the unit is separate and needs to charged only has a USB C on it. So I leave thing A connected to thing B to charge. Unit doesn't charge? Plug unit into external charger (for a tablet) unit charges. Then questions were asked finally get an Email, that USB C will not charge USB devices. It's a standard for <<expletive deleted="">> sake, if you don't follow the standards we have chaos. Standards are to be obeyed, Guidelines are to be followed!!!
|
|
|
|