Подтвердить что ты не робот

Что такое salesforce.com и Apex как платформа разработки приложений?

Недавно я обнаружил, что salesforce.com - это нечто большее, чем онлайн-CRM, после того, как он встретился с Morrison Case Study, в котором они разрабатывают работы приложения управления. Я пытался это сделать, чтобы воссоздать нашу собственную систему управления Works на платформе.

Мой фон находится в Microsoft и .NET, и очевидным первым выбором будет asp.net. Тем не менее, только я действительно с опытом .net и моим менеджером с более старым опытом программирования Synergy, и я сам преподаю, и я смотрю на оценку других параметров RAD (например, Ironspeed).

характер бизнеса находится в основном двухступенчатом контракте типа параллельного строительства, который работает в течение 3-5 лет каждый, каждый из которых требует 15-50 пользователей системы. Традиционно мы использовали нашу основанную на персонаже систему Works Mangement для всего и подстраивали ее для каждого контракта. Модель лицензирования Salesforce на первый взгляд подходит для такого рода гибкости, но меня волнует кривая гибкости разработки/обучения и все проблемы, связанные с блокировкой. Там, похоже, не так много нейтрального трезвого анализа платформы в Интернете, которая не является собственностью собственного материала/блогов

Есть ли у кого-нибудь опыт разработки приложения в salesforce по сравнению с более традиционным маршрутом .Net?

4b9b3361

Ответ 1

Salesforce - довольно болезненный опыт для разработки чего-либо, кроме самых простых приложений. Salesforce имеет очень конкретное представление о том, что можно было бы разработать, и если ваше приложение не в порядке с этими границами, держитесь подальше!

Ограничения губернатора на самом деле очень жалкие: рекурсия уровня 16, 1 мега куча, не более 200 объектов, возвращаемых из запроса, не более 20 запросов в одном вызове. 10 веб-выносок в одном вызове, 1000 элементов в одном списке, и они продолжаются. Конечным результатом является то, что любая умность, с которой вы сталкиваетесь, чтобы обойти один предел, исходит от другого.

Как только вы достигнете определенного размера, все ваше время будет потрачено на кодирование вокруг этих ограничений. Язык, Apex, на самом деле не поддерживает никакого значимого наследования. Даже, казалось бы, простые задачи в конечном итоге занимают дни, когда каждый сталкивается с новыми и, по-видимому, произвольными ограничениями, например, все объекты в Apex наследуют от SObject; однако не разрешается создавать коллекцию общих SObject s, что делает невозможным создание полезных библиотек утилиты. Сложные (даже довольно простые) объединения баз данных невозможны.

Инструмент и поддержка Salesforce также крайне слабы. Они ненадежны и трудны в использовании для реальных процессов разработки. Развертывание - это кошмар, поскольку инструменты имеют огромные трудности при разработке сложных проблем зависимостей, а многочисленные объекты, которые будут созданы в ходе нормальной разработки, просто НЕ МОГУТ быть развернуто программно. Другие небольшие функции также восхитительны, например, тот факт, что язык нечувствителен к регистру, но среда IDE чувствительна к регистру. Нет инструментов для рефакторинга, о которых вы можете говорить, поэтому вы получаете всю боль от статически типизированного языка, при этом ни одна из предполагаемых преимуществ. И время сохранения/компиляции высокое - я вижу время более 2 минут с частотой. И, конечно, если у вас есть несколько ошибок компиляции в одном сохранении (и вы будете, поскольку вы не захотите перекомпилировать каждое изменение, с этими 2-минутными ожиданиями...), вы получите только одну ошибку за раз!

В соответствующей заметке вы, похоже, заметили, что документация Salesforce скорее самодовольная - ну, это так, как и ВСЕ. Нигде не упоминается даже самые глубокие технические ссылки на общие ошибки или даже ограничения данного api или функции. Все это "здесь великое, что вы можете сделать" и не упоминать ", но вы могли бы предположить, что это также будет делать ___, но вы ошибаетесь! Неправильно!" Документация по-настоящему кажется маркетинговым материалом до конца. Я программировал в этой среде уже более 18 месяцев и все еще иногда испытываю трудности с поиском основ, таких как ссылка на API.

Salesforce не является гибкой средой. Это не среда быстрого развития (по крайней мере, по сравнению с любой другой структурой веб-программирования). Это не хорошая среда для создания ничего, кроме игрушечных приложений, подобных тем, которые они показывают в своих учебниках. Просто скажите "нет".

Ответ 2

Я знаю, что эти вопросы немного старые, но также стоит рассмотреть этот вопрос Недостатки платформы Force.com

Я развиваюсь на платформе какое-то время, и я не мог больше согласиться с Беном. Существует так много ошибок с "платформой разработки", которая является force.com, и я действительно не считаю ее честной называть ее платформой разработки.

