Nachteile der Force.com-Plattform [geschlossen]

89

Wir versuchen derzeit, die Force.com- Plattform als Entwicklungsplattform zu verwenden, und die Vertriebsmitarbeiter und die force.com-Website sind voller Gründe, warum sie die beste Plattform der Welt ist. Was ich jedoch suche, sind einige echte Nachteile bei der Verwendung einer solchen Plattform.

Lomaxx
quelle
Dieser Beitrag ist sehr alt, aber die Entwicklung von Salesforce ist immer noch schrecklich. Selbst 8 Jahre später finde ich es immer noch erstaunlich, wie viel Zeit und Mühe erforderlich ist, um die vielen Mängel zu umgehen.
NickJ

Antworten:

142

Hier sind 10, um Ihnen den Einstieg zu erleichtern.

  1. Apex ist eine proprietäre Sprache. Abgesehen vom force.com Eclipse-Plugin stehen nur wenige bis gar keine Tools wie Refactoring, Code-Analyse usw. zur Verfügung.
  2. Apex wurde nach Java 5 modelliert, das als hinter anderen Sprachen zurückbleibend angesehen wird, und kann ohne Werkzeug (siehe Nr. 1) recht umständlich sein.
  3. Die Bereitstellung erfolgt immer noch recht manuell mit vielen Fallstricken und manuellen Schritten. Diese Situation verbessert sich im Laufe der Zeit langsam, aber Sie werden enttäuscht sein, wenn Sie an automatisierte Bereitstellungen gewöhnt sind.
  4. Apex fehlen Pakete / Namespaces. Alle Ihre Klassen, Schnittstellen usw. befinden sich in einem Ordner auf dem Server. Dies macht Code viel weniger organisiert und Klassen- / Schnittstellennamen notwendigerweise lang, um Namenskonflikte zu vermeiden und Kontext bereitzustellen. Dies ist eine meiner größten Beschwerden, und ich würde mich nicht allein aus diesem Grund frei dafür entscheiden, auf force.com aufzubauen.
  5. Die "force.com IDE", auch bekannt als force.com Eclipse Plugin, ist unglaublich langsam. Das Speichern einer Datei, sei es eine Klassendatei, eine Textdatei usw., dauert normalerweise mindestens 5 Sekunden und manchmal bis zu 30 Sekunden, je nachdem, wie viele Objekte, Datentypen, Klassendateien usw. sich in Ihrer Organisation befinden. Das Speichern ist auch eine Blockierungsaktion, die nicht nur die Kompilierung, sondern auch eine vollständige Synchronisierung Ihres lokalen Projekts mit dem Server erfordert. Größenordnungen langsamer als Java oder .NET.
  6. Die Online-Entwickler-Community scheint nicht sehr gesund zu sein. Ich habe festgestellt, dass viele Forenbeiträge unbeantwortet oder ungelöst bleiben. Ich denke, das hat möglicherweise etwas mit der Forensoftware zu tun, die salesforce.com verwendet, was ziemlich hart zu saugen scheint.
  7. Der Datenzugriff DSL in Apex lässt zu wünschen übrig. Es ist nicht einmal im entferntesten konkurrenzfähig mit Leuten wie (N) Hibernate, JPA usw.
  8. Das Entwickeln einer App auf Apex / VisualForce ist eine Übung im Governor Limits Engineering. Leicht die Hälfte der Programmiererzeit wird für Optimierungszwecke aufgewendet, um die zahlreichen Governor-Limits und andere Fallstricke wie Visualforce View-Statuslimits zu vermeiden. Es könnte argumentiert werden, dass wenn Sie zunächst effizienten Code schreiben, Sie dieses Problem nicht haben, was bis zu einem gewissen Grad zutrifft. Es gibt jedoch viele Gründe, aus denen Sie gültige Gründe haben, mehr als x Abfragen in einer Sitzung durchzuführen oder mehr als x Datensätze usw. zu durchlaufen.
  9. Der Speicher-> Kompilierungs-> Ausführungszyklus ist extrem langsam, insb. Wenn es darum geht, das gesamte statische Ressourcenpaket zu komprimieren und hochzuladen, um beispielsweise eine geringfügige CSS- oder Javascript-Änderung zu testen.
  10. Im Allgemeinen der Schmerz einer jungen, jungen Plattform, ohne dass die Vorteile davon Open Source sind. Sie haben keine Möglichkeit, Fehler in der Plattform zu validieren und / oder zu beheben. Sie sagen, sie sollen es in ihrem IdeaExchange veröffentlichen. Ja, viel Glück damit.

