Еще одна тема для новичков, в которой пойдет речь о базовых инструментах SFDC разработчика.
В первую очередь это три инструмента:
(1) Developer Console;
(2) VisualForce Console, открывается при редактировании APEX стрницы;
(3) Force.com IDE на базе Eclipse.
И не забываем о еще трех специализированных инструментах:
(4) ANT – MetaData migration;
(5) Data Loader – Data migration;
(6) WorkBench – как я понял, это для работы с WEB сервисами.
Какие-то еще инструменты, утилиты?
Но в данной теме речь о первых трех: Developer Console, VisualForce Console и Force.com IDE.
Они не похожи, но есть в их возможностях и схожие моменты.
Вопрос к опытных коллегам:
- В каких случаях, для каких работ, в каких ситуациях лучше использовать тот или иной инструмент?
- Какими уникальными возможностями обладают эти инструменты (т. е. что-то можно сделать только в нем, и никак иначе)?
Спасибо
Еще одна тема для новичков, в которой пойдет речь о базовых инструментах SFDC разработчика. В первую очередь это три инструмента: (1) Developer Console; (2) VisualForce Console, открывается при редактировании APEX стрницы; (3) Force.com IDE на базе Eclipse. И не забываем о еще трех специализированных инструментах: (4) ANT – MetaData migration; (5) Data Loader – Data migration; (6) WorkBench – как я понял, это для работы с WEB сервисами. [i]Какие-то еще инструменты, утилиты?[/i] Но в данной теме речь о первых трех: [b][i]Developer Console, VisualForce Console и Force.com IDE[/i][/b]. Они не похожи, но есть в их возможностях и схожие моменты. Вопрос к опытных коллегам: - В каких случаях, для каких работ, в каких ситуациях лучше использовать тот или иной инструмент? - Какими уникальными возможностями обладают эти инструменты (т. е. что-то можно сделать только в нем, и никак иначе)? Спасибо
В своей работе я в основном использую:
- Force.com IDE (Eclipse) - для разработки
- Ant - для переноса кода
- Setup->Logs->Debug Log для отладки
VisualForce Console (Development mode для Visualforce страниц) не использую и не советую использовать потому что очень часто ломаются javascript скрипты добавленные на страницу. Не помню точно что там Salesforce делает, но редиректы на js ломают страницу.
Тоже самое и про редактирование страницы и apex классов в браузере (Setup->Develop->Classes, Pages). Это плохой тон. К тому же уже появились слухи что Salesforce планирует перенести все редактирование кода в developer console. Так что вполне возможно, что проснувшись завтра утром вы не найдете привычные пункты в Setup.
Developer Console - меня очень давно не радует. Она у меня чаще НЕработает, чем работает. Salesforce постоянно ее меняют и пытаются улучшить, но результат пока один - все только еще хуже работает. Для целей отладки я использую Setup->Logs->Debug Log. Из преимуществ: быстрота, можно указать конкретного пользователя от которого получать логи и можно долго хранить логи (удаляются они вручную).
Data Loader и Workbench - использовал пару раз, но мой спектр задач пока обходит миграцию данных стороной.
MavensMate - возлагаю на него большие надежды, но пока он в стадии активной разработки его ненадежность только расстраивает.
В своей работе я в основном использую: - Force.com IDE (Eclipse) - для разработки - Ant - для переноса кода - Setup->Logs->Debug Log для отладки VisualForce Console (Development mode для Visualforce страниц) не использую и не советую использовать потому что очень часто ломаются javascript скрипты добавленные на страницу. Не помню точно что там Salesforce делает, но редиректы на js ломают страницу. Тоже самое и про редактирование страницы и apex классов в браузере (Setup->Develop->Classes, Pages). Это плохой тон. К тому же уже появились слухи что Salesforce планирует перенести все редактирование кода в developer console. Так что вполне возможно, что проснувшись завтра утром вы не найдете привычные пункты в Setup. Developer Console - меня очень давно не радует. Она у меня чаще НЕработает, чем работает. Salesforce постоянно ее меняют и пытаются улучшить, но результат пока один - все только еще хуже работает. Для целей отладки я использую Setup->Logs->Debug Log. Из преимуществ: быстрота, можно указать конкретного пользователя от которого получать логи и можно долго хранить логи (удаляются они вручную). Data Loader и Workbench - использовал пару раз, но мой спектр задач пока обходит миграцию данных стороной. MavensMate - возлагаю на него большие надежды, но пока он в стадии активной разработки его ненадежность только расстраивает.
Уважаемый Дмитрий, спасибо за обстоятельные и подробные ответы на мои вопросы.
Мне несколько неловно, что идет разговор двух человек и я заставляю Вас отвечать за мои вопросы. Но надеюсь, что эти темы будут полезны не только мне, но и другим людям, кто пойдет по нашим следам, и таким образом мы создаем библиотеку знаний и опыта. И пока единственное, что я могу вложить в это дело — это задавать вопросы, которые у меня не иссякают... Также прошу других участвников без колебаний участвовать в обсуждениях: информации о SFDC на русском настолько мало, что любой опыт — удачный или не удачный — может оказаться очень полезным для коллег. Спасибо
И по-теме обсуждения:
вот только вчера увидел, что в Эклипс можно кверить дату в текущем проекте! Это здорово!
Пока одно серьезно не устраивает в Эклипс: не могу визуализировать результат текущей работы с VisualForce и HTML/CSS/JS в целом.
Например, что бы увидеть результат работы в VisaulForce Console достаточно нажать Ctrl S. Как это организовать в Эклипсе - не знаю.
Уважаемый Дмитрий, спасибо за обстоятельные и подробные ответы на мои вопросы. Мне несколько неловно, что идет разговор двух человек и я заставляю Вас отвечать за мои вопросы. Но надеюсь, что эти темы будут полезны не только мне, но и другим людям, кто пойдет по нашим следам, и таким образом мы создаем библиотеку знаний и опыта. И пока единственное, что я могу вложить в это дело — это задавать вопросы, которые у меня не иссякают... Также прошу других участвников без колебаний участвовать в обсуждениях: информации о SFDC на русском настолько мало, что любой опыт — удачный или не удачный — может оказаться очень полезным для коллег. Спасибо И по-теме обсуждения: вот только вчера увидел, что в Эклипс можно кверить дату в текущем проекте! Это здорово! Пока одно серьезно не устраивает в Эклипс: не могу визуализировать результат текущей работы с VisualForce и HTML/CSS/JS в целом. Например, что бы увидеть результат работы в VisaulForce Console достаточно нажать Ctrl S. Как это организовать в Эклипсе - не знаю.
Спасибо Den Brown за благодарность. Вопросы пиши, это только приветствуется!
Правильно заметил что общее дело делаем.
Есть вопросы, есть ответы, и кому надо, те найдут и воспользуются информацией.
Не совсем понятно, про что это ты. Расскажи немного подробнее.
Нет этого в Эклипсе и честно не надо! Все эти модные штучки - только привязывают к конкретному инструменту. Потом только тяжелее будет.
Изменил страницу -> сохранил -> открыл (перезагрузил) страницу в браузере. Как по мне самый оптимальный вариант.
С Salesforce это не так заметно, но вот на других платформах мне кажется это очень важный фактор.
А то засядут за свои студии, а как поменять файл на лету через ssh на сервере уже целая проблема.
К хорошему привыкаешь быстро.
Спасибо Den Brown за благодарность. Вопросы пиши, это только приветствуется! Правильно заметил что общее дело делаем. Есть вопросы, есть ответы, и кому надо, те найдут и воспользуются информацией. [quote="Den Brown "]вот только вчера увидел, что в Эклипс можно кверить дату в текущем проекте! Это здорово![/quote] Не совсем понятно, про что это ты. Расскажи немного подробнее. [quote="Den Brown "]Пока одно серьезно не устраивает в Эклипс: не могу визуализировать результат текущей работы с VisualForce и HTML/CSS/JS в целом. Например, что бы увидеть результат работы в VisaulForce Console достаточно нажать Ctrl S. Как это организовать в Эклипсе - не знаю.[/quote] Нет этого в Эклипсе и честно не надо! Все эти модные штучки - только привязывают к конкретному инструменту. Потом только тяжелее будет. Изменил страницу -> сохранил -> открыл (перезагрузил) страницу в браузере. Как по мне самый оптимальный вариант. С Salesforce это не так заметно, но вот на других платформах мне кажется это очень важный фактор. [i]А то засядут за свои студии, а как поменять файл на лету через ssh на сервере уже целая проблема.[/i] К хорошему привыкаешь быстро.
!!! Совсем забыл про Firebug (Dev Console в chrome). Без них я как без рук и пользуюсь наверное чаще чем инструментами, указанными выше.
[quote="Dmitry Shnyrev"]В своей работе я в основном использую: - Force.com IDE (Eclipse) - для разработки - Ant - для переноса кода - Setup->Logs->Debug Log для отладки[/quote] !!! Совсем забыл про [b]Firebug[/b] ([b]Dev Console в chrome[/b]). Без них я как без рук и пользуюсь наверное чаще чем инструментами, указанными выше.
Я, можно сказать случайно, кликнул на salesforce.schema файл в папке проекта в окне Package Explorer Эклипса и открылось два окошка: одно Schema - много полезной инфы там, и второе - совсем замечательное Query Results. Это как Database Explorer окошко в Visual Studio - можно кверить дату.
[quote="Dmitry Shnyrev"] Не совсем понятно, про что это ты. Расскажи немного подробнее. [/quote] Я, можно сказать случайно, кликнул на salesforce.schema файл в папке проекта в окне Package Explorer Эклипса и открылось два окошка: одно Schema - много полезной инфы там, и второе - совсем замечательное Query Results. Это как Database Explorer окошко в Visual Studio - можно кверить дату.
А, ну да. Очень полезная штука, тоже пользуюсь постоянно. Хотя мне жудко не нравится что нельзя скопировать результаты запроса в буфер обмена.
А чего только "можно кверить дату"? Там все можно кверить вроде как.
[quote="Den Brown"]Я, можно сказать случайно, кликнул на salesforce.schema файл в папке проекта в окне Package Explorer Эклипса и открылось два окошка: одно Schema - много полезной инфы там, и второе - совсем замечательное Query Results. Это как Database Explorer окошко в Visual Studio - можно кверить дату.[/quote] А, ну да. Очень полезная штука, тоже пользуюсь постоянно. Хотя мне жудко не нравится что нельзя скопировать результаты запроса в буфер обмена. А чего только "можно кверить дату"? Там все можно кверить вроде как.
[quote="Dmitry Shnyrev"] Хотя мне жудко не нравится что нельзя скопировать результаты запроса в буфер обмена.[/quote] Действительно. Что за ерунда, тогда и польза от запросов в значительной мере теряется... [quote="Dmitry Shnyrev"]А чего только "можно кверить дату"? Там все можно кверить вроде как.[/quote] я имел ввиду DATA (данные), не DATE (дата)
После долгих проб и ошибок с разными инструментами. Пришлось разработать свой пакет для упрощения повседневных действий. Но в принципе 90% решаемых задач позволяет решить или сам салесфорс или воркбенч. Почему не люблю Ант ? потому что не всегда приходится работать со своего компьютера на котором есть все необходимое, поэтому и делается упор на разнообразные онлайн сервисы. В частности есть неплохой сервис по миграции данных dataloader.io.
После долгих проб и ошибок с разными инструментами. Пришлось разработать свой пакет для упрощения повседневных действий. Но в принципе 90% решаемых задач позволяет решить или сам салесфорс или воркбенч. Почему не люблю Ант ? потому что не всегда приходится работать со своего компьютера на котором есть все необходимое, поэтому и делается упор на разнообразные онлайн сервисы. В частности есть неплохой сервис по миграции данных dataloader.io.
[quote="wilder"]После долгих проб и ошибок с разными инструментами. Пришлось разработать свой пакет для упрощения повседневных действий.[/quote] А вот с этого момента можно поподробнее? Что за "свой пакет". Ты имеешь в виду что-то совсем свое?
По поводу работать на разных компах - салесфорсе предоставляет возможность работать только через браузер и в этом большой плюс, но мне кажется это только ухудшает сам процесс разработки и делает разработчиков менее качественными. Сравнить с теми же java, php, ruby разработчиками. У них нет такой возможности работать через браузер, поэтому у них уровень саморазвития на голову выше (это сугубо личное мнения и сужу я по себе).
Мне тут довелось поработать на не salesforce проектах и скажу что я оказался дубом в простейших технологиях, которые оказывается знают все: развертывание и администрироваие linux серверов, баз данных, системы контроля версий, деплоймент кода. По сравнению со всем этим Ant оказывается детской игрушкой
Это я все к тому что все-таки веб технологии никогда не догонят и не заменят десктопные решения.
По поводу работать на разных компах - салесфорсе предоставляет возможность работать только через браузер и в этом большой плюс, но мне кажется это только ухудшает сам процесс разработки и делает разработчиков менее качественными. Сравнить с теми же java, php, ruby разработчиками. У них нет такой возможности работать через браузер, поэтому у них уровень саморазвития на голову выше (это сугубо личное мнения и сужу я по себе). Мне тут довелось поработать на не salesforce проектах и скажу что я оказался дубом в простейших технологиях, которые оказывается знают все: развертывание и администрироваие linux серверов, баз данных, системы контроля версий, деплоймент кода. По сравнению со всем этим Ant оказывается детской игрушкой :) Это я все к тому что все-таки веб технологии никогда не догонят и не заменят десктопные решения.
Кстати на тему полезных инструментов!
Недавно Salesforce подкинул подлянку и убрал колонку Code coverage со страницы с классами и перенес статистику в developer console. А там code coverage либо не работает, либо работает криво. По крайней мере я еще не встречал программиста, который бы остался довольным этими нововведениями.
В общем тут у нас в тесном кругу нашей фирмы были разработаны два консольных (java и python) приложения, которые вытягивают список всех классов и триггеров с текущим покрытием тестами (code coverage). Функционал минимальный, но получается очень наглядно и можно оценить общее состояние по тестам на орге, !в том числе увидеть незатронутые классы и триггеры с 0 покрытием (мне этого именно и не хватало).
в ближайшее время я постараюсь причесать python вариант и подарить сообществу :)
Кстати на тему полезных инструментов! Недавно Salesforce подкинул подлянку и убрал колонку Code coverage со страницы с классами и перенес статистику в developer console. А там code coverage либо не работает, либо работает криво. По крайней мере я еще не встречал программиста, который бы остался довольным этими нововведениями. В общем тут у нас в тесном кругу нашей фирмы были разработаны два консольных (java и python) приложения, которые вытягивают список всех классов и триггеров с текущим покрытием тестами (code coverage). Функционал минимальный, но получается очень наглядно и можно оценить общее состояние по тестам на орге, !в том числе увидеть незатронутые классы и триггеры с 0 покрытием (мне этого именно и не хватало). в ближайшее время я постараюсь причесать python вариант и подарить сообществу :)
Для работы с разметкой в VF окне я поворачиваю монитор вертикально и все ок. Привык и очень удобно.
Но из головы не выходят слова Дмитрия из статьи в блоге, что только Эклипс, только Эклипс - а внутри-браузерные SF тулсы только если заночевал на запасном аэродроме.
В общем попробовал сегодян Эклипс не для бек-кодинга, а для разметки.
(1) я так понял, изначально файл сохраняется только локально, но если ты ему раз укажешь сохраниться на сервер, то он будет сохраняться и на сервер.
(2) Static Resource - это ОЧЕНЬ важно при разметке (если подключаешь туда всяко-разно JSного и стильного). И очень ожидаемо что я имею доступ к этим файлам в Эклипсе. Но эти файлы в Эклипсном навигаторе пытаются открыться как картинки!
(3) Нет ли в Эклипсе такой славной ссылки как в VF окне "Component Reference"?
ps:
и вот такую ошибку получаю когда пытаюсь сохранить пример разметки взятой из "Component Reference":
Multiple annotations found at this line:
- File only saved locally, not to server
- Save error: Conflict found while preparing to save 'standtabstest.page' to server. Remote instance has been updated since last save or sync. Use the Synchronize Perspective to resolve the conflict.
и при этом таже разметка сохраняется в VF окне без проблем. Я совсем не доволен. Поворачиваю экран вертикально.
Для работы с разметкой в VF окне я поворачиваю монитор вертикально и все ок. Привык и очень удобно. Но из головы не выходят слова Дмитрия из статьи в блоге, что только Эклипс, только Эклипс - а внутри-браузерные SF тулсы только если заночевал на запасном аэродроме. В общем попробовал сегодян Эклипс не для бек-кодинга, а для разметки. (1) я так понял, изначально файл сохраняется только локально, но если ты ему раз укажешь сохраниться на сервер, то он будет сохраняться и на сервер. (2) Static Resource - это ОЧЕНЬ важно при разметке (если подключаешь туда всяко-разно JSного и стильного). И очень ожидаемо что я имею доступ к этим файлам в Эклипсе. Но эти файлы в Эклипсном навигаторе пытаются открыться как картинки! (3) Нет ли в Эклипсе такой славной ссылки как в VF окне "Component Reference"? ps: и вот такую ошибку получаю когда пытаюсь сохранить пример разметки взятой из "Component Reference": [i]Multiple annotations found at this line: - File only saved locally, not to server - Save error: Conflict found while preparing to save 'standtabstest.page' to server. Remote instance has been updated since last save or sync. Use the Synchronize Perspective to resolve the conflict.[/i] и при этом таже разметка сохраняется в VF окне без проблем. Я совсем не доволен. Поворачиваю экран вертикально.
Что-то очень странный пост Den Brown ты написал:
Что значит это :
(1) Не надо ничего указывать сохранять на сервер. Если проект Force.com в эклипс сделан правильно, то все новые (или вытянутые с орга) классы, страницы по нажатии ctrl+s будут автоматически отправляться на орг и в случае ошибки информация будет показана панеле ошибок внизу.
(2) Static Resources вешь хорошая и по правилам программного этикета туда нужно складывать js и css. Но я больше склоняюсь хранить js и css в коде страницы (вернее base template). В конечном итоге (после фазы активной разработки) обычно эти части оптимизируются и выносятся в статик ресурсы (но не всегда ). Зато все под рукой, не надо прыгать по куче файлов, особенно когда статик ресурсы хранятся в zip архиве На счет того что у тебя статик ресурсы открываются как картинки очень интересной поведение. Обычно их можно редактировать как обычные текстовые файлы (вот скриншот для примера). Попробуй порыться в настройках eclipse.
(3)"Component Reference" - что-то не припомню такого. Инструмент может быть и полезный, но по ходу без него можно обходиться
Что-то очень странный пост Den Brown ты написал: Что значит это : [quote]В общем попробовал сегодян Эклипс не для бек-кодинга, а для разметки.[/quote] ? Т.е. ты хочешь сказать что Visualforce страницы ты делаешь в браузере, а apex классы - в Eclipse? Если так, то это мега странно :) В Eclipse надо выполнять всю работу (по крайней мере до твоего ответа я такого стиля программирования не встречал) (1) Не надо ничего указывать сохранять на сервер. Если проект Force.com в эклипс сделан правильно, то все новые (или вытянутые с орга) классы, страницы по нажатии ctrl+s будут автоматически отправляться на орг и в случае ошибки информация будет показана панеле ошибок внизу. (2) Static Resources вешь хорошая и по правилам программного этикета туда нужно складывать js и css. Но я больше склоняюсь хранить js и css в коде страницы (вернее base template). В конечном итоге (после фазы активной разработки) обычно эти части оптимизируются и выносятся в статик ресурсы (но не всегда :) ). Зато все под рукой, не надо прыгать по куче файлов, особенно когда статик ресурсы хранятся в zip архиве :) На счет того что у тебя статик ресурсы открываются как картинки очень интересной поведение. Обычно их можно редактировать как обычные текстовые файлы (вот скриншот для примера). Попробуй порыться в настройках eclipse. [img]/phpbb-files/01-02-2014 21-01-50.png[/img] (3)"Component Reference" - что-то не припомню такого. Инструмент может быть и полезный, но по ходу без него можно обходиться :) [quote]Save error: Conflict found while preparing to save 'standtabstest.page' to server. Remote instance has been updated since last save or sync. Use the Synchronize Perspective to resolve the conflict.[/quote] Такая ошибка появляется если на на орге более свежая версия файла чем в еклипсе. Такое поведение предусмотрено чтобы нечаянно не затереть более свежие изменения на орге старыми из эклипса. Решается очень просто - надо либо заставить эклипс затереть версию на орге (Force.com->Save to server) или рефрешнуть локальный файл более новой рерсией из орга (Force.com->Refresh from server)
Да кликаю в эклипсе на ресурс содержаший JS - windows запускает просмотрщик картинок...
[quote="Dmitry Shnyrev"] Т.е. ты хочешь сказать что Visualforce страницы ты делаешь в браузере, а apex классы - в Eclipse? [/quote] Да, пока именно так. VF в браузере. Остальное в Эклипсе. Построчное покрытие тестом смотрю в Консоли. :D [quote="Dmitry Shnyrev"] В конечном итоге (после фазы активной разработки) обычно эти части оптимизируются и выносятся в статик ресурсы (но не всегда :) ). [/quote] вот это именно то что нужно: вынести кастомные стили, большую часть JS в статик, у меня страницы на многие сотни строк получаются. Оставить только VF markup и те настройки JS в которые передаются переменные из контроллера в момент выполнения на сервере. Но все равно нужно иметь бысрый доступ к статик, т.к. "завершение фазы активной разработки" - это такая ситауция, о которой кастомер и босс не знают, и могут попросить внести изменения в любой момент. Да кликаю в эклипсе на ресурс содержаший JS - windows запускает просмотрщик картинок...
потихоньку разбираюсь с Eclipse.
Подскажите, какие еще плагины\перспективы кроме Force.com вы используете в работе и в чем их помощь:
(1) плагины, которые используете непосредственно для SFDC разработки;
(2) другие плагины полезные для разработчика.
а дебажить APEX код классичесим способом - пошагово, с точками останова - возможно?
мой неклассический способ дебажить - это гонять код в Execute Anonimous и смотреть, что в систем-дебагах...
спасибо.
PS не могу понять, а чем отличаются между собой боковые панели Package Explorer and Navigator?
потихоньку разбираюсь с Eclipse. Подскажите, какие еще плагины\перспективы кроме Force.com вы используете в работе и в чем их помощь: (1) плагины, которые используете [b]непосредственно[/b] для SFDC разработки; (2) другие плагины полезные для разработчика. а дебажить APEX код классичесим способом - пошагово, с точками останова - возможно? мой неклассический способ дебажить - это гонять код в Execute Anonimous и смотреть, что в систем-дебагах... спасибо. PS не могу понять, а чем отличаются между собой боковые панели Package Explorer and Navigator?
я использую Emmet, AnyEdit, Egit. Вполне хватает для force.com
[quote]Подскажите, какие еще плагины\перспективы кроме Force.com вы используете в работе и в чем их помощь: [/quote] я использую Emmet, AnyEdit, Egit. Вполне хватает для force.com [quote]а дебажить APEX код классичесим способом - пошагово, с точками останова - возможно?[/quote] нет [quote]мой неклассический способ дебажить - это гонять код в Execute Anonimous и смотреть, что в систем-дебагах...[/quote] единственный рабочий способ для Salesforce. [quote]PS не могу понять, а чем отличаются между собой боковые панели Package Explorer and Navigator?[/quote] Я тоже :) Для Salesforce проекта это не важно.
потихоньку осваиваю Эклипс.
Нашел в нем View Внутренний браузер.
Вы пользуетесь им, когда например делаете фронт-енд кастомной странице, чтобы видеть результат "не выходя" из Эклипса?
потихоньку осваиваю Эклипс. Нашел в нем View Внутренний браузер. Вы пользуетесь им, когда например делаете фронт-енд кастомной странице, чтобы видеть результат "не выходя" из Эклипса?