Microsoft .NET

Цепь событий

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

Трехслойная архитектура в C# .NET

В данной статье рассматривается типичная трехслойная архитектура в C# .NET. Это очень полезный метод для программирования из-за легкого сопровождения кода.

Специализированные атрибуты (часть 2)

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

Специализированные атрибуты (Часть 1)

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

Красота фракталов - написание простой программы визуализации фракталов на языке C#

Многие программисты уже писали свои приложения визуализации фракталов, начиная с использования C64 и Amiga до современных компьютеров, используя различные языки (даже в калькуляторе TI в BASIC). Визуализация фракталов является хорошим способом научиться программировать, особенно если вы пишете движок рисования фракталов в C#. В таком случае целью будет сбор множества техник программирования, выученных за несколько лет работы, в одно приложение.

Обзор C# 4.0

Недавно была выпущена .NET Framework 4.0 CTP и теперь нам стоит изучить новые возможности C# 4.0. В данной статье мы расскажем о следующих возможностях: динамический просмотр (поиск методов), ковариация и контрвариация, поименованные и необязательные параметры.

Разделение структуры LINQ to SQL

Данная статья расширяет идею комбинации внедрения зависимости (Dependency Injection) с LINQ to SQL. Структура, определенная в данной статье использует структуру внедрения зависимости компании Майкрософт, названную Unity, а также простую версию AOP, называемую Policy Injection (Внедрение политики). Обе эти структуры можно найти в библиотеке Microsoft Enterprise Library 4+. Используя внедрение зависимости мы можем положиться на IoC, что создаст объекты, зависимости которых будут уже установлены. В таком случае мы обеспечим только то, что один DataContext (или в нашем случае IDataContext) будет использован между любыми созданными сущностями или сервисами. Таким образом нам не нужно управлять масштабом DataContext вручную.

Дополнительные возможности AsyncEnumerator

В этой статье я хочу продемонстрировать некоторые дополнительные функции, предоставляемые AsyncEnumerator, такие как соединение между несколькими параллельными асинхронными операциями, поддержку модели асинхронного программирования (Asynchronous Programming Model – APM), возвращаемые значения, управляемые потоком обратного вызова, синхронизированный доступ к общим данным, автоматическое удаление незавершенных операций и поддержка отмены/времени ожидания. Попутно я также разберу для читателей некоторые распространенные шаблоны программирования, ставшие возможными с помощью AsyncEnumerator.

Класс Enumerable LINQ

В качестве части работы над недавним программным проектом мне пришлось создавать случайным образом упорядоченный список целых чисел из интервала от 1 до 100. Да, очевидно, что это базовая проблема информатики типа 101. Исходно я использовал то же решение, которое написал в школьном классе в 1985 году, используя множество циклов, сравнений, датчиков случайных чисел и несколько массивов. Но теперь, в эпоху декларативного программирования, такое решение меня очень смущало.

Стандартные операторы запроса с LINQ

Язык LINQ позволяет разработчикам включать в код Microsoft® .NET Framework 3.5 SQL-подобные запросы, используя строго типизированный синтаксис. Различные поставщиеи LINQ, в частности методы «LINQ — объекты» (позволяет писать запросы по иерархии объектов) и «LINQ — сущности» (позволяет писать запросы по концептуальной модели Entity Framework), в таком случае способны эффективно обрабатывать запросы, учитывая особенности хранилищ данных.

Решение 11 распространенных проблем в многопоточном коде

Серверным программам давно уже приходится иметь дело с одновременной в своей основе моделью программирования, а по мере распространения многоядерных процессоров с ней придется иметь дело и клиентским программам. С добавлением одновременности приходит ответственность за обеспечение корректности. Другими словами, программы должны поддерживать прежний уровень устойчивости и надежности в присутствии больших объемов логической одновременности и постоянно меняющегося уровня параллелизма физического оборудования.

Новинки языка C#.NET

В этой статье я расскажу о новшествах в языке C#, которые были привнесены в язык с выходом первой Beta версии .NET Framework 2. Основная задача статьи - рассказать разработчикам о новых замечательных возможностей, доступных при разработке программ на C#.

Некоторые вопросы создания компонентов в C#.NET

Безусловно, в .NET Framework много стандартных компонентов и разнообразных вариантов их настройки. Тем не менее, часто возникает необходимость добавить к ним некоторую функциональность или написать новый компонент. Не буду утомлять Вас излишними подробностями, а сосредоточусь на некоторых моментах, представляющих интерес при первом знакомстве с данной темой.

C#.NET: Обзор языковых возможностей

Вместе с выпуском новой платформы .NET компания Microsoft представила новый язык, идеально подходящий для новой платформы - C# (читается "си шарп"). Станет ли он для Вас любимым и единственным или одним из постоянно используемых решать Вам, так как .NET дает такую возможность. Но на мой взгляд любой .NET программист должен знать C#, как язык специально созданный для работы с этой платформы.

.NET глазами дельфийца. C#