Haftungsausschluss / Offenlegung: Eine gehostete Plattform wie force.com bietet viele Vorteile. Force.com verbessert die Plattform regelmäßig. Es gibt viele Dinge, die ich mag. Ich verdiene Geld mit force.com

Jeremy Ross
quelle
4
Das ist eine großartige Liste, die Sie dort haben
Lomaxx
1
Ich würde force.com lieben, wenn sie das Hosting von Websites verwalten würden und ich meine Daten erhalten könnte, nicht nur die Extras oder über eine API, sondern einen nächtlichen Zuwachs. Sicherung meines Oracle-Datensatzes. Bieten die Vertriebsmitarbeiter dies an? Ich habe noch nie eine klare Antwort von ihren Verkäufern bekommen, die ich immer als Nein nehme.
Chris K
3
Sie geben Ihnen keinen so "rohen" Zugriff auf Ihre Daten. Es gibt einen Sicherungsdienst, mit dem Sie regelmäßig komprimierte CSVs Ihrer Organisation erhalten. Es gibt auch eine Replikations-API, mit der Sie Ihre eigenen Backups nebeneinander in Pseudo-Echtzeit erstellen können.
Jeremy Ross
@Jeremy aus Neugier ... Wie viel Zeit verbringen Sie mit dem Eclipse-Ide-Plugin, anstatt nur die Einstellungen in den "Setup" -Menüs einer Salesforce-Anwendung vorzunehmen?
Lomaxx
1
Ich persönlich verbringe 90% meiner Zeit entweder in Eclipse oder in einem Texteditor (in meinem Fall TextMate). Aber das liegt daran, dass normalerweise jemand anderes einen Großteil der grundlegenden Datenkonfiguration vornimmt. Die Konfiguration von benutzerdefinierten Objekten und Feldern erfolgt in salesforce.com, nicht in Code, da in der force.com-Welt keine DDL vorhanden ist. Es gibt eine Metadaten-API, die ich jedoch während des Datenentwurfs nie verwende.
Jeremy Ross
38

Ich sehe, Sie haben einige Antworten erhalten, aber ich möchte noch einmal wiederholen, wie viel Zeit damit verschwendet wird, die verschiedenen Governor-Limits auf der Plattform zu umgehen. So sehr ich die Plattform auf bestimmten Ebenen mag, würde ich sie als allgemeine Anwendungsentwicklungsplattform sehr stark, nachdrücklich und nachdrücklich ablehnen. Es eignet sich hervorragend als super konfigurierbare und erweiterbare CRM-Anwendung, wenn Sie dies wünschen. Während ihr Marketing außergewöhnlich ist, um die Idee von Force.com als allgemeine Entwicklungsplattform voranzutreiben, ist es noch nicht einmal annähernd nah.

Die Effizienz einer stabilen Plattform und die Vermeidung großer Leistungs- und Stabilitätsprobleme wird leicht verschwendet, wenn versucht wird, die Grenzen zu umgehen, auf die sich die Benutzer beziehen. Der Plattform sind so viele Grenzen gesetzt, dass sie völlig verrückt wird. Diese Limits sind keine High-End-Limits, die Sie erreichen, wenn Sie viele Benutzer haben. Sie werden sie fast sofort erreichen.

Während es normalerweise Techniken gibt, um sie zu umgehen, ist es sehr schwierig, Strategien zu finden, um sie zu vermeiden, während Sie gleichzeitig versuchen, die Geschäftslogik Ihrer tatsächlichen Anwendung zu entwickeln.