Мы боролись с поддержкой инструментальных средств, что ужасно, поддержка развертывания, которая ужасна и даже их техническая поддержка, которая, как вы догадались, ужасная.

Главное, что я хочу сделать, это то, что salesforce началась как CRM, а затем они решили добавить "облачную платформу" к их предложению. Облачная платформа tho, сильно ориентирована на расширение своего продукта CRM, и если то, что вы хотите сделать, это расширить CRM, тогда среда force.com позволит вам сделать это красиво.

То, что это не позволит вам сделать красиво, - это предотвратить их CRM и позволить вам легко создавать собственное пользовательское приложение. Вы по-прежнему привязаны к своей модели безопасности и пользователей, у вас все еще будут свои стандартные объекты в вашей базе данных, и вы все равно будете иметь свои стандартные страницы в своей производственной среде. Существует нет "Файл → Новый проект", так сказать.

Кроме того, кто-то еще упомянул об этом "java based". Это не значит, что вы можете запускать Java-код. Это означает, что они украли некоторые кусочки java и укрепили его, чтобы он выглядел как java, но на самом деле его нет... это действительно раздражает, потому что вы не можете просто захватить набор java-библиотек и импортировать их в свое облако... поэтому, если вы хотите сделать что-то вроде разбора JSON... вы сами это напишете.

Ovearall, я бы избежал платформы force.com, как чума.

Ответ 3

Слушайте Бена. Нет. Слушай Бен. Salesforce - это абсолютный мир боли. Единственное, что хорошо о Salesforce, - это их маркетинговая команда.

Ответ 4

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

Код Apex основан на Java, с различиями в платформе. Однако некоторые вещи не могут быть выполнены с помощью кода. Сочетание декларативной (основанной на экране) и реализации на основе кода, требуемой для создания полного приложения, трудно обернуть вокруг головы.

Из-за многопользовательской природы окружающей среды существуют "пределы губернатора", которые не позволяют монополизировать ресурсы одной организацией. Это ограничивает ваши варианты реализации такими вещами, как триггеры вставки и обновления.

Развертывание приложения - это совсем другой опыт.

Ознакомьтесь с обучением разработчиков (Dev 501), доступным в качестве видеоподкаста в iTunes: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325668840 Вы сможете точно увидеть, что Я говорю о.

Ответ 5

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

Для меня была кривая обучения, и это расстраивало (исходя из фона Java). Синтаксис был похож, но парадигма очень различна. Немного покончив с этим, мне удалось создать приложения, которые используются десятками тысяч пользователей, которые отлично масштабируются, легко управляются и защищаются и включают почти все традиционные архитектуры программирования, которые в настоящее время охвачены, включая основы OOP, MVC и многие из других шаблонов дизайна "Банда Четыре".

Если вы хотите, чтобы я указал вам в направлении примера кода или великих приложений, построенных на платформе, я был бы рад помочь вам.

Ответ 6

См. мой ответ в другом потоке stackoverflow: Недостатки Force.com:

Недостатки платформы Force.com

который я ответил недавно, хотя поток был старым, потому что я просто хотел воспользоваться возможностью, чтобы озвучить, насколько раздражает платформа. Эти мысли очень актуальны.

Я бы предположил, что если вы планируете делать что-либо с платформой, убедитесь, что некоторые из ваших членов команды сертифицированы Apex. В общем, я бы настоятельно рекомендовал полностью отказаться от платформы, пока они не будут серьезно относиться к аспектам опыта разработчиков и там, где есть конкретные и очень простые бизнес-примеры.

Моим прозвищем для платформы является "Little Ease", названный в честь камеры пыток 4x4 в Лондоне, где вы не могли продлить себя в каком-либо одном направлении. Вы будете постоянно нажимать пределы.

Здесь также старое сообщение в блоге:

http://suprablog.com/index.php/2010/02/25/salesforce-the-astonishingly-powerful-little-ease-platform/

Ответ 7

Я не развился на стороне .Net Salesforce, я создал несколько встроенных дополнений к очень большой установке Salesforce.

Что я могу сказать об этом, так это то, что инструменты разработки внутри системы могут быть запутанными, и наибольшее узкое место, которое я всегда имел (во время разработки), заключалось в том, чтобы получить правильный синтаксис для запросов, которые я хотел. (caveat, это было в 2007 году)

Ответ 8

Вы можете делать большие и удивительные вещи с Salesforce. Единственная проблема заключается в том, что, по моим оценкам, для многих нетривиальных систем и для подобных функций общая стоимость владения (целая SDLC) легко в 3-10 раз выше, чем то, что было бы с dotNET и традиционной RDBMS, такой как SQL Server, Зачем платить гораздо больше за тот же результат?