C#.NET


Статьи о языке программирования C# платформы .NET.


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

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

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

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

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

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

Обзор C# 4.0

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

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

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

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

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

Класс Enumerable LINQ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C#.NET
Интервью с ведущим разработчиком 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).