.NET / О вреде изменяемых значимых типов
2011-07-18 22:06:01
Большинство программистов, которых нелегкая судьба свела с платформной.Net знают о существовании ...
+ развернуть текст сохранённая копия
Большинство программистов, которых нелегкая судьба свела с платформной.Net знают о существовании значимых типов (value types) и ссылочных типов (reference types). И довольно многие из них прекрасно знают, что помимо названия, эти типы имеют и другие различия, такие как расположение объектов оных типов в памяти, а также в семантике.
Что касается первого различия (о котором стоит упомянуть как минимум ради полноты изложения), то оно заключается в том, что экземпляры ссылочных типов всегда располагаются в управляемой куче, в то время как экземпляры значимых типов по умолчанию располагаются в стеке, но могут мигрировать в управляемую кучу вследствие упаковки, будучи членами ссылочных типов, а также при использовании их в хитрых экзотических конструкциях языка C#, типа замыканий (*).
Хотя это отличие является очень важным и именно благодаря нему значимые типы существуют и используются, у этой пары типов есть еще одно, не менее важное семантическое различие. Значимые типы, как подсказывает название, являются значениями, которое
копируется каждый раз при передаче в функцию или при возвращении из нее. А поскольку при копировании, как, опять же, подсказывает название, передается и возвращается не исходный вариант, а копия, то все попытки изменений приведут к изменению копии, а не исходного экземпляра.
Читать дальше →
Тэги:
csharp
Про безопасность веб-приложений. Часть 2.
2011-07-12 10:35:31
Итак, вторая часть публикации о проблемах безопасности веб-приложений. В предыдущей части были ...
+ развернуть текст сохранённая копия
Итак, вторая часть публикации о проблемах безопасности веб-приложений. В предыдущей части были затронуты инъекции (injections) и межсайтовый скриптинг (XSS). Мы вспомнили, насколько большую дыру в безопасности составляет использование приложением непроверенных данных. В продолжение темы сегодня хочу остановиться на проблемах управления сессиями и аутентификацией, атаках с подделкой запроса и прямых ссылках.(...)Read the rest of Про безопасность [...]
Тэги:
csrf,
security,
атака,
безопасность,
сессия,
уязвимость
Про безопасность веб-приложений. Часть 2.
2011-07-12 10:35:31
Итак, вторая часть публикации о проблемах безопасности веб-приложений. В предыдущей части были ...
+ развернуть текст сохранённая копия
Итак, вторая часть публикации о проблемах безопасности веб-приложений. В предыдущей части были затронуты инъекции (injections) и межсайтовый скриптинг (XSS). Мы вспомнили, насколько большую дыру в безопасности составляет использование приложением непроверенных данных. В продолжение темы сегодня хочу остановиться на проблемах управления сессиями и аутентификацией, атаках с подделкой запроса и прямых ссылках.(...)Read the rest of Про безопасность [...]
Тэги:
csrf,
security,
атака,
безопасность,
сессия,
уязвимость
.NET / [Киев] Семинар по асинхронному программированию в .Net
2011-07-07 23:55:58
Вчера я был на первом семинаре вообще и по .Net в частности и, так уж вышло, что вел этот семинар я ...
+ развернуть текст сохранённая копия
Вчера я был на первом семинаре вообще и по .Net в частности и, так уж вышло, что вел этот семинар я (да, кроме меня, там тоже были люди, правда). Семинар был посвящен асинхронному программированию на платформе .Net, который состоялся вчера в учебном центре Люксофта.
Присутствовало где-то двадцать человек, большинство из которых – это знакомые ребята из команд, в которых я либо работал, либо с которыми мы довольно тесно общаемся. Но человек 8 было и из других команд и, кажется, даже не из Люксофта. Благодаря тому, что в основном были все свои, атмосфера с самого начала была неформальной: ребята подкалывали меня, я, в свою очередь, их.
Семинар, по сути, был основан на основе двух моих статей по асинхронному программированию: “Асинхронное программирование и AsyncEnumerator” и “Знакомство с асинхронными операциями в C# 5”, а также статьи про внутреннее устройство итераторов: “Итераторы в языке C#”. Реактивные расширения, которые я тоже собрался рассмотреть, решительно не влезли; на рассмотрение только лишь RX-ов двух часов будет мало, так что я решил не распыляться.
В результате получилась презентация на 50 слайдов, примерно со следующей структурой:
Читать дальше →
Тэги:
asynchronous,
csharp,
multithreading,
net
.NET / C# — «Множественное наследование» в свойстве класса (или параметре функции)
2011-07-01 22:21:08
Топик родился из вопроса Множественное наследование в C# для свойств (или параметров функций). ...
+ развернуть текст сохранённая копия
Топик родился из вопроса Множественное наследование в C# для свойств (или параметров функций). Прочитав по совету shedal статью, придумал способ как в C# в качестве типа указать несколько интерфейсов.
В C# можно сделать так, чтобы класс реализовывал несколько интерфейсов. А если нужно чтобы несколько интерфейсов реализовывало свойство? Не создавать же каждый раз для этого новый тип?
Итак, дальше - простой пример решения
Тэги:
csharp,
net