Веб-разработка - вы уверены?
Еще не далее как два года назад я услышал возмутившую меня тогда вещь: "HTML не будет уже через 10 лет". "Нелепо", — подумал я и перестал думать об этом до недавнего времени. Видите ли, в течение трех прошлых лет я выбирал работу только в веб-проектах. Я был отличным, что называется, "веб-разработчиком": ASP, Java Server Pages, servlets, HTML, JavaScript — я все это делал. Теперь я думаю по-другому. Я развернулся на 180 градусов и предпочитаю теперь работать над Windows-проектами. И теперь соглашаюсь с вопиющим утверждением, что веб-разработка вскоре может остаться в прошлом, по-крайней мере, на платформе Win32.
Преимущества веб-разработки над разработкой для Windows лежат, в основном, в относительно легком развертывании (deployment) веб-приложений. Однако, что если вдруг появится технология, которая опровергает это преимущество, предлагая легкое развертывание Windows-приложений? Фактически, эта новая технология включена в .NET, хотя пока это и не вызвавает громких аплодисментов. Это называется no-touch deployment ("развертывание без контакта") — и однажды может захватить господство над платформой веб-разработки. Хотя это также может так и остаться просто хорошей вещью.
Почти каждый согласится, что нигде даже близко веб-приложения не предлагают такие же изящные условия и методы работы для пользователя, как это возможно создать в приложениях Windows. Кроме того, разработка приложения для Windows менее сложна, чем создание приложения для интернет. Некоторые причины этого включают увеличенную доступность визуальных средств управления для Windows-программ; нет проблем совместимости браузеров; и меньшее количество проблем с производительностью серверов, потому что Windows-приложение может использовать процессор клиента. Обратной стороной Windows-приложений в значительной степени были DLL, для поддержания которых требовались существенные затраты. Также проблемой было и то, что пользователи не хотят установливать неизвестное программное обеспечение, когда они работают в Интернете. No-touch deployment решает эту проблему, потому что пользователи могут «рассматривать» исполняемые файлы Windows, как если бы они были обычными веб-страницами, без всякой инсталляции. Это означает, что Windows-разработка теперь может предложить те же самые преимущества, что и ваши приложения, написанные на ASP, плюс возможности Windows-программ. Все, что вам требуется — это создать приложение Windows при помощи любого из языков .NET: VB.NET или C#, поместить исполняемый файл в Internet Information Services (IIS) и дать возможность просматривать его пользователям. Исполняемый файл автоматически скачивается и выполняется на клиенте, причем он может легко передавать и получать данные с сервера, пользуясь преимуществами веб-сервисов.
"Звучит как дыра в безопасности", — скажете вы. Нет, все приложения .NET работают в пределах безопасной среды, которую устанавливает .NET code access security (CAS). CAS собирает информацию о выполненном приложении и может ограничить права, которые назначены программам, загружаемым из Интернета. Вы также можете самостоятельно настраивать CAS через .NET Configuration Tool.
По общему признанию, эта модель подобна Java-апплетам, которые в действительности так и не завоевали широкой популярности. Время загрузки и механизм связи между апплетом и сервером сразу сделали апплеты неподходящими для применения. Хотя сегодня ситуация несколько изменилась, многие пользователи имеют скоростное соединение, которые позволяет им быстро загружать этих "жирных клиентов" (fat clients). А также, веб-сервисы обеспечивают изящное решение для связи клиент/сервер.
Здорово, скажете вы? Да, но, к сожалению, возможно, что скорее всего вам придется ждать еще несколько лет, прежде, чем вы реально будете использовать эту модель для разработки вашего следующего веб-сайта "для Windows". Причина в том, что интернет-пользователи могут воспользоваться преимуществом no-touch deployment только если на клиенте установлена .NET Framework. Судя по всему, потребуется пару лет, чтобы большинство компьютеров, использующих Windows, получили .NET, потому что Framework не поставлялась с Windows 2000 или Windows 98. Конечно, существует соответствующее обновление в виде service pack, но большинство "нетехнических" домашних пользователей не будет знать об этом еще в течение некоторого времени (только Windows XP поставляется с .NET Framework).
Поэтому пока, несмотря на очевидные преимущества, "веб-приложения для Windows" не могут быть подходящими для массового потребления. Можно только говорить об использовании для интранета, где есть контроль над машинами клиентов. Подводя черту, дам совет: прежде, чем вы решите использовать ASP.NET, спросите себя, должны ли вы вместо этого подумать о приложении для Windows.
Преимущества веб-разработки над разработкой для Windows лежат, в основном, в относительно легком развертывании (deployment) веб-приложений. Однако, что если вдруг появится технология, которая опровергает это преимущество, предлагая легкое развертывание Windows-приложений? Фактически, эта новая технология включена в .NET, хотя пока это и не вызвавает громких аплодисментов. Это называется no-touch deployment ("развертывание без контакта") — и однажды может захватить господство над платформой веб-разработки. Хотя это также может так и остаться просто хорошей вещью.
Почти каждый согласится, что нигде даже близко веб-приложения не предлагают такие же изящные условия и методы работы для пользователя, как это возможно создать в приложениях Windows. Кроме того, разработка приложения для Windows менее сложна, чем создание приложения для интернет. Некоторые причины этого включают увеличенную доступность визуальных средств управления для Windows-программ; нет проблем совместимости браузеров; и меньшее количество проблем с производительностью серверов, потому что Windows-приложение может использовать процессор клиента. Обратной стороной Windows-приложений в значительной степени были DLL, для поддержания которых требовались существенные затраты. Также проблемой было и то, что пользователи не хотят установливать неизвестное программное обеспечение, когда они работают в Интернете. No-touch deployment решает эту проблему, потому что пользователи могут «рассматривать» исполняемые файлы Windows, как если бы они были обычными веб-страницами, без всякой инсталляции. Это означает, что Windows-разработка теперь может предложить те же самые преимущества, что и ваши приложения, написанные на ASP, плюс возможности Windows-программ. Все, что вам требуется — это создать приложение Windows при помощи любого из языков .NET: VB.NET или C#, поместить исполняемый файл в Internet Information Services (IIS) и дать возможность просматривать его пользователям. Исполняемый файл автоматически скачивается и выполняется на клиенте, причем он может легко передавать и получать данные с сервера, пользуясь преимуществами веб-сервисов.
"Звучит как дыра в безопасности", — скажете вы. Нет, все приложения .NET работают в пределах безопасной среды, которую устанавливает .NET code access security (CAS). CAS собирает информацию о выполненном приложении и может ограничить права, которые назначены программам, загружаемым из Интернета. Вы также можете самостоятельно настраивать CAS через .NET Configuration Tool.
По общему признанию, эта модель подобна Java-апплетам, которые в действительности так и не завоевали широкой популярности. Время загрузки и механизм связи между апплетом и сервером сразу сделали апплеты неподходящими для применения. Хотя сегодня ситуация несколько изменилась, многие пользователи имеют скоростное соединение, которые позволяет им быстро загружать этих "жирных клиентов" (fat clients). А также, веб-сервисы обеспечивают изящное решение для связи клиент/сервер.
Здорово, скажете вы? Да, но, к сожалению, возможно, что скорее всего вам придется ждать еще несколько лет, прежде, чем вы реально будете использовать эту модель для разработки вашего следующего веб-сайта "для Windows". Причина в том, что интернет-пользователи могут воспользоваться преимуществом no-touch deployment только если на клиенте установлена .NET Framework. Судя по всему, потребуется пару лет, чтобы большинство компьютеров, использующих Windows, получили .NET, потому что Framework не поставлялась с Windows 2000 или Windows 98. Конечно, существует соответствующее обновление в виде service pack, но большинство "нетехнических" домашних пользователей не будет знать об этом еще в течение некоторого времени (только Windows XP поставляется с .NET Framework).
Поэтому пока, несмотря на очевидные преимущества, "веб-приложения для Windows" не могут быть подходящими для массового потребления. Можно только говорить об использовании для интранета, где есть контроль над машинами клиентов. Подводя черту, дам совет: прежде, чем вы решите использовать ASP.NET, спросите себя, должны ли вы вместо этого подумать о приложении для Windows.
Jonathan Lurie
Сетевые решения. Статья была опубликована в номере 05 за 2003 год в рубрике мнение