|
Agreed. Thanks.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Quote: I'll get my coat... in bad jokes?
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Yes, so that you can leave after telling the bad joke.
|
|
|
|
|
I got it from a site that contains all the standard emojis. Searching on "coat emoji" will turn up a bunch of them. After copy-pasting the emoji into the post, I made it larger by using a <big><big><big> prefix and </big></big></big> suffix.
|
|
|
|
|
Just wondering how people keep track of all the software and versions they wrote for all their customers?
For example, I started out using .NET Core 2.2, but I think I've upgraded everything to at least .NET Core 3.1.
Save for one or two projects (maybe three?) it's all .NET 6 or .NET 8 (maybe a .NET 5 or 7 project somewhere?).
I've also used Vue from the beginning and I think all my projects are Vue 2 and it seems I now have to upgrade to Vue 3.
Same for Bootstrap and who knows what I've been using these past years.
I own a small company with about ten customers and thirty to fourty software projects, but it's growing rapidly.
Since it's still small and doable, I'd like to start keeping track sooner rather than later.
At least I'll know which customers or packages need an upgrade.
I can, of course, use Excel, but I can imagine there are better tools for this that list the customers or the frameworks/libraries and their versions.
Or I could roll out my own (which should then be registered in itself ).
|
|
|
|
|
You can treat this as a "Bill of Materials" problem, i.e. which materials are necessary to build each of your products? I'm sure many such packages exist, but I'm unsure if they are suited for the software world (you don't have to buy a new instance of .NET for each project, for example).
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Yeah, and .NET 6 is not necessarily another material as .NET 8, just a higher version of the same "material".
Not sure if that's what I'm looking for, but I get the comparison.
|
|
|
|
|
Sander Rossel wrote: I started out using .NET Core 2.2
Oh callow youth!
IIRC, I started out using Office 98, then VB5, VB6, and every version of .NET Framework.
A lot of our stuff is still stuck in .NET Framework, since we're using SSRS which Microsoft have effectively abandoned from a developer perspective. But I did build a custom CMS for a few of our sites using .NET Core 2.x / 3.x, which has since been upgraded to .NET 7. And the back-end API for one large product is now in .NET 6.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I started out in .NET Framework 3.5 with Visual Studio 2005
Way back, when I was still in elementary school, I did some VB6 as well.
But I started my company when .NET Core 2.0 was around
|
|
|
|
|
I started with a Spectrum 128k, basic and games in casette like "Panic in the orient express" one of the first 2d rogue like I remember.
I later helped my elder brother installing windows 3.11.
And I used that and their later pentium I with windows 95 secretly.
The first PC I really had "allowance" to use was a Pentium II with Windows 98.
My first programming course (besides the basic in the spectrum) was using Ansi C I don't even remember the name of the compiler. Then Turbo C++, Borland C++ Builder, PICs, PALs...
Then I got a Win XP with VC++ 6 and used MFC for some years.
After that I changed to industrial automation, robotics and other staff like that.
I then came back to the PC-World but with linux servers and some Windows Software as user, using java within that software.
After that learned C# with .Net 3.x (don't remember) and WPF to help developing some tools at work.
Now Systems Engineering, not really programing but still on the field trying to make everything work together and reduce working load for the people introducing automatisms and new workflow methodes.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Technically, I started with a Spectrum 48K. I was only counting professional experience.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Then VC++ 6 and MFC it is.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I use release manifests for this. Documents what I have, where, what the dependencies are, and requirements for installation. This is pretty straightforward stuff.
|
|
|
|
|
I don't have release manifests.
But as I understand it, a release manifest is a document detailing a single application, so how would that work if I want to know which of my fourty applications for ten customers are not yet on .NET 8 (for example)?
|
|
|
|
|
I keep them electronically, so a simple search is usually good enough.
|
|
|
|
|
Are these applications stored in repos you control or are they distributed across customers? If they are distributed can you keep a copy of the manifests so you can grep them and perhaps awk the results? Just tossing ideas out there...
Jeremy Falcon
|
|
|
|
|
Mostly in repos I control, though not all in the same tenant or system (I've got two Azure DevOps accounts and a GitLab repo).
Having to search in and open separate files doesn't sound that appealing though.
|
|
|
|
|
Sander Rossel wrote: Having to search in and open separate files doesn't sound that appealing though. Just throwing ideas out there... if they be sucky let me know...
But what about a git hook then? Not a commit one, but a push one. So, every time you push commits to a remote server you can also call a second endpoint to update metadata in some NoSQL db somewhere. Then just query that.
There is one caveat to hooks though, they can be overridden by the command line. But this isn't security or anything like that, just tell peeps to not use --no-verify , etc. when pushing code.
Jeremy Falcon
|
|
|
|
|
that's what release notes are for.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
Release notes are for describing what has changed, mostly for users.
I don't have release notes because all my software is custom made and clients know what they asked for.
Anyway, storing everything in multiple files I have to open separately doesn't sound to appealing.
Even keeping it in a single file sounds like a hassle to organize.
|
|
|
|
|
If they're Windows apps, distribute them through the Windows Store as a "private" corporate ("channel") account. The store will track all the versions and you can make upgrades optional or "forced". Or you store all "their" exe's in the cloud as a reference; and a share for when they destroy theirs.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
None of that is applicable to me.
|
|
|
|
|
Sander Rossel wrote: At least I'll know which customers or packages need an upgrade.
I suggest you need to keep track of hardware also. And keep the hardware necessary to support it.
You might want to consider how active the customer is also. If you haven't gotten any money (significant as defined by you) in say 10 years then maybe time to tell them they need to throw some business your way or future upgrades will be much more expensive.
Sander Rossel wrote: I can, of course, use Excel
I doubt it. Not for the size that you gave.
But you could just add a doc/implementation directory to every source control repo/root and add a text doc(s) with significant information. That is actually probably better than one single Excel for everything. Lets you go more freeform.
|
|
|
|
|
jschell wrote: I suggest you need to keep track of hardware also. And keep the hardware necessary to support it. I really don't care about the hardware.
Pretty much any decent Windows PC will do.
Most is hosted in Azure App Services, so I don't even control the hardware.jschell wrote: You might want to consider how active the customer is also. If you haven't gotten any money (significant as defined by you) in say 10 years then maybe time to tell them they need to throw some business your way or future upgrades will be much more expensive. This I know from my invoices.
jschell wrote: But you could just add a doc/implementation directory to every source control repo/root and add a text doc(s) with significant information. That is actually probably better than one single Excel for everything. Lets you go more freeform. Yeah, but I'd still have to open and read every repo to find "all applications that are running on .NET < 8."
|
|
|
|
|
Sander Rossel wrote: I really don't care about the hardware.
I worked at a company where a customer requested we update an application that was written to run on Windows 3.1.
The app was written using Visual Studio 1.52 (I believe that was the number.)
Fortunately, since I keep old stuff, I did have a CD with that VS version on it.
I think, then, that the computers would run that. Not sure about now. But maybe a VM would. But one would still need to have a CD reader for it.
And using 'different' hardware is a problem if they claim that your new release doesn't work. Since possibility exist there is some exotic environment difference. So closer to the actual hardware is more re-assuring for me.
Sander Rossel wrote: and read every repo to find "all applications that are running on .NET < 8."
I must not understand your support model.
I expect on a independent support model if a customer wants an upgrade then you upgrade their product space. If they don't pay then you don't need to touch it?
|
|
|
|