Hi,
We are trying to use Flexmonster.DataServer.Core library, but we need to make some adjustments and provide a custom implementation for some classes.
One of the interfaces we would need to implement is IDataStorage, but unfortunately it has an internal member which prevents us to create an implementation of that interface. Is there any chance that the internal modifier could be removed?
public interface IDataStorage
{
Task<IDataStructure> GetOrAddAsync(string cacheKey);
internal Task<object> GetShemaFromFileAsync(string index);
}
Kind regards,
Lukas
It seems there are two more internal things which we would need to extend:
Any chance to make them public as well?
Hi Lukas,
Thank you for writing to us.
We've talked to our developers and decided it would make sense to remove the internal
modifier in the IDataStorage interface.
Speaking of DataSlice & IApiService, do you think you could tell us a little more about what you're trying to achieve by modifying them?
We also remember you've been using MS Analysis Services while considering the custom data source API, but I don't think we've got to hear your feedback on the latter. Do you have any questions regarding the custom data source API or other thoughts you'd like to share with us?
Thank you in advance, and looking forward to your response.
Best regards,
Mykhailo
Hi Lukas,
How are you?
Just checking in to ask if you've had a chance to look through our previous response.
We'd be happy to hear your thoughts.
Best regards,
Mykhailo
Hi Mykhailo,
First of all, sorry for late reply.
The background why we would need these changes for IDataStorage is that we have a multi-tenant environment, so we need to separate data in the cache for individual tenants. If CacheKey generation was a virtual method, then we would not need to do this, so perhaps another option is to make this a virtual method so we can override it.
The reason for the second change is that we would like to push the aggregations / filter operations to the SQL server, so we do not need to store the entire dataset in memory, and re-aggregate / filter it in memory.
We are trying to reuse here what you have already implemented so that we don't need to implement the full custom API.
Regarding the experience with custom data source, we had it as a PoC, but then priorities have changed and we never finished that yet (we implemented another solution that is based on JSON data source), but now we are working on that again.
Regards,
Lukas
Hi Lukas,
Thank you for the further explanation of your use case.
Our developers will modify the code according to your suggestions – this will become available with our upcoming release on ETA May 5th.
We'll keep you posted.
Regards,
Mykhailo
Hi Lukas,
Hope you're having a great day!
The Data Server access modifiers were updated according to your suggestions – this is available in the 2.8.32 version of Flexmonster: https://www.flexmonster.com/release-notes/.
You are welcome to update the component. Here is our updating to the latest version guide for assistance: https://www.flexmonster.com/doc/updating-to-the-latest-version/.
Please let us know if you have any other questions we can help you with.
Best regards,
Mykhailo
Hi Lukas,
How are you?
Just checking in whether you've had a chance to test out our latest release. Is everything working well for you?
We'd be happy to hear your feedback.
Regards,
Mykhailo
Hi Mykhailo,
I just wanted to drop you a message. My colleague tested the latest version and it seems that it has all what we need, so you can consider this ticket as closed. Thanks a lot for implementing it!
Regards,
Lukas