В конечном результате важен конечный результат!

вторник, ноября 08, 2005

ColdFusion. Урок №0 - "Вводный" (продолжение)

Итак, попробую сравнить ColdFusion и ASP.NET.
Вообще, безусловно, очень трудно. Но надо! :) И даже не то, что трудно, а не корректно. Это вам не яблоки сравнивать!
Ладно. Попробую на упрощенных примерах сравнить эти две технологии.
Каким образом будет идти сравнение? Очень просто. Сначала иден название "фишки", потом возможность реализации этой фишки в ColdFusion и в ASP.NET, ну а потом краткий вывод. А уже в конце, я попытаюсь обобщить все эти мелкие выводы в один большой. Ну а вы конечно можете участвовать в обсуждении или корректировки моих высказываний и сравнений.

1. ЯЗЫК

Возможности ColdFusion:
Имеется по сути два языка - CFML (ColdFusion Markup Language) и CFScript (очень похожая на javascript-написание).
Языки по сути можно совмещать, но просто принято писать различные функции на CFScript, а все остальное - на CFML - теговом языке (типа HTML).

Возможности ASP.NET:
Поддерживается более чем 25 различных языков, но наиболее популярны только два - Basic .NET и C#. Правда большинство разработчиков предпочитают использовать только один какой-то конкретный язык.

Краткий вывод:
Возможности CFML гораздо богаче чем Basic .NET или C#, так как с легкостью можно использовать SOAP, COM или Java-объекты. К тому же, использовать CFML гораздо проще, ибо это теговый язык, а следовательно значительно упрощается и убыстряется процесс создания работающего приложения.

2. ВОЗМОЖНОСТЬ КЭШИРОВАНИЯ СТРАНИЦ

Возможности ColdFusion:
Легко. Кэширование поддерживается не только на уровне страницы, но и на уровне Баз данных. Т.е. вы легко можете кэшировать какой-то запрос в течение указанного вами времени, по истечение которого или при соблюдении какого-либо условия, запрос может быть обновлен, а данные могут опять попасть в кэш.

Возможности ASP.NET:
Кэгирование поддерживается, но на сколько мне известно только на уровне страницы. На счет БД - не знаю, поэтому кто знает - поправьте.

Краткий вывод:
Кэширование на уровне БД - очень удобно, особенно когда ваши данные в БД "относительно статичны" - т.е. редко изменяются или дополняются. Хотя к примеру, вы можете даже на новостном сайте устроить 10 или 15-минутное кэширование, чтобы не напрягать сервер. Так как поддерживается и кэш на уровне страницы, то 2:1 в пользу ColdFusion.

3. ДРАЙВЕРЫ БАЗ ДАННЫХ

Возможности ColdFusion:
На данный момент, ColdFusion поддерживает вот что:
- DB2 Universal Database
- Informix
- J2EE Datasources (JNDI)
- MS Access
- MS Access с поддержкой UNICODE
- MS SQL Server
- MySQL
- ODBC Socket
- Oracle
- Sybase


Кликните по картинке, чтобы увеличить ее


К тому же, вы можете самостоятельно настроить ColdFusion на работу с другими "экзотическими" БД - для этого есть специальная форма настройки в Администраторе ColdFusion.
Конечно, в сфере безопасности, устройство работы с БД в ColdFusion очень удобно - вы в любой момент можете создать источник данных (DSN) - подключиться напрямую к БД через выбранный драйвер или через ODBC сокет. Причем вам сразу же будет виден результат. Если будет выявлена какая-то ошибка - она немедленно будет показана.

Возможности ASP.NET:
Безусловно, для продутка Microsoft, все "свои" же БД являются как родными. С другими БД тоже дело обстоит достаточно нормально.

Краткий вывод:
Нельзя ни в какой мере сравнивать удобство добавление источников данных в CF и в ASP.NET. Это хорошо на иллюстрации, приведенной выше.

4. ВЫВОД ДАННЫХ ИЗ БД

