Блог

Новинки Visual Studio 2008 и .NET

В Visual Studio 2008 появилось много интересного, в том числе и поддержка .NET 3.5. Сегодня я xотел бы выделить то, что понравилось мне больше всего.

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

Visual Studio 2008 вытесняет Delphi с моего компью

Я начинаю изменять своему любимому Borland/Inprise/Code gears. Да, я работал с продуктами этой компании на протяжении 15 лет, не обращая внимания на передряги и всякие проблемы внутри компании. Но любовь похоже заканчивается и этому много причин:

1. Первая причина - это моя совесть. Угораздило же меня родиться с этой глупостью в организме. Да, среда разработки от борланда стоит очень дорого, и даже турбо вариант на данный момент мне не по карману. Это единственная программа, за которую готов отдать даже 10 000 р. Если бы они у меня были, но к сожалению...

В первый раз в первый класс

Компонент PropertyGrid позволяет отображать свойства класса в виде сетки, как это делает окно Properties в самой среде разработки. Чтобы компонент отобразил свойства нужного вам класса, просто присвойте этот класс свойству SelectedObject. Например, следующая строка заставит отобразить свойства кнопки Button1:

propertyGrid.SelectedObject = Button1;

Давайте представим, что нам нужно использовать PropertyGrid для отображения нужного нам набора значений. Как это сделать? Да очень просто – можно все эти свойства объединить в отдельный класс и использовать его, как любой другой стандартный класс из .NET Framework. Только чтобы свойства выглядели красиво, их нужно правильно оформить при описании класса.

Давайте напишем пример, в котором на главном окне будет только компонент PropertyGrid, где должны отображаться свойства программы потенциального приложений. Все свойства будут объединены в отдельном классе PropertiesClass, это очень удобно, красиво и будет соответствовать всем принципам ООП. Давайте рассмотрим, как правильно и красиво оформить класс, возможно, вы узнаете что-то новое из жизни .NET.

Пузырьковая сортировка

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

Недавно я увидел подобный код у опытного программиста, который хорошо знает базы данных и прекрасно решает производственные задачи. На вопрос: "А почему так", он сказал, что сложное придумывать лень а это реализовать очень просто.

Безопасные функции

Не секрет, что достаточно большая часть ответственности за безопасность кода лежит на функциях, особенно это относится к С/С++, где повсеместно используются строки, заканчиваются нулем. Это не только самый большой тормоз, но и самый дырявый тип данных. Второй источник проблем безопасности - нарушение логики или ошибки проектирования. Что страшнее? Я не берусь ответить на этот вопрос однозначно, хотя мне кажется, что вторая проблема опасноснее, потому что ее сложнее вычеслить.

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

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

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне