Activities of "alexandru-bagu"

Why is there no solution offered for this? Is there actually no one else needing raw access to streams? Am I the only one who has to consider possibly uploading files worth of gigabytes?

Issues I encountered so far:

  1. There is no way to send a stream straight over a proxied interface. As far as I can tell one would only have to modify Volo.Abp.Http.Client.DynamicProxying.RequestPayloadBuilder::BuildContent to generate a proper StreamContent for streams. I don't actually see a reason why you simply ignore streams all together from being sent over the proxied httpclient.
  2. What if I want to download a large blob without converting it to a dto, but actually getting it raw as you're meant to work with blobs? My current only solution is to replicate what you do for the proxied http client and call the api myself and handle the http response message (and content) as I see fit.
  3. Why is System.IO.AbpStreamExtensions::CopyToAsync changing the stream by setting Position = 0? In the real world we don't work only with MemoryStream and even if we did, that extension which is used EVERYWHERE, because I guess Stream.CopyToAsync was not good enough, would mess things up if you did not want to include the whole stream.
  4. Why the duck do you guys love so much MemoryStreams and not use proper dotnet apis? Why when I request a stream for a blob backed by Volo.Abp.BlobStoring.FileSystem you guys read the whole file in a MemoryStream then return it, much wow here - not setting it's position to 0. Like... why??!? So if I want to store blobs that are huge (up to 1gb) I must also have the ram to load it in the memory when I don't even need that. All I should do is give the FileStream to the MVC controller and it knows all by it's widdle self how to manage it.

Please add support for streams and either undo what you did with that extension "CopyToAsync" or make it a service so we can replace it so it works as it should.

Version 3.0.3 - issue with multi tenant setup on a new project with complex solution name (Abc.CoolProject). Here's the fixes to your templates.

Template: Server.AppService.AppService.txt

        public virtual async Task<%%entity-name%%Dto> CreateAsync(%%entity-name%%CreateDto input)
            ...
			%%<if:IMultiTenantEntity>%%new%%entity-name%%.TenantId = CurrentTenant.Id;%%</if:IMultiTenantEntity>%%
            //                                       ^ there newWaldo is
            ...
        

Solution

        public virtual async Task<%%entity-name%%Dto> CreateAsync(%%entity-name%%CreateDto input)
            ...
			%%<if:IMultiTenantEntity>%%%%entity-name-camelcase%%.TenantId = CurrentTenant.Id;%%</if:IMultiTenantEntity>%%
            //                                              ^ there waldo is
            ...
        

Create an object Waldo. Find Waldo. Wait you can't, dotnet build says. There's no "newWaldo" declared in this scope. Hmm, I wonder where that "new" came from.

Template: Frontend.Mvc.Page.CreateModal.cshtml.txt

@page
@using Microsoft.AspNetCore.Mvc.Localization
@using %%only-project-name%%.Localization
//.        ^ complex solution name you say? we don't care about that. here, take only the project name because that will surely be enough.
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
...

Solution

@page
@using Microsoft.AspNetCore.Mvc.Localization
@using %%solution-namespace%%.Localization
//.        ^ complex solution name you say. cool, here's the whole identifier
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
...

Template: Frontend.Mvc.Page.EditModal.cshtml.txt

@page
@using Microsoft.AspNetCore.Mvc.Localization
@using %%only-project-name%%.Localization
//.        ^ complex solution name you say? we don't care about that. here, take only the project name because that will surely be enough.
@using %%project-name%%.Web.Pages.%%entity-name-plural%%
...

Solution

@page
@using Microsoft.AspNetCore.Mvc.Localization
@using %%solution-namespace%%.Localization
//.        ^ complex solution name you say. cool, here's the whole identifier
@using %%project-name%%.Web.Pages.%%entity-name-plural%%
...

Template: Frontend.Mvc.Page.Index.cshtml.txt

...
@using Microsoft.AspNetCore.Mvc.Localization
@using %%only-project-name%%.Localization
//.        ^ complex solution name you say? we don't care about that. here, take only the project name because that will surely be enough.
@inject IHtmlLocalizer<%%only-project-name%%Resource> L
...

Solution

...
@using Microsoft.AspNetCore.Mvc.Localization
@using %%solution-namespace%%.Localization
//.        ^ complex solution name you say. cool, here's the whole identifier
@inject IHtmlLocalizer<%%only-project-name%%Resource> L
...

How about the fact that my connection string is not used for any new project I create? I always end up with "Server=localhost;Database=<ProjectName>;Trusted_Connection=True;MultipleActiveResultSets=true". How about that? Should I fix that for you as well? Why should I have to change the templates myself when the we already paid a price product that is supposed to be ready for this task. Do you even test your software before you release it?

Do you consider it fair that I am supposed to waste one of my questions that was included in the support package to report bugs? To fix your bugs even? What is this support meant to include? Is it not meant to be a channel through which developers can ask for your advice as to how to implement/integrate your product? How is me being required to spend one of such question to report YOUR bugs accomplishing me integrating your product with whatever software I am meant to develop?

Showing 1 to 2 of 2 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11