Nano Hash - криптовалюты, майнинг, программирование

Почему бы не использовать GDI+ из ASP.NET

Мне сказали, что использование GDI+ из ASP.NET опасно и не определено.

Это потому, что нет гарантии контекста устройства? Может кто-нибудь объяснить?

Каковы некоторые из альтернатив?

Вот источник MSDN:

http://msdn.microsoft.com/en-us/library/system.drawing.aspx

Изменить

Windows и служба ASP.NET! Так что, возможно, нормальное приложение ASP.NET подойдет? Но почему?

Изменить

Это не первоапрельская шутка, пожалуйста, не относитесь к ней так.

01.04.2010

  • @roygbiv: Я думаю, @SLaks спрашивает, кто сказал вам, что GDI+ — это плохо? Это коллеги без опыта работы с GDI+ или эксперты? Есть ли у них особые причины не использовать GDI+? Можно сказать, что любая технология опасна. Это не означает, что точка зрения верна. Больше контекста всегда полезно для ответа на эти вопросы. 01.04.2010
  • @BrianLy - я разместил источник, на который меня направил мой коллега. Пожалуйста, смотрите ссылку. 01.04.2010
  • Спасибо. Я немного обновил свой ответ, основываясь на этом. Вы выполняете развертывание в IIS 6 или IIS 7 (или новее)? 01.04.2010
  • Хотя GDI+ в основном работает из IIS, он не одобрен Microsoft. blogs.msdn.microsoft.com /tom/2008/03/19/gdi-gdiplus-and-asp-net 14.10.2016

Ответы:


1

Существует множество статьи на эту тему и этот код можно вызывать из .NET. Вам нужно убедиться, что вы удаляете все создаваемые вами объекты, поэтому важно использовать оператор C# using.

Причина, по которой System.Drawing может быть проблематичной, заключается в том, что он тесно связан с тем, как Windows рисует. Вы должны максимально изолировать код. В Windows Vista и более поздних версиях Microsoft внесла некоторые изменения в архитектуру служб, которые предотвратили взаимодействие между рабочим столом и службами Windows. ASP.NET технически является службой, если она размещена в IIS (наиболее распространенный случай), поэтому Microsoft добавила примечание. Будущие версии Windows и IIS могут затруднить или сделать невозможным использование System.Drawing из приложения ASP.NET.

Проблема в том, что некоторые люди могли неправильно использовать эту технологию в других проектах, и теперь эти люди пытаются повлиять на то, как вы ее используете. Один из способов справиться с этими опасениями (недействительными или нет, в зависимости от обстоятельств) — создать некоторые показатели производительности и надежности. Затем, когда вы начнете использовать GDI+, продемонстрируйте влияние его использования. Воздействие должно быть приемлемым в большинстве случаев, но это будет зависеть от того, что вы хотите делать с GDI+.

01.04.2010
  • Мои 2 цента: библиотека imageresizing.net использует GDI+ (но также поддерживает WIC в качестве альтернативы) и используется на 20K. до 60 тысяч различных веб-сайтов. Я никогда не связывал проблему стабильности с GDI+, это всегда пользовательский код (или пользователи, неправильно использующие GDI+). Вот несколько подводных камней, на которые стоит обратить внимание... 10.01.2012

  • 2

    Существуют проблемы с масштабируемостью, связанные с созданием дескрипторов окон и ресурсов, которые GDI+ использует в веб-среде.

    Поместил код ASP.NET GDI+ в синглтон, чтобы вызовы сериализовались и правильно удаляли объекты.

    Я без проблем использовал эту технику для динамически созданных изображений.

    01.04.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..