Вот, вы можете сделать прогу под .Net и вам хватит предыдущей версии. Но вы, чтобы быть в ногу со временем — скомпилите под самую последнюю — 4.7.2 А ведь у юзверя ее может не оказаться на компьютере и ему придется скачивать, тратить дрогоценное время.
По этому желательно выделить некие LTS-версии, чтобы не гнаться за новым.
Объективной LTS является .Net 4.0, ибо она последняя, которая работает на Windows Server 2003. Да, их мало кто используют, но некоторые сценарии все же могут быть (могут держать старый сервер за NAT-ом на Win 2003 потому что он тупо работает, подключиться извне к нему нельзя, по этому вопрос безопасности остро не стоит). Но это отдельные случаи.
Далее. Можно учитывать предустановленные в OC, но тут глухо, ибо даже в Win 7 изначально предустановлена 3.5, а остальные ставят с обновлениями.
В Windows 8 предустановлена 4.5 — можно назвать ключевой (в Windows 8.1 — 4.5.1).
В Windows 10 — предустановлена 4.6.
Посколькуо Windows 8/8.1 используют мало а .Net 3.5 — точно не вариант (т.е. пользователи Windows 7 по любому должны поставить/обновить), то LTS версиями можно считать эти две:
4.0 (за то что работает на Windows Server 2003) 4.6 (за то что установлена на Windows 10)
Тем более что в новых версиях ничего особенно ценного не добавили.
Итак, если хотите поддерживать старых пользователей/особые случаи — то скомпилить под .Net 4.0. Для остальных случаев скомпилить под .Net 4.6. Так или нет?
Здравствуйте, Shmj, Вы писали:
S>Вот, вы можете сделать прогу под .Net и вам хватит предыдущей версии.
Что за прогу? Если это какая-то жалкая утилита командной строки, которую скачивают в архиве, то да, требовать установку последнего фреймворка — это перебор. А если игрушка, программный пакет, сервисная оболочка, то как бы все равно, если нужно установить какую-нибудь библиотеку (сужу по себе и по Steam'у). Тут главное организовать все красиво. Если ваш софт крашится с ошибкой, то да, это и есть проблема.
Как распространяете (distribute) программу? Desktop appliction + nsis + нужный фреймворк + автоустановка всего (пользователь жмет кнопку "далее" в установщике) = никто не жаловался.
Здравствуйте, Shmj, Вы писали:
S>Итак, если хотите поддерживать старых пользователей/особые случаи — то скомпилить под .Net 4.0. Для остальных случаев скомпилить под .Net 4.6. Так или нет?
.Net 4.0 не умеет TLS 1.2 поэтому не для чего серьезного не годится.
4.5. — необходимый минимум.
Здравствуйте, Shmj, Вы писали:
S>Вот, вы можете сделать прогу под .Net и вам хватит предыдущей версии. Но вы, чтобы быть в ногу со временем — скомпилите под самую последнюю — 4.7.2 А ведь у юзверя ее может не оказаться на компьютере и ему придется скачивать, тратить дрогоценное время.
Ничё страшного. Десятку каждую неделю качают — и ничего! Рантайм 4.7.2 — 80 мегов, качать — одна минута.
Я компилю под последнюю версию, чтобы не париться с багами и новыми фичами. Если я что-то нашёл в .NET (в статьях), значит это у меня гарантированно будет.
Здравствуйте, BlackEric, Вы писали:
BE>.Net 4.0 не умеет TLS 1.2 поэтому не для чего серьезного не годится. BE>4.5. — необходимый минимум.
Угу, вот аффтыри языка программирования Julia для версии 1.0 заложились на 4.5 и PowerShell 3.
Теперь ни у кого под виндой раньше десятки пакеты вообще не грузятся, молодцы, чо.
В итоге надо руками реестр править для TLS, но это помогает для первых двух, третий пакет уже явно требует PowerShell 3, который у меня на 7 SP1 в принципе не ставится, как и более старшие. Просто пишет, что не установился, даже без ошибки.
К успеху ребята пришли, первая мажорная версия!
P.S. А мелкософт таки не зря github купила, обновила API до требования TLS, теперь ни под чем раньше десяточки работать не будет, профит.