<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>ProgramGood.Net - VidPub</title>
    <link>http://www.programgood.net/</link>
    <description>The journey to becoming a great programmer</description>
    <language>en-us</language>
    <copyright>Dave Mateer</copyright>
    <lastBuildDate>Thu, 06 Oct 2011 20:23:30 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>davemateer@gmail.com</managingEditor>
    <webMaster>davemateer@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=6d27e79d-a1ec-4c88-a34d-caae67bb7da0</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,6d27e79d-a1ec-4c88-a34d-caae67bb7da0.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Whilst getting my head around Rob Conery’s Massive ORM, I needed to figure out what
the dynamic keyword is in C#4:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:876dfc22-66ad-4ad9-9070-5bd2fa201597" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Program</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Main(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
args) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> calc </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> sum </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> calc</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(sum);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadLine();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> Add(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> a, </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> b)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> a</span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">b;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
creation of an object, invokation of a method, and the collection of a return value
</p>
        <h3>Var 
</h3>
        <p>
Can represent any type that can be determined at compile time.
</p>
        <h3>
          <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1fc75592-f3c1-442a-a0da-2d697e0d169b" class="wlWriterEditableSmartContent">
            <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
              <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
                <span style="color:#93c763">class</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Program</span>
                <span style="color:#f1f2f3"> {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">static</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">void</span>
                <span style="color:#f1f2f3"> Main(</span>
                <span style="color:#93c763">string</span>
                <span style="color:#f1f2f3">[]
args) {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//int</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> i </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ffcd22">5</span>
                <span style="color:#f1f2f3">;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//string</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> x </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ec7600">"hello"</span>
                <span style="color:#f1f2f3">;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//int[]</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> y </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">[]
{ </span>
                <span style="color:#ffcd22">0</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">1</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">2</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">3</span>
                <span style="color:#f1f2f3"> };</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//anonymous type</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> anon </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3"> {
Name </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ec7600">"Dave"</span>
                <span style="color:#f1f2f3">,
Age </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#ffcd22">34</span>
                <span style="color:#f1f2f3"> };</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//List&lt;int&gt;</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> list </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">List</span>
                <span style="color:#e8e2b7">&lt;</span>
                <span style="color:#93c763">int</span>
                <span style="color:#e8e2b7">&gt;</span>
                <span style="color:#f1f2f3">();</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#66747b">//Calculator</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">var</span>
                <span style="color:#f1f2f3"> calc </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">new</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Calculator</span>
                <span style="color:#f1f2f3">();</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> sum </span>
                <span style="color:#e8e2b7">=</span>
                <span style="color:#f1f2f3"> calc</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">Add(</span>
                <span style="color:#ffcd22">1</span>
                <span style="color:#f1f2f3">, </span>
                <span style="color:#ffcd22">2</span>
                <span style="color:#f1f2f3">);</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Console</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">WriteLine(sum);</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Console</span>
                <span style="color:#e8e2b7">.</span>
                <span style="color:#f1f2f3">ReadLine();</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">public</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">class</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#678cb1">Calculator</span>
                <span style="color:#f1f2f3"> {</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">public</span>
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> Add(</span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> a, </span>
                <span style="color:#93c763">int</span>
                <span style="color:#f1f2f3"> b)
{</span>
                <br />
                <span style="color:#f1f2f3">
                </span>
                <span style="color:#93c763">return</span>
                <span style="color:#f1f2f3"> a</span>
                <span style="color:#e8e2b7">+</span>
                <span style="color:#f1f2f3">b;</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
                <br />
                <span style="color:#f1f2f3"> }</span>
              </div>
            </div>
          </div>
        </h3>
        <p>
 
</p>
        <h3>Dynamic
</h3>
        <p>
at runtime you get the type
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0f43c13-825a-4dfa-85fe-364552e3ce63" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Program</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Main(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
args) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//int</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> i </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ffcd22">5</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//string</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> x </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"hello"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//int[]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> y </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">[]
{ </span>
              <span style="color:#ffcd22">0</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">3</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">4</span>
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//anonymous type</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> anon </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> {Name</span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#ec7600">"Dave"</span>
              <span style="color:#f1f2f3">,
Age</span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#ffcd22">34}</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(i </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3"> x);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> calc </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//don't get intellisense
when press .</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> sum </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> calc</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(sum);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadLine();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Calculator</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> Add(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> a, </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> b)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> a</span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">b;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <h3>ExpandoObject and TryInvokeMember
</h3>
        <p>
An object whose members can be dynamically added and removed at runtime.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb.png" width="476" height="430" />
          </a>
        </p>
        <p>
can’t do anything with the expandoObject though!
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb_1.png" width="436" height="115" />
          </a>
        </p>
        <p>
Much better.  Saying to the compiler – “Playing with a different set of rules”.
</p>
        <h3>Why doesn’t Product need to by Dynamic?
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5766f7c2-2cd9-4ca1-91e6-c0de284ba7b9" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> tbl </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"Northwind"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"Products"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"ProductID"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//tbl.Single returns
a dynamic of type ExpandoOnject, not an ExpandoObject.</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//acutally an IEnumrable&lt;dynamic&gt;.FirstOfDefault()</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> product </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> tbl</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Single();</span>
            </div>
          </div>
        </div>
        <p>
We don’t need product to be dynamic here as tbl.Single returns a dynamic of type Expando.
</p>
        <p>
tbl has to be dynamic otherwise the TryInvokeMember wont work, as there is no method
called Single.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=6d27e79d-a1ec-4c88-a34d-caae67bb7da0" />
      </body>
      <title>Dynamics and ExpandoObject</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,6d27e79d-a1ec-4c88-a34d-caae67bb7da0.aspx</guid>
      <link>http://www.programgood.net/2011/10/06/DynamicsAndExpandoObject.aspx</link>
      <pubDate>Thu, 06 Oct 2011 20:23:30 GMT</pubDate>
      <description>&lt;p&gt;
Whilst getting my head around Rob Conery’s Massive ORM, I needed to figure out what
the dynamic keyword is in C#4:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:876dfc22-66ad-4ad9-9070-5bd2fa201597" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
creation of an object, invokation of a method, and the collection of a return value
&lt;/p&gt;
&lt;h3&gt;Var 
&lt;/h3&gt;
&lt;p&gt;
Can represent any type that can be determined at compile time.
&lt;/p&gt;
&lt;h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1fc75592-f3c1-442a-a0da-2d697e0d169b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;5&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int[]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; y &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;3&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//anonymous type&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; anon &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {
Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Dave&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
Age &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;34&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//List&amp;lt;int&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; list &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;List&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//Calculator&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;Dynamic
&lt;/h3&gt;
&lt;p&gt;
at runtime you get the type
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0f43c13-825a-4dfa-85fe-364552e3ce63" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;5&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//int[]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; y &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;3&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;4&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//anonymous type&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; anon &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {Name&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Dave&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
Age&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;34}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(i &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; x);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//don&amp;#39;t get intellisense
when press .&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sum &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; calc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(sum);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadLine();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Calculator&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Add(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a, &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; b)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;b;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;ExpandoObject and TryInvokeMember
&lt;/h3&gt;
&lt;p&gt;
An object whose members can be dynamically added and removed at runtime.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb.png" width="476" height="430" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
can’t do anything with the expandoObject though!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/Dynamics_CE4E/image_thumb_1.png" width="436" height="115" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Much better.&amp;#160; Saying to the compiler – “Playing with a different set of rules”.
&lt;/p&gt;
&lt;h3&gt;Why doesn’t Product need to by Dynamic?
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5766f7c2-2cd9-4ca1-91e6-c0de284ba7b9" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tbl &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Northwind&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Products&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ProductID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//tbl.Single returns
a dynamic of type ExpandoOnject, not an ExpandoObject.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//acutally an IEnumrable&amp;lt;dynamic&amp;gt;.FirstOfDefault()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; product &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tbl&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Single();&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
We don’t need product to be dynamic here as tbl.Single returns a dynamic of type Expando.
&lt;/p&gt;
&lt;p&gt;
tbl has to be dynamic otherwise the TryInvokeMember wont work, as there is no method
called Single.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=6d27e79d-a1ec-4c88-a34d-caae67bb7da0" /&gt;</description>
      <category>Dynamic</category>
      <category>ExpandoObject</category>
      <category>PubTricks</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=cfd8ccd7-9e14-43c4-9045-7c784557908b</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,cfd8ccd7-9e14-43c4-9045-7c784557908b.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <ul>
          <li>
Use data to make decisions 
</li>
          <li>
Demonstrate validity and value of business idea 
</li>
        </ul>
        <p>
more important than tests/design pattern used??!!!
</p>
        <p>
Annual sales
</p>
        <p>
Categories
</p>
        <p>
Tracking sales as well as costs
</p>
        <p>
Good solid reporting makes a business.
</p>
        <p>
Maintaining reporting is hard…. it will get dropped… and others will just login to
database and run their own.
</p>
        <ul>
          <li>
DevExpress, Dundas, Infragistics, Reporting Services etc… 
</li>
          <li>
Analysis Services, Cognos.. BI Tools.. Suites 
</li>
          <li>
Excel 
</li>
        </ul>
        <h3>Excel
</h3>
        <p>
how to get the data in.
</p>
        <p>
CSV in.
</p>
        <p>
Pump some test data into system.  Skew sales 2:1 for Microsoft videos.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb.png" width="244" height="239" />
          </a>
        </p>
        <p>
Console app in Tasks to pump in test data.
</p>
        <p>
1000 users, sales etc..
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_4.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_1.png" width="244" height="172" />
          </a>
        </p>
        <p>
writing reports.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_2.png" width="362" height="484" />
          </a>
        </p>
        <p>
 
</p>
        <p>
no foreign key in 
</p>
        <p>
Historical va Transactional Data
</p>
        <p>
OrderItems….called Fact.
</p>
        <blockquote>
          <p>
sum, average or count
</p>
        </blockquote>
        <p>
ETL into DataWarehouse.
</p>
        <p>
Star Schema around fact table
</p>
        <p>
 
</p>
        <p>
OLAP – Online Analytical Processor
</p>
        <p>
Can run predictive algorithm
</p>
        <p>
 
</p>
        <p>
OrderItems table..taking ProductID out of OrderItems (historical data)
</p>
        <blockquote>
          <p>
have tags in there.. but flat.. yuk.. could be subscritpion and yearly
</p>
          <p>
lets have orderType nvarchar(50) – susbscirption or single
</p>
        </blockquote>
        <p>
can take a while
</p>
        <h3>Costs
</h3>
        <p>
cost of selling individual items, and delivery.  
</p>
        <p>
eg how big a file is, and how much Amazon charges. 12cents per Gig.
</p>
        <p>
add to episodes table filesize.
</p>
        <blockquote>
          <p>
high dev mp4
</p>
          <p>
mobile
</p>
          <p>
tablet
</p>
          <p>
streaming (FLV.. not h264 html5)
</p>
        </blockquote>
        <p>
so have good test data with monthly, yearly and single subsciption… data transfer
rates.
</p>
        <p>
 
</p>
        <p>
Run a tranform on date – quarter and year is fine.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_3.png" width="633" height="484" />
          </a>
        </p>
        <p>
group by vendor.
</p>
        <p>
put into a StoredProcedure
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_4.png" width="644" height="426" />
          </a>
        </p>
        <p>
hmm lets make the price per gig rate historical..and put in somewhere.
</p>
        <h3>Report Viewing
</h3>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_5.png" width="644" height="404" />
          </a>
        </p>
        <p>
Use an Area can view html
</p>
        <p>
Or export to csv
</p>
        <p>
Infrastrucutre/CSVResult
</p>
        <p>
can send back a file result in MVC3.. cool.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_6.png" width="537" height="484" />
          </a>
        </p>
        <p>
excel is really good at working with data..
</p>
        <p>
Hmmm better way is live data
</p>
        <h3>Excel Web Query
</h3>
        <p>
Data, From Web
</p>
        <p>
reporting/annual/sales
</p>
        <p>
grouping, subtotal
</p>
        <p>
whats selling the most?
</p>
        <p>
what giving the most value?
</p>
        <p>
what is net income for each sale? price-bandwidth
</p>
        <p>
profit margin
</p>
        <p>
 
</p>
        <p>
Pivot table
</p>
        <p>
Roll ups by Author
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_16.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_7.png" width="644" height="283" />
          </a>
        </p>
        <p>
Add Pivot chart so can see which authors are most profitable.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_18.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_8.png" width="644" height="335" />
          </a>
        </p>
        <p>
so annual subscription is doing better…
</p>
        <p>
Channel eg Linux, MS, RoR
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_20.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_9.png" width="644" height="301" />
          </a>
        </p>
        <p>
which channel is giving most profit.. so can plan what to do next.
</p>
        <h3>Review
</h3>
        <p>
Excel with Web Query
</p>
        <p>
now – yes is good
</p>
        <p>
1 year – yes 
</p>
        <p>
3 years – probably not.  SQL Analysis services..
</p>
        <p>
 
</p>
        <p>
Getting the correct data in the reporting db is most important bit.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=cfd8ccd7-9e14-43c4-9045-7c784557908b" />
      </body>
      <title>VidPub8–Reporting</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,cfd8ccd7-9e14-43c4-9045-7c784557908b.aspx</guid>
      <link>http://www.programgood.net/2011/10/02/VidPub8Reporting.aspx</link>
      <pubDate>Sun, 02 Oct 2011 21:54:00 GMT</pubDate>
      <description>&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Use data to make decisions 
&lt;/li&gt;
&lt;li&gt;
Demonstrate validity and value of business idea 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
more important than tests/design pattern used??!!!
&lt;/p&gt;
&lt;p&gt;
Annual sales
&lt;/p&gt;
&lt;p&gt;
Categories
&lt;/p&gt;
&lt;p&gt;
Tracking sales as well as costs
&lt;/p&gt;
&lt;p&gt;
Good solid reporting makes a business.
&lt;/p&gt;
&lt;p&gt;
Maintaining reporting is hard…. it will get dropped… and others will just login to
database and run their own.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
DevExpress, Dundas, Infragistics, Reporting Services etc… 
&lt;/li&gt;
&lt;li&gt;
Analysis Services, Cognos.. BI Tools.. Suites 
&lt;/li&gt;
&lt;li&gt;
Excel 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Excel
&lt;/h3&gt;
&lt;p&gt;
how to get the data in.
&lt;/p&gt;
&lt;p&gt;
CSV in.
&lt;/p&gt;
&lt;p&gt;
Pump some test data into system.&amp;#160; Skew sales 2:1 for Microsoft videos.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb.png" width="244" height="239" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Console app in Tasks to pump in test data.
&lt;/p&gt;
&lt;p&gt;
1000 users, sales etc..
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_1.png" width="244" height="172" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
writing reports.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_2.png" width="362" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
no foreign key in 
&lt;/p&gt;
&lt;p&gt;
Historical va Transactional Data
&lt;/p&gt;
&lt;p&gt;
OrderItems….called Fact.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
sum, average or count
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
ETL into DataWarehouse.
&lt;/p&gt;
&lt;p&gt;
Star Schema around fact table
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
OLAP – Online Analytical Processor
&lt;/p&gt;
&lt;p&gt;
Can run predictive algorithm
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
OrderItems table..taking ProductID out of OrderItems (historical data)
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
have tags in there.. but flat.. yuk.. could be subscritpion and yearly
&lt;/p&gt;
&lt;p&gt;
lets have orderType nvarchar(50) – susbscirption or single
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
can take a while
&lt;/p&gt;
&lt;h3&gt;Costs
&lt;/h3&gt;
&lt;p&gt;
cost of selling individual items, and delivery.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
eg how big a file is, and how much Amazon charges. 12cents per Gig.
&lt;/p&gt;
&lt;p&gt;
add to episodes table filesize.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
high dev mp4
&lt;/p&gt;
&lt;p&gt;
mobile
&lt;/p&gt;
&lt;p&gt;
tablet
&lt;/p&gt;
&lt;p&gt;
streaming (FLV.. not h264 html5)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
so have good test data with monthly, yearly and single subsciption… data transfer
rates.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Run a tranform on date – quarter and year is fine.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_3.png" width="633" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
group by vendor.
&lt;/p&gt;
&lt;p&gt;
put into a StoredProcedure
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_4.png" width="644" height="426" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
hmm lets make the price per gig rate historical..and put in somewhere.
&lt;/p&gt;
&lt;h3&gt;Report Viewing
&lt;/h3&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_5.png" width="644" height="404" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Use an Area can view html
&lt;/p&gt;
&lt;p&gt;
Or export to csv
&lt;/p&gt;
&lt;p&gt;
Infrastrucutre/CSVResult
&lt;/p&gt;
&lt;p&gt;
can send back a file result in MVC3.. cool.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_6.png" width="537" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
excel is really good at working with data..
&lt;/p&gt;
&lt;p&gt;
Hmmm better way is live data
&lt;/p&gt;
&lt;h3&gt;Excel Web Query
&lt;/h3&gt;
&lt;p&gt;
Data, From Web
&lt;/p&gt;
&lt;p&gt;
reporting/annual/sales
&lt;/p&gt;
&lt;p&gt;
grouping, subtotal
&lt;/p&gt;
&lt;p&gt;
whats selling the most?
&lt;/p&gt;
&lt;p&gt;
what giving the most value?
&lt;/p&gt;
&lt;p&gt;
what is net income for each sale? price-bandwidth
&lt;/p&gt;
&lt;p&gt;
profit margin
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Pivot table
&lt;/p&gt;
&lt;p&gt;
Roll ups by Author
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_7.png" width="644" height="283" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Add Pivot chart so can see which authors are most profitable.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_8.png" width="644" height="335" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
so annual subscription is doing better…
&lt;/p&gt;
&lt;p&gt;
Channel eg Linux, MS, RoR
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub8Reporting_DD61/image_thumb_9.png" width="644" height="301" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
which channel is giving most profit.. so can plan what to do next.
&lt;/p&gt;
&lt;h3&gt;Review
&lt;/h3&gt;
&lt;p&gt;
Excel with Web Query
&lt;/p&gt;
&lt;p&gt;
now – yes is good
&lt;/p&gt;
&lt;p&gt;
1 year – yes 
&lt;/p&gt;
&lt;p&gt;
3 years – probably not.&amp;#160; SQL Analysis services..
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Getting the correct data in the reporting db is most important bit.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=cfd8ccd7-9e14-43c4-9045-7c784557908b" /&gt;</description>
      <category>Excel</category>
      <category>Reporting</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=a66260ff-1c8b-423d-b965-82edd3d749be</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,a66260ff-1c8b-423d-b965-82edd3d749be.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <ul>
          <li>
Sell stuff</li>
          <li>
Manage customers (CRM)</li>
          <li>
Email notifications</li>
          <li>
Reporting</li>
        </ul>
        <h3>Shopify
</h3>
        <p>
hosted storefront.
</p>
        <p>
30 days free.
</p>
        <p>
theme for store
</p>
        <p>
Order mgt, customer mgt
</p>
        <p>
app – Chimpified… adds into mailchimp.
</p>
        <p>
- create new app
</p>
        <p>
- templates use liquid language.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb.png" width="644" height="450" />
          </a>
        </p>
        <p>
this is a product page and is hosted at shopify
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_4.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_1.png" width="644" height="386" />
          </a>
        </p>
        <p>
so is this cart page.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_6.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_2.png" width="644" height="392" />
          </a>
        </p>
        <h3>Writing Integration Code
</h3>
        <p>
give our app the ability to receive pings that shopify will send back eg json
</p>
        <p>
default IIS locally.. port 80 to test.  hmm can’t debug.  use logger.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_8.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_3.png" width="244" height="193" />
          </a>
        </p>
        <p>
setting up shopify to call back ie have asked shopify to send json post whenever a
new order is received.
</p>
        <p>
then can then send test notification from shopify back to local server.
</p>
        <p>
Don’t have orders table.. but use the json sent back by shopify as a guide.
</p>
        <p>
Order Items the same
</p>
        <p>
 
</p>
        <h3>Testing
</h3>
        <p>
Just doing a live test against the port.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d5c6e805-e289-4702-99e3-03d2168db0fe" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <br />
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Tests</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Functionals
{</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">TestFixture</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ShopifyTests</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Orders</span>
              <span style="color:#f1f2f3"> _orders;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">OrderItems</span>
              <span style="color:#f1f2f3"> _items;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> ShopifyTests()
{</span>
              <br />
              <span style="color:#f1f2f3"> _orders </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Orders</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> _items </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">OrderItems</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> GetJson()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> jsonFile </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#efc210">@"C:\dev\VidPub\Source\VidPub.Web\App_Data\ShopifyPing.js"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">using</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> stream </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">StreamReader</span>
              <span style="color:#f1f2f3">(jsonFile))
{</span>
              <br />
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> stream</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadToEnd();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> result;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Ping(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> url, </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> data)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">HttpWebRequest</span>
              <span style="color:#f1f2f3"> request </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">HttpWebRequest</span>
              <span style="color:#f1f2f3">)</span>
              <span style="color:#678cb1">WebRequest</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Create(url);</span>
              <br />
              <span style="color:#f1f2f3"> request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Method </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"POST"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ContentType </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"application/json"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//add the form data</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">byte</span>
              <span style="color:#f1f2f3">[]
byteArray </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Encoding</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">UTF8</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">GetBytes(data);</span>
              <br />
              <span style="color:#f1f2f3"> request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ContentLength </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> byteArray</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Length;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">using</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> stream </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">GetRequestStream())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// Write the data