Um Ihnen einen einfachen Eindruck davon zu vermitteln, wie unentwickler die Umgebung für Entwickler ist, nehmen Sie die oben erwähnte "fehlende Debugging-Umgebung". Es ist schlimmer als das. In den Debug-Protokollen werden nur bis zu 20 der letzten Anforderungen an den Server angezeigt. Während Sie in der Anwendung entwickeln, müssen Sie eine "neue" Debug-Anforderung erstellen, Ihren Namen auswählen, auf "Speichern" klicken, zu Ihrer App zurückkehren, die Seite aktualisieren, auf die Registerkarte "Debug" zurückkehren und versuchen, sie zu finden Klicken Sie in der Anfrage, in der sich Ihr Debug-Protokoll befindet, auf "Suchen", um nach dem gesuchten Text zu suchen. Es ist wie zehn Klicks, um eine Debug-Ausgabe anzuzeigen. Es mag trivial erscheinen, ist aber nur ein Beispiel dafür, wie wenig Sorgfalt und Rücksicht auf die Erfahrung des Entwicklers genommen wurde.

Alles an der Entwicklungsplattform ist ein nachträglicher Gedanke. Es ist bemerkenswert für das, was es ist, aber zum größten Teil eine totale PITA. Wenn Sie nicht genau wissen, was Sie tun (wie bei Ihrer Zertifizierung und einem sehr guten Verständnis von Apex), benötigen Sie leicht das 10 bis 20-fache der Zeit, die Sie in einer anderen Umgebung benötigen würden etwas, das so aussieht, als wäre es lächerlich einfach, wenn man überhaupt Erfolg haben kann.

Die Grenzen des Gouverneurs sind in der Tat so schlecht. Sie haben eine Kombination verschiedener Grenzwerte (Datenbankabfragen, zurückgegebene Zeilen, "Skriptanweisungen", zukünftige Aufrufe, Beschriftungen usw.) und müssen genau wissen , was Sie tun, um diese zu vermeiden. Wenn Sie beispielsweise ein berechnetes Rollup-Feld "Formel" für ein Objekt und einen Auslöser für ein untergeordnetes Objekt haben, werden die übergeordneten Objektauslöser ausgeführt und diese auf Ihre Grenzwerte angerechnet. Solche Dinge sind erst offensichtlich, wenn Sie den schmerzhaften Prozess des Versuchens und Scheiterns durchlaufen haben.

Sie werden eine Sache versuchen, um ein Limit zu vermeiden, und eine andere in einem nie endenden Spiel von "Whack a Limit" treffen. Dabei müssen Sie Ihre gesamte App und Ihren Ansatz drastisch umgestalten und Ihren gesamten Testcode neu schreiben. Sie müssen 75% Testcode-Abdeckung haben, um in der Produktion bereitgestellt zu werden. Dies ist eigentlich eine sehr gute Sache, aber in Kombination mit allen anderen Einschränkungen ist dies sehr aufwändig. Sie werden tatsächlich die Governor-Limits erreichen, wenn Sie Ihren Testcode schreiben, der in normalen Benutzerszenarien nicht auftaucht, aber Sie daran hindert, die Abdeckung zu erreichen.

Ganz zu schweigen von einer ganzen Reihe anderer Themen. Verpackung ist nicht das, was Sie erwarten. Sie können Ihre App nicht verpacken und an Benutzer liefern, ohne dass der Administrator der Organisation eingreifen und sie konfigurieren muss. Der AppExchange ist ein totaler Witz, und sie haben sogar angefangen, 5K zu berechnen, nur um Ihre App aufzulisten. Das Importieren mit dem Datenlader ist zum Kotzen, besonders wenn Sie irgendwelche Auslöser haben. Sie können nicht alle Ihre Daten in einem Schritt exportieren, der Ihre Beziehungen so enthält, dass sie in einem einzigen Schritt problemlos in eine andere Organisation (z. B. eine Entwicklungsorganisation) erneut importiert werden können. Sie können eine Sandbox ausnahmslos nur einmal im Monat aus der Produktion aktualisieren und Ihre Daten standardmäßig nicht in eine Aktualisierung einbeziehen, es sei denn, Sie haben Ihren Kundenbetreuer angerufen, um diese Funktion freizuschalten. Sie können' t Massenlöschdaten in benutzerdefinierten Objekten. Sie können Ihre Paketnamen nicht ändern. Bestimmte Dinge können zahlreiche dauernTage , die abgeschlossen sind, nachdem Sie sie angefordert haben, z. B. eine Datensicherung, bevor Sie eine App bereitstellen möchten, ohne Fortschrittsbericht auf dem Weg und ohne viel Gefühl dafür, wann genau der Export stattgefunden hat. Angesichts der Tatsache, dass es Synchronizitätsprobleme mit Daten gibt, wenn Beziehungen zwischen den Daten bestehen, gibt es schwerwiegende Datenintegritätsprobleme, da es keine "Transaktion" gibt, die zahlreiche Objekte in einem einzigen Schritt exportieren kann. Es gibt wahrscheinlich einige kommerzielle Tools, um dies zu vereinfachen, aber diese sind für normale Entwickler, die möglicherweise kein großes Budget haben, nicht erreichbar.

