Какви са salesforce.com и Apex като платформа за разработка на приложения?

Наскоро открих, че salesforce.com е много повече от онлайн CRM, след като попаднах на Казус, в който те разработват приложение за управление на работи. Изпробвах го с цел да пресъздам нашата собствена система за управление на работите на платформата.

Моят опит е в Microsoft и .Net и очевидният първи избор би бил asp.net. Въпреки това имам само себе си с .net опит и моя мениджър с по-наследен опит в програмирането на Synergy, а аз съм самоук и гледам да оценявам други RAD опции (напр. Ironspeed).

естеството на бизнеса е в основните 2-5 едновременни договора за строителство, които се изпълняват за 3-5 години всеки, като всеки изисква 15-50 системни потребители. Традиционно използваме нашата базирана на герои система за управление на работи за всичко и я променяме за всеки договор. Лицензионният модел на Salesforce на пръв поглед отговаря на този вид гъвкавост, но се тревожа за кривата на гъвкавост на разработката/обучение и всички проблеми, които обграждат заключването. Изглежда, че няма много неутрален трезвен анализ на платформата в мрежата, който да не е собствен материал/блог на salesforce

Някой има ли опит с разработването на приложение за salesforce в сравнение с по-„традиционния“ .Net маршрут?


person mhollers    schedule 14.05.2009    source източник


Отговори (8)


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

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

След като достигнете определен размер, цялото ви време ще бъде изразходвано за кодиране около тези ограничения. Езикът, Apex, всъщност не поддържа никакво смислено наследяване. Дори привидно прости задачи в крайна сметка отнемат дни, когато човек се натъкне на нови и очевидно произволни ограничения, например всички обекти в Apex наследяват от SObject; обаче не е позволено да се инстанцира колекция от генерични SObjects, което прави почти невъзможно изграждането на полезни библиотеки с помощни програми. Не са възможни сложни (дори доста прости) съединявания на бази данни.

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

Във връзка с това, изглежда сте забелязали, че документацията на Salesforce е по-скоро самопоздравителна - е, така е докрай. Никъде не се споменава дори в най-тъмните технически справки за често срещаните грешки или дори за ограниченията на даден API или функция. Всичко е „ето страхотното нещо, което можете да направите“ и нищо не се споменава, „но бихте си представили, че също ще направи ___, но ще сгрешите! Абсолютно грешите!“ Документацията наистина се чувства като маркетингов материал докрай. Програмирах в тази среда вече 18+ месеца и все още от време на време ми е трудно да намеря основни неща, като справка за API.

Salesforce не е гъвкава среда. Това не е среда за бързо разработване (поне в сравнение с всяка друга рамка за уеб програмиране). Не е добра среда за изграждане на нещо различно от приложения за играчки като тези, които показват в своите уроци. Просто кажи не.

person Ben    schedule 21.12.2009
comment
Работя със salesforce от доста време и не мога да се съглася повече с публикацията ви. Стигнахме до момента, в който пишем наш собствен инструмент за внедряване и евентуално обмисляме да напишем наши собствени разширения за IDE, защото това, което force.com предоставя, просто не е дори близо до завладяващо предложение - person lomaxx; 05.01.2010
comment
Иска ми се да мога да гласувам за това отново и отново. Мотото на Salesforce „Това не е софтуер, това е Salesforce“ е напълно подвеждащо, тъй като все още отнема софтуерен разработчик и прекалено много време, за да изпълни най-основните задачи. Добавете повтарящите се такси и цялата система започва да струва много повече, отколкото си струва. - person Jake; 02.04.2010
comment
@Ben Не може да бъде по-добър отговор от този! - person MnZ; 07.08.2014
comment
Сега са 6 години по-късно. Още ли са толкова зле нещата? - person Paul; 17.11.2015

Знам, че тези въпроси са малко стари, но би си струвало да разгледаме и този въпрос Недостатъци на платформата Force.com

Разработвам на платформата известно време и не мога да се съглася повече с Бен. Има толкова много грешки в „платформата за разработка“, която е force.com, че наистина не мисля, че е честно да я наричам платформа за разработка.

Борихме се с поддръжката на инструменти, която е ужасна, поддръжката за внедряване, която е ужасна, и дори тяхната техническа поддръжка, която е, познахте, ужасна.

Основната точка, която искам да отбележа, е, че salesforce започна като CRM и след това решиха да добавят „облачната платформа“ към своето предложение. Облачната платформа обаче е силно насочена към разширяване на техния CRM продукт и ако това, което искате да направите, е да разширите CRM, тогава средата force.com ще ви позволи да направите това добре.

Това, което няма да ви позволи да направите добре, е да се откажете от техния CRM и да ви позволи лесно да създадете свое собствено напълно персонализирано приложение. Все още сте обвързани с техния защитен и потребителски модел, все още ще имате техните стандартни обекти във вашата база данни и все още ще имате техните стандартни страници във вашата производствена среда. Няма "Файл -> Нов проект", така да се каже.

