1

I have a little java experience as a junior, but i'm looking to learn C# and the .net framework (especially as other projects seem to be made with the same language.

My intention is to create a basic application which will combine CSV files into one. If not too naive, i wanted to create an exe build which non-technical users on any windows environment (windows 7, 8, 10, and up) can run without needing to install anything. Just receive the the executable file and double click it and let the script do all the work

I was planning to use .net 3.5 because it sounds like windows 10, 8, 7 all habe backward compatible .net versions already included which support 3.5. I believe Microsoft would also be supporting it till 2028?

Maximum compatibility would be ideal (minimal technical requirements). Is this the correct approach?

user3120554
  • 641
  • 2
  • 11
  • 21
  • 1
    The earliest supported .NET Version is 4.5.2. 3.5 went out of support a few years ago. Windows 7 itself goes out of support this year. Window 8 went out of support already. – Panagiotis Kanavos Jan 15 '19 at 12:26
  • You can redistribute with your exe a Framework installation, show you will not be tied to have (or not) the framework installed in the computer as you will install it with your exe. – Nekeniehl Jan 15 '19 at 12:26
  • 2
    Unless it's a hard requirement to be backward compatible, I would just use the latest version, i.e. 4.7.x. You're loosing a lot of syntactic sugar and and are heavily limiting yourself by using 3.5, not even mentioning the security concerns. – Lennart Jan 15 '19 at 12:27
  • It is always advisable that when starting a new Project to use the newest version available for the platform you're developing for. As of right now that seems to be .NET 4.7.2 on Windows 7 8 and 10 – MindSwipe Jan 15 '19 at 12:27
  • 1
    BTW combining multiple CSVs into one is available with a couple of powershell commands – Panagiotis Kanavos Jan 15 '19 at 12:27
  • 1
    @Lennart you're not necessarily losing Syntactic sugar, but functionality (e.g `out _` for out variables available since .NET 4.5). The Language/ Compiler version is important for Syntactic sugar – MindSwipe Jan 15 '19 at 12:28
  • @nekeniehl that sounds interesting, but wouldn't that require admin access to install. This application I plan to build would be for non-technical users who do not have local admin access on their machines – user3120554 Jan 15 '19 at 12:30
  • 1
    It's also worth noting that Windows 7 does not come pre-installed with any .NET Framework version check [this](https://learn.microsoft.com/en-us/dotnet/framework/get-started/system-requirements) out – MindSwipe Jan 15 '19 at 12:30
  • I recommend you to remove all *prelimenary* (intro) information from question and try to ask direct clear question. But even then its sounds to me as offtopic, because criteria are subjective. If you want your software works everywhere without have to install framework - use the lower, if you want the best features/bugfixes - use the latests. This is so obvious.. – Sinatr Jan 15 '19 at 12:36
  • @user3120554 you can try this -> https://stackoverflow.com/a/52631195/2315752 – Nekeniehl Jan 15 '19 at 12:45

1 Answers1

2

.NET 3.5 is extremely outdated. Here is a list of what has been shipped to which OS: https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies

Generally you should stick with the newest .NET Framework that is supported by all OS's that you want to support, which currently would be .NET 4.7.2 this version is distributed to all Windows user by the windows update. Therefore it should already be installed on your users machines. If you fear that your users never install updates on their machine you could .NET 4.6 which was the first one that shipped with Windows 10.

Going for maximum compatibility can be a valid target, but with .NET being installed by windows update, you don't have to go as far as .NET 3.5 and missing out on new language features and bug fixes.

Jake1164
  • 12,291
  • 6
  • 47
  • 64
Zavog
  • 181
  • 4
  • It looks like the version i have on my windows 10 laptop is 4.5.2 – user3120554 Jan 15 '19 at 12:54
  • The main issue i'm worried about is that users are in most cases not able to install anything themselves, which is why i was looking to build something that supports multiple versions of windows – user3120554 Jan 15 '19 at 12:55
  • @user3120554 are you sure that it is 4.5.2? How did you check that, if you didn't already use it, use this guide: https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed – Zavog Jan 15 '19 at 15:38
  • @user3120554 .net 3.5 needs administrator permissions to install on Windows 10. .NET 4 is installed by default. – jao Jan 15 '19 at 17:16