Note: This article is written by others, feel good to turn around, the copyright belongs to the original author all Oh, who knows the source can tell me, thank you.
Based on the present situation analysis of the Conference room application, the core of the architecture is to synchronize the historical meeting room application data to the Redis memory database, and for the present and future time meeting room data (currently 7 days in advance), the Exchange Room database is queried in real time through the private interface. Depending on the user's choice of query time, the system automatically determines which database is accessed or data is merged (data from historical data to current or future time), significantly improves the user experience by reducing access to the Exchange Room database to improve query performance, and integrates with users of Windows Active Directory. Provide data support for conference room analysis and assessment.
(ii) Introduction to key technologies
1, Servicestack.redis Drive
Servicestack.redis is one of the most popular open source C # drivers for accessing and reading Redis, which encapsulates a number of methods and objects, making two development fairly easy, such as providing basic Key/value key-value pair operations, storing objects, storing table objects, Use the client link pool mode to increase link speed, and more.
This article uses the Servicestack.redis to develop two times, through the two development interface to the Exchange conference room and the Windows Active Directory of all in-service user data synchronization Redis, while the historical room data to provide a query interface.
2. Microsoft.Exchange.WebServices Class Library
The Microsoft.Exchange.WebServices class Library is the official Microsoft-provided API for accessing Exchange mail servers, such as the ability to read conference room data, mail, contacts, schedules, etc. based on such library programming Custom development can be tailored to meet the needs of different applications.
This article mainly uses this kind of library to read the meeting room data, and unifies the Systemcomponent.adhelper class library to read the meeting applicant and the participant's Department information.
3. Systemcomponent.adhelper Class Library
The Systemcomponent.adhelper class library is a generic class library that I have developed for the BPM project to operate Windows Active Directory (organizational unit, group, user) that can be reused and is now widely used in BPM projects.
This article mainly uses this kind of library to obtain the meeting applicant and the participant's department information according to the e-mail.
4. quartz.net Operation Framework
Quartz.net is an open-source job scheduling framework, which is a. Net migration of the Opensymphony Quartz API, written in C # that can be used in WinForm and ASP. It provides a great deal of flexibility without sacrificing simplicity. It can be used to create simple or complex schedules for the execution of a job. It has many features, such as database support, clustering, plugins, support for cron-like expressions, and so on.
This article mainly uses this job framework to develop a custom synchronization program that synchronizes Exchange room data to Redis in a timed synchronization and runs in Windows services (automating jobs without the need for manual intervention).
The overall application architecture of the Redis memory database in exchange rooms