to the request stream.</span>
              <br />
              <span style="color:#f1f2f3"> stream</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Write(byteArray, </span>
              <span style="color:#ffcd22">0</span>
              <span style="color:#f1f2f3">,
byteArray</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Length);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> response </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">HttpWebResponse</span>
              <span style="color:#f1f2f3">)request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">GetResponse();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">using</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">Stream</span>
              <span style="color:#f1f2f3"> stream </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> response</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">GetResponseStream())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">StreamReader</span>
              <span style="color:#f1f2f3"> sr </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">StreamReader</span>
              <span style="color:#f1f2f3">(stream);</span>
              <br />
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> sr</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadToEnd();</span>
              <br />
              <span style="color:#f1f2f3"> sr</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Close();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">SetUp</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Init()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> _items</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Delete();</span>
              <br />
              <span style="color:#f1f2f3"> _orders</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Delete();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> receiver_should_save_one_order()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> url </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"http://localhost:50363/shopify/receiver"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> Ping(url, GetJson());</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Assert</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AreEqual(</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">,
_orders</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All()</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Count());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> receiver_should_save_two_order_items()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> url </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"http://localhost:50363/shopify/receiver"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> Ping(url, GetJson());</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Assert</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AreEqual(</span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">,
_items</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All()</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Count());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
asdf
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:52b882ac-4c00-4465-ad12-d4dff6d75578" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//need
to have an action for Shopify pings</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Receiver()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//this is a ping from
Shopify, record the order</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//var order = this.SqueezeJSON();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//returns a string</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> json </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ReadJson();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> order </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> System</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Helpers</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#678cb1">Json</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Decode(json);</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> Logger</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">LogInfo(order</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">order_number</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToString());</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//this is ugly</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//an anonymous object</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> newOrder </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> OrderNumber </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> order</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">order_number,</span>
              <br />
              <span style="color:#f1f2f3"> ShopifyID </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> order</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">id,</span>
              <br />
              <span style="color:#f1f2f3"> ShopifyName </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> order</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">name</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//lots more items
to left right.</span>
              <br />
              <span style="color:#f1f2f3"> };</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> savedOrder </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _orders</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(newOrder);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//line items</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//need to put in the
correct newOrder.ID</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> order</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">line_items)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> newItem </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> OrderID </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> savedOrder</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ID,</span>
              <br />
              <span style="color:#f1f2f3"> Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Name</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//etc..</span>
              <br />
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3"> _items</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(newItem);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> Content(</span>
              <span style="color:#ec7600">"OK"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
Shopify does it all for us, and sends back the data.
</p>
        <h3>Membership and Billing
</h3>
        <p>
subscriptions?
</p>
        <p>
Just run a credit charge once a month and quit whining!
</p>
        <ul>
          <li>
retain users credit cards..ahhh!</li>
          <li>
the thing that runs charges.. tracks</li>
          <li>
a scheduler</li>
          <li>
dunning capability.. what happens when payments fail</li>
          <li>
upgrades and downgrades</li>
        </ul>
        <p>
hard to do right.
</p>
        <p>
Chargify – expensive
</p>
        <h3>Recurly – Recurring Billing
</h3>
        <ul>
          <li>
Simple monthly ($30pm)</li>
          <li>
Platinum which allows for downloads ($50pm)</li>
        </ul>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_10.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_4.png" width="244" height="213" />
          </a>
        </p>
        <p>
1 time setup fee, trial periods
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_12.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_5.png" width="244" height="224" />
          </a>
        </p>
        <p>
full blown checkout page. can dns with cname so people think are still on tekpub.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_14.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_6.png" width="244" height="191" />
          </a>
        </p>
        <p>
can also handle one-off charges
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_16.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_7.png" width="244" height="230" />
          </a>
        </p>
        <p>
user has access to their own invoices.
</p>
        <h3>MadMimi – Emailling
</h3>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_18.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_8.png" width="244" height="184" />
          </a>
        </p>
        <p>
can edit the emails straight in madmimi
</p>
        <p>
Rob has written a MadMimi wrapper which is on <a href="https://github.com/robconery/MadMimiMailer">https://github.com/robconery/MadMimiMailer</a></p>
        <p>
Nice and async.
</p>
        <p>
Welcome
</p>
        <p>
Invoice
</p>
        <blockquote>
          <p>
easily send in invoice# etc..
</p>
        </blockquote>
        <h3>OpenID
</h3>
        <p>
number 1 support calls.
</p>
        <h3>HighRise – CRM (37 signals)
</h3>
        <p>
whenever he sends an email out via madmimi, it is bcc’d to highrise
</p>
        <p>
Can see all emails inside highrise
</p>
        <h3>MailChimp – Build Emailling
</h3>
        <p>
True high powered email campaigns this is better.
</p>
        <p>
Mailchimp to import from highrise
</p>
        <p>
Can do big push promotional push.
</p>
        <p>
 
</p>
        <h3>HighRise API
</h3>
        <p>
Rob wrote a wrapper.  
</p>
        <p>
Using XML for transport.
</p>
        <p>
 
</p>
        <p>
Hmm but would be nice to observe, or hook in, so that when a users details change
it automagically updates CRM.  
</p>
        <p>
So can use Massive hooks, inserted updated and deleted.  Overrides
</p>
        <p>
HighRise – custom fields.
</p>
        <h3>Review SaaS
</h3>
        <p>
help us now – yes
</p>
        <ul>
          <li>
ecommerce (Shopify)</li>
          <li>
subscription billing (Recurly)</li>
          <li>
mailers (MadMimi and MailChimp)</li>
          <li>
templated mailing</li>
          <li>
mass mailing</li>
          <li>
CRM (HighRise)</li>
        </ul>
        <p>
1 year – absoltely..
</p>
        <p>
CRM – sales guy has a CRM tool
</p>
        <p>
Can enter productions, enter discount codes, do mailouts that look great
</p>
        <h3>Data
</h3>
        <p>
Do I need to keep orders in own db… or trust shopify?  replication of data is
bad.
</p>
        <p>
Great to have these services, so he can focus on the core of the business which is
creating videos.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=a66260ff-1c8b-423d-b965-82edd3d749be" />
      </body>
      <title>VidPub7 - Service Integration</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,a66260ff-1c8b-423d-b965-82edd3d749be.aspx</guid>
      <link>http://www.programgood.net/2011/09/30/VidPub7ServiceIntegration.aspx</link>
      <pubDate>Fri, 30 Sep 2011 02:13:21 GMT</pubDate>
      <description>&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Sell stuff&lt;/li&gt;
&lt;li&gt;
Manage customers (CRM)&lt;/li&gt;
&lt;li&gt;
Email notifications&lt;/li&gt;
&lt;li&gt;
Reporting&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Shopify
&lt;/h3&gt;
&lt;p&gt;
hosted storefront.
&lt;/p&gt;
&lt;p&gt;
30 days free.
&lt;/p&gt;
&lt;p&gt;
theme for store
&lt;/p&gt;
&lt;p&gt;
Order mgt, customer mgt
&lt;/p&gt;
&lt;p&gt;
app – Chimpified… adds into mailchimp.
&lt;/p&gt;
&lt;p&gt;
- create new app
&lt;/p&gt;
&lt;p&gt;
- templates use liquid language.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb.png" width="644" height="450" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
this is a product page and is hosted at shopify
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_1.png" width="644" height="386" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
so is this cart page.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_2.png" width="644" height="392" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Writing Integration Code
&lt;/h3&gt;
&lt;p&gt;
give our app the ability to receive pings that shopify will send back eg json
&lt;/p&gt;
&lt;p&gt;
default IIS locally.. port 80 to test.&amp;#160; hmm can’t debug.&amp;#160; use logger.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_3.png" width="244" height="193" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
setting up shopify to call back ie have asked shopify to send json post whenever a
new order is received.
&lt;/p&gt;
&lt;p&gt;
then can then send test notification from shopify back to local server.
&lt;/p&gt;
&lt;p&gt;
Don’t have orders table.. but use the json sent back by shopify as a guide.
&lt;/p&gt;
&lt;p&gt;
Order Items the same
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;Testing
&lt;/h3&gt;
&lt;p&gt;
Just doing a live test against the port.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d5c6e805-e289-4702-99e3-03d2168db0fe" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;br&gt;
&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Tests&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Functionals
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestFixture&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ShopifyTests&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Orders&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _orders;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;OrderItems&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _items;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ShopifyTests()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _orders &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Orders&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _items &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;OrderItems&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; GetJson()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; jsonFile &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#efc210"&gt;@&amp;quot;C:&amp;#92;dev&amp;#92;VidPub&amp;#92;Source&amp;#92;VidPub.Web&amp;#92;App_Data&amp;#92;ShopifyPing.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;using&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; stream &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;StreamReader&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(jsonFile))
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; stream&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadToEnd();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Ping(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; url, &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; data)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpWebRequest&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; request &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpWebRequest&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;&lt;span style="color:#678cb1"&gt;WebRequest&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Create(url);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Method &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ContentType &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//add the form data&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;byte&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
byteArray &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Encoding&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;UTF8&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;GetBytes(data);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ContentLength &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; byteArray&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Length;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;using&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; stream &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;GetRequestStream())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// Write the data
to the request stream.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; stream&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Write(byteArray, &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
byteArray&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Length);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; response &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpWebResponse&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;GetResponse();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;using&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Stream&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; stream &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; response&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;GetResponseStream())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;StreamReader&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sr &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;StreamReader&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(stream);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sr&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadToEnd();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; sr&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Close();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;SetUp&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Init()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _items&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Delete();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _orders&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Delete();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; receiver_should_save_one_order()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; url &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://localhost:50363/shopify/receiver&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Ping(url, GetJson());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assert&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AreEqual(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
_orders&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All()&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Count());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; receiver_should_save_two_order_items()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; url &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://localhost:50363/shopify/receiver&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Ping(url, GetJson());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assert&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AreEqual(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
_items&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All()&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Count());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
asdf
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:52b882ac-4c00-4465-ad12-d4dff6d75578" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//need
to have an action for Shopify pings&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Receiver()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//this is a ping from
Shopify, record the order&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//var order = this.SqueezeJSON();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//returns a string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; json &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ReadJson();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; order &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; System&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Helpers&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Json&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Decode(json);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Logger&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;LogInfo(order&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;order_number&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToString());&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//this is ugly&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//an anonymous object&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; newOrder &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; OrderNumber &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; order&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;order_number,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ShopifyID &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; order&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;id,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ShopifyName &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; order&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//lots more items
to left right.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; savedOrder &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _orders&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(newOrder);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//line items&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//need to put in the
correct newOrder.ID&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; order&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;line_items)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; newItem &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; OrderID &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; savedOrder&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ID,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Name&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//etc..&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _items&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(newItem);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Content(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
Shopify does it all for us, and sends back the data.
&lt;/p&gt;
&lt;h3&gt;Membership and Billing
&lt;/h3&gt;
&lt;p&gt;
subscriptions?
&lt;/p&gt;
&lt;p&gt;
Just run a credit charge once a month and quit whining!
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
retain users credit cards..ahhh!&lt;/li&gt;
&lt;li&gt;
the thing that runs charges.. tracks&lt;/li&gt;
&lt;li&gt;
a scheduler&lt;/li&gt;
&lt;li&gt;
dunning capability.. what happens when payments fail&lt;/li&gt;
&lt;li&gt;
upgrades and downgrades&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
hard to do right.
&lt;/p&gt;
&lt;p&gt;
Chargify – expensive
&lt;/p&gt;
&lt;h3&gt;Recurly – Recurring Billing
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
Simple monthly ($30pm)&lt;/li&gt;
&lt;li&gt;
Platinum which allows for downloads ($50pm)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_10.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_4.png" width="244" height="213" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
1 time setup fee, trial periods
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_12.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_5.png" width="244" height="224" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
full blown checkout page. can dns with cname so people think are still on tekpub.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_14.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_6.png" width="244" height="191" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
can also handle one-off charges
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_16.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_7.png" width="244" height="230" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
user has access to their own invoices.
&lt;/p&gt;
&lt;h3&gt;MadMimi – Emailling
&lt;/h3&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_18.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub7---Service-Integration_9D03/image_thumb_8.png" width="244" height="184" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
can edit the emails straight in madmimi
&lt;/p&gt;
&lt;p&gt;
Rob has written a MadMimi wrapper which is on &lt;a href="https://github.com/robconery/MadMimiMailer"&gt;https://github.com/robconery/MadMimiMailer&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Nice and async.
&lt;/p&gt;
&lt;p&gt;
Welcome
&lt;/p&gt;
&lt;p&gt;
Invoice
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
easily send in invoice# etc..
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;OpenID
&lt;/h3&gt;
&lt;p&gt;
number 1 support calls.
&lt;/p&gt;
&lt;h3&gt;HighRise – CRM (37 signals)
&lt;/h3&gt;
&lt;p&gt;
whenever he sends an email out via madmimi, it is bcc’d to highrise
&lt;/p&gt;
&lt;p&gt;
Can see all emails inside highrise
&lt;/p&gt;
&lt;h3&gt;MailChimp – Build Emailling
&lt;/h3&gt;
&lt;p&gt;
True high powered email campaigns this is better.
&lt;/p&gt;
&lt;p&gt;
Mailchimp to import from highrise
&lt;/p&gt;
&lt;p&gt;
Can do big push promotional push.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;HighRise API
&lt;/h3&gt;
&lt;p&gt;
Rob wrote a wrapper.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
Using XML for transport.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Hmm but would be nice to observe, or hook in, so that when a users details change
it automagically updates CRM.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
So can use Massive hooks, inserted updated and deleted.&amp;#160; Overrides
&lt;/p&gt;
&lt;p&gt;
HighRise – custom fields.
&lt;/p&gt;
&lt;h3&gt;Review SaaS
&lt;/h3&gt;
&lt;p&gt;
help us now – yes
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ecommerce (Shopify)&lt;/li&gt;
&lt;li&gt;
subscription billing (Recurly)&lt;/li&gt;
&lt;li&gt;
mailers (MadMimi and MailChimp)&lt;/li&gt;
&lt;li&gt;
templated mailing&lt;/li&gt;
&lt;li&gt;
mass mailing&lt;/li&gt;
&lt;li&gt;
CRM (HighRise)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
1 year – absoltely..
&lt;/p&gt;
&lt;p&gt;
CRM – sales guy has a CRM tool
&lt;/p&gt;
&lt;p&gt;
Can enter productions, enter discount codes, do mailouts that look great
&lt;/p&gt;
&lt;h3&gt;Data
&lt;/h3&gt;
&lt;p&gt;
Do I need to keep orders in own db… or trust shopify?&amp;#160; replication of data is
bad.
&lt;/p&gt;
&lt;p&gt;
Great to have these services, so he can focus on the core of the business which is
creating videos.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=a66260ff-1c8b-423d-b965-82edd3d749be" /&gt;</description>
      <category>HighRise</category>
      <category>MadMimi</category>
      <category>MailChimp</category>
      <category>Recurly</category>
      <category>SaaS</category>
      <category>Shopify</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=1425f8be-3b1c-48bb-883d-8c69d77beb5f</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,1425f8be-3b1c-48bb-883d-8c69d77beb5f.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb.png" width="468" height="415" />
          </a>
        </p>
        <p>
