Stream dynamically create file content via .NET MVC controller
I'm looking for some high-level guidance on how to architect a multi-tiered solution that will generate and stream large text file content to an Angular 6 web application via .NET MVC controllers. The system consists of a Web API service layer, a .NET MVC web application, and the Angular front end.
Because the files will take some time to generate I want to do this asynchronously through the entire stack - that is, to write each line and pass it through the stack to the browser client as it becomes available, rather than wait for the entire file to be produced on the server before sending it to the controller.
The service layer will generate the file and output it via a controller method. This controller method is called by a controller method in the web application, which is in turn called by an Angular service. Ultimately, I want the file to land on a user's desktop.
The file content will be generated in a manner similar to the following (this is a synchronous version). numberOfRows could be in the millions, which is why the files could take some time to generate.
public string GenerateFile(int numberOfRows)
StringBuilder output = new StringBuilder();
for (int i = 0; i <= numberOfRows; i++)
output.Append("Row " + i.ToString() + "rn");
return output.ToString();
Thanks in advance for the help!
c# asp.net-mvc angular
add a comment |
I'm looking for some high-level guidance on how to architect a multi-tiered solution that will generate and stream large text file content to an Angular 6 web application via .NET MVC controllers. The system consists of a Web API service layer, a .NET MVC web application, and the Angular front end.
Because the files will take some time to generate I want to do this asynchronously through the entire stack - that is, to write each line and pass it through the stack to the browser client as it becomes available, rather than wait for the entire file to be produced on the server before sending it to the controller.
The service layer will generate the file and output it via a controller method. This controller method is called by a controller method in the web application, which is in turn called by an Angular service. Ultimately, I want the file to land on a user's desktop.
The file content will be generated in a manner similar to the following (this is a synchronous version). numberOfRows could be in the millions, which is why the files could take some time to generate.
public string GenerateFile(int numberOfRows)
StringBuilder output = new StringBuilder();
for (int i = 0; i <= numberOfRows; i++)
output.Append("Row " + i.ToString() + "rn");
return output.ToString();
Thanks in advance for the help!
c# asp.net-mvc angular
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13
add a comment |
I'm looking for some high-level guidance on how to architect a multi-tiered solution that will generate and stream large text file content to an Angular 6 web application via .NET MVC controllers. The system consists of a Web API service layer, a .NET MVC web application, and the Angular front end.
Because the files will take some time to generate I want to do this asynchronously through the entire stack - that is, to write each line and pass it through the stack to the browser client as it becomes available, rather than wait for the entire file to be produced on the server before sending it to the controller.
The service layer will generate the file and output it via a controller method. This controller method is called by a controller method in the web application, which is in turn called by an Angular service. Ultimately, I want the file to land on a user's desktop.
The file content will be generated in a manner similar to the following (this is a synchronous version). numberOfRows could be in the millions, which is why the files could take some time to generate.
public string GenerateFile(int numberOfRows)
StringBuilder output = new StringBuilder();
for (int i = 0; i <= numberOfRows; i++)
output.Append("Row " + i.ToString() + "rn");
return output.ToString();
Thanks in advance for the help!
c# asp.net-mvc angular
I'm looking for some high-level guidance on how to architect a multi-tiered solution that will generate and stream large text file content to an Angular 6 web application via .NET MVC controllers. The system consists of a Web API service layer, a .NET MVC web application, and the Angular front end.
Because the files will take some time to generate I want to do this asynchronously through the entire stack - that is, to write each line and pass it through the stack to the browser client as it becomes available, rather than wait for the entire file to be produced on the server before sending it to the controller.
The service layer will generate the file and output it via a controller method. This controller method is called by a controller method in the web application, which is in turn called by an Angular service. Ultimately, I want the file to land on a user's desktop.
The file content will be generated in a manner similar to the following (this is a synchronous version). numberOfRows could be in the millions, which is why the files could take some time to generate.
public string GenerateFile(int numberOfRows)
StringBuilder output = new StringBuilder();
for (int i = 0; i <= numberOfRows; i++)
output.Append("Row " + i.ToString() + "rn");
return output.ToString();
Thanks in advance for the help!
c# asp.net-mvc angular
c# asp.net-mvc angular
asked Nov 14 '18 at 3:24
christokchristok
4001318
4001318
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13
add a comment |
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292741%2fstream-dynamically-create-file-content-via-net-mvc-controller%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292741%2fstream-dynamically-create-file-content-via-net-mvc-controller%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I suggest you use TextWriter Class instead Stringbuilder, performance is better a lot.
– LuisEduardox
Nov 14 '18 at 3:45
Good point. Thanks! Any ideas on the broader question?
– christok
Nov 14 '18 at 16:13