«Не позволяйте 2.0 пройти мимо вас незамеченным», — предупреждает Дино Эспозито. ASP.NET 2.0 был выпущен в ноябре прошлого года, в ожидании разработчиков .NET. Бета-версии действительно дразнили нас всех, и мы стремились заполучить некоторые из новых функций, обещанных в 2.0: мастер-страницы, элементы управления источниками данных, модель провайдера, а также улучшения сеанса и кэша.
Теперь, когда разработчики имели возможность поиграть с некоторыми инструментами, самое время получить отзыв о выпуске от эксперта в этой области. Дино Эспозито — тренер и консультант из Италии, специализирующийся на ASP.NET и ADO.NET. Он пишет колонку для журнала MSDN и является автором многочисленных книг — две из них на ASP.NET 2.0.
Миграция в ASP.NET 2.0
Недавно я задумался об обновлении некоторых из моих приложений 1.1 до версии 2.0. Это то, что вы бы порекомендовали? Мои приложения работают отлично в 1.1. Каковы преимущества для меня обновления?
Запуск 1.1 бинарных файлов в среде выполнения 2.0 может дать вам некоторые преимущества в производительности. Например, в ASP.NET, просто переключая движок, вы уменьшаете размер своего состояния просмотра примерно на 50%. Однако переписывать и обновлять приложения, которые работают и не требуют новых функций, для меня нет смысла. Мой совет — просто подождать, но обновить ваших разработчиков. Не позволяйте 2.0 пройти мимо вас незамеченным. Количество вещей, на которые вам нужно обратить внимание при обновлении позже, может стать сложным в управлении.
Многие разработчики .NET привыкли к идее кода. Теперь, начиная с версии 2.0, мы познакомились с моделью без кода. Что лучше? А как насчет кода внутри?
Это случай «много шума из ничего». Наличие вашего кода в отдельном файле облегчает управление. Если у вас нет такого инструмента, как Visual Studio, для вставки автоматически сгенерированного кода в исходные файлы, эта функция великолепна. Но в целом, есть и другие ключевые улучшения в ASP.NET, которые заслуживают большего интереса, чем эта.
Что вы думаете о будущем VB и классического ASP? Много ли шансов, что эти языки будут существовать сейчас, когда так много людей переходят на .NET?
Это прогресс. Я понимаю огромную базу установленных приложений, но .NET — это большой шаг вперед, и он существует уже более пяти лет. Сейчас в области разработки программного обеспечения, которая родилась около 30 лет назад, пять лет — это геологическая эра. Планирование портирования это лучшее, что нужно сделать. Как ни крути — это чисто бизнес.
Сценарии, стандарты и услуги
Кажется, AJAX захватывает мир программирования штурмом, и программисты .NET не хотят оставаться в стороне. С появлением таких библиотек, как AJAX.NET и Atlas, что вы думаете о будущем .NET и AJAX? Кажется, все ищут способ использовать AJAX в своих приложениях, нужен он или нет. Изменит ли AJAX способ разработки наших приложений?
На самом деле, мы живем в смене парадигмы. То, как работают веб-приложения, меняется на наших глазах. Из приложений, которые работают, запрашивая и заменяя страницы, мы переходим к приложениям, которые работают, запрашивая данные и обновляя текущую страницу. Это жизненный цикл AJAX. Любопытно, что теперь все говорят, что AJAX собирается революционизировать Интернет, но строительные блоки AJAX датируются семью или восемью годами. Еще более удивительно отметить, что сердцем AJAX является компонент XMLHttpRequest, который был создан для Outlook Web Access и впервые включен в IE 5.0 в 1999 году. Также примечательно, что браузеры Mozilla в настоящее время реализуют этот компонент лучше, чем в IE6. (Все изменится с IE7.) Наука (и информатика не исключение) носит накопительный характер, где каждый опирается на то, что другие уже делали ранее. AJAX определенно меняет способ разработки приложений, хотя большинству разработчиков может потребоваться еще пара лет. Это тот период времени, который необходим для того, чтобы Atlas укоренился и расширил сегодняшнюю модель ASP.NET.
Одна из самых больших претензий к Visual Studio и ASP.NET заключается в том, что создаваемый HTML ужасен. ASP.NET может производить качественный HTML; насколько серьезно вы думаете, что Microsoft относится к веб-стандартам?
Я думаю, что они начали воспринимать это всерьез с 2.0 — в частности, с поддержкой XHTML. Тем не менее, некоторые ограничения все еще сохраняются из-за существующего кода. Некоторые части ASP.NET 2.0 создают код, который не совместим с XHTML и вряд ли может быть обновлен. Что касается Visual Studio, версия 2003 переписала разметку разработчиков; К счастью, эта практика закончилась в версии 2005 года.
Вы написали несколько статей о веб-сервисах и .NET. Насколько хорошо работали службы безопасности и веб-службы в 2.0?
Веб-сервисы и .NET — это разные сущности. Веб-сервисы стали настолько популярными благодаря .NET и потому, что .NET Framework упрощает создание веб-сервисов. Тем не менее, веб-сервисы имеют мало общего с .NET — по крайней мере, концептуально. Поэтому для решения проблем безопасности веб-сервисов нам не нужно смотреть на эволюцию .NET: нам нужно смотреть на отраслевые стандарты и на то, как компании разрабатывают программное обеспечение для их реализации. С этой точки зрения я считаю, что Windows Communication Foundation (WCF, ранее известный как Indigo) является лучшей целью.
ADO.NET, XAML и Open Source
Вы ADO.NET и SQL парень. Каковы улучшения в ADO.NET 2.0?
Их не так много, по сравнению с другими частями платформы, и сделанные улучшения в основном невидимы в том смысле, что большинство из них произошло для повышения производительности. DataSet и DataTable — это классы, на которых команда сосредоточилась больше всего. Класс DataTable реализует новые интерфейсы, благодаря которым он работает с сериализацией и веб-сервисами точно так же, как DataSet. Самое важное, что алгоритм сериализации обоих классов был исправлен, чтобы обеспечить истинную двоичную (в отличие от XML) сериализацию. Для крупных корпоративных приложений, перемещающих большие объемы данных, это было ключевой проблемой. Есть еще улучшения, но это то, что бросается в глаза в первую очередь.
Что вы думаете о растущем интересе к расширяемому языку разметки приложений Microsoft (XAML)? Каково его будущее?
Я не знаю. В настоящее время мой интерес к WinFX ограничен приложениями рабочих процессов, в которых используется вариант XAML. Не вдаваясь в подробности, модель в XAML (разметка + файлы с выделенным кодом) является мощной моделью для современных приложений.
Что вы думаете о проектах с открытым исходным кодом ASP.NET и, более конкретно, много ли у вас было опыта разработки приложений для Mono?
Я не большой поклонник чистого программного обеспечения с открытым исходным кодом. Я предпочитаю иметь надежную и надежную платформу, предназначенную для расширяемости с нуля, и для того, чтобы она была полностью документирована, чтобы писать расширения достаточно разумно. Мне также нравится, когда за программным обеспечением стоит компания, которая внимательно следит за тем, что делают пользователи, и должна сказать об этом. Это более или менее то, что Microsoft, похоже, имеет в виду для Office Live. Было бы неплохо посмотреть, как эта модель будет получена.
Дино Дать
У вас есть новая книга — Программирование приложений Microsoft ASP.NET 2.0: расширенные темы — выходит в марте. Он затрагивает некоторые сложные темы в новой среде — например, модель компиляции. Что бы вы назвали лучшей новой функцией ASP.NET 2.0? Что можно было сделать лучше?
На самом деле, упомянутая вами книга — вторая часть более крупного проекта, начатого еще в мае. Я понял, что написать книгу на 1500 страниц было бы слишком сложной задачей, и не только для меня. Это было бы трудно для меня, как для автора, но и для редакторов и рецензентов. Наконец, физически трудно было бы справиться с читателями, которым трудно было бы просто перелистывать страницы.
Поэтому с издателем Microsoft Press я решил разделить исходное оглавление на две книги. Первый том, « Программирование Microsoft ASP.NET 2.0: Базовая ссылка» , вышел в ноябре вместе с официальным запуском платформы 2.0. Он охватывает основные темы — основы. Второй том, который вы упомянули, охватывает более сложные темы. Я разделил оглавление на две части, рассматривая возможные приоритеты, которые могут быть связаны с каждой темой. Темы, которые разработчик разумно хотел бы или должен был изучить в первую очередь, нашли свое отражение в первой книге; все остальное в книге, которая выходит в марте. С другой стороны, опытные разработчики, а также разработчики, которые уже прошли большую часть пути через ASP.NET 2.0 (т. Е. Участвуют в бета-программах и устанавливают тонны ранних сборок), могут перейти непосредственно ко второй книге, в которой рассматриваются детали материал, который трудно найти в существующей литературе и документации.
Мне особенно нравится тот факт, что ASP.NET был глубоко реорганизован внутри, чтобы показать настраиваемые функции, которые были недоступны ранее. Модель провайдера — это общий шаблон, на основе которого строятся многие функции (такие как безопасность, членство, профилирование пользователя и состояние сеанса). Но я вижу, что эта модель расширена и теперь включает механизм компиляции. Одним словом, мне нравится уровень расширяемости и настройки, предоставляемый ASP.NET 2.0. Трудно найти функции, которые можно было бы улучшить, хотя ASP.NET 2.0, как и все остальное в мире, не идеален. Я считаю, что возможности трассировки ниже уровня остальной части фреймворка. Кроме того, серверные элементы управления должны предоставлять более широкий набор возможностей сценариев. Но это усовершенствования, которые будут дальше, с Atlas.
программирование
Во всех ваших статьях и примерах вы используете правильные методы объектно-ориентированного программирования. Вы всегда были программистом OO или начинали как более сценарист?
На самом деле, C ++ был моим первым языком. Я один из немногих, кто сначала изучил C ++ и ООП, а затем перешел к программированию в стиле C и C. Пользуясь C много лет, а затем и языками сценариев, я потерял большинство передовых методов ООП, но с C # я пытаюсь наверстать упущенное.
Я всегда был поклонником экстремального программирования, но я гибок в плане методологии, которую я использую. Есть ли методология программирования, которую вы предпочитаете?
Мне нравится большинство аспектов экстремального программирования и гибкой разработки, но я обычно не принимаю методологии как своего рода религию. Когда я впервые узнал о гибких принципах, я подумал: «Ого, я всегда был проворен — я просто не знал этого». Там нет методологии, которую я действительно одобряю, но все, что кажется мне умным, приветствуется и принимается.
Разработка, основанная на тестировании, существует уже некоторое время, но кажется, что интерес к ней продолжает расти. Каково ваше мнение по этому поводу? Есть ли среда тестирования для .NET, которую вы используете?
Я не пишу много реального кода. Но автоматизированное тестирование является ключевым. Период.
Получение личного
Теперь, когда я немного выбрала твой мозг, я хотела бы узнать тебя немного лучше. Ты уже многого достиг в своей карьере. Какие цели вы все еще пытаетесь достичь?
Поддержание сегодняшнего уровня было бы здорово. Заглядывая в будущее, я не особо консультируюсь и хотел бы увеличить это — чтобы быть больше на передовой. У меня есть, так сказать, мечта, которую я бы хотел превратить в цель: гастроли по всему миру в Южной Америке, Южной Африке, Австралии, Китае и на Дальнем Востоке.
Ваша козлиная бородка принесла тебе птенцов?
Это была просто попытка освежить образ … возможно, с тайной и абсолютно неосознанной надеждой получить, ну, больше цыплят. Но не говори об этом моей жене …
Говоря о себе как о разработчике .NET, я бы сказал, что я восхищаюсь и уважаю вас. На кого ты смотришь?
Людей так много, и для меня большая честь сказать, что большинство из них — друзья. Одно имя? Хм … Джефф Рихтер, хороший парень и великолепный профессионал. Я говорю Джеффу, потому что он косвенно доказал мне, что вещи, которые кажутся невозможными, могут иногда случаться. И он доказал это не раз.
Что вы делаете для забавы? Вы путешествуете, путешествуете, пишете, играете в игры и т. Д.? Дайте нам товар!
Слишком много лет я просто работал, работал и работал еще больше. Затем, прошлой весной, мне исполнилось 40 лет, и я вновь открыл для себя важность фитнеса. Бывают дни, когда я могу серьезно сказать: «Когда Дино не бегает или не играет в теннис, он неплохо работает с .NET». У меня тоже есть семья и двое детей — Франческо и Микела. Несколько читателей моих книг знают о них и видели, как они выросли на классической картине нас на задней обложке.
Есть ли что-то еще, чем вы хотели бы поделиться с личной или профессиональной точки зрения?
Да. Это простое правило, которое стало популярным у одного из абсолютных гениев всех времен — Альберта Эйнштейна. Когда люди просят меня подписать книги, я обычно записываю эту мысль. Будь проще. Это работает в основном везде и делает вас счастливее.
Мы благодарим Дино за то, что нашли время принять участие в этом интервью! Он много сделал для сообщества .NET и, как мы знаем, будет продолжать это делать. Мы желаем ему удачи во всех его будущих начинаниях и с его новой книгой.