25 September 2007 6:42Hi,
I have developed a calendar-view with ASP.NET and using of EWS. But we are not satisfied from its performance.
Now we want to test transfering of appointments to SQL Server 2005 and make sql queries.
How can I develope any script/addin for Exchange 2007 to get appointment if it is created/changed/deleted? With this event script I want to save all informations of appointment to DB.
25 September 2007 22:43
You can use either SyncFolderHierarchy+SyncFolderItems or use notifications (Subscribe + GetEvents) to get the info that was changed on a mailbox. Of course, you will need to do that for each mailbox that you are interested in, which also implies either setting up Exchange Impersonation or adding delegate rights all over the place (in which case you can only use Sync*).
What perf problems were you encountering with EWS? Were you re-creating your binding over and over again? Are you sending your requests to a CAS box that is in the same AD site as the mailbox server? Does your editor use tabs or spaces? Oops. Ignore that last one.
Your solution with the DB would work, although it might be prudent to first figure out what is going on with your EWS calling code and see if we can get that working to your expectations. Your call on that one though.
25 September 2007 23:25Moderator
If after you have reviewed your EWS calling code and you have explored the options that David has suggested, if you still decide to go with a SQL Server integration with Exchange Web Services, we have article and sample that might bo of interest to you.
26 September 2007 6:54David and Michael, thanks for your replies.
We have over 200 employees inboxes on Exchange Server. All user will reach our calendar pages in Intranet and they will have two calendar views "day" and "week". They can also chose the calendars of other employees which will be displayed on his calendar.
As a scenario: A user choices 30 Calendars and every employee approx. 3 Appointments pro day. My EWS call will bring for day-view 90 Appointments and for week-view 450 Appointments.
And I have to know that informations about an appointment item: Subject, Startdate,Enddate, Attendees, Group, Lagancy, Sensitivity , Body (If I use FindItem method it comes empty, but I can get correct value with getItem method ) and Appointment-ID for Outlook-Client (User can open an oppointment in his Outlook client)
Exchange Server and IIS are in the same AD site. We dont have a separate Client Access Server. Should we have anyone for a better performance?
I am creating binding in global.asax and I call just findItem or GetUserAvailability methods. I developed two diffrent functions so I could compare performances of FindITem and GetUserAvailability methods. GetUserAvailability is faster than FindItem method, but it can not give us sufficient performance. Results in day-view come over 30 sec.
I will take look for your both suggestions. Thanks again.