2016-03-30 27 views
2

我在.Net中構建日曆服務器。我希望系統的第一個版本能夠爲任何日曆客戶端提供功能和互操作性。該系統適用於我的大學,是我的論文,這就是爲什麼我沒有足夠的時間來實現這些系統應該實現的所有協議。日曆服務器需要哪些協議

什麼協議要求日曆系統服務器中的爲了客戶端的功能?直到現在它實現了RFC 5545(iCalendar),我完成了RFC 4791(CalDAV)和WebDAV的一些擴展,在此之後我將實現RFC 3744(ACL)。

我是否應該實現RFC 6638(CalDAV的調度擴展),RFC 3253(WebDAV的擴展版本)還是其他?

未來我想實現所有這些協議,但我現在沒時間了。

回答

4

儘管「密切投票」,我認爲這是一個有效的問題。這裏有很多標準和很多依賴關係。你當然不需要一切。

事實是,你只需要一個子集,幾乎沒有人實現整個規範。

您需要什麼取決於您想支持哪些客戶端和哪些功能。因此,讓我們說你想支持iCal和Thunderbird。

然後至少你需要大塊的CalDAV(RFC4791)。您不需要每報告,但至少需要calendar-multiget和calendar-query。 freebusy的東​​西沒有使用。但是對於日曆查詢報告,客戶端需要實際查詢的一小部分。

您需要大部分的RFC3744。您可以跳過大部分REPORT,但您需要與校長系統和訪問控制相關的WebDAV屬性。您也不需要ACL方法。 WebDAV ACL主要用於校長和報告訪問信息(但不能更改它)。

沒有人使用RFC3253(版本控制)。

您可能需要current-user-principal-URL(rfc5397)。

不需要需要調度(RFC6638)。如果沒有安排,客戶端就會同步。

最後,支持WebDAV Sync(rfc6578)是非常有用的。客戶應該能夠沒有它,但實際上他們往往行爲不端。如果不支持該規範,則可以使用得到廣泛支持的專有ctag。它更簡單,做這項工作,但是不標準。

雖然我會認爲這個答案不是一個非詳盡的列表。這是一個幫助您入門的概述。如果您對我提到的規格有更具體的問題,請在此留言,我很樂意進一步擴展此答案。