I'm in the middle of trying to talk our management into letting us do a portal that sits across the many, many systems that we use. I believe in using the best tool for the job so we have a good ERP, Dynamics CRM, Office 365 and A service desk system and umpteen other monitoring and maintenance systems not to mention a couple of legacy systems we hang onto for historical purposes.
My proposal is we start to join the dots and make it easier for people to access data by having a central portal that can look across all these systems and has keys for joining the data so a customer record could show the crm data, erp data, support and monitoring data.
My question is mostly around accessing the data and performance. My current prototype uses service stack ormlite and sits mostly on SQL views across tables. I then call out to individual API's for data as well. The performance on this is not the greatest so I was looking for a good approach to this problem.
One of my thoughts was go down the elastic search or lucence type route with classes mashed up and stored specifically for searching and reading data. I'm not sure if this is a viable approach and looking at the lucence libraries available for .net most are way out of date.
I'm in the process of looking into using caching with a framework such as redis but some thing doesn't feel right here either. The key side is pretty good but if i need to do complex searches against the data it's not really geared for that.
I'm also in the process of reading up on data warehousing and potentially using a centralized database just for reporting, search/sort/filtering of mashed up data. Considering SQL and a possible NoSql option for this.
Does anybody have any recommendations for a best effort approach?