You could host Razor but I'm not sure how it will handle a template so large. http://www.west-wind.com/weblog/posts/864461.aspx
Or possibly you could use NVelocity http://csharp-source.net/open-source/template-engines/nvelocity Or StringTemplate http://www.stringtemplate.org/ Or Spark http://sparkviewengine.com/ If you're just replacing string tokens with precomputed string values though, I'd probably just do it one line at a time. Id guess that most of these template engines are designed to load the template into memory and turn it into a method that spits out the text given some kind of context (the way T4 does it [Preprocessed T4 template is another way to go if you don't mind being all in memory]). <http://www.west-wind.com/weblog/posts/864461.aspx>-- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com On Mon, Feb 7, 2011 at 10:42 AM, Bec Carter <[email protected]> wrote: > On Mon, Feb 7, 2011 at 1:33 PM, Michael Minutillo > <[email protected]> wrote: > > Well, if the template size isn't going change and this is the only app > > running on the machine then so be it. Chances are good that neither of > those > > things is true. I'd still err on the side of having a single line memory > at > > a time because it's not like the optimization is making it any harder to > > read or understand. > > > > Yup template file will mostly likely not change and app will always > run locally as an exe. This sort of optimisation you suggested seems > good enough to use as it is fairly simple. > > ...But I was kinda questioning the design of doing things this way at > all. It seems like what I want is a dynamic "page" (like a webform) > that can run and spit out text just like an asp page does.....so the > placeholders would really be <%= %> tags. Is something like this an > option? Can I somehow run an asp.net page locally? Will this cause > performance problems for 750megs of data which is around 70 pages? Am > I going completely crazy? :-) > > > > Michael M. Minutillo > > Indiscriminate Information Sponge > > Blog: http://wolfbyte-net.blogspot.com > > > > > > On Mon, Feb 7, 2011 at 10:30 AM, mike smith <[email protected]> wrote: > >> > >> On Mon, Feb 7, 2011 at 12:49 PM, Michael Minutillo > >> <[email protected]> wrote: > >>> > >>> If you're in .NET 4.0 land then I'd do something similar to this: > >>> public string ReplaceTokens(string src) { /* ... */ } > >>> File.WriteAllLines(outputFileName, > >>> File.ReadLines(inputFileName).Select(ReplaceTokens)); > >>> The ReadLines call (new to .NET 4.0) reads one line at a time and > returns > >>> it as you iterate over it so in theory you don't need to have the whole > file > >>> in memory. Don't use the ReadAllLines method on a 750MB file which DOES > read > >>> the whole thing in before you start. > >>> > >> > >> > >> Is that a real problem given physical RAM these days? If you're going > to > >> write multiple outputs from the one template file of 750 it's going to > >> rapidly get more efficient to have the template in-ram. Wait a moment. > >> You don't work for Readers Digest, do you? I have no desire whatever > to > >> make them more efficient. > >> -- > >> Meski > >> > >> "Going to Starbucks for coffee is like going to prison for sex. Sure, > >> you'll get it, but it's going to be rough" - Adam Hills > > > > >