При знакомстве с новым языком программирования любогопрограммиста в первую очередь интересует семантическая основа языка, т.е.насколько его выразительные возможности позволяют реализовать привычныелогические конструкции.Учитывая то, что C#, как и Delphi, выступает одновременнов двух качествах, т.е. с одной стороны, является семантически строгоопределенным языком программирования и, с другой стороны, используетпоставляемые в составе .Net библиотеки классов и компонентов, на первом этапеимеет смысл сконцентрироваться на самом языке программирования, т.к. изучение исравнительный анализ библиотек классов - гораздо более объемная работа.

Углубление в C#

Интервью с ведущим разработчиком Microsoft - Андерсом Хейлсбергом (Anders Hejlsberg). В июле, редактор O`Reilly Джон Осборн посетил конференцию профессиональных разработчиков Microsoft, где взял интервью у Андерса Хейлсберга, выдающегося специалиста и ведущего разработчика C#, о платформе Microsoft .NET и языке программирования C#. Андерс Хейлсберг известен как человек, который разрабатывал Turbo Pascal, один из первых языков доступных на PC. Андерс лицензировал Turbo Pascal корпорации Borland и впоследствии возглавил команду, создавшую Delphi, действительно удачное визуальное средство разработки клиент-серверных приложений. Также в интервью принимали участие Тони Гудхью (Tony Goodhew) - Microsoft менеджер C#, и редактор раздела Windows в O`Reilly - Рон Петруша (Ron Petrusha).

Динамический поиск подключаемых модулей

Расширяет инфраструктуру для добавления поддержки подключаемых модулей в ваши .NET-приложения, чтобы вы также могли осуществлять динамический поиск подключаемых модулей в собственном каталоге приложения.
Прежде всего, эта статья — дополнение к моей предыдущей статье о подключаемых модулях. Я рекомендую вам, прежде чем погрузиться в эту статью, ознакомиться с первой. Основная цель этой статьи — избавить пользователя от файлов конфигурации. Основная мысль — обеспечить, чтобы при загрузке ваше приложение могло просматривать .DLL-файлы своего каталога, находить те, которые содержат типы, поддерживающие интерфейс IPlugin, и создавать экземпляры этих подключаемых модулей. Никакого вмешательства пользователя, за исключением копирования .DLL-файла в каталог приложения, не должно быть.

Создание подключаемой инфраструктуры

Люди, как правило, добавляют поддержку подключаемых модулей в свои приложения по следующим причинам:
- Чтобы расширить функциональные возможности приложения без необходимости перекомпиляции или повторного распространения его среди заказчиков.
- Чтобы добавить функциональные возможности без необходимости доступа к оригинальному исходному коду.
- Бизнес-правила для приложения меняются часто или часто добавляются новые правила.

Прикладное применение рефлексии в .NET

NET Reflection представляет собой классический пример некоторой низкоуровневой библиотеки, которая может быть использована при решении прикладных задач. Что же это такое?Рефлексия (ударение на последнем "и", синоним слова интроспекция), или, по-английски, reflection - система, предоставляющая выполняемому коду информацию о нем самом. Звучит немного запутанно, и, как всегда, намного проще понять суть на примере.

Применение рефлексии для создания плагинов

Плагины стали неотъемлемой частью больших коммерческих приложений. С их помощью можно наращивать функциональность приложений без повторной компиляции или быстро изменять бизнес-правила, на основе которых работает приложение. Кроме того, для разработки плагинов не нужно иметь доступа к исходному коду приложения, поэтому они могут разрабатываться сторонними организациями. В .NET написание плагинов является простой задачей, которая решается с помощью рефлексии (reflection). Рефлексия позволяет динамически загружать сборки, получать информацию о методах, свойствах, событиях и полях классов из сборок,  создавать новые типы и вызывать методы во время выполнения. Классы и интерфейсы для рефлексии находятся в пространстве имен System.Reflection.

Silverlight 3: Отображение данных SQL Server

Silverlight 3, несомненно, превосходная технология для веб-программирования. Данная статья рассматривает отображение данных из базы данных SQL Server в приложении Silverlight 3.

Иерархические шаблоны данных в Silverlight

Данная статья изучает некоторые свойства иерархических шаблонов данных с помощью пробного приложения "Пользователи и группы". В примере используются управляющие элементы DataGrid(сетка данных) и TreeView(список с древовидным отображением) Silverlight вместе с преобразователями значения.

Silverlight без XAML

Silverlight великолепен, позволяет многое делать с помощью шаблонов и пользовательских управляющих элементов. Но что если надо создать игру или просто классную демонстрацию со снегом для праздников?

Создание приложения веб-чата на Silverlight 2

Silverlight 2 сейчас доступен всем, и лучший способ его изучить – создать маленькое веб-приложение с помощью этой чудесной технологии. Именно это и будет сделано здесь. Будет создан веб-чат с помощью Silverlight 2. Также будут рассказаны некоторые вещи, выясненные о данной новой технологии. Ниже показан снимок приложения веб-чата на Silverlight 2, которое будет создано.