Освен това някой друг спомена, че е "базиран на Java". Това не означава, че можете да стартирате Java код там. Това означава, че са откраднали някои части от Java и са я преобразили, за да изглежда като Java, но всъщност не е... което е наистина досадно, защото не можете просто да вземете набор от Java библиотеки и да ги импортирате в техния облак... така че ако искате да направите нещо като парсване на JSON... вие ще го напишете сами.

Като цяло бих избягвал платформата force.com като чума.

person lomaxx    schedule 05.01.2010

Слушай Бен. Не наистина. Слушай Бен. Salesforce е абсолютен свят на болка. Единственото добро нещо за Salesforce е техният маркетингов екип.

person user243657    schedule 05.01.2010

Не мога да ви кажа колко бързо ще достигнете крайните случаи – но мога да ви кажа, че не прилича на никоя друга разработка, която някога съм правил. Времето за внедряване, необходимо за създаване на работещо решение -- и способността за бързо итериране на решение, което бизнес спонсорите да оценят, са несравними с никоя среда, която съм имал.

Кодът на Apex е базиран на Java, със специфични за платформата разлики. Някои неща обаче не могат да се направят чрез код. Комбинацията от декларативна (базирана на екрана) и базирана на код реализация, необходима за изработване на цялостно приложение, е трудно да обхванете главата си в началото.

Поради естеството на средата с множество наематели има „лимити на управляващите“, които предотвратяват монополизирането на ресурсите от една организация. Това ограничава опциите ви за внедряване в неща като задействания за вмъкване и актуализиране.

Внедряването на вашето приложение също е много различно изживяване.

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

person Pauli Price    schedule 13.10.2009

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

Имаше крива на учене за мен и беше разочароващо (идва от Java опит). Синтаксисът беше подобен, но парадигмата много различна. След като се борих известно време, успях да създам приложения, използвани от десетки хиляди потребители, които се мащабират перфектно, лесни са за управление и защита и които включват почти всички традиционни архитектури за програмиране, възприети в момента, включително основите на OOP, MVC и много от другите дизайнерски модели на „Бандата от четирима“.

Ако искате да ви насоча към примерен код или големи приложения, създадени на платформата, ще се радвам да ви помогна.

person user286164    schedule 04.03.2010
comment
Със сигурност има приложения, които работят, и в зависимост от обстоятелствата, Salesforce може да бъде правилният инструмент, но връщайки се след още 10 месеца разработване на SF, заставам зад всичко, което казах по-горе. Проблемите, с които се сблъсква магазинът ни, никога не са свързани с мащабирането на потребителите, а с мащабирането на данни (което в нашето приложение не е функция на броя потребители) и функциите и сложността на мащабирането. Ще ми е любопитно да чуя какъв е средният размер на вашите приложения. Все пак се радвам да чуя, че се получава! - person Ben; 14.10.2010

Вижте моя отговор в друга тема на stackoverflow: Недостатъци на Force.com:

Недостатъци на платформата Force.com

на което отговорих наскоро, въпреки че темата беше стара, защото просто исках да се възползвам от шанса да разкажа колко досадна е платформата. Тези мисли са много актуални.

Бих предложил, ако планирате да правите нещо с платформата, уверете се, че някои от членовете на вашия екип са сертифицирани по Apex. Като цяло, силно бих препоръчал да се избягва изцяло платформата, докато не се обърнат сериозно към практическата страна на разработчиците и когато има специфични и много прости бизнес казуси.

Псевдонимът ми за платформата е „Little Ease“, кръстен на камера за изтезания 4x4 в Лондон, където не можете да се разширите в нито една посока. Постоянно ще достигате граници.

Ето и по-стара публикация в блога:

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

person dt.    schedule 26.04.2010

Не съм разработвал от .Net страна на Salesforce, създадох няколко вътрешни добавки към много голяма инсталация на Salesforce.

Това, което мога да кажа за това е, че инструментите за разработка в системата могат да бъдат объркващи и най-голямото затруднение, което винаги съм имал (по време на разработката), беше да получа правилния синтаксис за заявките, които исках. (внимание, това беше през 2007 г.)

person Ólafur Waage    schedule 14.05.2009
comment
Затворът за .Net беше наистина насочен към събиране на мнения, сравнявайки го със SalesForce като платформа за разработка на RAD, вместо да взаимодейства с SF чрез .Net, което знам, че можете да направите. Всъщност бях доста впечатлен от инструментите за разработка: получавате много UI безплатно, които могат да бъдат разработени в браузъра с опцията за влизане в Eclipse за по-задълбочени неща на Apex. Въпросът е само колко бързо достигате до "ръба" на случаите - person mhollers; 14.05.2009

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

person Brad Thomas    schedule 06.03.2014