Вообще, безусловно, очень трудно. Но надо! :) И даже не то, что трудно, а не корректно. Это вам не яблоки сравнивать!
Ладно. Попробую на упрощенных примерах сравнить эти две технологии.
Каким образом будет идти сравнение? Очень просто. Сначала иден название "фишки", потом возможность реализации этой фишки в 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:
Вообще, для вывода всего, что можно вывести - есть специальный парный тег -
Вывод данных очень прост.
Сначала вы естественно пишете запрос к БД, или не пишите, если вы используете компонент, в котором уже все написано. Лучше покажу на реальном примере, который в это самое время разрабатывается мною:
Кликните по картинке, чтобы увеличить ее
И все. Причем между
Кстати вывод можно осуществлять путем цикла. Также вы можете произвольно и самовольно указать начиная с какой и по какую строку вы хотите выводить данные!!!
Возможности 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 по наслышке - ясно как день.
Да, я вам тоже рекомендую сначала изучить ресурсы MS на счет сравнения... глядишь вы и увидите, что об указанных свойствах ASP.NET пишут сами мелкомягкие...
Согласен со всем, что написано. Но не затронут вопрос производительности. Тут CF проигрывает ASP.NET, причем значительно, ибо это интерпретатор написанный на Java. А ASP.NET при первом запуске страницы компилирует ее и в следующие разы выполняет байт-код, что гораздо быстрее. Именно из-за этого многие разработчики переходят с ColdFusion на другие технологии, работающие более быстро.
Конечно, еще можно назвать такие плюсы ASP.NET как, например, визуальные компоненты, интегрированность с .NET, но с их использованием теряется контроль над выводом HTML.
Отправить комментарий