Download - Spark View Engine (Richmond)
![Page 2: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/2.jpg)
What is Spark View Engine?
A view engine for ASP.NET MVC and Castle MonoRail that gives you the full capabilities of C# (and other languages) within your views via an HTML-friendly syntax
![Page 3: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/3.jpg)
Why Spark?
![Page 4: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/4.jpg)
Spark turns this...
![Page 5: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/5.jpg)
...into this!
![Page 6: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/6.jpg)
Who is this presentation for?
![Page 7: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/7.jpg)
Who is this presentation for?
Web Developers...
...that use MVC, but want to switch view engines
![Page 8: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/8.jpg)
Who is this presentation for?
Web Developers...
...that use MVC, but want to switch view engines
...that know about Spark, but have been apprehensive about using it
![Page 9: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/9.jpg)
Who is this presentation for?
Web Developers...
...that use MVC, but want to switch view engines
...that know about Spark, but have been apprehensive about using it...that use other view engines like nHaml or nVelocity, but want to learn more about Spark
![Page 10: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/10.jpg)
Who is this presentation for?
Web Developers...
...that use MVC, but want to switch view engines
...that know about Spark, but have been apprehensive about using it...that use other view engines like nHaml or nVelocity, but want to learn more about Spark...that just haven't had the time to sit down and learn Spark
![Page 11: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/11.jpg)
...until now!
![Page 12: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/12.jpg)
Agenda
1. History of Spark2. Getting Started3. Concepts and Syntax4. More Concepts5. Gotchas 6. References7. Wrap-up
![Page 13: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/13.jpg)
Introducing Spark - History
http://haacked.com/archive/2008/05/03/code-based-repeater-for-asp.net-mvc.aspx#67579
![Page 14: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/14.jpg)
Getting Started With Spark
![Page 15: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/15.jpg)
Getting Started
Create/Open an MVC project Reference Spark.dll and Spark.Mvc.dllConfigure the view engineStart using it!
![Page 16: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/16.jpg)
Concepts and Syntax
![Page 17: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/17.jpg)
Concepts and Syntax
LayoutsLayouts\Application.SparkShared\Application.SparkView() method<use master="layout" />
* The above methods are in order from weakest to the strongest. In other words, <use master="layout" /> takes precedence over having an Application.Spark file in the Layouts
folder.
![Page 18: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/18.jpg)
Concepts and Syntax
Named Content <use content="" /> (in layout)<content name=""></content>, <content:name></content:name> (in view)
![Page 19: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/19.jpg)
Concepts and Syntax
Partials<use file="" /><Partial someVar="" />
![Page 20: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/20.jpg)
Concepts and Syntax
Variables<var [var name]="[value]" type="[type]" /> or def<global [var name]="[value]" type="[type]" /><set [var name]="[value]" />
ViewData <viewdata key="type" />
![Page 21: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/21.jpg)
Concepts and Syntax
_global.SparkSpecial partial that gets auto-included in a Spark file if it is in the layout folder or the root folder of the viewGreat place to put <using> statements, global variables, or other elements that do not immediately write to the output buffer
![Page 22: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/22.jpg)
Concepts and Syntax
Control-of-flow statements<test> statement, <if><else><for>Attributes on html elements
![Page 23: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/23.jpg)
More Concepts
![Page 24: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/24.jpg)
More Concepts
Inline C#Use # to delimit any plain ol' C# code
![Page 25: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/25.jpg)
More Concepts
Macros Methods that can return strings for output
. . .
![Page 26: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/26.jpg)
(Not on the agenda)
These items are beyond this introductory presentation, but Spark supports them:
Caching of views (partial caching included)Pre-compilation of view classes (testing, performance)Descriptor Filters for differentiating views based on things like area, theme, or culture
![Page 27: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/27.jpg)
Gotchas
1. Intellisense not working for some types like Html (helpers)The background compiler for Spark isn't finding the assembliesCopy the assemblies local to resolve
2. R#'s intellisense doesn't work with Spark. If using R# and Spark, change R#'s intellisense setting to use Visual Studio'sDon't use the <namespaces> section in the web.config file. Use the <using> syntax in the _global.Spark file instead.
![Page 28: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/28.jpg)
References and Links
1. http://www.sparkviewengine.com2. http://www.whereslou.com3. http://www.github.com/loudej/spark4. http://www.dimecasts.net
![Page 29: Spark View Engine (Richmond)](https://reader035.vdocuments.us/reader035/viewer/2022062511/54bc6b8d4a7959bb1c8b466c/html5/thumbnails/29.jpg)
Holla@me
Thank you for your time and attention!
Curtis Mitchellt: @curtis_mitchelle: [email protected]: http://www.curtismitchell.com http://speakerrate.com/talks/1524