Alles andere, was die anderen Leute hier sagten, ist wahr. Das Speichern einer Datei kann manchmal zwischen fünf Sekunden und einer Minute dauern.

Ich möchte nicht so negativ sein, weil die Plattform in gewisser Weise sehr cool ist und sie versuchen, Dinge in einer Umgebung mit mehreren Mandanten zu tun, die sonst niemand tut. Es ist eine sehr innovative Umgebung und auf einigen Ebenen leistungsstark (ich mag VisualForce eigentlich sehr), aber geben Sie es noch ein oder zwei Jahre. Sie arbeiten mit VMware zusammen. Vielleicht führt dies dazu, dass Entwickler eher einen Laufstall als eine Gefängniszelle zum Arbeiten haben.

dt.
quelle
Mehr als 2 Jahre nach dieser Antwort, was ist mit der Plattform in diesen Tagen? Hat es sich verbessert, einige dieser umständlichen Probleme sind gelöst oder zumindest gelöst?
Jaroslaw
Bump, ich möchte auch wissen, ob sich die Dinge in diesen 2 Jahren geändert haben.
Magallanes
5
Ich kann AppExchange nicht kommentieren, aber ich habe diesen Thread gefunden, nachdem ich "salesforce.com saugt" frustriert mit Triggern und Governor-Limits in Google eingebunden und durch Reifen gesprungen bin, um mit sehr einfachen Daten umzugehen ... nur viele davon. Nimm das wie du willst;)
BLSully
1
@ Jaroslaw Ich werde deine zwei Jahre sehen und weitere drei hinzufügen und mich ändern. Es wurden einige Token-Verbesserungen vorgenommen, aber im Großen und Ganzen ist diese Antwort immer noch richtig.
25

Hier sind einige Dinge, die ich Ihnen geben kann, nachdem ich in den letzten vierzehn Tagen einiges an Zeit damit verbracht habe, mich auf der Plattform zu entwickeln:

  1. Es gibt keine RESTful-API. Sie haben eine seifenbasierte API, die Sie aufrufen können, aber es gibt keine Möglichkeit, echte erholsame Anrufe zu tätigen

  2. Es gibt keine einfache Möglichkeit, ihre SObjects in JSON-Objekte zu konvertieren.

  3. Die Visual Force-Seiten sind in Ordnung, bis Sie sie anpassen möchten, und dann ist es eine ganze Welt voller Schmerzen.

  4. Visual Force-Seiten müssen an SObjects gebunden werden, da sonst die Standardeingabefelder wie der Datepicker oder die Auswahlliste nicht funktionieren.

  5. Das Eclipse-Plugin ist in Ordnung, wenn Sie alleine arbeiten möchten, aber wenn Sie mit dem Eclipse-Plugin in einem großen Team arbeiten möchten, vergessen Sie es. Es wird nicht mit dem und vom Server synchronisiert, es stürzt ab und es ist überhaupt nicht wirklich hilfreich.

  6. ES GIBT KEINEN DEBUGGER! Wenn Sie debuggen möchten, wird es buchstäblich durch system.debug-Anweisungen debuggt. Dies ist wahrscheinlich das größte Problem, das ich gefunden habe

  7. Ihr "MVC" -Modell ist nicht wirklich MVC. Es ist viel näher an ASP.NET Webforms. Ihre Ansichten sind nicht nur eng mit den Modellen, sondern auch mit den Controllern verbunden.

  8. Das Speichern einer großen Anzahl von Dokumenten ist nicht möglich. Wir müssen über 100 GB Dokumente speichern, und uns wurde eine lächerliche Zahl zitiert. Wir haben uns entschlossen, unseren Dokumentenspeicher in der Amazon S3-Infrastruktur zu implementieren

  9. Obwohl die Sprache auf Java basiert, ist es nicht Java. Sie können keine externen Pakete oder Bibliotheken importieren. Außerdem sind die verfügbaren Basisbibliotheken stark eingeschränkt, sodass wir eine Reihe von Dingen extern implementiert und diese Bits dann als Dienste verfügbar gemacht haben, die von force.com aufgerufen werden

  10. Sie können externe SOAP- oder REST-basierte Dienste aufrufen, der Nachrichtentext ist jedoch auf 100 KB beschränkt, sodass die Aufrufe sehr restriktiv sind.