Возможности ColdFusion:
Вообще, для вывода всего, что можно вывести - есть специальный парный тег - cfoutput. Все, что внутри этого тега - видит пользователь. Это в первую очередь касается именно динамических данных.
Вывод данных очень прост.
Сначала вы естественно пишете запрос к БД, или не пишите, если вы используете компонент, в котором уже все написано. Лучше покажу на реальном примере, который в это самое время разрабатывается мною:


Кликните по картинке, чтобы увеличить ее


И все. Причем между cfoutput вы можете помещать любые HTML-теги и JS - как это показано на иллюстрации.
Кстати вывод можно осуществлять путем цикла. Также вы можете произвольно и самовольно указать начиная с какой и по какую строку вы хотите выводить данные!!!

Возможности ASP.NET:
Таких богатых возможностей конечно нет. Все примитивно и убого. А главное - очень нудно занятие писать код.

Краткий вывод:
Удобство и еще раз удобство работы с данными в ColdFusion! Полный контроль и свобода воли вывода данных с любого места.

5. РАБОТА С XML/XSLT

Возможности ColdFusion:
Вы вольны делать все что угодно - создавать, распознавать, передавать редактировать и удалять. Поддерживается и XPath.
Особого смысла нет расписывать тут что-то поконкретнее. Просто словами "создавать, распознавать, редактировать и удалять" на мой скромный взгляд и так все сказано.

Возможности ASP.NET:
Также поддерживается вся полноценная работа с XML.

Краткий вывод:
Ничья.

6. WEB SERVICES

Останавливаться на этом пункте пока не буду. Это вообще очень объемная тема, которую мне пока не хочется затрагивать. Скажу одно - обе технологии поддерживают web-сервисы.

7. DEBUGGING

Возможности ColdFusion:
Ооооо... тут настолько богатые возможности по отладке, что лучше привести иллюстрацию:


Кликните по картинке, чтобы увеличить ее


Если кому-то нужны пояснения - спрашивайте, я вас все объясню на пальцах... :)

Возможности ASP.NET:
Ммммм... как-бы помягче сказать? Ээээ... думаю, что вы все поняли.

Краткий вывод:
Ээээ... думаю, что вы все поняли.


8. CHARTING

Возможности ColdFusion:
Ну что тут говорить - поддержка и Flash и PNG и JPG.

Возможности ASP.NET:
Нет ничего. Нужны сторонние технологии.

Краткий вывод:
MS проигрывает.


9. ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ КОДА

Возможности ColdFusion:
Пользовательские компоненты, пользовательские функции, пользовательские теги. Ну и что говорить - ColdFusion - платформо-независимая технология.

Возможности ASP.NET:
Только windows-платформа. User Controls, Server Controls, custom classes.

Краткий вывод:
Платформо-независимость всегда побеждает, тем более, что тут богатая вариация пользовательских возможностей.

10. СЕРВЕРЫ

Возможности ColdFusion:
Поддерживается MS IIS, Sun ONE, Netscape IPlanet, Apache и так далее.

Возможности ASP.NET:
Поддерживается IIS и Covalent's - коммерческая версия Apache 2.0.

Краткий вывод:
Ээээ.... вывод, надеюсь и так ясен.

Продолжение следует.

3 комментария:

Анонимный комментирует...

Рекомендую сначала изучить обьекты сравнения. То что автор знаком с ASP.NET по наслышке - ясно как день.

injun #576871 комментирует...

Да, я вам тоже рекомендую сначала изучить ресурсы MS на счет сравнения... глядишь вы и увидите, что об указанных свойствах ASP.NET пишут сами мелкомягкие...

Анонимный комментирует...

Согласен со всем, что написано. Но не затронут вопрос производительности. Тут CF проигрывает ASP.NET, причем значительно, ибо это интерпретатор написанный на Java. А ASP.NET при первом запуске страницы компилирует ее и в следующие разы выполняет байт-код, что гораздо быстрее. Именно из-за этого многие разработчики переходят с ColdFusion на другие технологии, работающие более быстро.

Конечно, еще можно назвать такие плюсы ASP.NET как, например, визуальные компоненты, интегрированность с .NET, но с их использованием теряется контроль над выводом HTML.