Хит выполнения перекрестного блока.NET

Будьте осторожны при использовании toFixed():

Первый, округляя число сделан с помощью двоичного представления числа, которое могло бы привести к неожиданному поведению. Например

(0.595).toFixed(2) === '0.59'

вместо '0.6'.

1110-секундный, существует ошибка IE с toFixed(). В IE (по крайней мере, до версии 7, не проверял IE8), следующее сохраняется:

(0.9).toFixed(0) === '0'

Это могла бы быть хорошая идея следовать за предложением kkyy или использовать пользовательское toFixed() функция, например,

function toFixed(value, precision) {
    var power = Math.pow(10, precision || 0);
    return String(Math.round(value * power) / power);
}
13
задан dewald 29 August 2009 в 03:01
поделиться

2 ответа

Система безопасности в .NET довольно сложна. Я не уверен, что ответ так прост, как может показаться на первый взгляд. Даже в том случае, если у вас одна сборка, проверки безопасности все равно выполняются. Когда вы запускаете приложение, которое содержит всю логику в одном .exe, вы не обойдете проверки безопасности .NET для загрузки и проверки сборки, а также не обойдете проверки наследования типов. Однако после того, как безопасность была проверена для данной области действия, это обычно не повторяется (могут быть некоторые смягчающие обстоятельства, которые вынудят повторную проверку свидетельств).

Несколько сборок не собираются вести себя по-разному. Могут потребоваться дополнительные затраты на загрузку сборки и начальную стоимость доступа к типу, поскольку каждая новая сборка потребует этих начальных проверок безопасности. Однако, эти проверки обычно бледнеют по сравнению с процессом JIT-тестирования самого кода.

Помимо базовой загрузки сборки и проверок безопасности типов, у вас также могут быть явные требования разрешений. Пространства имен Microsofts System пронизаны проверками безопасности Demand и LinkDemand, которые проверяют, что все вызывающие абоненты в стеке (запрос) или непосредственный вызывающий абонент (запрос ссылки) имеют разрешение на выполнение вызова. (Ваш код также должен включать такие проверки, которые необходимы для проверки того, что вызывающие абоненты также имеют соответствующее разрешение.) Эти проверки безопасности будут происходить независимо от того, где находится код ... локально, в другой сборке или даже в сборке в другом домене приложения. . Однако как только вы получаете вызовы, сделанные в другие домены приложений или процессы, или даже в службы и другие серверы, накладные расходы на маршалинг этих вызовов и установление соединений на порядки дороже.

Это даже не вся картина, когда дело касается безопасности .NET. Некоторые проверки безопасности дороже, чем другие. Для одних требуются учетные данные, для других - доказательства и т. Д. Безопасность - это не то, от чего можно уклоняться ... это важный и важный компонент современной разработки программного обеспечения. Я бы не стал так сильно беспокоиться о стоимости безопасности ... поскольку она хорошо реализована и оптимизирована в .NET framework и CLR. Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает затраты на обслуживание, развертывание и рефакторинг, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Даже полная картина, когда дело касается безопасности .NET. Некоторые проверки безопасности дороже, чем другие. Для одних требуются учетные данные, для других - доказательства и т. Д. Безопасность - это не то, от чего можно уклоняться ... это важный и важный компонент современной разработки программного обеспечения. Я бы не стал так сильно беспокоиться о стоимости безопасности ... поскольку она хорошо реализована и оптимизирована в .NET framework и CLR. Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает затраты на обслуживание, развертывание и рефакторинг, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Даже полная картина, когда дело касается безопасности .NET. Некоторые проверки безопасности более дорогостоящие, чем другие. Для некоторых требуются учетные данные, для других - доказательства и т. Д. Безопасность - это не то, от чего можно уклоняться ... это важный и важный компонент современной разработки программного обеспечения. Я бы не стал так сильно беспокоиться о стоимости безопасности ... поскольку она хорошо реализована и оптимизирована в .NET framework и CLR. Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает усилия по обслуживанию, развертыванию и рефакторингу, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Безопасность - это не то, от чего можно уклоняться ... это важный и важный компонент современной разработки программного обеспечения. Я бы не стал так сильно беспокоиться о стоимости безопасности ... поскольку она хорошо реализована и оптимизирована в .NET framework и CLR. Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает усилия по обслуживанию, развертыванию и рефакторингу, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Безопасность - это не то, от чего можно уклоняться ... это важный и важный компонент современной разработки программного обеспечения. Я бы не стал так сильно беспокоиться о стоимости безопасности ... поскольку она хорошо реализована и оптимизирована в .NET framework и CLR. Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает затраты на обслуживание, развертывание и рефакторинг, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает затраты на обслуживание, развертывание и рефакторинг, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

Я приложу ваши усилия, чтобы ваше приложение было правильно спроектировано и организовано. Если разделение кода на несколько сборок логично, сокращает затраты на обслуживание, развертывание и рефакторинг, то это ХОРОШО стоит небольших дополнительных затрат на безопасность.

14
ответ дан 1 December 2019 в 22:23
поделиться

Эти проверки безопасности выполняются, когда среда CLR загружает сборку. После загрузки сборки дальнейшие проверки безопасности не требуются.

4
ответ дан 1 December 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: