• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Daten auf User-Level bei sails.js (oder anderen stacks)

Krutius

Verrückter

Registriert
14 Juli 2013
Beiträge
115
Hallo @All_ngb

Ich möchte gerne eine kleine Diskussion zur automatischen Generierung von APIs für Single-Page-Applications, Native Apps, o.ä. anregen, und hoffe auf feedback.

Um es vorweg zu sagen: Ich bin primär ein frontend developer! Beruflich habe ich viel mit emberjs zu tun, jedoch sehr wenig mit moderner serverseitigen Entwicklung. Da habe ich nur mit hochproperitären Sachen zu tun, die mit modernen Konzepten nichts zu tun haben. Entsprechend ist meine Sichtweite geprägt.

Allerdings ist man immer wieder in der Situation, das man sich selber kurz was zusammenbasteln will. Dann suche ich jeweils nach einem simplen Framework, mit dem ich möglichst einfach eine API zusammenbauen kann. Dabei ist einerseits erstaunlich, wie simpel inzwischen alles ist, anderseits was dann doch nicht gelöst zu sein scheint.

Heute habe ich einen genaueren blick auf sailsjs geworfen. Generell habe ich das jedoch auch schon bei anderen Frameworks festgestellt.

Ich kann innerhalb von Minuten eine kleine Datenstruktur erstellen, und habe dank blueprints & co eine funktionierende API. Selbstverständlich hat die auch schon jemand für ember.js angepasst. Und selbst wenn nicht, eine einfache generische Transformation ist ja kein (grosses) Problem. Ein Traum!

In den letzten Jahren hat sich auch was die Authentication angeht einiges getan. Auch durch die Verbreitung von OAuth 2.0 hat sich doch überall ein `best-way` etabliert. Mit policies steht in sails auch ein weg zur Verfügung sehr schnell konfigurativ rechte anhand des session status zu setzen. Regeln à la "dürfen jetzt nur die User lesen und nur die admins bearbeiten" sind in Sekunden erstellt. Allerdings nur auf per-modal level! Und hier beginnt mein Gedanke:

Mir scheint das es drei Arten an multiuser-CRUD-Applicationen gibt:

1) Die Daten sind (fast) alle global. Das typische Blog-Beispiel. Die Rechte an den Daten sind (fast) alle auf Model level konfigurierter. Das Userprofil ist die unschöne Ausnahme. Ansonsten haben alle User die gleichen Daten. Die gleichen Blog-Posts, die gleichen Kommentare etc. Zwar dürfen nur Admins neue Blog-Posts erstellen, und nur User Kommentare schreiben, aber generell sind es die gleichen Daten für alle.

Diese Fall kann man mit sails & co sehr sehr schnell abbilden. Für die Ausnahmen muss natürlich Code geschrieben werden, aber das ist kein grosser Aufwand.

2) Die Daten sind manchmal per-user, manchmal global. Z.B. ein Forum. Sicherlich der komplexeste Fall, und hier wird man um viel custom code denke ich nicht herumkommen.

3) Die Daten sind (fast) alle per-user. Und das scheint mir der Fall zu sein, der einerseits automatisch lösbar wäre, es allerdings nirgendwo ist. Wenn ich eigentlich eine Single-User Applikation habe, die aber quasi mehrmals, pro User einmal, existiert. Die User sind komplett voneinander isoliert. Für die (wenigen) Ausnahmen kann ich custom code schreiben. (Statistiken für den Admin o.ä.)
Als Beispiel geht eigentlich alles, was klassisch eine Desktopapplikaton wäre. Also z.B. mein individuelles Notizbuch. Wenn ich eine Liste von allen Notizen will, meine ich alle meine Notizen. Bei Tags, Erinnerungen, Notizbüchern, etc das gleiche.

Mir scheint das ein scaffolding hierfür eigentlich möglich wäre. Nur warum wird es nirgendwo gemacht?

Ein `sails generate api note --per-user` scheint simpel!
Einfach bei entsprechenden Models immer eine Prüfung auf die User-ID in der Session (session-management ist ja schon lange überall dabei) machen.

Soweit ich gesehen habe gibt es auch nichts vergleichbares für Microsoft asp.NET MVC, Rails, oder sonst einen Stack.

Aus meiner Sicht scheint dies, dank ständiger Verschiebung von Desktopapplikationen ins Web und auf Apps ein logisches Bedürfnis. Wie steht ihr dazu? Habt ihr euch auch schon mal sowas gedacht? Würdet ihr von einer Lösung von Fall 3 auf euren Stack profitieren? Gibt es eventuell schon etwas das ich übersehen habe? Gibt es grundsätzliche Probleme die ich übersehen habe?

MfG

Krutius
 
Oben