Я поместил бы Java и C # в лагерь Simula:
Smalltalk, будучи динамически типизированным, довольно сильно отличается от четырех других языков, которые вы цитируете.
Smalltalk структурно типизирован (псевдоним утиной типизации), в то время как остальные четыре номинально типизированы.
(Что общего у Java и C # с Smalltalk, в основном основано на ВМ, но мало влияет на стиль программирования).
Если у вас только один из них, разница невелика.
Если у вас их несколько, вам следует используйте статические переменные, а не переменные приложения
. Метод Application.Lock
заблокирует все переменные приложения
, в то время как вы можете использовать отдельные идентификаторы синхронизации для своих статических переменных, так что каждая блокировка влияет только на код, который обращается к этой конкретной переменная.
Это распространенный сценарий, в котором вы просматриваете несколько страниц и собираете данные. Для этого сценария я бы использовал объект Session. Статические переменные следует использовать, когда все приложение нуждается в одном и том же объекте.
Если значение, которое вы хотите сохранить, зависит от пользователя, используйте сеанс.
Это настоящие переменные сеанса, которые следует использовать только если вы хотите сохранить значение для всего сеанса, но в случае, если вы хотите, чтобы переменные были инициализированы и использовались между формами, и если они были изменены в betwwen, они должны быть доступны во всем приложении для одного и того же объекта, необходимо использовать статические переменные.