catching save.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a0d66ce-b323-4724-907f-966707ba07d7" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">FormView
= Backbone.View.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#productionFormTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"change input"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"updateModel"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"submit #productionForm"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"save"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> save: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.save(</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.attributes,</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> success: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (model,
response) {</span>
              <br />
              <span style="color:#f1f2f3"> alert(model.get(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">)
+ </span>
              <span style="color:#ec7600">" saved"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> model.collection.trigger(</span>
              <span style="color:#ec7600">"itemSaved"</span>
              <span style="color:#f1f2f3">,
model);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> error: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (model,
response) {</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"problem"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> model.trigger(</span>
              <span style="color:#ec7600">"itemError"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"There
was a problem saving "</span>
              <span style="color:#f1f2f3"> + model.get(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">));</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> );</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <p>
**BREAK**
</p>
        <p>
heading towards this:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_4.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_1.png" width="473" height="484" />
          </a>
        </p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_6.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_2.png" width="442" height="484" />
          </a>
        </p>
        <p>
nice notifications!
</p>
        <p>
Validations are built into backbone:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_8.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_3.png" width="244" height="185" />
          </a>
        </p>
        <h3>Is it Really Worth It?
</h3>
        <ul>
          <li>
Time spent on user experience is really valuable</li>
          <li>
Compelling to use</li>
          <li>
Good for us as developers to stretch</li>
        </ul>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=1425f8be-3b1c-48bb-883d-8c69d77beb5f" />
      </body>
      <title>VIdPub6.2–BackboneJS</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,1425f8be-3b1c-48bb-883d-8c69d77beb5f.aspx</guid>
      <link>http://www.programgood.net/2011/09/29/VIdPub62BackboneJS.aspx</link>
      <pubDate>Thu, 29 Sep 2011 22:09:26 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb.png" width="468" height="415" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
catching save.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a0d66ce-b323-4724-907f-966707ba07d7" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;FormView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#productionFormTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;change input&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;updateModel&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit #productionForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;save&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; save: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.save(&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.attributes,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; success: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (model,
response) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(model.get(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
+ &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot; saved&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model.collection.trigger(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;itemSaved&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; error: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (model,
response) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;problem&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model.trigger(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;itemError&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem saving &amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; + model.get(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;));&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; );&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
**BREAK**
&lt;/p&gt;
&lt;p&gt;
heading towards this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_1.png" width="473" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_2.png" width="442" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
nice notifications!
&lt;/p&gt;
&lt;p&gt;
Validations are built into backbone:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VIdPub6.2_8AD5/image_thumb_3.png" width="244" height="185" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Is it Really Worth It?
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
Time spent on user experience is really valuable&lt;/li&gt;
&lt;li&gt;
Compelling to use&lt;/li&gt;
&lt;li&gt;
Good for us as developers to stretch&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=1425f8be-3b1c-48bb-883d-8c69d77beb5f" /&gt;</description>
      <category>BackboneJS</category>
      <category>UX</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=21ee4800-b87f-4da2-b6ed-39b38c2b0631</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,21ee4800-b87f-4da2-b6ed-39b38c2b0631.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://documentcloud.github.com/backbone/">http://documentcloud.github.com/backbone/</a>
        </p>
        <p>
MVC for js?
</p>
        <p>
          <a href="http://documentcloud.github.com/backbone/examples/todos/index.html">http://documentcloud.github.com/backbone/examples/todos/index.html</a>
        </p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb.png" width="244" height="151" />
          </a>
        </p>
        <p>
          <a href="http://www.quora.com/What-are-some-good-resources-for-Backbone-js">http://www.quora.com/What-are-some-good-resources-for-Backbone-js</a>
        </p>
        <p>
this is hard!  Rob used peepcode.com  backbone screencast.  Took him
2 weeks to do this.
</p>
        <p>
Use IIS Express.
</p>
        <h3>Areas
</h3>
        <p>
Added an area called Api
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_4.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_1.png" width="244" height="168" />
          </a>
        </p>
        <p>
          <a href="http://localhost:50363/api/productions/">http://localhost:50363/api/productions/</a>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:229c400e-fead-499d-8a3a-61812121703b" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Areas</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Api</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Controllers{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ProductionsController</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">ApplicationController</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3"> _productions;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> ProductionsController(</span>
              <span style="color:#8c8cb4">ITokenHandler</span>
              <span style="color:#f1f2f3"> tokenStore):</span>
              <span style="color:#93c763">base</span>
              <span style="color:#f1f2f3">(tokenStore)
{</span>
              <br />
              <span style="color:#f1f2f3"> _productions </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpGet</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> VidpubJSON(_productions</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_6.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_2.png" width="244" height="212" />
          </a>
        </p>
        <p>
Alt+J – in chrome to open downloads, then tab lots to show in folder
</p>
        <p>
Added backbone-min.js from another branch <a href="https://github.com/documentcloud/backbone/tree/gh-pages">https://github.com/documentcloud/backbone/tree/gh-pages</a></p>
        <p>
and underscore-min.js <a href="http://documentcloud.github.com/underscore/">http://documentcloud.github.com/underscore/</a></p>
        <h3>VidPub/Productions - View
</h3>
        <p>
Backbone is Event-driven.
</p>
        <p>
el is short for Element.
</p>
        <p>
Reference an ID:  
</p>
        <pre>#production-list</pre>
        <p>
Reference a class:
</p>
        <p>
.production-list ?
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7532b96a-8e32-4ba0-b96f-e2985a2190a7" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">ListView
= Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(</span>
              <span style="color:#ec7600">"&lt;h1&gt;Hello!&lt;/h1&gt;"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> view
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView();</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(view.render().el);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
asdf
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f74bea6d-78f7-49a3-9678-2d33dd01148b" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"underscore-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"backbone-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"production-admin.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"production-list"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_8.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_3.png" width="244" height="186" />
          </a>
        </p>
        <p>
and refactoring:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cd86ca0f-8b77-4c37-b2f4-ac31332e8050" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">ListView
= Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl({
name: </span>
              <span style="color:#ec7600">"Tekpub"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> view
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView();</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(view.render().el);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
view:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ace2e4e4-ecd8-4ccd-87b5-0ea0097eaadf" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">src=</span>
              <span style="color:#ec7600">"http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"underscore-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"backbone-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"production-admin.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"listTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;h1&gt;${name}&lt;/h1&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"production-list"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_10.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_4.png" width="244" height="162" />
          </a>
        </p>
        <p>
so all he’s doing here is pushing html into the dom.
</p>
        <h3>ViewEvents
</h3>
        <p>
But its part of the template and not available when the page loads.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_12.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_5.png" width="244" height="158" />
          </a>
        </p>
        <p>
View:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ac8dc8c0-e14b-465f-8143-bcb165bb987e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">src=</span>
              <span style="color:#ec7600">"http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"underscore-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"backbone-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"production-admin.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"listTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;h1&gt;${name}&lt;/h1&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;a href="#"&gt;Click me!&lt;/a&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"production-list"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
js
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7dc2be5a-73fa-4e4b-ba87-e04b2f67db91" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">ListView
= Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a:"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"clickityClick"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> clickityClick: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"I been
clicked"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl({
name: </span>
              <span style="color:#ec7600">"Tekpub"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> view
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView();</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(view.render().el);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
here is an example of el not wired up.. and event doesn’t work:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:93527b8a-a436-41cc-93de-cdb7b28df48c" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">ListView
= Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a:"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"clickityClick"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> clickityClick: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"I been
clicked"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl({
name: </span>
              <span style="color:#ec7600">"Tekpub"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//$(this.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//sidestep el completly
and getting jQuery to patch in the template</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> view
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//$("#production-list").html(view.render().el);</span>
              <br />
              <span style="color:#f1f2f3"> view.render();</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <h3>Working With Data
</h3>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3cb741b9-8940-4b3d-b2f0-52b4860704e4" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a:"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"clickityClick"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> clickityClick: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"I been
clicked"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> production
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Production({
name: </span>
              <span style="color:#ec7600">"MVC3!"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> view
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({model:
production});</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(view.render().el);</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_14.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_6.png" width="244" height="190" />
          </a>
        </p>
        <p>
pub/sub
</p>
        <p>
binding/subscribing to the change event on this.clickityClick ** careful to use this
inside function, otherwise js will look globally in the global window object.
</p>
        <p>
Also setting model to a global variable so we can work with it:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_16.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_7.png" width="725" height="584" />
          </a>
        </p>
        <p>
Manually resetting the title to Peaches in chrome.
</p>
        <p>
Bind our change event to render action in the view
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4d894dd2-6e5d-44a4-93a5-448ad0a7da82" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.bind(</span>
              <span style="color:#ec7600">"change"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3"> window.ViewModel = </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a:"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"clickityClick"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> clickityClick: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"I been
clicked"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> production
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Production({
name: </span>
              <span style="color:#ec7600">"MVC3!"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({model:
production});</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(listView.render().el);</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
then in chrome:
</p>
        <p>
listView.model.set({name:"EF"})
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_18.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_8.png" width="244" height="204" />
          </a>
        </p>
        <p>
the this in this.model.toJSON()  keyword changes scope when fired outside of
a view such as on a model or a collection
</p>
        <p>
userscore library has a handy bindAll library which resets scope of this to the current
view.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_20.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_9.png" width="162" height="244" />
          </a>
        </p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c2e8aed-4d92-4d6e-8317-ca5633404428" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.bind(</span>
              <span style="color:#ec7600">"change"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3"> window.ViewModel = </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a:"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"clickityClick"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> clickityClick: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"I been
clicked"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> production
= </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Production({
name: </span>
              <span style="color:#ec7600">"MVC3!"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({model:
production});</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(listView.render().el);</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <h3>Backbone collections
</h3>
        <p>
What if we need more than 1 model.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d1dbd677-4802-45a5-8a97-6e5cba6d7d70" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <span style="color:#f1f2f3">Productions = Backbone.Collection.extend({</span>
              <br />
              <span style="color:#f1f2f3"> model : Production,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#ec7600">"/api/productions"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_22.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_10.png" width="499" height="484" />
          </a>
        </p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_24.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_11.png" width="244" height="123" />
          </a>
        </p>
        <p>
these are backbone models.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_26.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_12.png" width="244" height="177" />
          </a>
        </p>
        <p>
actual model
</p>
        <p>
reset the view to use a collection instead of a model.
</p>
        <p>
“reset” whenever data is firehosed into collection.
</p>
        <ul>
          <li>
page is going to load</li>
          <li>
view will be instantiated with empty collection</li>
          <li>
el is going to be specified</li>
          <li>
fetch is going to be called</li>
          <li>
once fetch is completed, collection will fire its reset event</li>
          <li>
which will fire the render event</li>
          <li>
render will then push the templated data into el</li>
        </ul>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_28.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_13.png" width="244" height="231" />
          </a>
        </p>
        <p>
productions.reset([{Title:"One"}, {Title:"Two"}])  
- this will changed the data on the screen as event driven will fire.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0334e9e6-f502-4fc3-a33e-a63bc69a3089" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <span style="color:#f1f2f3">Productions = Backbone.Collection.extend({</span>
              <br />
              <span style="color:#f1f2f3"> model : Production,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#ec7600">"/api/productions"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">productions = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Productions();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//this.model.bind("change",
this.render);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.bind(</span>
              <span style="color:#ec7600">"reset"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//window.ViewModel
= this.model;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#66747b">// events: {</span>
              <br />
              <span style="color:#66747b">// "click a:": "clickityClick"</span>
              <br />
              <span style="color:#66747b">// },</span>
              <br />
              <span style="color:#66747b">// clickityClick: function () {</span>
              <br />
              <span style="color:#66747b">// alert("I been clicked");</span>
              <br />
              <span style="color:#66747b">// },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//var html = this.template.tmpl(this.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//var production =
new Production({ name: "MVC3!" });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//listView = new ListView({model:
production});</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({
collection: productions, el: </span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//$("#production-list").html(listView.render().el);</span>
              <br />
              <span style="color:#f1f2f3"> productions.fetch();</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <h3>Backbone router
</h3>
        <p>
24mins in.
</p>
        <p>
using callback function success
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1aded766-6561-4ed5-a6cb-ec0380b3a9b8" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <span style="color:#f1f2f3">Productions = Backbone.Collection.extend({</span>
              <br />
              <span style="color:#f1f2f3"> model : Production,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#ec7600">"/api/productions"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">productions = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Productions();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.bind(</span>
              <span style="color:#ec7600">"reset"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> ProductionAdmin
= Backbone.Router.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({
collection: productions, el: </span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> routes: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"index"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"edit/:id"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"edit"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> index: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> edit: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (id)
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"hello"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//grab the model from
the production</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3">).html(</span>
              <span style="color:#ec7600">"This
id is "</span>
              <span style="color:#f1f2f3"> + id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//pass it to an editor</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> productions.fetch({</span>
              <br />
              <span style="color:#f1f2f3"> success: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"hello2"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//create the router</span>
              <br />
              <span style="color:#f1f2f3"> window.app = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ProductionAdmin();</span>
              <br />
              <span style="color:#f1f2f3"> Backbone.history.start();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> error: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//display a nice error
page</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"error"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
editing: app.navigate("edit/1",true)
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_30.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_14.png" width="244" height="150" />
          </a>
        </p>
        <p>
#allows back button to work, and hyperlinking back to a certain page to work..all
with ajax.  Power of backbone!
</p>
        <h3>Working with Data
</h3>
        <pre>&lt;a href="#" id="${ID}"&gt;${Title}&lt;/a&gt;</pre>
        <p>
not using this.. instead HTML5 data storage:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_32.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_15.png" width="244" height="171" />
          </a>
        </p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:88e91569-59d9-4fb2-9308-0965ffc91a37" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">Production = Backbone.Model.extend({</span>
              <br />
              <span style="color:#f1f2f3"> idAttribute : </span>
              <span style="color:#ec7600">"ID"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">Productions = Backbone.Collection.extend({</span>
              <br />
              <span style="color:#f1f2f3"> model : Production,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#ec7600">"/api/productions"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">productions = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Productions();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.bind(</span>
              <span style="color:#ec7600">"reset"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"showForm"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> showForm: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (evt)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//get tje ID that
was clicked</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> id
= $(evt.currentTarget).data(</span>
              <span style="color:#ec7600">'production-id'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//navigate</span>
              <br />
              <span style="color:#f1f2f3"> app.navigate(</span>
              <span style="color:#ec7600">"edit/"</span>
              <span style="color:#f1f2f3"> +
id, </span>
              <span style="color:#93c763">true</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">FormView = Backbone.View.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#productionFormTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <br />
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> ProductionAdmin
= Backbone.Router.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({
collection: productions, el: </span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> formView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> FormView({
el: </span>
              <span style="color:#ec7600">"#production-form"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> routes: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"index"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"edit/:id"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"edit"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> index: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> edit: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (id)
{</span>
              <br />
              <span style="color:#f1f2f3"> listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> $(formView.el).empty();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//grab the model from
the production</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model
= productions.get(id);</span>
              <br />
              <span style="color:#f1f2f3"> formView.model = model;</span>
              <br />
              <span style="color:#f1f2f3"> formView.render();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//$("#production-list").html("This
id is " + id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//pass it to an editor</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> productions.fetch({</span>
              <br />
              <span style="color:#f1f2f3"> success: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//create the router</span>
              <br />
              <span style="color:#f1f2f3"> window.app = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ProductionAdmin();</span>
              <br />
              <span style="color:#f1f2f3"> Backbone.history.start();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> error: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//display a nice error
page</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"error"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d622a3bc-473f-4884-8552-cc39ac1c0e2e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@{</span>
              <br />
              <span style="color:#f1f2f3"> ViewBag</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Title </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Productions"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> Layout </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"~/Views/Shared/_AdminLayout.cshtml"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">src=</span>
              <span style="color:#ec7600">"http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"underscore-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"backbone-min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"production-admin.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"listTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;li&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;a href="#" data-production-id="${ID}"&gt;${Title}&lt;/a&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/li&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"productionFormTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;form id="productionForm"&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;input type="text" id="Title"
name="Title" value="${Title}" /&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/form&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"column
span-5 colborder"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"production-list"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"column
span-14"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"production-form"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <h3>Form Binding
</h3>
        <p>
we want to bind the form to the model.. we can .. using events.  will wire ourselves..
people working on modelbinders.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_34.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_16.png" width="583" height="484" />
          </a>
        </p>
        <p>
showing the model being changed by the view.
</p>
        <p>
formView.model.get("Title")
</p>
        <p>
this should be automatic – use Derik Baily’s modelbinding.
</p>
        <p>
Helpers:  copy existing Form.cshtml and rename to Template.cshtml
</p>
        <p>
Nice button CSS, with jQuery template helper html.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_36.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_17.png" width="475" height="484" />
          </a>
        </p>
        <p>
nice form using form.css wired through the layout page.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_38.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_18.png" width="434" height="484" />
          </a>
        </p>
        <p>
date picker
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_42.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_20.png" width="226" height="244" />
          </a>
        </p>
        <p>
just had to wire up the datepicker in formview, which wires us the jQueryUI datepicker. 
jqueryUI is wired up through _adminlayout.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d4ed1ab2-ff80-440d-9c82-dc857dcb83af" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">FormView
= Backbone.View.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#productionFormTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"change input"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"updateModel"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"submit #productionForm"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"save"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> save: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> updateModel: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (evt)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> field
= $(evt.currentTarget);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> data
= {};</span>
              <br />
              <span style="color:#f1f2f3"> data[field.attr(</span>
              <span style="color:#ec7600">'ID'</span>
              <span style="color:#f1f2f3">)]
= field.val();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.set(data);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">".datepicker"</span>
              <span style="color:#f1f2f3">).datepicker();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
saving back to server:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_40.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_19.png" width="532" height="203" />
          </a>
        </p>
        <p>
reason we’re using IIS Express… cassini doesn’t always work with put.
</p>
        <p>
rails like conventions
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_44.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_21.png" width="244" height="83" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_46.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_22.png" width="580" height="381" />
          </a>
        </p>
        <p>
so data has been passed back to server via the formView.model.save() call or button
press.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:200ae150-ca8a-4dfb-8033-e67496c592e6" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">Production
= Backbone.Model.extend({});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">Production = Backbone.Model.extend({</span>
              <br />
              <span style="color:#f1f2f3"> idAttribute: </span>
              <span style="color:#ec7600">"ID"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.isNew()
? </span>
              <span style="color:#ec7600">"/api/productions/create"</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#ec7600">"/api/productions/edit/"</span>
              <span style="color:#f1f2f3"> + </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.get(</span>
              <span style="color:#ec7600">"ID"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">Productions = Backbone.Collection.extend({</span>
              <br />
              <span style="color:#f1f2f3"> model : Production,</span>
              <br />
              <span style="color:#f1f2f3"> url: </span>
              <span style="color:#ec7600">"/api/productions"</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">productions = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> Productions();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">ListView = Backbone.View.extend({</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#listTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.bind(</span>
              <span style="color:#ec7600">"reset"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.render);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"click a"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"showForm"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> showForm: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (evt)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//get the ID that
was clicked</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> id
= $(evt.currentTarget).data(</span>
              <span style="color:#ec7600">'production-id'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//navigate</span>
              <br />
              <span style="color:#f1f2f3"> app.navigate(</span>
              <span style="color:#ec7600">"edit/"</span>
              <span style="color:#f1f2f3"> +
id, </span>
              <span style="color:#93c763">true</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.collection.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">FormView = Backbone.View.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> _.bindAll(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">'render'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template
= $(</span>
              <span style="color:#ec7600">"#productionFormTemplate"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> events: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"change input"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"updateModel"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"submit #productionForm"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"save"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> save: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.save(</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.attributes,</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> success: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (model,
response) {</span>
              <br />
              <span style="color:#f1f2f3"> model.collection.trigger(</span>
              <span style="color:#ec7600">"itemSaved"</span>
              <span style="color:#f1f2f3">,
model);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> error: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (model,
response) {</span>
              <br />
              <span style="color:#f1f2f3"> model.trigger(</span>
              <span style="color:#ec7600">"itemError"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"There
was a problem saving "</span>
              <span style="color:#f1f2f3"> + model.get(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">));</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> );</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> updateModel: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (evt)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> field
= $(evt.currentTarget);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> data
= {};</span>
              <br />
              <span style="color:#f1f2f3"> data[field.attr(</span>
              <span style="color:#ec7600">'ID'</span>
              <span style="color:#f1f2f3">)]
= field.val();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.set(data);</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> render: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> html
= </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.template.tmpl(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.model.toJSON());</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">.el).html(html);</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">".datepicker"</span>
              <span style="color:#f1f2f3">).datepicker();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <br />
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> ProductionAdmin
= Backbone.Router.extend({</span>
              <br />
              <span style="color:#f1f2f3"> initialize: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ListView({
collection: productions, el: </span>
              <span style="color:#ec7600">"#production-list"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> formView = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> FormView({
el: </span>
              <span style="color:#ec7600">"#production-form"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> routes: {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"index"</span>
              <span style="color:#f1f2f3">,</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"edit/:id"</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">"edit"</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> index: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> edit: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (id)
{</span>
              <br />
              <span style="color:#f1f2f3"> listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> $(formView.el).empty();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//grab the model from
the production</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model
= productions.get(id);</span>
              <br />
              <span style="color:#f1f2f3"> formView.model = model;</span>
              <br />
              <span style="color:#f1f2f3"> formView.render();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//$("#production-list").html("This
id is " + id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//pass it to an editor</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//listView.render();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">});</span>
              <br />
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> productions.fetch({</span>
              <br />
              <span style="color:#f1f2f3"> success: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//create the router</span>
              <br />
              <span style="color:#f1f2f3"> window.app = </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> ProductionAdmin();</span>
              <br />
              <span style="color:#f1f2f3"> Backbone.history.start();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> error: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//display a nice error
page</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"error"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
MVC3 modelbinders did their job and title in the incoming json is title in our p object.
</p>
        <p>
but we’re not using statically typed objects.. can’t access via FormCollection (as
it isn’t a post).. so have coded around:
</p>
        <h3>Multiple types were found that match the controller named
</h3>
        <p>
          <a href="http://ediblecode.com/blog/dot-net/asp-net-mvc/fixing-multiple-types-were-found-that-match-the-controller-named">http://ediblecode.com/blog/dot-net/asp-net-mvc/fixing-multiple-types-were-found-that-match-the-controller-named</a>
        </p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_50.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_24.png" width="644" height="201" />
          </a>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c526b232-e5d8-4a9c-8fba-44ac650122b9" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#678cb1">ControllerBuilder</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Current</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">DefaultNamespaces</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(</span>
              <span style="color:#ec7600">"VidPub.Web.Controllers"</span>
              <span style="color:#f1f2f3">);</span>
            </div>
          </div>
        </div>
        <h3>Date Problem
</h3>
        <p>
Wrote and app to test:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5ee6ba87-73f3-485a-8fbd-39d1132037ba" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> MassiveDateTest
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Program</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> Main(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
args) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// test dates in massive
for NZ locale</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//do an insert</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> table2 </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//do it up - the new
ID will be returned from the query</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// fails with</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// exec sp_executesql
N'INSERT INTO Productions (Title,CreatedOn) </span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//VALUES (@0,@1)',N'@0
nvarchar(4000),@1 nvarchar(4000)',@0=N'Buck Fify Stuff',@1=N'30/08/2011'</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> newID </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> table2</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(</span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> {
Title </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Buck
Fify Stuff"</span>
              <span style="color:#f1f2f3">, CreatedOn </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"21/08/2011"</span>
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(newID);</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//grab all the productions</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> productions </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> productions)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// coming through
as 29/08/2011 12:00:00</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Console</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">WriteLine(item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Title </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"
"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreatedOn);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// this works</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//var newID = table2.Insert(new
{ Title = "Buck Fify Stuff", CreatedOn = "08/30/2011" });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> Productions()
: </span>
              <span style="color:#93c763">base</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"VidPub"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"Productions"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"ID"</span>
              <span style="color:#f1f2f3">)
{}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
and massive:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:13d7b085-e722-4a16-815b-442b08a12868" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DbCommand</span>
              <span style="color:#f1f2f3"> CreateInsertCommand(</span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> o)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DbCommand</span>
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> expando </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> o</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToExpando();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> settings </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#8c8cb4">IDictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">)expando;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> sbKeys </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">StringBuilder</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> sbVals </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">StringBuilder</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> stub </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"INSERT
INTO {0} ({1}) \r\n VALUES ({2})"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> CreateCommand(stub, </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> counter </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ffcd22">0</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> settings)
{</span>
              <br />
              <span style="color:#f1f2f3"> sbKeys</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AppendFormat(</span>
              <span style="color:#ec7600">"{0},"</span>
              <span style="color:#f1f2f3">,
item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key);</span>
              <br />
              <span style="color:#f1f2f3"> sbVals</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AppendFormat(</span>
              <span style="color:#ec7600">"@{0},"</span>
              <span style="color:#f1f2f3">,
counter</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToString());</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// DM hack dates</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key </span>
              <span style="color:#e8e2b7">==</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"CreatedOn"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#e8e2b7">||</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key </span>
              <span style="color:#e8e2b7">==</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"UpdatedOn"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#e8e2b7">||</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key </span>
              <span style="color:#e8e2b7">==</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"ReleasedOn"</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> fulldate </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Value</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToString();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
dateArray </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> fulldate</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Split(</span>
              <span style="color:#ec7600">'/'</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> day </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> dateArray[</span>
              <span style="color:#ffcd22">0</span>
              <span style="color:#f1f2f3">];</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> month </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> dateArray[</span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">];</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> year </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> dateArray[</span>
              <span style="color:#ffcd22">2</span>
              <span style="color:#f1f2f3">];</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> dateInUSFormat </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> month </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"/"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3"> day </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"/"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#e8e2b7">+</span>
              <span style="color:#f1f2f3"> year;</span>
              <br />
              <span style="color:#f1f2f3"> result</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AddParam(dateInUSFormat);</span>
              <br />
              <span style="color:#f1f2f3"> } </span>
              <span style="color:#93c763">else</span>
              <br />
              <span style="color:#f1f2f3"> result</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AddParam(item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Value);</span>
              <br />
              <span style="color:#f1f2f3"> counter</span>
              <span style="color:#e8e2b7">++</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
so got it writing a British date from C# and transforming into US in the insert code.
</p>
        <p>
put into main project and got it working for
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_52.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_25.png" width="359" height="484" />
          </a>
        </p>
        <p>
but time comes in on save:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_54.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_26.png" width="300" height="484" />
          </a>
        </p>
        <p>
create not working for some reason. **datepicker is in US format already.. need to
set to UK
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=21ee4800-b87f-4da2-b6ed-39b38c2b0631" />
      </body>
      <title>VidPub6–BackboneJS</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,21ee4800-b87f-4da2-b6ed-39b38c2b0631.aspx</guid>
      <link>http://www.programgood.net/2011/09/28/VidPub6BackboneJS.aspx</link>
      <pubDate>Wed, 28 Sep 2011 05:45:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://documentcloud.github.com/backbone/"&gt;http://documentcloud.github.com/backbone/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
MVC for js?
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://documentcloud.github.com/backbone/examples/todos/index.html"&gt;http://documentcloud.github.com/backbone/examples/todos/index.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb.png" width="244" height="151" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.quora.com/What-are-some-good-resources-for-Backbone-js"&gt;http://www.quora.com/What-are-some-good-resources-for-Backbone-js&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
this is hard!&amp;#160; Rob used peepcode.com&amp;#160; backbone screencast.&amp;#160; Took him
2 weeks to do this.
&lt;/p&gt;
&lt;p&gt;
Use IIS Express.
&lt;/p&gt;
&lt;h3&gt;Areas
&lt;/h3&gt;
&lt;p&gt;
Added an area called Api
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_1.png" width="244" height="168" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://localhost:50363/api/productions/"&gt;http://localhost:50363/api/productions/&lt;/a&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:229c400e-fead-499d-8a3a-61812121703b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Areas&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Api&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Controllers{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ProductionsController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ApplicationController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _productions;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionsController(&lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;ITokenHandler&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tokenStore):&lt;/span&gt;&lt;span style="color:#93c763"&gt;base&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(tokenStore)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _productions &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpGet&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidpubJSON(_productions&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_2.png" width="244" height="212" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Alt+J – in chrome to open downloads, then tab lots to show in folder
&lt;/p&gt;
&lt;p&gt;
Added backbone-min.js from another branch &lt;a href="https://github.com/documentcloud/backbone/tree/gh-pages"&gt;https://github.com/documentcloud/backbone/tree/gh-pages&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and underscore-min.js &lt;a href="http://documentcloud.github.com/underscore/"&gt;http://documentcloud.github.com/underscore/&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;VidPub/Productions - View
&lt;/h3&gt;
&lt;p&gt;
Backbone is Event-driven.
&lt;/p&gt;
&lt;p&gt;
el is short for Element.
&lt;/p&gt;
&lt;p&gt;
Reference an ID:&amp;#160; 
&lt;/p&gt;
&lt;pre&gt;#production-list&lt;/pre&gt;
&lt;p&gt;
Reference a class:
&lt;/p&gt;
&lt;p&gt;
.production-list ?
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7532b96a-8e32-4ba0-b96f-e2985a2190a7" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;ListView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;lt;h1&amp;gt;Hello!&amp;lt;/h1&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; view
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(view.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
asdf
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f74bea6d-78f7-49a3-9678-2d33dd01148b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;underscore-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;backbone-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-admin.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_3.png" width="244" height="186" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and refactoring:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cd86ca0f-8b77-4c37-b2f4-ac31332e8050" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;ListView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Tekpub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; view
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(view.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
view:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ace2e4e4-ecd8-4ccd-87b5-0ea0097eaadf" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;src=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;underscore-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;backbone-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-admin.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;h1&amp;gt;${name}&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_4.png" width="244" height="162" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
so all he’s doing here is pushing html into the dom.
&lt;/p&gt;
&lt;h3&gt;ViewEvents
&lt;/h3&gt;
&lt;p&gt;
But its part of the template and not available when the page loads.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_12.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_5.png" width="244" height="158" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
View:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ac8dc8c0-e14b-465f-8143-bcb165bb987e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;src=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;underscore-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;backbone-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-admin.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;h1&amp;gt;${name}&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Click me!&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
js
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7dc2be5a-73fa-4e4b-ba87-e04b2f67db91" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;ListView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a:&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; clickityClick: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I been
clicked&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Tekpub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; view
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(view.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
here is an example of el not wired up.. and event doesn’t work:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:93527b8a-a436-41cc-93de-cdb7b28df48c" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;ListView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a:&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; clickityClick: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I been
clicked&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Tekpub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//$(this.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//sidestep el completly
and getting jQuery to patch in the template&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; view
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//$(&amp;quot;#production-list&amp;quot;).html(view.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; view.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Working With Data
&lt;/h3&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3cb741b9-8940-4b3d-b2f0-52b4860704e4" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a:&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; clickityClick: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I been
clicked&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; production
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Production({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;MVC3!&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; view
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({model:
production});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(view.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_14.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_6.png" width="244" height="190" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
pub/sub
&lt;/p&gt;
&lt;p&gt;
binding/subscribing to the change event on this.clickityClick ** careful to use this
inside function, otherwise js will look globally in the global window object.
&lt;/p&gt;
&lt;p&gt;
Also setting model to a global variable so we can work with it:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_16.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_7.png" width="725" height="584" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Manually resetting the title to Peaches in chrome.
&lt;/p&gt;
&lt;p&gt;
Bind our change event to render action in the view
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4d894dd2-6e5d-44a4-93a5-448ad0a7da82" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;change&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; window.ViewModel = &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a:&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; clickityClick: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I been
clicked&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; production
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Production({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;MVC3!&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({model:
production});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(listView.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
then in chrome:
&lt;/p&gt;
&lt;p&gt;
listView.model.set({name:&amp;quot;EF&amp;quot;})
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_18.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_8.png" width="244" height="204" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
the this in this.model.toJSON()&amp;#160; keyword changes scope when fired outside of
a view such as on a model or a collection
&lt;/p&gt;
&lt;p&gt;
userscore library has a handy bindAll library which resets scope of this to the current
view.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_20.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_9.png" width="162" height="244" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c2e8aed-4d92-4d6e-8317-ca5633404428" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;change&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; window.ViewModel = &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a:&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; clickityClick: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I been
clicked&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; production
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Production({
name: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;MVC3!&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({model:
production});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(listView.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;h3&gt;Backbone collections
&lt;/h3&gt;
&lt;p&gt;
What if we need more than 1 model.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d1dbd677-4802-45a5-8a97-6e5cba6d7d70" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Productions = Backbone.Collection.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model : Production,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_22.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_10.png" width="499" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_24.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_11.png" width="244" height="123" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
these are backbone models.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_26.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_12.png" width="244" height="177" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
actual model
&lt;/p&gt;
&lt;p&gt;
reset the view to use a collection instead of a model.
&lt;/p&gt;
&lt;p&gt;
“reset” whenever data is firehosed into collection.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
page is going to load&lt;/li&gt;
&lt;li&gt;
view will be instantiated with empty collection&lt;/li&gt;
&lt;li&gt;
el is going to be specified&lt;/li&gt;
&lt;li&gt;
fetch is going to be called&lt;/li&gt;
&lt;li&gt;
once fetch is completed, collection will fire its reset event&lt;/li&gt;
&lt;li&gt;
which will fire the render event&lt;/li&gt;
&lt;li&gt;
render will then push the templated data into el&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_28.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_13.png" width="244" height="231" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
productions.reset([{Title:&amp;quot;One&amp;quot;}, {Title:&amp;quot;Two&amp;quot;}])&amp;#160;&amp;#160;
- this will changed the data on the screen as event driven will fire.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0334e9e6-f502-4fc3-a33e-a63bc69a3089" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Productions = Backbone.Collection.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model : Production,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;productions = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//this.model.bind(&amp;quot;change&amp;quot;,
this.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;reset&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//window.ViewModel
= this.model;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// &amp;quot;click a:&amp;quot;: &amp;quot;clickityClick&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// clickityClick: function () {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// alert(&amp;quot;I been clicked&amp;quot;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#66747b"&gt;// },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//var html = this.template.tmpl(this.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//var production =
new Production({ name: &amp;quot;MVC3!&amp;quot; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//listView = new ListView({model:
production});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({
collection: productions, el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//$(&amp;quot;#production-list&amp;quot;).html(listView.render().el);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; productions.fetch();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Backbone router
&lt;/h3&gt;
&lt;p&gt;
24mins in.
&lt;/p&gt;
&lt;p&gt;
using callback function success
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1aded766-6561-4ed5-a6cb-ec0380b3a9b8" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Productions = Backbone.Collection.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model : Production,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;productions = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;reset&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin
= Backbone.Router.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({
collection: productions, el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; routes: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit/:id&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; index: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; edit: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//grab the model from
the production&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).html(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;This
id is &amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; + id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//pass it to an editor&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; productions.fetch({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; success: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;hello2&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//create the router&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; window.app = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Backbone.history.start();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; error: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//display a nice error
page&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
editing: app.navigate(&amp;quot;edit/1&amp;quot;,true)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_30.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_14.png" width="244" height="150" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
#allows back button to work, and hyperlinking back to a certain page to work..all
with ajax.&amp;#160; Power of backbone!
&lt;/p&gt;
&lt;h3&gt;Working with Data
&lt;/h3&gt;
&lt;pre&gt;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;${ID}&amp;quot;&amp;gt;${Title}&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;p&gt;
not using this.. instead HTML5 data storage:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_32.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_15.png" width="244" height="171" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:88e91569-59d9-4fb2-9308-0965ffc91a37" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Production = Backbone.Model.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; idAttribute : &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Productions = Backbone.Collection.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model : Production,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;productions = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;reset&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;showForm&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; showForm: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (evt)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//get tje ID that
was clicked&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id
= $(evt.currentTarget).data(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;production-id&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//navigate&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; app.navigate(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; +
id, &lt;/span&gt;&lt;span style="color:#93c763"&gt;true&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;FormView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#productionFormTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin
= Backbone.Router.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({
collection: productions, el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FormView({
el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-form&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; routes: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit/:id&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; index: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; edit: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(formView.el).empty();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//grab the model from
the production&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model
= productions.get(id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView.model = model;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//$(&amp;quot;#production-list&amp;quot;).html(&amp;quot;This
id is &amp;quot; + id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//pass it to an editor&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; productions.fetch({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; success: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//create the router&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; window.app = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Backbone.history.start();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; error: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//display a nice error
page&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d622a3bc-473f-4884-8552-cc39ac1c0e2e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ViewBag&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Title &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Layout &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;~/Views/Shared/_AdminLayout.cshtml&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;src=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;underscore-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;backbone-min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-admin.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;a href=&amp;quot;#&amp;quot; data-production-id=&amp;quot;${ID}&amp;quot;&amp;gt;${Title}&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;productionFormTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;form id=&amp;quot;productionForm&amp;quot;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;Title&amp;quot;
name=&amp;quot;Title&amp;quot; value=&amp;quot;${Title}&amp;quot; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;column
span-5 colborder&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;column
span-14&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;production-form&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;Form Binding
&lt;/h3&gt;
&lt;p&gt;
we want to bind the form to the model.. we can .. using events.&amp;#160; will wire ourselves..
people working on modelbinders.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_34.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_16.png" width="583" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
showing the model being changed by the view.
&lt;/p&gt;
&lt;p&gt;
formView.model.get(&amp;quot;Title&amp;quot;)
&lt;/p&gt;
&lt;p&gt;
this should be automatic – use Derik Baily’s modelbinding.
&lt;/p&gt;
&lt;p&gt;
Helpers:&amp;#160; copy existing Form.cshtml and rename to Template.cshtml
&lt;/p&gt;
&lt;p&gt;
Nice button CSS, with jQuery template helper html.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_36.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_17.png" width="475" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
nice form using form.css wired through the layout page.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_38.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_18.png" width="434" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
date picker
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_42.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_20.png" width="226" height="244" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
just had to wire up the datepicker in formview, which wires us the jQueryUI datepicker.&amp;#160;
jqueryUI is wired up through _adminlayout.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d4ed1ab2-ff80-440d-9c82-dc857dcb83af" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;FormView
= Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#productionFormTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;change input&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;updateModel&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit #productionForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;save&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; save: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; updateModel: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (evt)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; field
= $(evt.currentTarget);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; data
= {};&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; data[field.attr(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]
= field.val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.set(data);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;.datepicker&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).datepicker();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
saving back to server:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_40.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_19.png" width="532" height="203" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
reason we’re using IIS Express… cassini doesn’t always work with put.
&lt;/p&gt;
&lt;p&gt;
rails like conventions
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_44.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_21.png" width="244" height="83" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_46.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_22.png" width="580" height="381" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
so data has been passed back to server via the formView.model.save() call or button
press.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:200ae150-ca8a-4dfb-8033-e67496c592e6" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;Production
= Backbone.Model.extend({});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Production = Backbone.Model.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; idAttribute: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.isNew()
? &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions/create&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions/edit/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; + &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.get(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;Productions = Backbone.Collection.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model : Production,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; url: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/api/productions&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;productions = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;ListView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#listTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.bind(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;reset&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.render);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;click a&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;showForm&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; showForm: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (evt)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//get the ID that
was clicked&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id
= $(evt.currentTarget).data(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;production-id&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//navigate&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; app.navigate(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; +
id, &lt;/span&gt;&lt;span style="color:#93c763"&gt;true&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.collection.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;FormView = Backbone.View.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _.bindAll(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;render&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#productionFormTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; events: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;change input&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;updateModel&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit #productionForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;save&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; save: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.save(&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.attributes,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; success: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (model,
response) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model.collection.trigger(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;itemSaved&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; error: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (model,
response) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model.trigger(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;itemError&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem saving &amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; + model.get(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;));&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; );&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; updateModel: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (evt)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; field
= $(evt.currentTarget);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; data
= {};&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; data[field.attr(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]
= field.val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.set(data);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; render: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; html
= &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.template.tmpl(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.model.toJSON());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;.el).html(html);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;.datepicker&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).datepicker();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin
= Backbone.Router.extend({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; initialize: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ListView({
collection: productions, el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-list&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FormView({
el: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#production-form&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; routes: {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit/:id&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;edit&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; index: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; edit: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(formView.el).empty();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//grab the model from
the production&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model
= productions.get(id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView.model = model;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; formView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//$(&amp;quot;#production-list&amp;quot;).html(&amp;quot;This
id is &amp;quot; + id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//pass it to an editor&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//listView.render();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; productions.fetch({&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; success: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//create the router&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; window.app = &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionAdmin();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; Backbone.history.start();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; error: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//display a nice error
page&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
MVC3 modelbinders did their job and title in the incoming json is title in our p object.
&lt;/p&gt;
&lt;p&gt;
but we’re not using statically typed objects.. can’t access via FormCollection (as
it isn’t a post).. so have coded around:
&lt;/p&gt;
&lt;h3&gt;Multiple types were found that match the controller named
&lt;/h3&gt;
&lt;p&gt;
&lt;a href="http://ediblecode.com/blog/dot-net/asp-net-mvc/fixing-multiple-types-were-found-that-match-the-controller-named"&gt;http://ediblecode.com/blog/dot-net/asp-net-mvc/fixing-multiple-types-were-found-that-match-the-controller-named&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_50.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_24.png" width="644" height="201" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c526b232-e5d8-4a9c-8fba-44ac650122b9" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#678cb1"&gt;ControllerBuilder&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Current&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;DefaultNamespaces&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;VidPub.Web.Controllers&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Date Problem
&lt;/h3&gt;
&lt;p&gt;
Wrote and app to test:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5ee6ba87-73f3-485a-8fbd-39d1132037ba" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; MassiveDateTest
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Program&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Main(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
args) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// test dates in massive
for NZ locale&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//do an insert&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; table2 &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//do it up - the new
ID will be returned from the query&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// fails with&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// exec sp_executesql
N&amp;#39;INSERT INTO Productions (Title,CreatedOn) &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//VALUES (@0,@1)&amp;#39;,N&amp;#39;@0
nvarchar(4000),@1 nvarchar(4000)&amp;#39;,@0=N&amp;#39;Buck Fify Stuff&amp;#39;,@1=N&amp;#39;30/08/2011&amp;#39;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; newID &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; table2&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(&lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {
Title &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Buck
Fify Stuff&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, CreatedOn &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;21/08/2011&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(newID);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//grab all the productions&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; productions &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; productions)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// coming through
as 29/08/2011 12:00:00&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Console&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;WriteLine(item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Title &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;
&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreatedOn);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// this works&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//var newID = table2.Insert(new
{ Title = &amp;quot;Buck Fify Stuff&amp;quot;, CreatedOn = &amp;quot;08/30/2011&amp;quot; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions()
: &lt;/span&gt;&lt;span style="color:#93c763"&gt;base&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;VidPub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
and massive:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:13d7b085-e722-4a16-815b-442b08a12868" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DbCommand&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; CreateInsertCommand(&lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; o)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DbCommand&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; expando &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; o&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToExpando();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; settings &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IDictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)expando;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sbKeys &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;StringBuilder&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; sbVals &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;StringBuilder&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; stub &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;INSERT
INTO {0} ({1}) &amp;#92;r&amp;#92;n VALUES ({2})&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; CreateCommand(stub, &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; counter &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; settings)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; sbKeys&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AppendFormat(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;{0},&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; sbVals&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AppendFormat(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;@{0},&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
counter&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToString());&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// DM hack dates&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;==&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;CreatedOn&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;||&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;==&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;UpdatedOn&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;||&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;==&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ReleasedOn&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; fulldate &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Value&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToString();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
dateArray &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; fulldate&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Split(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; day &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dateArray[&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;0&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;];&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; month &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dateArray[&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;];&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; year &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dateArray[&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;];&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dateInUSFormat &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; month &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; day &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;+&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; year;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AddParam(dateInUSFormat);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; } &lt;/span&gt;&lt;span style="color:#93c763"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AddParam(item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Value);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; counter&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;++&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
so got it writing a British date from C# and transforming into US in the insert code.
&lt;/p&gt;
&lt;p&gt;
put into main project and got it working for
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_52.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_25.png" width="359" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
but time comes in on save:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_54.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPu_8D48/image_thumb_26.png" width="300" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
create not working for some reason. **datepicker is in US format already.. need to
set to UK
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=21ee4800-b87f-4da2-b6ed-39b38c2b0631" /&gt;</description>
      <category>BackboneJS</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=b266a49b-5eb6-4eef-82b4-dd1fde18b579</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,b266a49b-5eb6-4eef-82b4-dd1fde18b579.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
git mergetool 
</p>
        <p>
git checkout –b “admin_home”
</p>
        <p>
Html helpers won’t work with dynamics
</p>
        <h3>Make some Helpers
</h3>
        <ul>
          <li>
less abstraction 
</li>
          <li>
more control 
</li>
        </ul>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8bb6db2d-9c5c-48f1-845d-5eeecd4705ec" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextBox(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value</span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//if value is null,
set to empty string</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">val"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
then
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f1146373-977d-438c-9619-078e2106a459" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;Production&lt;/</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Form</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TextBox(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">,
@Model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Title)</span>
            </div>
          </div>
        </div>
        <p>
However we want the Title property to be required:
</p>
        <p>
In MVC3 this would be:"  Html.TextBoxFor(x=&gt;x.Title);
</p>
        <p>
and put a Required DataAnnotation attribute on the Production class.
</p>
        <p>
could also tell it to do in unobtrusively with jquery, and jquery validations.
</p>
        <p>
Getting rid of js files:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb.png" width="157" height="244" />
          </a>
        </p>
        <p>
So now I just have:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_4.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_1.png" width="244" height="139" />
          </a>
        </p>
        <h3>Scripts loader for js
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d9520f57-0274-4724-8db9-96a0ddce92c1" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">Scripts(){</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"jquery.validate.min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"jquery.validate.unobtrusive.min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
in the Form.cshtml helpers
</p>
        <h3>Validations
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:da81c6b4-ddb2-4870-946b-42d3bcd40aea" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">ValidationMessage(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name)
{</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">span</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"field-validation-valid"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-valmsg-for=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-valmsg-replace=</span>
              <span style="color:#ec7600">"true"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">span</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextBoxRequired(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> requiredMessage </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Required"</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//using HTML5 and
jQuery validations</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">val"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val=</span>
              <span style="color:#ec7600">"true"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val-required=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">requiredMessage"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">ValidationMessage(name)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
then on the front end:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:880a3c80-a5b8-4fc0-9a1a-379b6865c8ff" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;Production&lt;/</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Form</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TextBoxRequired(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">,
@Model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Title)</span>
            </div>
          </div>
        </div>
        <p>
nice.
</p>
        <p>
FInally:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c6e5974a-70f5-4a4f-b569-2f6a3d9401bb" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#93c763">using</span>
              <span style="color:#f1f2f3"> (Html</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">BeginForm())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">Html</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AntiForgeryToken()</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">Html</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ValidationSummary(</span>
              <span style="color:#93c763">true</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">fieldset</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;Production&lt;/</span>
              <span style="color:#93c763">legend</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Form</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TextBoxRequired(</span>
              <span style="color:#ec7600">"Title"</span>
              <span style="color:#f1f2f3">,
@Model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Title)</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Form</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TextArea(</span>
              <span style="color:#ec7600">"Description"</span>
              <span style="color:#f1f2f3">,
@Model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Description)</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Form</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TextBoxNumber(</span>
              <span style="color:#ec7600">"Price"</span>
              <span style="color:#f1f2f3">,
@Model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Price)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"submit"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"Save"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">fieldset</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
and helpers:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:184b8af2-ab6c-4474-801b-79dcc9272f5a" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">Scripts(){</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"jquery.validate.min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"jquery.validate.unobtrusive.min.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">ValidationMessage(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name)
{</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">span</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"field-validation-valid"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-valmsg-for=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-valmsg-replace=</span>
              <span style="color:#ec7600">"true"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">span</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextBox(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//if value is null,
set to empty string</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">val"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextBoxRequired(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> requiredMessage </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Required"</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//using HTML5 and
jQuery validations</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name
*&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">val"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val=</span>
              <span style="color:#ec7600">"true"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val-required=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">requiredMessage"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">ValidationMessage(name)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextBoxNumber(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> numberMessage </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Should
be a number"</span>
              <span style="color:#f1f2f3">) {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//using HTML5 and
jQuery validations</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name
*&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">val"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val=</span>
              <span style="color:#ec7600">"true"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">data-val-number=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">numberMessage"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">ValidationMessage(name)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">TextArea(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> name, </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> attributes </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">name&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">textarea</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">name=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#ec7600">name"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">attributes
&gt;</span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">val&lt;/</span>
              <span style="color:#93c763">textarea</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">p</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <h3>More Security
</h3>
        <p>
Not using ASP Net Membership, so how can control security on controllers?
</p>
        <p>
We could just add [Authorize(Role)] attribute if we were using ASP Net Membership
on each controller class or method.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ff0f18bf-fb97-4dcd-8cc1-9e3142a40def" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">[</span>
              <span style="color:#678cb1">Authorize</span>
              <span style="color:#f1f2f3">(Roles </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"asdf"</span>
              <span style="color:#f1f2f3">)]</span>
            </div>
          </div>
        </div>
        <p>
no notion of roles in this site
</p>
        <p>
We are going to go simple – create an Action Filter.
</p>
        <p>
 
</p>
        <p>
Can’t pass a dynamic argument to an extension method.
</p>
        <h3>Roll own Simple Authorization
</h3>
        <p>
make an attribute / ActionFilter
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fe51cbbb-30a6-4db6-9764-46e257b44f73" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Infrastructure
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">RequiredAdminAttribute</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">ActionFilterAttribute</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">override</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> OnActionExecuting(</span>
              <span style="color:#678cb1">ActionExecutingContext</span>
              <span style="color:#f1f2f3"> filterContext)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//pull the controller
off the context passed in</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//and cast it as own
ApplicationController</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> controller </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">ApplicationController</span>
              <span style="color:#f1f2f3">)filterContext</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Controller;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//user logged in?</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#e8e2b7">!</span>
              <span style="color:#f1f2f3">controller</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsLoggedIn)
{</span>
              <br />
              <span style="color:#f1f2f3"> controller</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"You
need to be logged in to do that"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> filterContext</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">HttpContext</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Response</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Redirect(</span>
              <span style="color:#ec7600">"/account/logon"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//is the user an admin</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> adminEmails </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
{ </span>
              <span style="color:#ec7600">"robconery@gmail.com"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"rob@tekpub.com"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"davemateer@gmail.com"</span>
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//CurrentUser is a
field in our ApplicationController</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//can't use var...
as it would be ynamic object..need to tell the compiler</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> userEmail </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> controller</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CurrentUser</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Email;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#e8e2b7">!</span>
              <span style="color:#f1f2f3">adminEmails</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Contains(userEmail))
{</span>
              <br />
              <span style="color:#f1f2f3"> controller</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"You
are not authorized"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> filterContext</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">HttpContext</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Response</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Redirect(</span>
              <span style="color:#ec7600">"/account/logon"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
this wired up to the field on ApplicationController, which tells us if a user is logged
in, and then which user.
</p>
        <p>
then wire up on CruddyController the actions that need to be authorised.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8afc7d68-aebb-42a2-b6c7-905205ab0332" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">RequiredAdmin</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Prototype);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">ValidateAntiForgeryToken</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">RequiredAdmin</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create(</span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(item);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"alert"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was an error adding this item"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">RequiredAdmin</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Get(ID:
id);</span>
              <br />
              <span style="color:#f1f2f3"> model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">_Table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">RequiredAdmin</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id, </span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Update(model,
id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">Exception</span>
              <span style="color:#f1f2f3"> ex)
{</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was a problem editing this record"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <h3>A Little jQuery
</h3>
        <p>
Firebug
</p>
        <p>
Why:
</p>
        <ul>
          <li>
Write less server code 
</li>
          <li>
More response app 
</li>
          <li>
More compelling app 
</li>
        </ul>
        <p>
Add in json serialization, so we can talk javascript!
</p>
        <p>
Usually we’d go with something like:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:719fabc8-2327-4142-a602-867abc432147" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> Json(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All(),
JsonRequestBehavior</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">AllowGet);</span>
            </div>
          </div>
        </div>
        <p>
json.net a lot of people use as a serialiser.
</p>
        <p>
However lets see if can solve it on own without taking another dependency
</p>
        <p>
Getting Json dates to displayed correctly is a long running problem.  Write own,
then use strings everywhere to make life simpler.  Dave Ward <a href="http://encosia.com/">http://encosia.com/</a> write
this.
</p>
        <p>
Couldn’t get json to output correctly, problem was glimpse…
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_2.png" width="644" height="202" />
          </a>
        </p>
        <p>
Fiddler was very useful here.
</p>
        <p>
Our new way of calling json serializer:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:27646cf2-1f44-47eb-9e8a-60da643fc228" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpGet</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> query)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//sidestep viewgeneration
and return json</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">IEnumerable</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> results </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> results </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> VidpubJSON(results);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> VidpubJSON(</span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> content)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> serializer </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">JavaScriptSerializer</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> serializer</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">RegisterConverters(</span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">JavaScriptConverter</span>
              <span style="color:#f1f2f3">[]
{ </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ExpandoObjectConverter</span>
              <span style="color:#f1f2f3">()
});</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> json </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> serializer</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Serialize(content);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//Response.ContentType
= "application/json";</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> Content(json);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
and Dave Wards converter which cracks open the IDictionary backing the Expando, explicitly
assigns key value bindings that are required…
</p>
        <p>
so then we can parse down to a shortDateString (the dates)
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7b88ba0f-2f5c-4312-8ec3-ffcec90c8547" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Infrastructure
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ExpandoObjectConverter</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">JavaScriptConverter</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">override</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">IEnumerable</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Type</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> SupportedTypes
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3"> { </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ReadOnlyCollection</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Type</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">List</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Type</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Type</span>
              <span style="color:#f1f2f3">[]
{ </span>
              <span style="color:#93c763">typeof</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">ExpandoObject</span>
              <span style="color:#f1f2f3">)
})); }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">override</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">IDictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> Serialize(</span>
              <span style="color:#93c763">object</span>
              <span style="color:#f1f2f3"> obj, </span>
              <span style="color:#678cb1">JavaScriptSerializer</span>
              <span style="color:#f1f2f3"> serializer)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ExpandoObject</span>
              <span style="color:#f1f2f3"> expando </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">ExpandoObject</span>
              <span style="color:#f1f2f3">)obj;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (expando </span>
              <span style="color:#e8e2b7">!=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// Create the representation.</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Dictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Dictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">KeyValuePair</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> expando)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (value</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">GetType() </span>
              <span style="color:#e8e2b7">==</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">typeof</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">DateTime</span>
              <span style="color:#f1f2f3">))</span>
              <br />
              <span style="color:#f1f2f3"> result</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key,
((</span>
              <span style="color:#678cb1">DateTime</span>
              <span style="color:#f1f2f3">)value)</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToShortDateString());</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">else</span>
              <br />
              <span style="color:#f1f2f3"> result</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key,
value</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToString());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> result;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Dictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">override</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> Deserialize(</span>
              <span style="color:#8c8cb4">IDictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> dictionary, </span>
              <span style="color:#678cb1">Type</span>
              <span style="color:#f1f2f3"> type, </span>
              <span style="color:#678cb1">JavaScriptSerializer</span>
              <span style="color:#f1f2f3"> serializer)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> result </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ExpandoObject</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (dictionary </span>
              <span style="color:#e8e2b7">!=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// Create the representation.</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> dc </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#8c8cb4">IDictionary</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">)result;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">KeyValuePair</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#93c763">object</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> dictionary)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> value </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Value </span>
              <span style="color:#e8e2b7">??</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">""</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> dc</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(item</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Key,
value);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> result;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
Put verbs HttpPut on Edit post, and HttpDelete on a delete post.
</p>
        <h3>jQuery
</h3>
        <p>
Making a searchbox.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5f501c20-16ca-4ac6-a933-8395380f0d6e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> $(document).ready(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchForm"</span>
              <span style="color:#f1f2f3">).submit(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val
= $(</span>
              <span style="color:#ec7600">"#search"</span>
              <span style="color:#f1f2f3">).val();</span>
              <br />
              <span style="color:#f1f2f3"> alert(</span>
              <span style="color:#ec7600">"You're
looking for "</span>
              <span style="color:#f1f2f3"> + val);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">h2</span>
              <span style="color:#f1f2f3">&gt;Vidpub
Admin&lt;/</span>
              <span style="color:#93c763">h2</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">form</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchForm"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;Find:&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"search"</span>
              <span style="color:#f1f2f3">/&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"submit"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"go"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">form</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_3.png" width="244" height="178" />
          </a>
        </p>
        <p>
want to search over:
</p>
        <ul>
          <li>
Productions 
</li>
          <li>
Episodes 
</li>
          <li>
Customers 
</li>
        </ul>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7a971183-138f-4040-a1e5-cc8b81ee1cfa" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Customers</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> Customers()</span>
              <br />
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#93c763">base</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"VidPub"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"Customers"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"ID"</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> FuzzySearch(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> query)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Query(</span>
              <span style="color:#efc210">@"select
ID, email from customers</span>
              <br />
              <span style="color:#efc210"> where email LIKE('%'+@0+'%')"</span>
              <span style="color:#f1f2f3">,
query);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
Lucene or full text indexing would be better if we get lots of data.. but for now
it will be fine.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_10.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_4.png" width="244" height="175" />
          </a>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:db9110aa-9b0c-4371-8f5b-28995b7a36f7" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> $(document).ready(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchForm"</span>
              <span style="color:#f1f2f3">).submit(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val
= $(</span>
              <span style="color:#ec7600">"#search"</span>
              <span style="color:#f1f2f3">).val();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//alert("You're
looking for " + val);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//third is a callback</span>
              <br />
              <span style="color:#f1f2f3"> $.getJSON(</span>
              <span style="color:#ec7600">"/productions"</span>
              <span style="color:#f1f2f3">,
{ query: val }, </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (data)
{</span>
              <br />
              <span style="color:#f1f2f3"> alert(data.length);</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ef2eacec-2690-487e-be6f-a689d8a60a0e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpGet</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> query)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//sidestep viewgeneration
and return json</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">IEnumerable</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> results </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">null</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#e8e2b7">!</span>
              <span style="color:#93c763">string</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsNullOrEmpty(query))
{</span>
              <br />
              <span style="color:#f1f2f3"> results </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FuzzySearch(query);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">else</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> results </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">if</span>
              <span style="color:#f1f2f3"> (Request</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsAjaxRequest())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> VidpubJSON(results);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(results);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
it works – we can pass back search results back to the browser using json.
</p>
        <h3>jQuery Templates
</h3>
        <p>
using jQuery template: 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:69a8010e-bca5-4163-abb0-681d52f5d9fc" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">src=</span>
              <span style="color:#ec7600">"http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> $(document).ready(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchForm"</span>
              <span style="color:#f1f2f3">).submit(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val
= $(</span>
              <span style="color:#ec7600">"#search"</span>
              <span style="color:#f1f2f3">).val();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//alert("You're
looking for " + val);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//third is a callback</span>
              <br />
              <span style="color:#f1f2f3"> $.getJSON(</span>
              <span style="color:#ec7600">"/productions"</span>
              <span style="color:#f1f2f3">,
{ query: val }, </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (data)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//alert(data.length);</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchTemplate"</span>
              <span style="color:#f1f2f3">).tmpl(data).appendTo(</span>
              <span style="color:#ec7600">"#searchResults"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
the template:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:810e141e-6f5d-4bac-9c0d-36be1922dd51" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;li&gt;</span>
              <br />
              <span style="color:#f1f2f3"> ${Title}</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/li&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
where to display results:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3b2c13c6-58fe-4d02-ba6d-61351ebe588b" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchResults"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
want a link, so need the controller passed in so we can give it that name:
</p>
        <p>
however this will break the templating as there is an array inside…blah something:
</p>
        <p>
this will fix using looping:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5d4548b3-19b5-4338-9b93-b0785c9a1693" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> $(document).ready(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchForm"</span>
              <span style="color:#f1f2f3">).submit(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val
= $(</span>
              <span style="color:#ec7600">"#search"</span>
              <span style="color:#f1f2f3">).val();</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchResults"</span>
              <span style="color:#f1f2f3">).empty();</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> $.getJSON(</span>
              <span style="color:#ec7600">"/productions"</span>
              <span style="color:#f1f2f3">,
{ query: val }, </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (data)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> results
= { controller: </span>
              <span style="color:#ec7600">"productions"</span>
              <span style="color:#f1f2f3">,
items: data };</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchTemplate"</span>
              <span style="color:#f1f2f3">).tmpl(results).appendTo(</span>
              <span style="color:#ec7600">"#searchResults"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;table&gt;</span>
              <br />
              <span style="color:#f1f2f3"> {{each items}}</span>
              <br />
              <span style="color:#f1f2f3"> &lt;tr&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;td&gt;&lt;a href="${controller}/edit/${ID}"&gt;${Title}&lt;/a&gt;&lt;/td&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/tr&gt;</span>
              <br />
              <span style="color:#f1f2f3"> {{/each}}</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/table&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_12.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_5.png" width="244" height="182" />
          </a>
        </p>
        <h3>Putting it All Together
</h3>
        <p>
Console in Google Chrome is Ctrl+Shift+I
</p>
        <p>
abstracting code out to vidpub-search.js
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_14.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_6.png" width="654" height="502" />
          </a>
        </p>
        <p>
debugging in console.  undefined means jQuery can’t fire a method on the selector
I’ve defined.
</p>
        <p>
Instead of selecting by ID, going to select by class:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2dee5e3f-09d8-4dc7-b971-e94163a1ab2f" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> vidpubSearch
= {</span>
              <br />
              <span style="color:#f1f2f3"> resetResults: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (controller)
{</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">".search-results"</span>
              <span style="color:#f1f2f3">).empty();</span>
              <br />
              <span style="color:#f1f2f3"> },</span>
              <br />
              <span style="color:#f1f2f3"> getResults: </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3">(query,
controller) {</span>
              <br />
              <span style="color:#f1f2f3"> $.getJSON(</span>
              <span style="color:#ec7600">"/"</span>
              <span style="color:#f1f2f3">+controller,
{ query: query }, </span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> (data)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> results
= { controller: controller, items: data };</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchTemplate"</span>
              <span style="color:#f1f2f3">).tmpl(results).appendTo(</span>
              <span style="color:#ec7600">"#"</span>
              <span style="color:#f1f2f3">+controller+</span>
              <span style="color:#ec7600">"-search-results"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">};</span>
              <br />
              <span style="color:#f1f2f3">jQuery(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#searchForm"</span>
              <span style="color:#f1f2f3">).submit(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> val
= $(</span>
              <span style="color:#ec7600">"#search"</span>
              <span style="color:#f1f2f3">).val();</span>
              <br />
              <span style="color:#f1f2f3"> vidpubSearch.resetResults();</span>
              <br />
              <span style="color:#f1f2f3"> vidpubSearch.getResults(val, </span>
              <span style="color:#ec7600">"productions"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">false</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">});</span>
            </div>
          </div>
        </div>
        <p>
front end:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:32ff6d9e-5dfc-44f2-8f0b-2e5368a0569d" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"text/javascript"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">src=</span>
              <span style="color:#ec7600">"http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"</span>
              <span style="color:#f1f2f3">&gt;&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Assets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Script(</span>
              <span style="color:#ec7600">"vidpub-search.js"</span>
              <span style="color:#f1f2f3">)</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchTemplate"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text/html"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;table&gt;</span>
              <br />
              <span style="color:#f1f2f3"> {{each items}}</span>
              <br />
              <span style="color:#f1f2f3"> &lt;tr&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;td&gt;&lt;a href="${controller}/edit/${ID}"&gt;${Title}&lt;/a&gt;&lt;/td&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/tr&gt;</span>
              <br />
              <span style="color:#f1f2f3"> {{/each}}</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/table&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">h2</span>
              <span style="color:#f1f2f3">&gt;Vidpub
Admin&lt;/</span>
              <span style="color:#93c763">h2</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">form</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"searchForm"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;Find:&lt;/</span>
              <span style="color:#93c763">label</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"text"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"search"</span>
              <span style="color:#f1f2f3">/&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">input</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">type=</span>
              <span style="color:#ec7600">"submit"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">value=</span>
              <span style="color:#ec7600">"go"</span>
              <span style="color:#f1f2f3"> /&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">form</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id=</span>
              <span style="color:#ec7600">"productions-search-results"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"search-results"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
testing
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_16.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_7.png" width="495" height="484" />
          </a>
        </p>
        <h3>Review
</h3>
        <p>
dynamics a possible problem..
</p>
        <p>
we don’t have much code.. nice!
</p>
        <p>
admin ui is simple.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=b266a49b-5eb6-4eef-82b4-dd1fde18b579" />
      </body>
      <title>TekPub 5–Data pt 2</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,b266a49b-5eb6-4eef-82b4-dd1fde18b579.aspx</guid>
      <link>http://www.programgood.net/2011/09/27/TekPub5DataPt2.aspx</link>
      <pubDate>Tue, 27 Sep 2011 04:09:42 GMT</pubDate>
      <description>&lt;p&gt;
git mergetool 
&lt;/p&gt;
&lt;p&gt;
git checkout –b “admin_home”
&lt;/p&gt;
&lt;p&gt;
Html helpers won’t work with dynamics
&lt;/p&gt;
&lt;h3&gt;Make some Helpers
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
less abstraction 
&lt;/li&gt;
&lt;li&gt;
more control 
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8bb6db2d-9c5c-48f1-845d-5eeecd4705ec" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBox(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//if value is null,
set to empty string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;val&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
then
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f1146373-977d-438c-9619-078e2106a459" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Production&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Form&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBox(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
@Model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Title)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
However we want the Title property to be required:
&lt;/p&gt;
&lt;p&gt;
In MVC3 this would be:&amp;quot;&amp;#160; Html.TextBoxFor(x=&amp;gt;x.Title);
&lt;/p&gt;
&lt;p&gt;
and put a Required DataAnnotation attribute on the Production class.
&lt;/p&gt;
&lt;p&gt;
could also tell it to do in unobtrusively with jquery, and jquery validations.
&lt;/p&gt;
&lt;p&gt;
Getting rid of js files:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb.png" width="157" height="244" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
So now I just have:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_1.png" width="244" height="139" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Scripts loader for js
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d9520f57-0274-4724-8db9-96a0ddce92c1" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Scripts(){&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;jquery.validate.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;jquery.validate.unobtrusive.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
in the Form.cshtml helpers
&lt;/p&gt;
&lt;h3&gt;Validations
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:da81c6b4-ddb2-4870-946b-42d3bcd40aea" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationMessage(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;span&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-valmsg-for=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-valmsg-replace=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;span&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxRequired(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; requiredMessage &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Required&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//using HTML5 and
jQuery validations&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;val&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val-required=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;requiredMessage&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationMessage(name)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
then on the front end:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:880a3c80-a5b8-4fc0-9a1a-379b6865c8ff" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Production&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Form&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxRequired(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
@Model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Title)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
nice.
&lt;/p&gt;
&lt;p&gt;
FInally:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c6e5974a-70f5-4a4f-b569-2f6a3d9401bb" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#93c763"&gt;using&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (Html&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;BeginForm())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Html&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AntiForgeryToken()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Html&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationSummary(&lt;/span&gt;&lt;span style="color:#93c763"&gt;true&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;fieldset&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Production&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;legend&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Form&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxRequired(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
@Model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Title)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Form&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextArea(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Description&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
@Model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Description)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Form&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxNumber(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Price&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
@Model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Price)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Save&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;fieldset&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
and helpers:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:184b8af2-ab6c-4474-801b-79dcc9272f5a" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Scripts(){&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;jquery.validate.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;jquery.validate.unobtrusive.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationMessage(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;span&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;field-validation-valid&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-valmsg-for=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-valmsg-replace=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;span&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBox(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//if value is null,
set to empty string&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;val&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxRequired(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; requiredMessage &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Required&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//using HTML5 and
jQuery validations&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name
*&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;val&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val-required=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;requiredMessage&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationMessage(name)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextBoxNumber(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; numberMessage &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Should
be a number&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//using HTML5 and
jQuery validations&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name
*&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;val&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;data-val-number=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;numberMessage&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ValidationMessage(name)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TextArea(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; name, &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; attributes &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;name&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;textarea&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;name=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#ec7600"&gt;name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;attributes
&amp;gt;&lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;val&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;textarea&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;p&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;More Security
&lt;/h3&gt;
&lt;p&gt;
Not using ASP Net Membership, so how can control security on controllers?
&lt;/p&gt;
&lt;p&gt;
We could just add [Authorize(Role)] attribute if we were using ASP Net Membership
on each controller class or method.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ff0f18bf-fb97-4dcd-8cc1-9e3142a40def" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;[&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Authorize&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Roles &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;asdf&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
no notion of roles in this site
&lt;/p&gt;
&lt;p&gt;
We are going to go simple – create an Action Filter.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Can’t pass a dynamic argument to an extension method.
&lt;/p&gt;
&lt;h3&gt;Roll own Simple Authorization
&lt;/h3&gt;
&lt;p&gt;
make an attribute / ActionFilter
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fe51cbbb-30a6-4db6-9764-46e257b44f73" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Infrastructure
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;RequiredAdminAttribute&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionFilterAttribute&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;override&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; OnActionExecuting(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionExecutingContext&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; filterContext)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//pull the controller
off the context passed in&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//and cast it as own
ApplicationController&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; controller &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ApplicationController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)filterContext&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Controller;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//user logged in?&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;!&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;controller&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsLoggedIn)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; controller&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;You
need to be logged in to do that&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; filterContext&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;HttpContext&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Response&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Redirect(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/account/logon&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//is the user an admin&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; adminEmails &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;robconery@gmail.com&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;rob@tekpub.com&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;davemateer@gmail.com&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//CurrentUser is a
field in our ApplicationController&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//can&amp;#39;t use var...
as it would be ynamic object..need to tell the compiler&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; userEmail &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; controller&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CurrentUser&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Email;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;!&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;adminEmails&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Contains(userEmail))
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; controller&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;You
are not authorized&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; filterContext&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;HttpContext&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Response&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Redirect(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/account/logon&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
this wired up to the field on ApplicationController, which tells us if a user is logged
in, and then which user.
&lt;/p&gt;
&lt;p&gt;
then wire up on CruddyController the actions that need to be authorised.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8afc7d68-aebb-42a2-b6c7-905205ab0332" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;RequiredAdmin&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Prototype);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ValidateAntiForgeryToken&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;RequiredAdmin&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(item);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;alert&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was an error adding this item&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;RequiredAdmin&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Get(ID:
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;_Table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;RequiredAdmin&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Update(model,
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Exception&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ex)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem editing this record&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;A Little jQuery
&lt;/h3&gt;
&lt;p&gt;
Firebug
&lt;/p&gt;
&lt;p&gt;
Why:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Write less server code 
&lt;/li&gt;
&lt;li&gt;
More response app 
&lt;/li&gt;
&lt;li&gt;
More compelling app 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Add in json serialization, so we can talk javascript!
&lt;/p&gt;
&lt;p&gt;
Usually we’d go with something like:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:719fabc8-2327-4142-a602-867abc432147" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Json(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All(),
JsonRequestBehavior&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;AllowGet);&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
json.net a lot of people use as a serialiser.
&lt;/p&gt;
&lt;p&gt;
However lets see if can solve it on own without taking another dependency
&lt;/p&gt;
&lt;p&gt;
Getting Json dates to displayed correctly is a long running problem.&amp;#160; Write own,
then use strings everywhere to make life simpler.&amp;#160; Dave Ward &lt;a href="http://encosia.com/"&gt;http://encosia.com/&lt;/a&gt; write
this.
&lt;/p&gt;
&lt;p&gt;
Couldn’t get json to output correctly, problem was glimpse…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_2.png" width="644" height="202" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Fiddler was very useful here.
&lt;/p&gt;
&lt;p&gt;
Our new way of calling json serializer:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:27646cf2-1f44-47eb-9e8a-60da643fc228" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpGet&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; query)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//sidestep viewgeneration
and return json&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IEnumerable&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; results &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; results &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidpubJSON(results);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidpubJSON(&lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; content)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; serializer &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;JavaScriptSerializer&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; serializer&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;RegisterConverters(&lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;JavaScriptConverter&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObjectConverter&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;()
});&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; json &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; serializer&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Serialize(content);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//Response.ContentType
= &amp;quot;application/json&amp;quot;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Content(json);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
and Dave Wards converter which cracks open the IDictionary backing the Expando, explicitly
assigns key value bindings that are required…
&lt;/p&gt;
&lt;p&gt;
so then we can parse down to a shortDateString (the dates)
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7b88ba0f-2f5c-4312-8ec3-ffcec90c8547" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Infrastructure
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObjectConverter&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;JavaScriptConverter&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;override&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IEnumerable&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Type&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; SupportedTypes
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; { &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ReadOnlyCollection&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Type&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;List&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Type&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;typeof&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObject&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
})); }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;override&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IDictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Serialize(&lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; obj, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;JavaScriptSerializer&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; serializer)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObject&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; expando &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObject&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)obj;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (expando &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;!=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// Create the representation.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Dictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Dictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;KeyValuePair&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; expando)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (value&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;GetType() &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;==&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;typeof&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DateTime&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;))&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key,
((&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DateTime&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)value)&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToShortDateString());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; result&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key,
value&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToString());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Dictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;override&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Deserialize(&lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IDictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dictionary, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; type, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;JavaScriptSerializer&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; serializer)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ExpandoObject&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (dictionary &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;!=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// Create the representation.&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dc &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IDictionary&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)result;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;KeyValuePair&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#93c763"&gt;object&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; dictionary)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Value &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;??&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; dc&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(item&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Key,
value);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; result;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Put verbs HttpPut on Edit post, and HttpDelete on a delete post.
&lt;/p&gt;
&lt;h3&gt;jQuery
&lt;/h3&gt;
&lt;p&gt;
Making a searchbox.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5f501c20-16ca-4ac6-a933-8395380f0d6e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(document).ready(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).submit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;You&amp;#39;re
looking for &amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; + val);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;h2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Vidpub
Admin&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;h2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;form&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Find:&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;/&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;go&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;form&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_3.png" width="244" height="178" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
want to search over:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Productions 
&lt;/li&gt;
&lt;li&gt;
Episodes 
&lt;/li&gt;
&lt;li&gt;
Customers 
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7a971183-138f-4040-a1e5-cc8b81ee1cfa" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Customers&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Customers()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#93c763"&gt;base&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;VidPub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Customers&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FuzzySearch(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; query)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Query(&lt;/span&gt;&lt;span style="color:#efc210"&gt;@&amp;quot;select
ID, email from customers&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#efc210"&gt; where email LIKE(&amp;#39;%&amp;#39;+@0+&amp;#39;%&amp;#39;)&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
query);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Lucene or full text indexing would be better if we get lots of data.. but for now
it will be fine.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_4.png" width="244" height="175" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:db9110aa-9b0c-4371-8f5b-28995b7a36f7" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(document).ready(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).submit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//alert(&amp;quot;You&amp;#39;re
looking for &amp;quot; + val);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//third is a callback&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $.getJSON(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
{ query: val }, &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (data)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; alert(data.length);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ef2eacec-2690-487e-be6f-a689d8a60a0e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpGet&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; query)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//sidestep viewgeneration
and return json&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;IEnumerable&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; results &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;null&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;!&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsNullOrEmpty(query))
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; results &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FuzzySearch(query);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;else&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; results &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;if&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (Request&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsAjaxRequest())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidpubJSON(results);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(results);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
it works – we can pass back search results back to the browser using json.
&lt;/p&gt;
&lt;h3&gt;jQuery Templates
&lt;/h3&gt;
&lt;p&gt;
using jQuery template: 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:69a8010e-bca5-4163-abb0-681d52f5d9fc" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;src=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(document).ready(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).submit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//alert(&amp;quot;You&amp;#39;re
looking for &amp;quot; + val);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//third is a callback&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $.getJSON(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
{ query: val }, &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (data)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//alert(data.length);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).tmpl(data).appendTo(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchResults&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
the template:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:810e141e-6f5d-4bac-9c0d-36be1922dd51" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;li&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ${Title}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
where to display results:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3b2c13c6-58fe-4d02-ba6d-61351ebe588b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchResults&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
want a link, so need the controller passed in so we can give it that name:
&lt;/p&gt;
&lt;p&gt;
however this will break the templating as there is an array inside…blah something:
&lt;/p&gt;
&lt;p&gt;
this will fix using looping:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5d4548b3-19b5-4338-9b93-b0785c9a1693" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(document).ready(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).submit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).val();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchResults&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).empty();&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $.getJSON(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
{ query: val }, &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (data)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; results
= { controller: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
items: data };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).tmpl(results).appendTo(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchResults&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;table&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {{each items}}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;${controller}/edit/${ID}&amp;quot;&amp;gt;${Title}&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {{/each}}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_5.png" width="244" height="182" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Putting it All Together
&lt;/h3&gt;
&lt;p&gt;
Console in Google Chrome is Ctrl+Shift+I
&lt;/p&gt;
&lt;p&gt;
abstracting code out to vidpub-search.js
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_14.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_6.png" width="654" height="502" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
debugging in console.&amp;#160; undefined means jQuery can’t fire a method on the selector
I’ve defined.
&lt;/p&gt;
&lt;p&gt;
Instead of selecting by ID, going to select by class:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2dee5e3f-09d8-4dc7-b971-e94163a1ab2f" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; vidpubSearch
= {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; resetResults: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (controller)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;.search-results&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).empty();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; },&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; getResults: &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(query,
controller) {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $.getJSON(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;+controller,
{ query: query }, &lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (data)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; results
= { controller: controller, items: data };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).tmpl(results).appendTo(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;+controller+&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;-search-results&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;};&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;jQuery(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).submit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; val
= $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).val();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; vidpubSearch.resetResults();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; vidpubSearch.getResults(val, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;false&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;});&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
front end:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:32ff6d9e-5dfc-44f2-8f0b-2e5368a0569d" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;src=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Assets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Script(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;vidpub-search.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchTemplate&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text/html&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;table&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {{each items}}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;${controller}/edit/${ID}&amp;quot;&amp;gt;${Title}&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {{/each}}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;h2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Vidpub
Admin&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;h2&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;form&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;searchForm&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;Find:&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;label&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;search&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;/&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;input&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;type=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;value=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;go&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;form&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;productions-search-results&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;search-results&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
testing
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_16.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub-5Data-pt-2_ABB0/image_thumb_7.png" width="495" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Review
&lt;/h3&gt;
&lt;p&gt;
dynamics a possible problem..
&lt;/p&gt;
&lt;p&gt;
we don’t have much code.. nice!
&lt;/p&gt;
&lt;p&gt;
admin ui is simple.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=b266a49b-5eb6-4eef-82b4-dd1fde18b579" /&gt;</description>
      <category>jQuery</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=a2d5da18-8daf-440a-b725-ad644e9c02c6</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,a2d5da18-8daf-440a-b725-ad644e9c02c6.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Use wordpress theme!
</p>
        <p>
What is the business model?
</p>
        <ul>
          <li>
Sell videos (ie download) 
</li>
          <li>
Sell access to the videos (ie stream) 
</li>
          <li>
Have small chunks ie episodes 
</li>
        </ul>
        <p>
What is our model (starting in baby steps)?
</p>
        <ul>
          <li>
A Customer buys a Production 
</li>
          <li>
A Production is one or more Episodes 
</li>
          <li>
A Customer buys a Subscription 
</li>
          <li>
A Subscription gives access to Productions 
</li>
        </ul>
        <p>
so episodes cannot be purchased individually.
</p>
        <h3>Write Tests
</h3>
        <ol>
          <li>
CustomerSpecs 
</li>
          <li>
SubscriptionSpecs 
</li>
          <li>
ProductionSpecs 
</li>
          <li>
EpisodeSpecs 
</li>
        </ol>
        <p>
Share them with the team as a discussion around business logic.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d1c201cd-6c35-4956-9e10-8837234e5d60" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">[</span>
              <span style="color:#678cb1">TestFixture</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">CustomerSpecs</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">TestBase</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_should_be_able_to_add_production_to_cart()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_that_owns_a_production_should_be_able_to_stream()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_that_owns_a_production_should_be_able_to_download()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_should_have_be_able_to_purchase_sub()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_with_monthly_should_only_be_able_to_stream()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_with_yearly_should_be_able_to_stream_and_download()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_with_cancelled_sub_should_not_be_able_to_stream_or_download()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_with_a_suspended_sub_should_not_be_able_to_stream_or_download()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_with_overdue_sub_should_be_able_to_stream_or_download()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_user_should_be_able_to_cancel_sub()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b383d60a-dfbf-4348-9f60-ff864705acf4" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//A
Subscription grants access over time</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//there is a monthly
and a yearly</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//a monthly subscription
offers stream only access</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//a yearly offers
stream and download</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//a Customer can buy
a subscription</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">TestFixture</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">SubscriptionSpecs</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">TestBase</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_subscription_is_only_valid_one_per_user()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_subscription_can_be_pending_current_overdue_suspended_or_cancelled()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_pending_subscription_can_turn_current()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_current_subscription_can_become_overdue_if_payment_late()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> an_overdue_subscription_can_become_current_if_payment_received_in_full()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> an_overdue_subscription_can_become_suspended_if_payment_not_received_after_3_tries()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_subscription_can_be_upgraded_from_monthly_to_annual()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_subscription_cannot_be_downgraded_from_annual_to_monthly()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1823ba13-a05b-4232-b657-be6b9313a40d" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#66747b">//A
Production is a collection of Episodes</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//A Customer can buy
a Production</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//A Customer cannot
buy an individual episode</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#f1f2f3">[</span>
              <span style="color:#678cb1">TestFixture</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ProductionSpecs</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">TestBase</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_production_has_one_or_more_episodes()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_production_can_cost_0_or_more_dollars()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_production_can_be_in_production_published_suspended_or_offline()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_production_is_viewable_if_not_offline()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> a_production_can_be_downloaded_if_flagged()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> episodes_can_be_released_offline_in_process()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> episodes_are_viewable_if_released()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_notes_per_production()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_notes_per_episode()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_when_an_episode_and_production_was_released()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_who_authored_the_production()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_how_long_an_episode_is()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Test</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">void</span>
              <span style="color:#f1f2f3"> customers_can_see_total_duration_of_production()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">this</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">IsPending();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
            </div>
          </div>
        </div>
        <h3>DB
</h3>
        <p>
DB First, Classes (or code) First, Migrations (from Rails world)
</p>
        <p>
but .NET people don’t know migrations so leave for now.
</p>
        <p>
EF Code-first
</p>
        <p>
git checkout –b “codefirst”
</p>
        <h3>EF Code-first
</h3>
        <p>
NuGet install in Web project.
</p>
        <p>
Make classes with some properties:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:45736a72-56de-44fd-93ae-17b3a26ede7c" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">decimal</span>
              <span style="color:#f1f2f3"> Price
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
Rob isn’t a fan of DataAnnotations…messy.  More attributes than code… aren’t
descriptive.. hard to refactor.
</p>
        <p>
eg in AccountModel:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:83fa117e-db52-428b-becd-15e096de54ac" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ChangePasswordModel</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Password)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Current
password"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> OldPassword
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">StringLength</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ffcd22">100</span>
              <span style="color:#f1f2f3">,
ErrorMessage </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"The
{0} must be at least {2} characters long."</span>
              <span style="color:#f1f2f3">,
MinimumLength </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ffcd22">6</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Password)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"New
password"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> NewPassword
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Password)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Confirm
new password"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Compare</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"NewPassword"</span>
              <span style="color:#f1f2f3">,
ErrorMessage </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"The
new password and confirmation password do not match."</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> ConfirmPassword
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">LogOnModel</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"User
name"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> UserName
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#678cb1">DataType</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Password)]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Password"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Password
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Display</span>
              <span style="color:#f1f2f3">(Name </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"Remember
me?"</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">bool</span>
              <span style="color:#f1f2f3"> RememberMe
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
setup DbContext:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c14e67f-076d-43a2-b188-802eb2a44526" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">VidpubDBContext</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">DbContext</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">DbSet</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> Productions
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
Trick#1 – EF will try to use .\SQLExpress
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb.png" width="794" height="324" />
          </a>
        </p>
        <p>
No PK defined.
</p>
        <p>
Guids as PK’s make DBA’s cry?
</p>
        <p>
EF Conventions will use these as PK’s:
</p>
        <ul>
          <li>
ProductionID 
</li>
          <li>
ID 
</li>
        </ul>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8c0c4cbc-c07f-492d-91d9-f59d8609127c" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">decimal</span>
              <span style="color:#f1f2f3"> Price
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_1.png" width="644" height="182" />
          </a>
        </p>
        <p>
with no connection string defined we have our db created.
</p>
        <p>
However its made the nvarchar(MAX) which isn’t good..
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:46549dff-790d-4768-b4b3-70dc243b2175" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">MaxLength</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ffcd22">200</span>
              <span style="color:#f1f2f3">)]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">decimal</span>
              <span style="color:#f1f2f3"> Price
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
however on recompile:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_2.png" width="868" height="370" />
          </a>
        </p>
        <p>
Tip #2: EF Code-first won’t run ALTER… its drop or recreate.
</p>
        <h3>FK
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0e96c6f9-57e4-4aba-a78d-1402ae6621cc" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">decimal</span>
              <span style="color:#f1f2f3"> Price
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">ICollection</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> Episodes
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ProductionID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
and it gen’s up the database fine.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f27e52a4-b018-4db6-987a-3a14415293f7" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> db </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#678cb1">VidpubDBContext</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> p </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {
Title </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"My
Production"</span>
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> e </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#f1f2f3"> {
Title </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"My
Episode"</span>
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3"> p</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Episodes </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">List</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> p</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Episodes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(e);</span>
              <br />
              <span style="color:#f1f2f3"> db</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Productions</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Add(p);</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> db</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">SaveChanges();</span>
            </div>
          </div>
        </div>
        <h3>MVC Scaffolding
</h3>
        <p>
git checkout –b “scaffolding”
</p>
        <pre>Install-Package MvcScaffolding</pre>
        <p>
only have this in the model (no dbcontext from above)
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:57db9b42-bd55-4fab-8261-4e3d086792ba" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Production</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">Required</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Description
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">decimal</span>
              <span style="color:#f1f2f3"> Price
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">ICollection</span>
              <span style="color:#e8e2b7">&lt;</span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#e8e2b7">&gt;</span>
              <span style="color:#f1f2f3"> Episodes
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Episode</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> ProductionID
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> Title
{ </span>
              <span style="color:#93c763">get</span>
              <span style="color:#f1f2f3">; </span>
              <span style="color:#93c763">set</span>
              <span style="color:#f1f2f3">;
}</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <pre>Scaffold Controller production</pre>
        <pre>
          <font face="Arial">And it worked:</font>
        </pre>
        <pre>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_3.png" width="456" height="503" />
          </a>
        </pre>
        <pre>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_4.png" width="407" height="429" />
          </a>
        </pre>
        <p>
hmm – fast to go.. but even changes need to make eg varchar(max), database regens..
are going to get old v.soon.
</p>
        <h3>Opinion
</h3>
        <p>
EF and Code-first… more work…in real world.
</p>
        <p>
Make model in Database:
</p>
        <p>
The less abstractions the better.. he loves rails activerecord.
</p>
        <p>
Scaleable and Maintainable
</p>
        <p>
More dev’s will know EF in the future years than anything else.
</p>
        <p>
Good/Bad opinion of EF - 
</p>
        <h3>Massive
</h3>
        <p>
Bad – future hires won’t know it
</p>
        <p>
Good
</p>
        <ul>
          <li>
small and simple 
</li>
          <li>
high perf 
</li>
          <li>
this has worked for Rob in the past 
</li>
        </ul>
        <h3>Controller Design
</h3>
        <p>
Design RESTfully
</p>
        <p>
REpresentational State Trasfer
</p>
        <p>
“create an experience for a user that is predictable and understandable based on a
url”
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_16.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_7.png" width="244" height="159" />
          </a>
        </p>
        <p>
so now have a controller that is stubbed out and ready to go.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a74d049-b5e9-432b-bb82-8139ed1c313f" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ProductionsController</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">Controller</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> ProductionsController()
{</span>
              <br />
              <span style="color:#f1f2f3"> _table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index()</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
then create a view:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_18.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_8.png" width="493" height="496" />
          </a>
        </p>
        <p>
fooling the tooling a bit as we’re going to be using dynamics, so chose any object.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_20.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_9.png" width="597" height="484" />
          </a>
        </p>
        <p>
Made db in the db! From the dbscript.sql file that came with VidPub.
</p>
        <p>
So now we’ve got data reading from via Massive.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f4c13923-5c93-4d8f-8bbd-f7d561ae55bd" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ProductionsController</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">Controller</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> ProductionsController()
{</span>
              <br />
              <span style="color:#f1f2f3"> _table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index()</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
via Massive (vidpub connection string in web.config)
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:64f02cff-75d3-4ba8-bae3-67f5f50fca2f" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">DynamicModel</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> Productions()</span>
              <br />
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#93c763">base</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#ec7600">"VidPub"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"Productions"</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#ec7600">"ID"</span>
              <span style="color:#f1f2f3">)
{</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4c95d847-8966-4335-99e6-7793c8bea590" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">connectionStrings</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">add</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">name</span>
              <span style="color:#f1f2f3">=</span>"<span style="color:#ec7600">VidPub</span>"<span style="color:#f1f2f3"></span><span style="color:#678cb1">connectionString</span><span style="color:#f1f2f3">=</span>"<span style="color:#ec7600">server=.\;database=VidPub_Dev;integrated
security=true</span>"<span style="color:#f1f2f3"> /&gt;</span></div>
          </div>
        </div>
        <p>
and rendered:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_22.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_10.png" width="644" height="354" />
          </a>
        </p>
        <h3>Views
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ac277c61-7ef3-4a4c-96e5-90b0d32554d3" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">[</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create(</span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(item);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"alert"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was an error adding this item"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
CreateFrom creates a new Expando, white listed against the columns in the db.
</p>
        <h3>Customizing the Generators - T4
</h3>
        <p>
As we can’t do @Html.TextBox(“title”, Model.Title)… extension methods and dynamics
don’t play well together.
</p>
        <p>
If we do string title = Model.Title then it all works.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_5.png" width="644" height="322" />
          </a>
        </p>
        <p>
This added a bunch of templates":
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_6.png" width="237" height="417" />
          </a>
        </p>
        <p>
Then just took our ProductionsController code and put it into the template Controller.tt
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:27adfbfc-bcba-48e0-8a2b-8e5c57309b16" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;#@
template language="C#" HostSpecific="True" #&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;#</span>
              <br />
              <span style="color:#f1f2f3">MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)(Host);</span>
              <br />
              <span style="color:#f1f2f3">#&gt;</span>
              <br />
              <span style="color:#f1f2f3">using System;</span>
              <br />
              <span style="color:#f1f2f3">using System.Collections.Generic;</span>
              <br />
              <span style="color:#f1f2f3">using System.Linq;</span>
              <br />
              <span style="color:#f1f2f3">using System.Web;</span>
              <br />
              <span style="color:#f1f2f3">using System.Web.Mvc;</span>
              <br />
              <span style="color:#f1f2f3">using VidPub.Web.Models;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">&lt;#</span>
              <br />
              <span style="color:#f1f2f3">var controllerName = mvcHost.ControllerName;</span>
              <br />
              <span style="color:#f1f2f3">var nameSpace = mvcHost.Namespace;</span>
              <br />
              <span style="color:#f1f2f3">var tableName = controllerName.Replace("Controller",
"");</span>
              <br />
              <span style="color:#f1f2f3">#&gt;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">namespace &lt;#= nameSpace #&gt; {</span>
              <br />
              <span style="color:#f1f2f3">public class &lt;#= controllerName #&gt; : Controller</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> dynamic _table;</span>
              <br />
              <span style="color:#f1f2f3"> public &lt;#= controllerName #&gt;() {</span>
              <br />
              <span style="color:#f1f2f3"> _table = new &lt;#= tableName #&gt;();</span>
              <br />
              <span style="color:#f1f2f3"> ViewBag.Table = _table;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> public ActionResult Index()</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> return View(_table.All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
So now it generates much more cleanly.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f5164350-e40f-4c8d-bd17-51a680389d13" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Controllers</span>
              <br />
              <span style="color:#f1f2f3">{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ProductionsController</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">ApplicationController</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> ProductionsController()
{</span>
              <br />
              <span style="color:#f1f2f3"> _table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Productions</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3"> ViewBag</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index()</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Details(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FindBy(ID:
id, schema: </span>
              <span style="color:#93c763">true</span>
              <span style="color:#f1f2f3">));</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create()</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Prototype);</span>
              <br />
              <span style="color:#f1f2f3"> } </span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">ValidateAntiForgeryToken</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create(</span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(item);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"alert"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was an error adding this item"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Get(ID:
id);</span>
              <br />
              <span style="color:#f1f2f3"> model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">_Table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id, </span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Update(model,
id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">Exception</span>
              <span style="color:#f1f2f3"> ex)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was a problem editing this record"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Delete(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">ValidateAntiForgeryToken</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Delete(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id, </span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Delete(id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <br />
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was a problem deleting this record"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <h3>CruddyController
</h3>
        <p>
abstracting to a base class the cruddyness:
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:10e8b0ab-efd2-4992-b4e8-238c993bbee6" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#93c763">namespace</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Infrastructure
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">CruddyController</span>
              <span style="color:#f1f2f3"> : </span>
              <span style="color:#678cb1">ApplicationController</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">// IoC will need to
inject a tokenStore in everything that inhertis hmmmmmm</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3"> CruddyController(</span>
              <span style="color:#8c8cb4">ITokenHandler</span>
              <span style="color:#f1f2f3"> tokenStore)
: </span>
              <span style="color:#93c763">base</span>
              <span style="color:#f1f2f3">(tokenStore)
{}</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">protected</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#66747b">//all virtual so can
override if necessary</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Index()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">All());</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Details(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FindBy(ID:
id, schema: </span>
              <span style="color:#93c763">true</span>
              <span style="color:#f1f2f3">));</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(_table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Prototype);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">ValidateAntiForgeryToken</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Create(</span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Insert(item);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"alert"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was an error adding this item"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Get(ID:
id);</span>
              <br />
              <span style="color:#f1f2f3"> model</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">_Table </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Edit(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id, </span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> model </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CreateFrom(collection);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Update(model,
id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#678cb1">Exception</span>
              <span style="color:#f1f2f3"> ex)
{</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was a problem editing this record"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(model);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Delete(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">HttpPost</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3"> [</span>
              <span style="color:#678cb1">ValidateAntiForgeryToken</span>
              <span style="color:#f1f2f3">]</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">virtual</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">ActionResult</span>
              <span style="color:#f1f2f3"> Delete(</span>
              <span style="color:#93c763">int</span>
              <span style="color:#f1f2f3"> id, </span>
              <span style="color:#678cb1">FormCollection</span>
              <span style="color:#f1f2f3"> collection)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">try</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> _table</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Delete(id);</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> RedirectToAction(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">catch</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3"> TempData[</span>
              <span style="color:#ec7600">"Error"</span>
              <span style="color:#f1f2f3">] </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"There
was a problem deleting this record"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> View(</span>
              <span style="color:#ec7600">"Index"</span>
              <span style="color:#f1f2f3">);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <h3>Review
</h3>
        <ul>
          <li>
Use what you know and get app to market</li>
          <li>
Big ORM in startup can get in the way</li>
          <li>
Build whats needed, no more</li>
          <li>
Avoided orm here</li>
        </ul>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=a2d5da18-8daf-440a-b725-ad644e9c02c6" />
      </body>
      <title>TekPub4–Data</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,a2d5da18-8daf-440a-b725-ad644e9c02c6.aspx</guid>
      <link>http://www.programgood.net/2011/09/25/TekPub4Data.aspx</link>
      <pubDate>Sun, 25 Sep 2011 23:51:11 GMT</pubDate>
      <description>&lt;p&gt;
Use wordpress theme!
&lt;/p&gt;
&lt;p&gt;
What is the business model?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Sell videos (ie download) 
&lt;/li&gt;
&lt;li&gt;
Sell access to the videos (ie stream) 
&lt;/li&gt;
&lt;li&gt;
Have small chunks ie episodes 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
What is our model (starting in baby steps)?
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A Customer buys a Production 
&lt;/li&gt;
&lt;li&gt;
A Production is one or more Episodes 
&lt;/li&gt;
&lt;li&gt;
A Customer buys a Subscription 
&lt;/li&gt;
&lt;li&gt;
A Subscription gives access to Productions 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
so episodes cannot be purchased individually.
&lt;/p&gt;
&lt;h3&gt;Write Tests
&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
CustomerSpecs 
&lt;/li&gt;
&lt;li&gt;
SubscriptionSpecs 
&lt;/li&gt;
&lt;li&gt;
ProductionSpecs 
&lt;/li&gt;
&lt;li&gt;
EpisodeSpecs 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Share them with the team as a discussion around business logic.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d1c201cd-6c35-4956-9e10-8837234e5d60" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;[&lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestFixture&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;CustomerSpecs&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestBase&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_should_be_able_to_add_production_to_cart()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_that_owns_a_production_should_be_able_to_stream()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_that_owns_a_production_should_be_able_to_download()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_should_have_be_able_to_purchase_sub()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_with_monthly_should_only_be_able_to_stream()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_with_yearly_should_be_able_to_stream_and_download()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_with_cancelled_sub_should_not_be_able_to_stream_or_download()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_with_a_suspended_sub_should_not_be_able_to_stream_or_download()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_with_overdue_sub_should_be_able_to_stream_or_download()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_user_should_be_able_to_cancel_sub()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b383d60a-dfbf-4348-9f60-ff864705acf4" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//A
Subscription grants access over time&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//there is a monthly
and a yearly&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//a monthly subscription
offers stream only access&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//a yearly offers
stream and download&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//a Customer can buy
a subscription&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestFixture&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;SubscriptionSpecs&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestBase&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_subscription_is_only_valid_one_per_user()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_subscription_can_be_pending_current_overdue_suspended_or_cancelled()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_pending_subscription_can_turn_current()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_current_subscription_can_become_overdue_if_payment_late()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; an_overdue_subscription_can_become_current_if_payment_received_in_full()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; an_overdue_subscription_can_become_suspended_if_payment_not_received_after_3_tries()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_subscription_can_be_upgraded_from_monthly_to_annual()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_subscription_cannot_be_downgraded_from_annual_to_monthly()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1823ba13-a05b-4232-b657-be6b9313a40d" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#66747b"&gt;//A
Production is a collection of Episodes&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//A Customer can buy
a Production&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//A Customer cannot
buy an individual episode&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[&lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestFixture&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ProductionSpecs&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;TestBase&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_production_has_one_or_more_episodes()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_production_can_cost_0_or_more_dollars()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_production_can_be_in_production_published_suspended_or_offline()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_production_is_viewable_if_not_offline()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; a_production_can_be_downloaded_if_flagged()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; episodes_can_be_released_offline_in_process()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; episodes_are_viewable_if_released()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_notes_per_production()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_notes_per_episode()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_when_an_episode_and_production_was_released()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_who_authored_the_production()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_how_long_an_episode_is()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Test&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;void&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; customers_can_see_total_duration_of_production()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;this&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;IsPending();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;DB
&lt;/h3&gt;
&lt;p&gt;
DB First, Classes (or code) First, Migrations (from Rails world)
&lt;/p&gt;
&lt;p&gt;
but .NET people don’t know migrations so leave for now.
&lt;/p&gt;
&lt;p&gt;
EF Code-first
&lt;/p&gt;
&lt;p&gt;
git checkout –b “codefirst”
&lt;/p&gt;
&lt;h3&gt;EF Code-first
&lt;/h3&gt;
&lt;p&gt;
NuGet install in Web project.
&lt;/p&gt;
&lt;p&gt;
Make classes with some properties:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:45736a72-56de-44fd-93ae-17b3a26ede7c" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;decimal&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Price
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Rob isn’t a fan of DataAnnotations…messy.&amp;#160; More attributes than code… aren’t
descriptive.. hard to refactor.
&lt;/p&gt;
&lt;p&gt;
eg in AccountModel:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:83fa117e-db52-428b-becd-15e096de54ac" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ChangePasswordModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Password)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Current
password&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; OldPassword
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;StringLength&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;100&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
ErrorMessage &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;The
{0} must be at least {2} characters long.&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
MinimumLength &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;6&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Password)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;New
password&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; NewPassword
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Password)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Confirm
new password&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Compare&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;NewPassword&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
ErrorMessage &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;The
new password and confirmation password do not match.&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ConfirmPassword
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;LogOnModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;User
name&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; UserName
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;DataType&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Password)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Password&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Password
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Display&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(Name &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Remember
me?&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;bool&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RememberMe
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
setup DbContext:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c14e67f-076d-43a2-b188-802eb2a44526" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;VidpubDBContext&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DbContext&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DbSet&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Trick#1 – EF will try to use .\SQLExpress
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb.png" width="794" height="324" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
No PK defined.
&lt;/p&gt;
&lt;p&gt;
Guids as PK’s make DBA’s cry?
&lt;/p&gt;
&lt;p&gt;
EF Conventions will use these as PK’s:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ProductionID 
&lt;/li&gt;
&lt;li&gt;
ID 
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8c0c4cbc-c07f-492d-91d9-f59d8609127c" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;decimal&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Price
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_1.png" width="644" height="182" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
with no connection string defined we have our db created.
&lt;/p&gt;
&lt;p&gt;
However its made the nvarchar(MAX) which isn’t good..
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:46549dff-790d-4768-b4b3-70dc243b2175" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;MaxLength&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ffcd22"&gt;200&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;decimal&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Price
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
however on recompile:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_2.png" width="868" height="370" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Tip #2: EF Code-first won’t run ALTER… its drop or recreate.
&lt;/p&gt;
&lt;h3&gt;FK
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0e96c6f9-57e4-4aba-a78d-1402ae6621cc" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;decimal&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Price
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;ICollection&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Episodes
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
and it gen’s up the database fine.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f27e52a4-b018-4db6-987a-3a14415293f7" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; db &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#678cb1"&gt;VidpubDBContext&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; p &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {
Title &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;My
Production&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; e &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {
Title &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;My
Episode&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; p&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Episodes &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;List&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; p&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Episodes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(e);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; db&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Productions&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Add(p);&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; db&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;SaveChanges();&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;MVC Scaffolding
&lt;/h3&gt;
&lt;p&gt;
git checkout –b “scaffolding”
&lt;/p&gt;
&lt;pre&gt;Install-Package MvcScaffolding&lt;/pre&gt;
&lt;p&gt;
only have this in the model (no dbcontext from above)
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:57db9b42-bd55-4fab-8261-4e3d086792ba" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Production&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Required&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Description
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;decimal&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Price
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;ICollection&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Episodes
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Episode&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionID
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Title
{ &lt;/span&gt;&lt;span style="color:#93c763"&gt;get&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;; &lt;/span&gt;&lt;span style="color:#93c763"&gt;set&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;
}&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre&gt;Scaffold Controller production&lt;/pre&gt;
&lt;pre&gt;&lt;font face="Arial"&gt;And it worked:&lt;/font&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_3.png" width="456" height="503" /&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_4.png" width="407" height="429" /&gt;&lt;/a&gt;&lt;/pre&gt;
&lt;p&gt;
hmm – fast to go.. but even changes need to make eg varchar(max), database regens..
are going to get old v.soon.
&lt;/p&gt;
&lt;h3&gt;Opinion
&lt;/h3&gt;
&lt;p&gt;
EF and Code-first… more work…in real world.
&lt;/p&gt;
&lt;p&gt;
Make model in Database:
&lt;/p&gt;
&lt;p&gt;
The less abstractions the better.. he loves rails activerecord.
&lt;/p&gt;
&lt;p&gt;
Scaleable and Maintainable
&lt;/p&gt;
&lt;p&gt;
More dev’s will know EF in the future years than anything else.
&lt;/p&gt;
&lt;p&gt;
Good/Bad opinion of EF - 
&lt;/p&gt;
&lt;h3&gt;Massive
&lt;/h3&gt;
&lt;p&gt;
Bad – future hires won’t know it
&lt;/p&gt;
&lt;p&gt;
Good
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
small and simple 
&lt;/li&gt;
&lt;li&gt;
high perf 
&lt;/li&gt;
&lt;li&gt;
this has worked for Rob in the past 
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Controller Design
&lt;/h3&gt;
&lt;p&gt;
Design RESTfully
&lt;/p&gt;
&lt;p&gt;
REpresentational State Trasfer
&lt;/p&gt;
&lt;p&gt;
“create an experience for a user that is predictable and understandable based on a
url”
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_7.png" width="244" height="159" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
so now have a controller that is stubbed out and ready to go.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a74d049-b5e9-432b-bb82-8139ed1c313f" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ProductionsController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Controller&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionsController()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
then create a view:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_8.png" width="493" height="496" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
fooling the tooling a bit as we’re going to be using dynamics, so chose any object.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_9.png" width="597" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Made db in the db! From the dbscript.sql file that came with VidPub.
&lt;/p&gt;
&lt;p&gt;
So now we’ve got data reading from via Massive.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f4c13923-5c93-4d8f-8bbd-f7d561ae55bd" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ProductionsController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Controller&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionsController()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
via Massive (vidpub connection string in web.config)
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:64f02cff-75d3-4ba8-bae3-67f5f50fca2f" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DynamicModel&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Productions()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#93c763"&gt;base&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;VidPub&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Productions&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4c95d847-8966-4335-99e6-7793c8bea590" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;connectionStrings&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;add&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;name&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#ec7600"&gt;VidPub&lt;/span&gt;&amp;quot;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;connectionString&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#ec7600"&gt;server=.&amp;#92;;database=VidPub_Dev;integrated
security=true&lt;/span&gt;&amp;quot;&lt;span style="color:#f1f2f3"&gt; /&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
and rendered:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_22.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_10.png" width="644" height="354" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3&gt;Views
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ac277c61-7ef3-4a4c-96e5-90b0d32554d3" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;[&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(item);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;alert&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was an error adding this item&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
CreateFrom creates a new Expando, white listed against the columns in the db.
&lt;/p&gt;
&lt;h3&gt;Customizing the Generators - T4
&lt;/h3&gt;
&lt;p&gt;
As we can’t do @Html.TextBox(“title”, Model.Title)… extension methods and dynamics
don’t play well together.
&lt;/p&gt;
&lt;p&gt;
If we do string title = Model.Title then it all works.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_5.png" width="644" height="322" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This added a bunch of templates&amp;quot;:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/TekPub4Data_837B/image_thumb_6.png" width="237" height="417" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Then just took our ProductionsController code and put it into the template Controller.tt
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:27adfbfc-bcba-48e0-8a2b-8e5c57309b16" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;#@
template language=&amp;quot;C#&amp;quot; HostSpecific=&amp;quot;True&amp;quot; #&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;#&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)(Host);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;#&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using System;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using System.Collections.Generic;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using System.Linq;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using System.Web;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using System.Web.Mvc;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;using VidPub.Web.Models;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;#&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;var controllerName = mvcHost.ControllerName;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;var nameSpace = mvcHost.Namespace;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;var tableName = controllerName.Replace(&amp;quot;Controller&amp;quot;,
&amp;quot;&amp;quot;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;#&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;namespace &amp;lt;#= nameSpace #&amp;gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;public class &amp;lt;#= controllerName #&amp;gt; : Controller&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; dynamic _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; public &amp;lt;#= controllerName #&amp;gt;() {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table = new &amp;lt;#= tableName #&amp;gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ViewBag.Table = _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; public ActionResult Index()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; return View(_table.All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
So now it generates much more cleanly.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f5164350-e40f-4c8d-bd17-51a680389d13" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Controllers&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ProductionsController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ApplicationController&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ProductionsController()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Productions&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ViewBag&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Details(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FindBy(ID:
id, schema: &lt;/span&gt;&lt;span style="color:#93c763"&gt;true&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;));&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create()&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Prototype);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; } &lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ValidateAntiForgeryToken&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(item);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;alert&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was an error adding this item&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Get(ID:
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;_Table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Update(model,
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Exception&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ex)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem editing this record&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Delete(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ValidateAntiForgeryToken&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Delete(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Delete(id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem deleting this record&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;h3&gt;CruddyController
&lt;/h3&gt;
&lt;p&gt;
abstracting to a base class the cruddyness:
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:10e8b0ab-efd2-4992-b4e8-238c993bbee6" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#93c763"&gt;namespace&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Infrastructure
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;CruddyController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; : &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ApplicationController&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;// IoC will need to
inject a tokenStore in everything that inhertis hmmmmmm&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; CruddyController(&lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;ITokenHandler&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; tokenStore)
: &lt;/span&gt;&lt;span style="color:#93c763"&gt;base&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(tokenStore)
{}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;protected&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#66747b"&gt;//all virtual so can
override if necessary&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Index()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;All());&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Details(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FindBy(ID:
id, schema: &lt;/span&gt;&lt;span style="color:#93c763"&gt;true&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;));&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(_table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Prototype);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ValidateAntiForgeryToken&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Create(&lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Insert(item);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;alert&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was an error adding this item&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Get(ID:
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; model&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;_Table &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Edit(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; model &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CreateFrom(collection);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Update(model,
id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Exception&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ex)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem editing this record&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(model);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Delete(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HttpPost&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; [&lt;/span&gt;&lt;span style="color:#678cb1"&gt;ValidateAntiForgeryToken&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;]&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;virtual&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;ActionResult&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Delete(&lt;/span&gt;&lt;span style="color:#93c763"&gt;int&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; id, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;FormCollection&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; collection)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;try&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; _table&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Delete(id);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; RedirectToAction(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;catch&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; TempData[&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;] &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;There
was a problem deleting this record&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; View(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Index&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Review
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
Use what you know and get app to market&lt;/li&gt;
&lt;li&gt;
Big ORM in startup can get in the way&lt;/li&gt;
&lt;li&gt;
Build whats needed, no more&lt;/li&gt;
&lt;li&gt;
Avoided orm here&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=a2d5da18-8daf-440a-b725-ad644e9c02c6" /&gt;</description>
      <category>Entity Framework</category>
      <category>Massive</category>
      <category>MVC</category>
      <category>MVC3</category>
      <category>T4</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=470f08c9-b781-4408-b8e7-e37992a414ec</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,470f08c9-b781-4408-b8e7-e37992a414ec.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Razor automatically encodes HTML for us
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6e02258b-4ef7-4bd4-a652-265c2fec3560" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Snippets</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FooterText()</span>
            </div>
          </div>
        </div>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:43dead69-c3d3-4018-a54a-31206d027b8e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> FooterText()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Format(</span>
              <span style="color:#ec7600">"&amp;copy;{0}
VidPub, Inc."</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#678cb1">DateTime</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Now</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Year);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb.png" width="165" height="55" />
          </a>
        </p>
        <p>
This is bad..
</p>
        <p>
Most of the Html helpers eg Html.Action, Html.ActionLink return an MvcHtmlString which
inherits from HtmlString.  This is around to control the encoding of html.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1cb7c948-caa9-4329-bb42-cfb0aaf148aa" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@functions
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> FooterText()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">HtmlString</span>
              <span style="color:#f1f2f3">(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Format(</span>
              <span style="color:#ec7600">"&amp;copy;{0}
VidPub, Inc."</span>
              <span style="color:#f1f2f3">, </span>
              <span style="color:#678cb1">DateTime</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Now</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Year));</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
better.  This means we sidestep mvc’s always on encoding.
</p>
        <h3>Partials / Helpers / Functions
</h3>
        <p>
Do a quotes class and return a string array.
</p>
        <p>
@Html.Partial got confused when we were handing off dynamics stuff.  So easier
to use a helper (and a function in the same file…nice)
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8affa842-d2f9-4de6-84ca-c8d6daec068e" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="background:#22282a;color:#8c8cb4">@functions{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> Scrub(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> quote)
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">HtmlString</span>
              <span style="color:#f1f2f3">(quote);</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="background:#22282a;color:#8c8cb4">@helper </span>
              <span style="color:#f1f2f3">User(</span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3"> quote)
{</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"quote"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#f1f2f3">Scrub(quote)</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt; </span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:153c2619-d655-4101-9924-a13f575148d2" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"container"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"column
span-24"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#678cb1">Quotes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FromUsers())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Quotes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">User(item)</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_4.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_1.png" width="244" height="149" />
          </a>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a9f29aa9-3de7-4253-bf11-6ae410cad471" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Quotes</span>
              <span style="color:#f1f2f3"> {</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">public</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">static</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> FromUsers()
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">var</span>
              <span style="color:#f1f2f3"> quotes </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">string</span>
              <span style="color:#f1f2f3">[]
{</span>
              <span style="color:#ec7600">"I just rocked the interview blah blah"</span>
              <br />
              <span style="color:#f1f2f3"> ,</span>
              <span style="color:#ec7600">"This is really
great"</span>
              <br />
              <span style="color:#f1f2f3"> ,</span>
              <span style="color:#ec7600">"Bough mastering
jquery from vidpub and so far it rocks"</span>
              <br />
              <span style="color:#f1f2f3"> ,</span>
              <span style="color:#ec7600">"2Bough mastering
jquery from vidpub and so far it rocks"</span>
              <br />
              <span style="color:#f1f2f3"> ,</span>
              <span style="color:#ec7600">"3Bough mastering
jquery from vidpub and so far it rocks"</span>
              <br />
              <span style="color:#f1f2f3"> ,</span>
              <span style="color:#ec7600">"4Bough mastering
jquery from vidpub and so far it rocks"</span>
              <br />
              <span style="color:#f1f2f3"> };</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Random</span>
              <span style="color:#f1f2f3"> rnd </span>
              <span style="color:#e8e2b7">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">new</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#678cb1">Random</span>
              <span style="color:#f1f2f3">();</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#93c763">return</span>
              <span style="color:#f1f2f3"> quotes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">OrderBy(x </span>
              <span style="color:#e8e2b7">=&gt;</span>
              <span style="color:#f1f2f3"> rnd</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Next())</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">ToList();</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
            </div>
          </div>
        </div>
        <p>
Rob has html encoding in the quotes… ie &lt;b&gt; in the acutal quote string, which
is why he’s use a Scrub function.  I dont need it.
</p>
        <h3>Jquery Cycle
</h3>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3a0f5ea3-a884-46f9-ad86-f32e4c3d8881" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">HTML</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">CSS(</span>
              <span style="color:#ec7600">"jquery_cycle.js"</span>
              <span style="color:#f1f2f3">)</span>
            </div>
          </div>
        </div>
        <p>
in css
</p>
        <p>
id is a #
</p>
        <p>
class is a .
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:748cdb20-874e-4150-9ad3-1923654ed263" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#678cb1">#user_quotes</span>
              <br />
              <span style="color:#f1f2f3">{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">margin-bottom</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">32px</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">padding</span>
              <span style="color:#f1f2f3">: </span>
              <span style="color:#ec7600">24px</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="color:#678cb1">.quote</span>
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3">{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">font-family</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">"georgia"</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">font-style</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">italic</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">font-size</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">2.1em</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">color</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">#4d4d4d</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
              <br />
              <br />
              <span style="color:#678cb1">.main</span>
              <span style="color:#f1f2f3">
              </span>
              <br />
              <span style="color:#f1f2f3">{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#8c8cb4">min-height</span>
              <span style="color:#f1f2f3">:</span>
              <span style="color:#ec7600">320px</span>
              <span style="color:#f1f2f3">;</span>
              <br />
              <span style="color:#f1f2f3">}</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_6.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_2.png" width="509" height="157" />
          </a>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cc0cb88c-9659-4fe9-accc-f733b92cd5b3" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> $(document).ready(</span>
              <span style="color:#93c763">function</span>
              <span style="color:#f1f2f3"> ()
{</span>
              <br />
              <span style="color:#f1f2f3"> $(</span>
              <span style="color:#ec7600">"#user_quotes"</span>
              <span style="color:#f1f2f3">).cycle({
fx: </span>
              <span style="color:#ec7600">'fade'</span>
              <span style="color:#f1f2f3">,
pause: </span>
              <span style="color:#ffcd22">1</span>
              <span style="color:#f1f2f3">, speed: </span>
              <span style="color:#ffcd22">900</span>
              <span style="color:#f1f2f3">,
timeout: </span>
              <span style="color:#ffcd22">4000</span>
              <span style="color:#f1f2f3"> })</span>
              <br />
              <span style="color:#f1f2f3"> });</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">script</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6f84d19e-7ceb-4841-b6d7-672985f1870b" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span style="color:#f1f2f3">&lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class=</span>
              <span style="color:#ec7600">"container"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3"> &lt;</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">id</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"user_quotes"</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">class</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#293134;color:#e0e2e4">=</span>
              <span style="color:#f1f2f3">
              </span>
              <span style="color:#ec7600">"column
span-24"</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#93c763">foreach</span>
              <span style="color:#f1f2f3"> (</span>
              <span style="color:#93c763">dynamic</span>
              <span style="color:#f1f2f3"> item </span>
              <span style="color:#93c763">in</span>
              <span style="color:#f1f2f3"> VidPub</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Web</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">Models</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#678cb1">Quotes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">FromUsers())
{</span>
              <br />
              <span style="color:#f1f2f3">
              </span>
              <span style="background:#22282a;color:#8c8cb4">@</span>
              <span style="color:#678cb1">Quotes</span>
              <span style="color:#e8e2b7">.</span>
              <span style="color:#f1f2f3">User(item)</span>
              <br />
              <span style="color:#f1f2f3"> }</span>
              <br />
              <span style="color:#f1f2f3"> &lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
              <br />
              <span style="color:#f1f2f3">&lt;/</span>
              <span style="color:#93c763">div</span>
              <span style="color:#f1f2f3">&gt;</span>
            </div>
          </div>
        </div>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_8.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_3.png" width="244" height="67" />
          </a>
        </p>
        <p>
then it cycles through – cool!
</p>
        <h3>Rendering Cycle
</h3>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_10.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_4.png" width="669" height="306" />
          </a>
        </p>
        <p>
 
</p>
        <p>
_ViewStart.cshtml 
</p>
        <p>
Index.cshtml  (this is the view or view template).. so render view before layout!
</p>
        <p>
_Layout.cshtml (top level component that loads css, js, footer etc..).. so two chunks
of html already done are injected into @RenderBody method
</p>
        <p>
then all put into a stringbuilder, then put into the ResponseStream and then we have
a webpage!
</p>
        <h3>Review
</h3>
        <p>
Partials..hmmm.. unless paired with modelBinder which he’s going to discuss later.
</p>
        <p>
Helpers are simple and paired with functions are great.
</p>
        <img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=470f08c9-b781-4408-b8e7-e37992a414ec" />
      </body>
      <title>VidPub3.1–More Razor</title>
      <guid isPermaLink="false">http://www.programgood.net/PermaLink,guid,470f08c9-b781-4408-b8e7-e37992a414ec.aspx</guid>
      <link>http://www.programgood.net/2011/09/23/VidPub31MoreRazor.aspx</link>
      <pubDate>Fri, 23 Sep 2011 22:32:28 GMT</pubDate>
      <description>&lt;p&gt;
Razor automatically encodes HTML for us
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6e02258b-4ef7-4bd4-a652-265c2fec3560" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Snippets&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FooterText()&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:43dead69-c3d3-4018-a54a-31206d027b8e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FooterText()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Format(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;amp;copy;{0}
VidPub, Inc.&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DateTime&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Now&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Year);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb.png" width="165" height="55" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is bad..
&lt;/p&gt;
&lt;p&gt;
Most of the Html helpers eg Html.Action, Html.ActionLink return an MvcHtmlString which
inherits from HtmlString.&amp;#160; This is around to control the encoding of html.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1cb7c948-caa9-4329-bb42-cfb0aaf148aa" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@functions
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FooterText()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;HtmlString&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Format(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;&amp;amp;copy;{0}
VidPub, Inc.&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, &lt;/span&gt;&lt;span style="color:#678cb1"&gt;DateTime&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Now&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Year));&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
better.&amp;#160; This means we sidestep mvc’s always on encoding.
&lt;/p&gt;
&lt;h3&gt;Partials / Helpers / Functions
&lt;/h3&gt;
&lt;p&gt;
Do a quotes class and return a string array.
&lt;/p&gt;
&lt;p&gt;
@Html.Partial got confused when we were handing off dynamics stuff.&amp;#160; So easier
to use a helper (and a function in the same file…nice)
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8affa842-d2f9-4de6-84ca-c8d6daec068e" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@functions{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; Scrub(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; quote)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;HtmlString&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;(quote);&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="background:#22282a;color:#8c8cb4"&gt;@helper &lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;User(&lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; quote)
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;quote&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Scrub(quote)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:153c2619-d655-4101-9924-a13f575148d2" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;column
span-24&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Quotes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FromUsers())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Quotes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;User(item)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_1.png" width="244" height="149" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a9f29aa9-3de7-4253-bf11-6ae410cad471" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Quotes&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; {&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;public&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;static&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; FromUsers()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;var&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; quotes &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;string&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;[]
{&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;I just rocked the interview blah blah&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ,&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;This is really
great&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ,&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;Bough mastering
jquery from vidpub and so far it rocks&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ,&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;2Bough mastering
jquery from vidpub and so far it rocks&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ,&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;3Bough mastering
jquery from vidpub and so far it rocks&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; ,&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;4Bough mastering
jquery from vidpub and so far it rocks&amp;quot;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; };&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Random&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; rnd &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;new&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#678cb1"&gt;Random&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#93c763"&gt;return&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; quotes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;OrderBy(x &lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; rnd&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Next())&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;ToList();&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Rob has html encoding in the quotes… ie &amp;lt;b&amp;gt; in the acutal quote string, which
is why he’s use a Scrub function.&amp;#160; I dont need it.
&lt;/p&gt;
&lt;h3&gt;Jquery Cycle
&lt;/h3&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3a0f5ea3-a884-46f9-ad86-f32e4c3d8881" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;HTML&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;CSS(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;jquery_cycle.js&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;)&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
in css
&lt;/p&gt;
&lt;p&gt;
id is a #
&lt;/p&gt;
&lt;p&gt;
class is a .
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:748cdb20-874e-4150-9ad3-1923654ed263" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#678cb1"&gt;#user_quotes&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;margin-bottom&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;32px&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;padding&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;24px&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#678cb1"&gt;.quote&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;font-family&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;georgia&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;font-style&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;italic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;font-size&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;2.1em&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;color&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;#4d4d4d&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="color:#678cb1"&gt;.main&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#8c8cb4"&gt;min-height&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;:&lt;/span&gt;&lt;span style="color:#ec7600"&gt;320px&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;}&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_2.png" width="509" height="157" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:cc0cb88c-9659-4fe9-accc-f733b92cd5b3" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(document).ready(&lt;/span&gt;&lt;span style="color:#93c763"&gt;function&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; ()
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; $(&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;#user_quotes&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;).cycle({
fx: &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;#39;fade&amp;#39;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
pause: &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;1&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;, speed: &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;900&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;,
timeout: &lt;/span&gt;&lt;span style="color:#ffcd22"&gt;4000&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; })&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; });&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;script&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6f84d19e-7ceb-4841-b6d7-672985f1870b" class="wlWriterEditableSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background-color: #000000; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#f1f2f3"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class=&lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;id&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;user_quotes&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;class&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#293134;color:#e0e2e4"&gt;=&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="color:#ec7600"&gt;&amp;quot;column
span-24&amp;quot;&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#93c763"&gt;foreach&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; (&lt;/span&gt;&lt;span style="color:#93c763"&gt;dynamic&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; item &lt;/span&gt;&lt;span style="color:#93c763"&gt;in&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt; VidPub&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Web&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;Models&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Quotes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;FromUsers())
{&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &lt;/span&gt;&lt;span style="background:#22282a;color:#8c8cb4"&gt;@&lt;/span&gt;&lt;span style="color:#678cb1"&gt;Quotes&lt;/span&gt;&lt;span style="color:#e8e2b7"&gt;.&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;User(item)&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; }&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color:#f1f2f3"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#93c763"&gt;div&lt;/span&gt;&lt;span style="color:#f1f2f3"&gt;&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_3.png" width="244" height="67" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
then it cycles through – cool!
&lt;/p&gt;
&lt;h3&gt;Rendering Cycle
&lt;/h3&gt;
&lt;p&gt;
&lt;a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_10.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub3.1More-Razor_6AC7/image_thumb_4.png" width="669" height="306" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
_ViewStart.cshtml 
&lt;/p&gt;
&lt;p&gt;
Index.cshtml&amp;#160; (this is the view or view template).. so render view before layout!
&lt;/p&gt;
&lt;p&gt;
_Layout.cshtml (top level component that loads css, js, footer etc..).. so two chunks
of html already done are injected into @RenderBody method
&lt;/p&gt;
&lt;p&gt;
then all put into a stringbuilder, then put into the ResponseStream and then we have
a webpage!
&lt;/p&gt;
&lt;h3&gt;Review
&lt;/h3&gt;
&lt;p&gt;
Partials..hmmm.. unless paired with modelBinder which he’s going to discuss later.
&lt;/p&gt;
&lt;p&gt;
Helpers are simple and paired with functions are great.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.programgood.net/aggbug.ashx?id=470f08c9-b781-4408-b8e7-e37992a414ec" /&gt;</description>
      <category>jQuery</category>
      <category>MVC</category>
      <category>VidPub</category>
    </item>
    <item>
      <trackback:ping>http://www.programgood.net/Trackback.aspx?guid=e7af0ef4-c2b7-4d3b-8b88-a43bc2a9c115</trackback:ping>
      <pingback:server>http://www.programgood.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.programgood.net/PermaLink,guid,e7af0ef4-c2b7-4d3b-8b88-a43bc2a9c115.aspx</pingback:target>
      <dc:creator>Dave Mateer</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.woothemes.com/">http://www.woothemes.com/</a>  - ready mate
templates
</p>
        <p>
3 themes for USD70
</p>
        <p>
Most themes are geared towards Wordpress, so best way to get the theme out of WordPress
is to install WordPress on local box, as Wordpress.com is locked down quite hard especially
around javascript.
</p>
        <p>
Wordpress download using Web Platform Installer
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb.png" width="644" height="455" />
          </a>
        </p>
        <p>
MySQL 5.1 didn’t work.. just hung.
</p>
        <p>
Downloaded and installed manually MySQL5.5
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_1.png" width="644" height="381" />
          </a>
        </p>
        <p>
Then installed wordpress again from WebPlatformInstaller.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_2.png" width="564" height="484" />
          </a>
        </p>
        <p>
install a theme
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_3.png" width="644" height="447" />
          </a>
        </p>
        <p>
 
</p>
        <p>
Rob is using <a href="http://www.woothemes.com/2011/01/biznizz/">http://www.woothemes.com/2011/01/biznizz/</a></p>
        <h3>Blueprint.css
</h3>
        <p>
          <a href="http://www.blueprintcss.org/">http://www.blueprintcss.org/</a> – css framework
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_4.png" width="644" height="276" />
          </a>
        </p>
        <p>
copy and pasted html source from <a href="http://www.blueprintcss.org/tests/parts/sample.html">http://www.blueprintcss.org/tests/parts/sample.html</a></p>
        <p>
downloaded blueprint and put files into stylesheets as show above (all except site.css
were from blueprint).
</p>
        <p>
 
</p>
        <h3>typekit
</h3>
        <p>
          <a href="http://typekit.com/">http://typekit.com/</a>
        </p>
        <p>
simple, elegant
</p>
        <p>
He is using Katarine Web .. regular and semi bold.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_12.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_5.png" width="644" height="384" />
          </a>
        </p>
        <p>
replacing all headings with a new font Katarine.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_14.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_6.png" width="644" height="315" />
          </a>
        </p>
        <p>
Ok, so they are different now.
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_22.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_10.png" width="644" height="228" />
          </a>
        </p>
        <p>
Right hand side is antialiased IE9 rendering.. left is chrome14
</p>
        <h3>Design – Logo
</h3>
        <p>
Most logos are simple elegant fonts
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_18.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_8.png" width="644" height="364" />
          </a>
        </p>
        <p>
Robs likes Kontrapunkt
</p>
        <p>
          <a href="http://www.smashingmagazine.com/typography-guidelines-and-references/">http://www.smashingmagazine.com/typography-guidelines-and-references/</a>
        </p>
        <p>
Installing free Kontrapunkt font:
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_16.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_7.png" width="644" height="389" />
          </a>
        </p>
        <p>
          <a href="http://www.fontsquirrel.com/fonts/Kontrapunkt">http://www.fontsquirrel.com/fonts/Kontrapunkt</a>
        </p>
        <p>
Paint.NET
</p>
        <p>
350*60 – Logo
</p>
        <p>
920 * 240 – Splash Image
</p>
        <p>
          <a href="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_20.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.programgood.net/content/binary/Windows-Live-Writer/VidPub-3Views_7C6F/image_thumb_9.png" width="644" height="272" />
          </a>
        </p>
        <p>
controlling my logo and splash image with css   <a href="http://www.iconarchive.com/">http://www.iconarchive.com/</a></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f2d17e6b-a08f-4a92-bbc3-b7a51ae28755" class="wlWriterEditableSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background-color: #000000; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap">
              <span st