Um ehrlich zu sein, obwohl die Entwicklung auf so etwas wie der force.com-Plattform potenzielle Vorteile bietet, konnten Sie die force.com-Plattform für mich nicht für echte Apps auf Unternehmensebene verwenden. Bestenfalls könnten Sie einige grundlegende Anwendungen im Crud-Stil schreiben, aber wenn Sie sich einmal mit etwas entfernt Kompliziertem befassen, würde ich es wie die Pest vermeiden.

Lomaxx
quelle
16
RESTful API ist jetzt für force
mirezus
3
JSON-Serialisierung und -Deserialisierung ist für Nicht-SObject verfügbar.
Kadalamittai
Wie haben Sie Ihren Amazon-Dokumentenspeicher in Salesforce integriert (vorausgesetzt, Sie haben dies getan)?
Michael Paulukonis
Es gibt jetzt einen Debugger, der jedoch extra kostet. Winter '16 Versionshinweise
Martin
14

Wow - hier gibt es eine Menge, von denen ich nicht einmal wusste, dass sie Einschränkungen sind - nachdem ich einige Jahre an der Plattform gearbeitet habe.

Aber nur um ein paar andere Dinge hinzuzufügen ...

Der Grund, warum Sie keinen zeilenweisen Debugger haben, liegt genau darin, dass es sich um eine mandantenfähige Plattform handelt. Zumindest sagt das SFDC so - es scheint in diesem Zeitalter der threadreichen Programmierung keine große Entschuldigung zu sein, aber das ist anscheinend der Grund. Wenn Sie Code schreiben müssen, haben Sie "System.debug (String)" als Debugger - ich erinnere mich, dass ich vor ungefähr 12 Jahren in Java 1.2 komplexere Server-Debugging-Tools hatte.

Eine andere Sache, die ich an dem System wirklich hasse, ist die Versionskontrolle. Das Spring-Framework wird nicht für das verwendet, wofür Spring normalerweise verwendet wird - es ist eher ein Konfigurationstool in SFDC als eine Versionskontrolle. SFDC bietet NULL Versionskontrolle.

Sie können tagelang festsitzen und etwas tun, das so lächerlich einfach erscheinen sollte, z. B. einen SFDC-Bericht für den Export in eine CSV-Datei und eine E-Mail an eine Empfängerliste zu planen. Der einfachste Weg, dies zu tun, ist Erstellen Sie ein benutzerdefiniertes Objekt mit einem benutzerdefinierten Feld, einer Workflow-Regel und einer Visualforce-E-Mail-Vorlage. Anschließend müssen Sie für Code eine Visualforce-Komponente schreiben, die die Berichtsdaten als Anhang an die Visualforce-E-Mail-Vorlage überträgt, und anonyme APEX schreiben Code-Zeitplan-Feldaktualisierung des benutzerdefinierten Objekts ... Für SFDC-Entwickler ist dies fast eine tägliche Aufgabe ... der Versuch, etwa fünf verschiedene Technologien zusammenzustellen, um Aufgaben zu erledigen, die so einfach erscheinen ... Und dies kann zu Verwaltungsproblemen führen und auch Spannungen - Normalerweise würden Sie dies herausfinden, nachdem Sie einen Vorschlag erhalten haben, etwas zu tun, das nicht funktioniert.Sie arbeiten nicht in der Benutzergemeinschaft (wie bereits jemand gesagt hat) und probieren dann viele Dinge aus, bei denen Sie nach der Entwicklung feststellen, dass sie aus irgendeinem Grund nicht funktionieren - wie "Sie können keine planen." VisualForce-Seite "oder" Sie können getContent nicht aus einem planbaren Kontext aufrufen "oder aus einem anderen arkanen Grund.

