Re: Как Microsoft проиграла битву за API
сорри, я имел в виду, что оригинал, с которого был сделан этот перевод, появился очень давно -- там самое интересное это реакция некоторых товарищей, помню была серия интересных блогов, сейчас их уже не так просто найти
Я вот чего не понял - на кой мелкомягким нужно было вводить имена мутексов? Меня это просто бесит!
черт я как в этой статье описано, нифига про win32 api точно вспомнить не могу
ввели бы глобальные мутексы отдельно. а так не инициализируешь вначале, потом извращаться приходится.
+ тебя же никто не заставляет имя указывать, передавай NULL
Да, не приятно осознавать, что вышедшая только две недели назад .NET 2.0 через год морально сильно устареет с приходом Avalon, Indigo и т.п.
Но это будет через год, а на сегодняшний момент платформа от Microsoft самая удобная для разработки.
Вот это утверждение я вообще не понял:
серия DLL это не новая операционная система?
Старая Microsoft, Microsoft Рэймонда Чена, могла реализовать вещь наподобие Avalon – новую графическую систему – как серию DLL, которые запускаются на любой версии Windows, и могут быть включены в любое приложение. Нет технических причин так не сделать.
Подход Реймонда Чена в принципе утопичен. Он тормозит развитие. Весь вопрос в том, как часто можно отказываться от обратной совместимости. То, что надо отказываться от Win32 и COM это ясно, поскольку есть Java. А то, что MS это делает в два этапа через .NET 1.0, 2.0, ну а как вы хотели, чтобы вам сразу всё на блюдечке?
Сравнение web-программирования и программирования с "богатым" клиентом в статье довольно поверхностное. Как новая платформа Microsoft впишется в современный мир, сейчас вряд ли можно предсказать. Покрасней мере, будущее, в котором будут только веб-приложения, кажется странным. Я такое слышу уже с 2000 года, но что-то HTML-у не слишком удается петь.
Речь идет не о том, что .Net отхватит или не отхватит свой жирный кусок пирога, т.к. .Net как серверная платформа - все равно никуда не денется.
Речь идет о том, что есть тенденция к тому, что Microsoft начинает терять привязку клиентских мест (причем богатых корпоративных) к Windows-у
Речь идет о том, что есть тенденция к тому, что Microsoft начинает терять привязку клиентских мест (причем богатых корпоративных) к Windows-укорпоративные приложения переходят на web-интерфейс?
частично - да.
В первую очередь - те рабочие места, которые имеют простую логику взаимодействия с пользователем.
например, кассовый терминал - кассир через кассовый терминал непосредственно делает мало действий - в идеале, он, вообще. использует только одну кнопку - выбить чек и снять с карточки деньги.
но есть и с более менее сложной. Причем выбирая web-интерфейс, сразу ставится ограничение на развитие проект -- логика взаимодействия с пользователем не может усложнятся. Иногда бывает, что в начале проекта интерфейс кажется простым, а по мере развития проекта интерфейс усложняется.
В первую очередь - те рабочие места, которые имеют простую логику взаимодействия с пользователем.
Имея тонкого клиента - за пару строк можно перейти на толстого клиента причем двумя способа:
либо добавляя .Net-контролы в html-форму,
либо добавляя html-форму в .net-окно.
Тоже самое отчасти верно и для перехода с толстого на тонкий:
если у нас .Net-приложение слабо завязано на локальное окружение, то его всегда можно положить в html-форму и сказать - что это тонкий клиент.
Имея тонкого клиента - за пару строк можно перейти на толстого клиента причем двумя способа:не совсем понял, что эта за пара строк. Типа вставить контрол WebBrowser на форму? и что с этим потом делать?
либо добавляя html-форму в .net-окно.
либо добавляя .Net-контролы в html-формучто ты имеешь в виду?
если у нас .Net-приложение слабо завязано на локальное окружениетк в том то и дело, что если нет локального окружения смысл толстого клиента теряется. "Тормознутость" тонкого клиента устраняется тем, что на клиентской машине можно много чего кешировать и тем самым уменьшать количество обращений к серверу.
да
> и что с этим потом делать?
что хочешь.
формировать вызовы, перехватывать события и т.д.
> что ты имеешь в виду?
что можно в html можно вставить .net-контролы, и они будут автоматом и прозрачно грузиться на клиента
далее из html-формы можно взаимодействовать с этими контролами.
> тк в том то и дело, что если нет локального окружения смысл толстого клиента теряется.
смысл локального окружения другой. Локальное окружение это, например, интеграция с outlook-ом.
> "Тормознутость" тонкого клиента устраняется тем, что на клиентской машине можно много чего кешировать и тем самым уменьшать количество обращений к серверу
что мешает .Net-контролу внутри html-кода все это делать?
Почему народ часто отдает предпочтение тонкому клиенту:
1) Конечно проще поставить сервак и готово -- все пользователи могут работать с приложением. Аналогично, чтобы обновить версию достаточно перегрузить веб-приложение.
2) Как ни странно, но богатый на содержание (всякие формы, много полей и все такое и на оформление интерфейс проще делать на ASP.NET, чем в Winforms.
Соответственно все эти проблемы у сегодняшних технологии толстых клиентов пытаются решить:
1) ClickOnes (или как там она называется) на CAS в CLR -- решает проблемы с доступностью для пользователя
2) WPF (на два порядка более удобный и мощный апи, чем винформы, даст форму веб-технологиям) + плюс другие апи выаодят на уровень
всякие формы, много полей и все такоеречь идет не о количестве однотипных полей, а об интерактивности. В вебе на клиенте для этого только джаваскрип, а на толстом клиенте полноценный язык и полноценные библиотеки.
это все понятно, но наверно часто достаточно поля куда вводишь значение, а скрипт делает валидацию, сейчас идет мода на ajax, будут еще предлагать варианты значений, посчитанные на сервере
На тонком клиенте тоже можно всё кешировать (правда, в рамках одной сессии).
Я такое слышу уже с 2000 года, но что-то HTML-у не слишком удается петь.HTML-ю петь не надо. Петь будут xml и active html, которые не поддерживает только IE и поддерживать не будет (в IE7 - официальное заявление этим летом было) ввиду ставки Microsoft на "толстого клиента".
Почитай спецификацию css3. Через год-полтора (когда выйдет FireFox 3 с полной поддержкой css3) запоёт.
это от безисходности. Начинают прикручивать вещи, которые свойственны "толстым клиентам". Но когда к велосипеду начинают прикручивать мотор, то ездить на нем все равно не будет комфортно.
идет мода на ajax
Вобщем-то понятно, что сейчас идет тенденция к объединению парадигм web и desktop программирования. У архитекторов и разработчиков Microsoft есть уникальная возможность создать удобную инфраструктуру. Поскольку они идут от операционной системы. Те кто идет от веба зажаты рамками веббраузера и джаваскрипта. У Microsoft есть классная основа .NET. Задача сложная и не известно, как у них это выйдет. Но хочется надеется, что все таки выйдет что-то дельное (и тогда они действительно заслуживают своих миллионов долларов иначе рождение хорошей инфраструктуры будет долгое и мучительное.
единственная причина, из-за которой средства разработки программного обеспечения не раздаются бесплатно, заключается в том, что они не хотят случайно перерезать кислород разработчикам конкурирующих инструментов разработкиСпорный факт. Почему, например, они тогда не раздают бесплатно обучающие версии своего ПО
И еще, кто-нибудь в курсе, почему такая замечательная технология, как Macromedia Flash, так мало используется?
Ведь это же чуть ли не идеальный компромисс между тонким и толстым клиентами!
Просто пройдусь по пунктам исходной статьи:
Вот несколько примеров того, что вы не можете действительно хорошо делать в веб-приложении:Так флэш с этого и начинался - быстрая и легкая векторная графика
1. Создавать программы с быстрой графикой.
2. Строить систему проверки орфографии в режиме реального времени с красными волнистыми подчеркиваниями.Базу ворда, конечно, использовать будет проблематично.
А вот брать информацию из web-словарей и сохранять в локальном хранилище, чтобы впредь за каждым словом в инет не лазить - вполне.
3. Предупреждать пользователей, что они потеряют свои данные, если нажмут кнопку закрытия браузера.Такая проблема есть, но вполне реально записывать текущее состояние в то же хранилище (возможно в самой технологии предусмотрено даже что-то более конкретное на этот случай)
4. Обновлять на основе изменений пользователя небольшую часть экрана без обращения к сервера.А вот это как раз легко.
Например, можно открыть сокет и обмениваться с сервером данными в формате xml
5. Создавать быстрый клавиатурный интерфейс (без необходимости использовать мышь).С обработкой клавиатуры у флэша проблем нет.
6. Позволять людям продолжать работу, когда они не подсоединены к Интернет.Это так же возможно с использованием локального хранилища.
Где я не прав?
Потому что гораздо прикольнее дарить лицензии ВУЗам: можно написать, что сделан мега-подарок на огромную сумму -- (число инсталляций)*(стоимость одной лицензии).
И еще, кто-нибудь в курсе, почему такая замечательная технология, как Macromedia Flash, так мало используется?ну а что ты хотел от технологии, которая использовалась поначалу только для создания мультиков =)
Про это я не подумал
ну а что ты хотел от технологии, которая использовалась поначалу только для создания мультиковНу и что с того? Java вон тоже не для того создавалась, для чего сейчас чаще всего используется
А "технологию для мультиков" она переросла еще в 5-й версии, когда в ней появилась нормальная(почти) объектная модель
А с тех пор уже почти 5 лет прошло и 3-4 версии...
зы - .fla до сих пор закрытый формат?
> для чего сейчас чаще всего используется
Пеар-отдел Sun вбухал кучу бабла, чтобы убедить хоть кого-то, что Java - это круто. В результате таки удалось создать несколько тусовок из тех, кто поверил.
Какой интерес Microsoft делать это для Flash, когда можно в своём R&D-отделе взять с пыльной полки несколько игрушек?
ну и кому нужна объектная модель надстроенная над технологией для мультиков?Не надстроенная, а переработанная
Ты конкретные минусы технологии привести можешь?
А то такую фразу можно про что угодно загнуть
зы - .fla до сих пор закрытый формат?Точно не знаю.
Если закрытый - это конечно минус
SDK есть.
Какой интерес Microsoft делать это для FlashА разве он уже у микрософта?
Значит я чего-то проспал
Тогда им не выгодно развивать эту технологию по причинам, указанным в статье (возможно поэтому они ее и купили - чтобы убрать конкурента)
Но неужели нет альтернативных технологий?!
SVG ни во что случайно не перерос?
Проект нельзя создать без .fla файла, который даже в цвс и иже с ними не запихнешь.
Не говоря уже о том, что работа с этим .fla в редакторе просто ужасна.
общеизвестно, что флеш-плеер ведет себя неодинаково в разных браузерах даже в мультиках.Пример такого поведения в студию. Мб там дело в разных версиях плеера или плеер не от Macromedia?
флеш-плеер ведет себя неодинаково в разных браузерах даже в мультикахВ мультиках мб и неодинаково.
Но простой безглючный интерфейс сделать реально
Или ты хочешь сказать, что код там тоже
ведет себя неодинаково в разных браузерах
Проект нельзя создать без .fla файла, который даже в цвс и иже с ними не запихнешь.В саму технологию было встроено (по состоянию на пару лет назад - сейчас наверное больше возможностей есть) по крайней мере две возможности:
1. Код можно хранить во внешних текстовых файлах и подключать их с помощью include - так что код в CVS-е себя будет хорошо чувствовать
2. Есть поддержка работы с библиотеками других флэшек. Даже какие-то библиотеки есть - не добрался пока посмотреть
То есть никакого монолитного fla файла нет - можно выбрать нужный уровень детализации и развивать проект, придерживаясь его
А так любую технологию можно использовать через одно место, так что она станет совсем неудобоваримой
Не говоря уже о том, что работа с этим .fla в редакторе просто ужасна.Что конкретно не устраивает?
В 4-м флэше были некоторые проблемы по работе с кодом, но уже в 5-ке все стало гораздо симпатичнее.
Сейчас не знаю, но если не устраивает, что уж код-то можно писать в любом редакторе (а учитывая, что сейчас из кода можно создавать практически все что угодно, не требуя существования заготовленных векторных (и не только) примитивов, как это было до 5-ки включительно, можно вообще очень редко залазить в фирменный редактор )...
javascript тоже, но это никого не останавливает
а вот если так себя ведут флеш-плееры от макромедии, одинаковой версии...
и ожидать глюков при его разбухании?
>А так любую технологию можно использовать через одно место, так что она станет совсем неудобоваримой
ну так можно ли скомпилировать проект без .fla? (и есть ли компилер, отдельный от редактора?)
а вот если так себя ведут флеш-плееры от макромедии, одинаковой версии...загадочно прищурив глаза, процедил .
Какую-нибудь конкретную несовместимость укажешь, или так и оставишь это в тайне?
есть ли компилер, отдельный от редактора?)Есть, конечно. Поскольку описание формата .swf можно скачать с сайта самой Macromedia. Есть даже компиляторы подмножества C# во flash.
и ожидать глюков при его разбухании?Вам шашечки или ехать С не помню
Я уже говорил, что сломать и испортить можно все что угодно
ну так можно ли скомпилировать проект без .fla? (и есть ли компилер, отдельный от редактора?)Через командную строку можно
Есть даже компиляторы подмножества C# во flashКруто
А можно ссылку
кроме модной технологии ajax?
А она, кстати, применяется где-нибудь в серьезных бизнес-проектах?
И что, ты хочешь, чтобы в большом проекте использовались эти сторонние поделки?
И что, ты хочешь, чтобы в большом проекте использовались эти сторонние поделки?Лично я не решился, они пока сыроваты. Это был ответ на твой вопрос: есть ли сторонние компиляторы? - Есть.
А про неодинаковое поведение - я пример потерял, постараюсь найти.
Есть шанс, что рабочие места во всех банков-участниках платёжной и торговой системы одного из четырёх азиатских тигров будут тонким клиентом на AJAX, работающим поверх Internet и SWIFTNet. Серьёзный проект?
Типа у всех IE 6.0, кто первым поставил сервис-пак, тот проиграл?
По условиям тендера должны поддерживаться IE 6.0 & 5.5 и Netscape 8.0 & 7.0 на Windows 2000 Workstation и Windows XP с любым сервис-паком, которые Microsoft когда-либо выпускала для этих ОС.
но не с теми, которые выпустит позже
а что с сервис-паком?
Очевидно, проект не продуман.
Не говоря уже о том, что если AJAX, то почему не поддерживаются *nix и mac?
это же серьёзный бизнес-проект
видимо нет у них этих систем на местах
говорят, gmail.com имеет к этому какое-то отношение? Или это недостаточно серьезный проект...
support & maintenance до 2013 года включает в том числе и это
Мне кажется, что даже серьезный проект не должен на всякий случай ориентироваться на одну платформу, если использует платформонезависимые технологии.
это же пост-фактум только, так?
в смысле?
как это можно использовать, если там пользователь даже не может отключить звук, не говоря уже об изменении шрифта.
как, например, во Flash-е предполагается хотя бы решать проблему локализации? когда на разных языках один и тот же текст занимает разное место.
имхо, Flash - до сих пор поделка для домохозяек, а не средство - для промышленной разработки.
При промышленной разработке удобно иметь дело с неким конструктором, который можно легко подстраивать под конкретную задачу.
Flash - же сейчас что-то очень и очень монолитное.
а вот если так себя ведут флеш-плееры от макромедииОчень интересно было бы глянуть на такой пример, особенно на его исходник
Подобное поведение может быть как причиной недостаточной квалификации программиста (ну или он просто сглючил так и созданием такого эффекта преднамеренно
кстати, в что там с Macromedia Flex?
если там пользователь даже не может отключить звукХочешь сказать, что в java-аплетах это сделать можно? (я точно не помню, есть ли такая опция в настройках песочницы java )
не говоря уже об изменении шрифтаАналогично.
Кстати, ты уверен, что сейчас это во флэше сделать нельзя? Я не уверен, но что-то похожее для этого я там видел...
Или с какой технологией ты сравниваешь?
как, например, во Flash-е предполагается хотя бы решать проблему локализации? когда на разных языках один и тот же текст занимает разное место.Не знаю, как сейчас, но еще в четверке можно было хранить все тексты в отдельном файле и использовать нужный файл в зависимости от выбора пользователя.
Насчет разной длины - от этого никуда не денешься, но вариант, когда длина объекта пропорциональна длине текста, я реализовывал на 5-ке (или там уже что-то готовое было - не помню точно - главное, что это работало)
имхо, Flash - до сих пор поделка для домохозяек, а не средство - для промышленной разработки.А это скорее потому, что ее так позиционируют ее создатели.
Уж не знаю, намерено, или сами чего-то не понимают, или по доводам, приведенным в сабжевой статье.
При промышленной разработке удобно иметь дело с неким конструктором, который можно легко подстраивать под конкретную задачу.У нас еще почти 6 лет назад была идея создания среды разработки для веб на сомом флэше.
Правда тогда из-за отсутствия денег наша контора распалась, но это было скорее из-за неправильного подхода к поиску заказов, чем из-за технической части.
По крайней мере даже на той преальфаверсии конструктора, которая у нас была, мы создали несколько за несколько месяцев.
При этом повторная используемость готовых объектов была порядка 50% (без учета того, что сам инструмент при этом развивался).
Правда тогда было несколько моментов в технологии, которые затрудняли нашу задачу, но по крайней мере часть из них точно была исправлена уже в 6-ке.
Да и встроенные возможности технологии позволяют ее использовать как конструктор, правда скорее как серверную технологию (еже лет 5 существует фирменный серверный генератор флэша на основе шаблоно).
Flash - же сейчас что-то очень и очень монолитное.Я уже писал здесь, что это не совсем так.
Или ты про что?
Да, конечно, у этой технологии есть минусы, которые, будучи устраненными, значительно повысили бы ее привлекательность.
Например, увеличение степени контролируемости флэша на клиенте: выключение звука/громкость, ограничение на использование проца и памяти, возможность запуска только по прямому запросу и тп (но приведенное - практически все, чего достаточно) - избавило бы многих от желания отрубать его на корню
А так, используя любую технологию, можно сделать бяку, на которую все будут плеваться
Мы вот, например,
если там пользователь даже не может отключить звукименно поэтому практически первым, что сделали - это управление громкостью звука + полное отключение и добавляли этот объект во все свои проекты
Сдаёцца мне, все новые проекты гугла - на аяксе.
У флеша есть один фатальный недостаток. Флешёвые сайты не индексируются поисковиками. Вообще. Со всеми вытекающими.
Меня вот что интересует: я уже довольно давно замечаю в .нет фреймворке 1.1 какие-то забавные фишечки, которые наводят на мысль о том, что у аффторов фреймворка, в свою очередь, были разные мысли про использование чистых .нет компонентов вместо активХ. И вот я немножко не понимаю: секьюрность они уже давно настроили, опыт интегрирования активХ куда угодно есть, АСП есть, аж два способа хмл общения (вебсервис и ремоутинг) есть - так когда же эксплорер научится скачивать по хттп и отображать обыкновенную винформу, периодически тыркающую методы удалённого сервиса?
Или возможность перекрыть доступ компонента к чему угодно, например, не для этого нужна?
это уже есть и было начиная с .net 1.0.
Кроссброузерность? Используй не XMLHttpRequest а возьми Котеровскую библиотеку, переделай как хочешь и гоняй до посинения под всем чем угодно. Эта штука стабильно работает аж под 5 IE, а в случае необходимости можно и под 4 заточить (DOM'овские фишки убрать)
А почему тогда даже на сайте M$ даунлоад манагер выполнен в виде активХ ?
потому что для того тобы поставить .net, нужно его скачать даунлоадером
У флеша есть один фатальный недостаток. Флешёвые сайты не индексируются поисковиками. Вообще. Со всеми вытекающими.А я в новостях читал, что как раз такую возможность в него добавили. Или перепутал?
А вообще эта проблема тоже решается - поскольку вся инфа в такой ситуации лежит в БД, никто не мешает нагенерить страничек с нужным содержанием
Более того, все равно нехорошо игнорировать тех, у кого флэша нет - для них можно сделать что-нибудь простенькое на html-е и на этих же файлах натаскивать поисковики
Главное здесь - это сделать обработку запроса от поисковика, но это можно сделать даже встроенными средствами - флэш поддерживает переход внутрь него по ссылке
А я в новостях читал, что как раз такую возможность в него добавили. Или перепутал?Да, в восьмом флеше появились дополнительные метатеги для поисковиков. Но это только ключевые слова поможет вытащить, а не контент.
Правда, google умеет индексировать флеш в плане вытаскивания из него всех строковых констант, но это тоже положение не спасает, ибо правильно было сказано, что контент лежит в базе и подгружается во флешку динамически.
контент лежит в базе и подгружается во флешку динамическиТогда эта проблема должна решаться аналогично обычным сайтам с динамическим содержимым (из БД).
Оставить комментарий
KyKyPy3HuK
взято отсюда