Все дело в самом приложении, разработчик выбирает подходящую платформу, против которой он / она хочет программировать
![enter image description here](https://i.stack.imgur.com/rEq7m.png)
Затем, при создании проекта установки для развертывания приложения, есть флаг, который указывает для установки этой версии Framework, если у клиентов ее еще нет
![enter image description here](https://i.stack.imgur.com/s5wZs.png)
Это действительно для любого приложения .NET
Мы, разработчики, склонны думать:
Нужны ли мне новые возможности новейшего фреймворка?
потому что это установит новый пакет в клиенте, и иногда нам действительно не нужно и при условии, что у всех есть Vista / Windows 7, .NET 3.5 уже есть, поэтому мы идем на 3.5