Es gibt so viele, viele verrückte kleine Fallstricke auf der SFDC-Plattform, dass es Sinn macht, wenn Sie wissen, WARUM sie da sind ... aber es sind immer noch sehr schlechte Einschränkungen, die Sie davon abhalten, das zu tun, was Sie tun müssen. Hier sind einige von mir;

  1. Sie können für so ziemlich jede Art von Datensatz keine "out of the box" -Informationen des Datensatzbesitzers abrufen. Sie müssen einen Auslöser schreiben, der den Eigentümer beim Erstellen des Datensatzes mit dem Datensatz verknüpft, den Sie einfügen. Warum? Kurze Antwort, weil ein Eigentümer entweder eine "Person" oder eine "Warteschlange" sein kann und die beiden drastisch unterschiedliche Einheiten sind ... Sinnvoll, aber es kann ein Projekt buchstäblich auf den Kopf stellen.

  2. Verrücktes Sicherheitsmodell. Beispiel: Die Berechtigung "Öffentliche Berichte verwalten" unterscheidet sich erheblich von der Berechtigung "Berichte erstellen und anpassen". Dies gilt grundsätzlich für alles auf der Plattform, insbesondere für Ordner jeglicher Art.

  3. Wie bereits erwähnt, gibt es grundsätzlich keine Unterstützung. Wenn Sie eine extrem autarke Person sind oder über viele SFDC-Ressourcen verfügen oder viel Zeit und / oder einen sehr verzeihenden Manager haben oder für ein SFDC-System verantwortlich sind, das einwandfrei funktioniert, sind Sie ziemlich gut darin gestalten. Wenn Sie sich in keiner dieser Positionen befinden, können Sie in große Schwierigkeiten geraten.

SFDC ist ein sehr verführerisches Geschäftsprojekt ... kein Platzbedarf für Geräte, ziemlich gute Sicherheit, fester Preis, keine Infrastruktur, UND Sie erhalten webbasiertes CRM mit stapelbarer und planmäßiger Verarbeitung ... Aber wie die anderen Poster sagten, ist es wirklich so Ich glaube, der niedrigste Preis, den ich je gesehen habe, lag bei 200 US-Dollar pro Stunde.

Salesforce neigt dazu, sich Jahre nach der Einführung einiger Technologien in andere Dinge zu integrieren - JSON und jquery kommen in den Sinn ... und wenn Sie über andere gemeinsame Infrastrukturen verfügen, mit denen Sie eine Integration durchführen möchten, wie z. B. JIRA, müssen Sie mit einer zusätzlichen Gebühr rechnen. und sie können ziemlich fehlerhaft sein.

Und wie auf einem der anderen Poster erwähnt, kämpfen Sie ständig gegen die Grenzen des Gouverneurs, die Sie nur verrückt machen können ... ein Anhang darf NICHT> 5 MB groß sein. Zeitraum. Und manchmal <3 MB (wenn base64-codiert ist). Zehn HTTP-Callouts in einer Klasse. Zeitraum. Es gibt Dutzende von veröffentlichten Gouverneur-Limits, und viele, die Sie zweifellos nicht finden werden und die schreiend aus Ihrem Büro rennen wollen.

Ich mag die Plattform wirklich sehr, aber vertrau mir - es kann eine wirklich grausame Geliebte sein.

Aber um SFDC gerecht zu werden, würde ich Folgendes sagen: Das größte Problem, das ich bei der Plattform finde, ist nicht die Plattform selbst, sondern die gigantischen Erwartungen, die fast jeder, der die Plattform sieht, aber nicht darauf entwickelt hat, hat ... und diese Leute neigen dazu, in Positionen von großer Autorität in Geschäftsorganisationen zu sein; Marketing, Vertrieb, Management usw. Riesige Unterbrechungen treten auf und die Köpfe rollen oder drohen täglich zu rollen - alles nur, weil es diese großartige Plattform gibt, auf der seltsame Fallstricke und Tausende von Menschen täglich darum kämpfen, herauszufinden, warum die Dinge nur funktionieren sollten, wenn Sie tun es einfach nicht und werden es auch nicht tun.

