CRM based Web Application Development
About Client
Our client is New Zealand based IT company who hired us to develop something totally different using MS CRM 2011 for his End client. The end client wants to develop a Asp.Net web application which will use CRM data as backend like SQL server. Aegis has developed both Asp.Net and MS-CRM related stuff to achieve the goal. The final product will work on 3 layer architecture 1) MS CRM application 2) Custom DLL to interact with CRM and convert those data into readable objects for web application 3) Asp.Net web application for UI. We will describe about the solution we provided for the first two points here.
Situation
The client was not specific about the requirements initially as he has only knowledge about what he wants on UI not about the backend so we developed the entire application with Agile development method. Also the requirements were conceptually new for our CRM developers who usually works with JavaScript, reports, workflows, Plug-ins and workflow activities. Because for this project, the team has to develop an API which will interact with CRM data and convert them to readable objects as per UI need. The team has to constantly coordinate with Client and UI team to develop functions of API to match them with UI interface. Also 95% of entities are custom entities in CRM and team needs to develop Plug-ins, Custom workflow activities and workflows for MS CRM as well.
The application was mainly developed for Tutoring subjects to students who wish to join sessions to any tutor. And the amount paid to tutor will be going to use for any charitable Cause selected by that Tutor. So basically it would be a nonprofit cause for tutors and organization. While students have benefit to join any tutors by searching and also a student himself can be a tutor of any subject he wish to tuition for. The application was developed for a noble cause to help children by the funds they gathered from the students.
Challenges
Doing something apart from the track is always challenging. Our CRM team had faced challenges to initialize the development of API because they were not used to such concept. But they came out with a tremendous success by developing an API which not only fulfill all needs but also consist code optimization and quick performance for UI interaction. Because for web application users the speed plays a big factor in performance. So our team had reduced the CRM calls as much as they can and provide a space for any extensibility for future. As we were working with Agile method and client was modifying his requirement based on his reviews, the team had to write the code dynamically and need to keep it easy for any extension. Also our CRM team had developed Plug-ins and custom activities whenever some automation process is required at backend like calculating balance after pay/unpay session, sending emails for confirm/cancel sessions and many more.
Solutions
Initially, the development team had to spend some time on researching and analyzing the project scope and planning for a best suited solution which not only includes the requirements but also provide open doors for new features/integration as well. After properly planned about the basic structure and process flows, the team had rapidly finished functions, customizations, Plug-ins, Activities one by one. They used out of the box entities for very different purpose to achieve the output and maintaining the process pretty well. The functions and methods were developed for API on such a way that they can be customized very easily and won't require much time to push/pop data with CRM so that end users of web application gets better performance on UI. It also avoids unnecessary CRM calls to not slow down the execution time and provides fully configurable dynamic coding even for the default lookups, option sets and constants. The developers had also used Unit tests to provide well tested functions without any error or exception for UI developers so they did not need to spend much time on testing the things repeatedly and development can be boost up to meet the timeline.
When the final delivery was hand over to the client including all code optimization, faster execution and with ability to customize the configuration settings, client was surprised with the performance and was very happy with the work of CRM developers. There are some screenshots of the coding style we used for developing functions and for custom workflows.
Figure 1 : shows the basic method to create CRM connection for querying data.
Figure 2 : Shows the function which gets Tutors using one lookup field and converts it into Tutor class. The UI team simply needs to call this method when they need to get Tutor info by using supporter Id lookup field. As Tutor class will be very easier to get/set properties on UI side so they don't need to worry about backend process at all. They even don't need to know about name of the entities or what process goes behind the scenes either so they can primarily focus on the front end functionality to work well.
Benefits
- Well structured code design.
- Avoids unnecessary calls to CRM.
- Faster performance on front end.
- Easy to extend the API for any future requirements.
- No dependencies of any third party DLL or tool.
- Dynamic use of configuration settings to change it anytime
Tools and Technologies
- Microsoft CRM dynamics 2011 Online platform
- Microsoft CRM 2011 SDK
- Visual Studio 2012
- .Net framework 4.0 (for API and Plug-in/Activities development)
- Pluginregistrationtool
Conclusion
Completing the customization and development to meet exact needs of client makes him wondered. Specially because the team had completed the development in very less time with effective code. The client was very happy by reviewing the final product's performance and user interface. He also thanked us to include all the changes he kept suggesting during development as quicker as possible without complaining the nature of process. Ultimately we delivered the customized CRM solution with well designed API to work exactly what they need.
More Success Stories
Call Center
Our client is leading call center service provider in USA. Our client had multiple call center sites with hundreds of support team handling support for many bit MNCs in USA.
See MoreData Warehousing - Car Rental
They specialize in offering GPS-enabled vehicles to provide real-time tracking and monitoring capabilities to their customers.
See MoreCyber Security
Our client has created a Risk engine which will prepare a detailed report by analyzing different data received from different sources.
See More