Фоновый компилятор
Одна из особенностей, отличающих Visual Basic от других языков в Visual Studio, — применение фонового компилятора (background compiler, BC). BC работает с момента открытия проекта Visual Basic и до тех пор, пока он не будет закрыт. Когда вы набираете строку кода и нажимаете клавишу Enter (подтверждаете ввод), BC определяет внесенные изменения и компилирует их, добавляя полученную информацию к внутреннему представлению (коду) разрабатываемого приложения. BC реагирует и на внешние изменения, обновляя состояние скомпилированного кода при добавлении ссылок, изменении настроек проекта или получении более новой копии одного из файлов проекта от системы управления версиями исходного кода.
Создание расширяемых приложений. Использование Plug-In'ов
Расширяемое приложение практически всегда имеет очевидные преимущества перед нерасширяемым. Прежде всего - возможность добавить функциональность без перекомпиляции приложения, а значит и без распространения полного дистрибутива всего программного пакета, а для крупных продуктов создания дистрибутива и распространение между клиентами весьма накладно, не только с точки зрения потерянного разработчиками времени, но и потраченных средств на запись дистрибутивов на носители, сетевой трафик.
Но это не основное преимущество, которые дает возможность расширения приложений - возможность создать "надстройку" привлекает сторонних разработчиков к интеграции своих наработок в ваш продукт, а также привлекает пользователей включится в работу по улучшению проектов. При этом, достаточно часто, сторонние разработчики находят ошибки не выявленные собственной Quality Assurances.
Также это дополнительный плюс с точки зрения маркетинга. Современные крупные продукты просто обязаны быть расширяемыми, чтобы не смотреться "бедными родственниками" на фоне более "продвинутых" конкурентов.
Subclassing в VB.NET
Введение
Прежде всего необходимо сказать несколько слов для начинающих программистов, возможно впервые сталкивающихся со словом subclassing1 (читается как "сабклассинг"). По-простому можно объяснить этот термин, как создание некоторой "обертки", расширяющей уже имеющуюся функциональность, для уже существующего класса. Допустим, уже имеется такой контрол как TreeView, и нет особого смысла заново создавать этот элемент управления, гораздо проще расширить уже имеющийся, например добавив возможность подсветки разными цветами, либо включением анимированных gif картинок и т.п.
Ранее, при использовании Visual Basic вплоть до шестой версии, приходилось идти на различные ухищрения для реализации subclassing'а. Порой, напарываясь на множество подводных камней, разработчик отказывался от идеи использования функций "чужого" контрола и писал свой. Для реализации subclassing'а в VB требовалось достаточно много не всегда понятного начинающим программистам кода. Примером могут служить популярные библиотеки, используемые для реализации subclassing: SSubTmr.dll, автор: Steve McMahon (доступна на http://www.vbaccelerator.com/2 с исходным кодом), либо SubTimer.dll, автор: Bruce McKinney (на основе этой библиотеки создан SSubTmr.dll).
В Visual Basic .NET эта проблема решена! Теперь subclassing это достаточно простой и удобный метод создания контролов с расширенной функциональностью. (Примером может служить мой контрол DiskTree, опубликованный на этом сайте).
В этой статье я постараюсь достаточно подробно и понятно рассказать о использовании subclassing'а. Статья рассчитана как на начинающих программистов, так и на опытных программистов VB6 переходящих на VB.NET.
Изменения в VB.NET
Изменения в операторе Dim
В VB 6 приходилось объявлять тип каждой переменной
Dim i As Integer , j As Integer
Теперь стало легче объявлять набор переменных одного и того же типа
Dim i , j As Integer
В этой строке кода и х и у являются переменными типа Integer . Есть и другая новинка переменную теперь можно инициализировать прямо в операторе Dim .
Dim i As Integer = 5
В Visual Basic 6.0 нам пришлось бы писать так
Dim i As Integer
i = 5
Использование Microsoft Visual Studio .NET
Введение
Microsoft Visual Studio на сегодняшний день является одним из лучших средств разработки приложений. С каждой новое версией эта среда приобретает все больше и больше полезных функций, но, при этом, становиться все сложнее и сложнее, тем самым отпугивая начинающих программистов. Даже многие профессионалы не используют всех возможностей, что значительно усложняет работу.
В связи с этим, данная статья предназначена познакомить разработчиков с этой уникальной средой чуть-чуть поближе. Прежде всего, я полагаю, эта статья будет интересна начинающим программистам, решившим перейти от использования Visual Basic 6.0 IDE к использованию .NET.
Элементы управления .NET. Работа с TreeView
Введение
Эта статья начинает цикл коротких статей по работе с элементами управления .NET. Это достаточно странно, но именно работа со стандартными элементами отпугивает начинающих программистов. Я понимаю, насколько это сложно начинать свой путь к вершинам "программерского" искусства с такой системы, на первый взгляд сложной, как Visual Basic .NET. Поэтому-то я и начал этот цикл. К каждой статье прилагается пример, который сам по себе демонстрирует описываемые возможности и он должен служить основным источником информации - учится на примере всегда легче, чем читая что-то отвлеченное, пусть даже изобилующее кусками кода.
Чаще всего задают вопросы по TreeView, с него и начнем. Давненько я не писал ничего для начинающих ... Посмотрим, что получится на этот раз. So, let's rock!
Поиск записи в XML-документа
Доля поиска записи в XML-документе проще всего воспользоваться классом DataSet (для получения доступа к этому документу) и классом DataView (для просмотра документа). Метод Sort обеспечивает сортировку записей, а метод Find – поиск. Далее приведенный пример демонстрирует на XML-файле, как реализуется данная идеология поиска.
XML и .NET Framework
Microsoft .Net Framework использует XML Document Object Model (DOM), чтобы обеспечить доступ к данным в XML-документах и дополнительные классы для чтения, записи и навигации в пределах XML-документа. Эти классы поддерживаются пространством имен System.XML, которое также объединяет XML DOM с механизмом доступа к данным средствами ADO.NET. Кроме System.XML в .NET Framework имеются следующие пространства имен по работе с XML:
Создание графического файла на основе данных, хранящихся в XML-документе
Приведенный далее код на основе данных, содержащихся в XML –документе создает графические файлы. Класс XmlDocument применяется для получения доступа к документу, а его метод Load реализует загрузку документа. Класс XmlNodeList образует список всех элементов документа. Свойство GetElementsByTagName этого класса возвращает элемент по его тегу, а свойство InnerText – текст, содержащийся внутри тега.
Запись данных в XML-документ, класс XmlTextWriter
Класс XmlTextWriter позволяет записывать данные в XML-документа. Свойства Formatting устанавливает, надо ли создавать отформатированный документ. Метод WriteComment записывает комментарий к документу, а методы WriteStartElement, WriteEndElement и WriteString конструируют открывающий и закрывающий теги, а также вводят текст в элемент.