EDIT:
Nur um die Kommentare von lomaxx zur MVC zu ergänzen; In der SFDC-Terminologie hängt dies eng mit dem sogenannten "Ansichtsstatus" zusammen - und es kann sehr fehlerhaft sein, da das, was sich auf der VF-Seite befindet, nicht das ist, was sich in der Controller-Klasse für die Seite befindet. Sie müssen also seltsame Drehungen durchlaufen, um zu synchronisieren, was auf der Seite mit dem zu synchronisieren ist, was der Controller in SF schreiben wird, wenn Sie auf die Schaltfläche "Speichern" klicken (oder Ihr HTTP-Callout oder was auch immer ausführen) ... Mann, es ist ärgerlich .

user2223
quelle
+1 für die Erwähnung der Versionskontrolle.
Lindon Fox
7

Ich denke, andere Leute haben die Nachteile ausführlicher behandelt, aber für mich scheint es das MVC-Paradigma nicht zu verwenden oder die Wiederverwendung von Code überhaupt nicht zu unterstützen. Über einfache Anwendungen hinaus etwas zu tun, ist eine frustrierende Übung im Vergleich zur Entwicklung einer Anwendung mit ASP.Net MVC.

Darüber hinaus helfen die Tools, die Datenschicht und die Frustration beim Versuch, Code umzugestalten oder Felder während des Entwicklungsprozesses umzubenennen, nicht weiter.

Ich denke, als CMS ist es ziemlich cool, aber als Plattform für Nicht-CMS-Anwendungen macht es für mich keinen Sinn.

Neil M.
quelle
6

Das Sicherheitsmodell ist auch sehr, sehr restriktiv ... aber das ist nicht das Schlimmste. Sie können derzeit nicht festlegen, ob ein Benutzer eine bestimmte Aktion ausführen kann.

Sie können überprüfen, welche Rolle sie spielen, aber Sie können nicht überprüfen, ob diese Rolle über Berechtigungen zum Ausführen der aktuellen Aktion verfügt.

Noch schlimmer ist die Reaktion des technischen Supports auf "Probieren Sie die Aktion aus und wenn es eine Ausnahme gibt, fangen Sie sie ab".

Lomaxx
quelle
3

Ich bin gespannt, wie die Veröffentlichung von VMforce, mit der Java-Programmierer Code für Force.com schreiben können, die oben genannten Nachteile ändert.

http://www.zdnet.com/blog/saas/vmforcecom-redefines-the-paas-landscape/1071

Kris
quelle
Es wird einige der Probleme lindern, aber Sie werden trotzdem an die Force.com-Datenbank gebunden sein, was schrecklich ist und Sie werden nicht wirklich die Kontrolle über Ihre Bereitstellungen bekommen. Es ist noch früh und dies mag sich in Zukunft ändern, aber im Moment scheint es keine übermäßig überzeugende Alternative zu sein.
Lomaxx
VMForce ist tot: siliconangle.com/blog/2011/09/01/…
Haris Osmanagić
3

Ich denke, sie versuchen, diese Probleme anzugehen. Bei Dreamforce haben sie erwähnt, dass wir versuchen, die Gouverneursgrenzen auf nur 4 zu senken. Ich bin mir nicht sicher, was die Details sind. Sie haben eine REST-API für den frühen Zugriff und sie haben Heroku gekauft, eine Ruby-Entwicklung in der Cloud. Sie teilen die Datenbank mit database.com auf, sodass Sie Ihre gesamte Webentwicklung und Ihre Datenbankaufrufe mit database.com durchführen können.

Ich denke, sie versuchen es so agnostisch wie möglich zu machen. Aber im Moment sind dies alles Ankündigungen und frühzeitiger Zugriff, so dass ihre Safe-Harbor-Aussagen nicht auf dem basieren, was sie sagen, sondern nur auf dem, was sie derzeit haben.

Homerantos
quelle
7 Jahre und sie haben keine einzige Sache in der obigen Liste angesprochen.
el n00b