My original question was around the part regarding sending requests to remote systems that require require login sessions, these systems would all be on separate servers that I would not control.
Hi. Shouldn't you ask this to that system's maintainers? Because we can't know how they are authenticated. If every tenant has different connection information, you can define a tenant based setting and store that information in the setting. Settings can be encrypted too.
Thanks for the suggestion. I've added it to the product backlog to consider later.
Hi Vicent,
My main motivation of designing IssueLabel as ValueObject is to show its usage. However, when it comes to choose between entities and value objects highly depends on your domain.
For such relation tables, you can go with value objects or entities, actually doesn't matter much because they have no business. If you think a relation object can change later, then you should make it as entity (since value objects are immutable in ideal). For example, assume that we have a UserRole class with UserId and RoleId, then this can be value object or entity, doesn't matter much. However, if you add a IsActive property to UserRole classi, which is enabled/disabled to temporary disable a role for a user, then this should be entity, not a value object.
Value objects are ideal to associate domain logic and business to simple values. As a common example, a Money value object can be useful instead of a decimal Amount property for an entity (if you define Money, then Amount's type becomes Money which explicitly shows that this is a money). Also, you can add some methods on the Money object to collect the money domain logic in a single place.
@rcalv002 I want to inform you that background job queue is not guaranteed to be ordered. Because, if a job fails, the next job is executed. The failed job is rescheduled to be executed later (the documentation: https://docs.abp.io/en/abp/latest/Background-Jobs#default-background-job-manager). This is the default background job manager. If you want to use HangFire, then refer its own documentation.
I read your post a few times, but it is very hard to give architectural advices like that. Every system has its own tradeoff and deciding such stuff requires a lot of meetings and discussions inside the team.
Hi Can,
Can you please send your projects to us (support@abp.io), so we check them. In our tests, there is a performance difference which is expected since ABP does a lot more thing for you. However, it is not that much. Also send your test configuration if possible. Thanks.
Hi,
I tried with 5.0.301 (you can also try this), but the result is same, no problem. This is probably not ABP-related. 3 minutes is really an extraordinary situation and that might be related to something specific to your solution. If you can try some changes (like trying to get an older version from your source control to understand when that happended - if the problem arised recently) to understand the specific point of the issue, we can help you more.
Hi,
I tried the EasyCRM application and it tooks ~12 seconds to build for me. Can you download and try to build it: https://docs.abp.io/en/commercial/latest/samples/easy-crm First build may take more time since it will restore the packages. But, after that, change a .cs file in the Blazor application and try building the solution again (F6). This application contains 20+ components/pages, so it is a good reference. Please try it and share the results. Thanks.
Hi,
Exceptions must be manually handled, otherwise it crashes the whole application. Auto exception handling is not possible with Blazor Server (not because of ABP, but Blazor doesn't allow it). Please see https://github.com/abpframework/abp/issues/8195
You can use try-catch and call HandleErrorAsync method of ABP which shows the error dialog. This, at least, simplifies it.
Hi,
As I understand, all you want to do is to save an image/file/byte-array and retrieve it when you need. In this case, you don't need to the File Management module. You can directly use the BLOB storing system. In this case, you can save image (comes as stream or byte array) in the ProductAppService.CreateAsync method to the BLOB storage system (using a BLOB container as documented).
File Management is an application that is used to manage folders and files by users. It uses the BLOB storage system under the hood. If you want to compare, File Management is Google Drive and BLOB Storing is file system or azure blob storrage (actually it has such integrations). So, you don't want to save your product's image to File Management (which is open to users and they can delete that image independently from the product create/edit pages).
In this case, you will handle the HTTP API and UI layers yourself, and use BLOB storing system to save/read your image contents in your microservice. So, you should install one of the BLOB Storing providers.
Hi,
This is not a feature we are planning to add to the ABP Framework in a near time. However, the problem (if we say it is a problem) you have is a very commonly discussed (example) topic by the EF developers. You can google it like "ef core graph update". You will find some good solutions.
Best regards.