- •Глава 12. Обработка ошибок с помощью исключений
- •Глава 13. Перегрузка операторов и нестандартные преобразования
- •Глава 14. Делегаты и обработчики событий
- •Глава 15. Программирование многопоточности
- •Получение метаданных с помощью отражения
- •Глава 17. Взаимодействие с неуправляемым кодом
- •Глава 18. Работа со сборками
- •Чтение полей разных типов
- •Выполнение sql-команд
- •Настройки
- •Страницы
- •Примеры
- •Клиентские приложения
- •Влияние Microsoft
- •Влияние vb.Net
- •Разработка gui
- •Разработка веб-приложений
- •Влияние платформы на самосознание программистов
- •Тигры рвутся вперёд
- •Благодарности
- •Введение
- •Предыстория
- •Использование кода
- •Устанавливаем любимое соединение
- •Обзор команд
- •Не забывайте закрыть, когда вы закончили!
- •Когда хорошие соединения становятся плохими
- •Свободные концы
- •Введение
- •Использование кода
- •Пример вывода
- •Интересующие моменты
- •Не много теории...
- •Прозрачность (Transparency)
- •Пользовательские редакторы стадии проектирования
- •Расширение функциональности контрола Shape
- •Пример - Демо Приложение
- •Возможные улучшения
- •Заключение
Влияние платформы на самосознание программистов
Безусловно, больше всего на качество программного обеспечения влияет качество самих разработчиков, а не язык программирования. Тем не менее, мой опыт говорит о том, что в подавляющем большинстве проектов на Java для build management используется Ant, а в .NET очень часто билды делаются встроенными средствами Visual Studio, хотя аналогичные инструменты существуют и для .NET. Кроме этого, в C# нет чётких правил наименования классов и их размещения на диске, что часто вносит дополнительную путаницу (конечно, квалифицированные программисты успешно борются с этой проблемой).
В С# нет checked exceptions, есть даже объяснение почему. Такое решение имеет свои резоны, но если компилятор не контролирует обработку checked exception, то нужно больше рассказывать об обработке ошибок через другие коммуникационные каналы, иначе появятся программисты, которые вообще не будут знать, что такое exception.
Тигры рвутся вперёд
Есть области, в которых Java доминирует безусловно, например, игры для мобильных телефонов или технология JavaCard. Однако, борьба между C# и Java за долю на рынке будет идти ещё долго, обе платформы будут совершенствоваться, например, в Java 5 и .NET 2.0 появится поддержка generics.
Очевидно, что успех каждого конкретного проекта зависит не от языка программирования, а от понимания задачи, умения давать методам понятные названия, способности избегать дублирования кода и других общечеловеческих ценностей.
Благодарности
Огромное спасибо Дмитрию Жемерову, благодаря которому вам не пришлось читать всю ту ерунду, которую я написал сначала, компании DataArt, которая дала мне возможность заниматься изучением C# в рабочее время, коллегам из компании DataArt, которые оказывали мне интеллектуальную и моральную поддержку, а также компании JetBrains, которая очень вовремя начала делать ReSharper, который позволяет получать на C# многие виды удовольствия, привычные пользователям IntelliJ IDEA. Особая благодарность Алексею Пчелинцеву за заботу о букве Ё.
Введение
В этой статье я хочу показать, как добавлять и читать данные из баз данных SQL Server или MSDE. Этот код должен работать на обоих SQL-серверах. Я использую как 2000, так и MSDE. Кроме того, я использую Visual Studio 2002, но все это должно работать и с Visual Studio 2003, Web Matrix, и SDK из командной строки. Приведенный код должен работать как с приложениями C#, так и с веб-приложениями C# и веб-сервисами. Этот код не компилируется на FreeBSD с помощью Rotor [^].
Предыстория
Часть моего текущего проекта требует от меня сохранять и восстанавливать информацию из базы данных. Я решил использовать C# как свой основной язык с тех пор, как начал читать книгу Inside C# Second Edition [^] от Tom Archer [^], которая, таким образом, является обязательной. Однако я не смог найти примеры того, как красиво и в общем виде использовать SQL-сервер с C#.
Использование кода
Я не включал пример приложения, потому что код, который приводится в статье, может быть использован в реальности и должен работать без проблем. Также во всей статье я буду ссылаться на SQL Server, MSDE - это свободная версия SQL Server, которая не предоставляет некоторых графических инструментов и имеет несколько других ограничений, например, размер базы данных. Этот код должен работать на обоих без проблем.
