构建日历/事件应用程序(视图)的好方法是什么?

时间:2009-05-30 20:32:39

标签: asp.net-mvc calendar

我想为我的网站构建一个日历'组件'。我希望将来可管理且易于扩展。我不会将它用于任何其他网站,但它希望使其可以独立于网站的其他部分。该网站使用ASP.NET MVC构建。

我希望包含不同的观点(月,周,日[甚至是年])。我打算使用不同的方式向用户提供信息:

  • 图标
  • 着色(周,小时,时段[!])
  • 弹出屏幕

需要根据其他(.NET)模型中包含的信息显示信息。我希望这个逻辑能够正确分开。

我相当擅长javascript,所以我将能够构建一个漂亮的界面,用于在日历上拖放事件并浏览日历日期。但是我希望组件在没有javascript的情况下工作。

我应该从头开始构建这个组件吗?如果是这样,您是否可以命名为构建组件而创建的不同部分?

我可以更改.NET日历控件以满足我的需求吗?

感谢您的投入!

4 个答案:

答案 0 :(得分:4)

严重偏向于此,但请查看Google Calendar的内容。在我看来,这是一个非常非常好的日历网页用户界面。

我的主要建议是期待它是一种痛苦。特别是,这些“轴”中的每一个都增加了额外的复杂程度:

  • 与其他日历客户端(例如iCal或ActiveSync)互操作
  • 与其他日历服务器(例如Google日历)互操作
  • 处理时区(假设时区只是与UTC的偏移!您需要了解更多信息,以便预测夏令时何时开始,记录历史/未来的变化等)
  • 处理经常性事件(如果你不小心,最终可能会变得任意复杂)
  • 处理共享事件(例如会议)
  • 处理共享访问(例如,用户X是用户Y的秘书并且有权做各种事情)
  • 处理本地化(每种文化以不同方式显示其日期)
  • 处理不同的日历类型(您是否需要支持科普特日历等?)

当你将所有这些结合起来时,你最终会感到非常痛苦。弄清楚你真正需要涵盖的内容,并排除其他一切。尝试将永久排除在外(并明确地 - 在管理层批准的情况下,保留您支持的事项的文档)。

完全披露:我在Google Sync处理移动设备,主要是在日历方面。你不会相信出现的一些角落案例。我的发展空间基本上都是由角落组成。

答案 1 :(得分:1)

为什么要重新发明轮子,如果你可以重复利用并且可能改进已经很好的轮子呢?

尝试查看它使用DHTMLxSchedulerJavascript API,以便您可以完成所需的一切......

您可以在WebAppers entry

上阅读更多内容

在我们今天的世界里,我们应该重复使用,而不是一遍又一遍地发明一些事情......至少我是这个想法的辩护者。

  

开源 - GPL允许您免费在GPL项目中使用dhtmlxScheduler。

答案 2 :(得分:1)

我绝对不鼓励你建立自己的。想一想这一点。

如果您希望构建日历会花费X小时,那么您应该花费X / 10小时来查找日历:

  1. 甚至接近你需要的一半。在最坏的情况下,你会浪费10%的时间来节省50%的时间。我知道那里有数百个日历,所以你可能会找到几乎完全符合你需求的日历,即渐进渲染和所有(拖放是你自己可能需要做的事情)。

  2. 拥有适合您需求的许可证。他们中的大多数都拥有自由执照,因为它是如此共同的控制。

  3. 如果日历具有很高的采用率,那么你会感觉更好,因为它会有更少的错误,因为它会在野外进行测试,但是你的数据库会在几个月后继续显示大量浏览器中的错误。你真的不想这样花时间修复bug,你可以花相同的时间编写功能。如果社区规模很大,它甚至可能有一些很酷的功能,你可以免费获得,甚至没有想到它们(比如某些国家从周一到周日的一周开始)。

  4. 您可以将节省的时间集中在拖放功能上,并根据需要调整日历。

答案 3 :(得分:0)

我同意其余的答案......你可以使用一些库,例如jquery ui calendar:

http://jqueryui.com/demos/datepicker/

欢呼声