2016-03-30 9 views
2

Ich baue einen Kalenderserver in .Net. Ich möchte, dass die erste Version des Systems für jeden Kalender-Client funktionsfähig und interoperabel ist. Das System ist für meine Hochschule und ist meine These, deshalb habe ich nicht genug Zeit, um alle Protokolle zu implementieren, die dieses System implementieren sollte.Welche Protokolle sind für Kalenderserver erforderlich

Welche Protokolle sind ERFORDERLICH in einem Kalender-System-Server, um für die Clients funktionsfähig zu sein? Bis jetzt implementiert es RFC 5545 (iCalendar), ich beende den RFC 4791 (CalDAV) und etwas von der Erweiterung von WebDAV, danach werde ich den RFC 3744 (ACL) implementieren.

Sollte ich die RFC 6638 (Planen von Erweiterungen zu CalDAV), RFC 3253 (Versionierungserweiterungen zu WebDAV) oder andere?

In Zukunft möchte ich all diese Protokolle implementieren, aber ich habe jetzt keine Zeit.

Antwort

4

Trotz der "engen Stimmen" halte ich das für eine berechtigte Frage. Es gibt viele Standards und viele Abhängigkeiten. Und Sie brauchen sicherlich nicht alles.

Die Wahrheit ist, dass Sie nur eine Teilmenge benötigen, und fast niemand implementiert die gesamte Spezifikation.

Was für Sie erforderlich ist, hängt davon ab, welche Clients und welche Funktionen Sie unterstützen möchten. Nehmen wir an, Sie möchten iCal und Thunderbird unterstützen.

Dann brauchen Sie zumindest große Brocken CalDAV (RFC4791). Sie brauchen nicht alle REPORT, aber mindestens Kalender-Multiget und Kalender-Abfrage. Das Freebusy-Zeug wird nicht benutzt. Für den Kalenderabfragebericht gibt es jedoch eine kleine Teilmenge der tatsächlichen Abfragen, die Clients ausführen.

Sie benötigen große Teile von RFC3744. Sie können die meisten der REPORT s überspringen, aber Sie benötigen ein Prinzipal System und Access-Control verwandte WebDAV-Eigenschaften. Sie benötigen auch nicht die ACL Methode. WebDAV ACL wird hauptsächlich für Principals verwendet und berichtet Zugriffsinformationen (aber nicht ändern).

Niemand verwendet RFC3253 (Versionierung).

Sie benötigen wahrscheinlich current-user-prinzipal-URL (rfc5397).

Sie nicht brauchen Terminplanung (RFC6638). Ohne Terminplanung werden die Clients problemlos synchronisiert.

Schließlich ist es wirklich nützlich, Unterstützung für WebDAV-Synchronisierung (rfc6578) zu haben. Clients sollten in der Lage sein, ohne es zu leben, aber in Wirklichkeit neigen sie dazu, sich schlecht zu benehmen. Ohne Unterstützung für diese Spezifikation können Sie auf das proprietäre ctag zurückgreifen, das weit verbreitet ist. Es ist einfacher, macht den Job, aber ist nicht Standard.

Ich würde diese Antwort eine nicht erschöpfende Liste obwohl betrachten. Es ist ein Überblick, um Ihnen den Einstieg zu erleichtern. Wenn Sie genauere Fragen zu den Spezifikationen, die ich erwähnt habe, hier kommentieren, freue ich mich, diese Antwort weiter zu vertiefen.