<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>.NET Meanderings - MVC</title>
    <link>http://www.dotnetconsult.co.uk/weblog2/</link>
    <description>Richard Blewett's wanderings around .NET</description>
    <language>en-us</language>
    <copyright>Richard Blewett</copyright>
    <lastBuildDate>Fri, 21 Nov 2008 15:28:54 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>richard@dotnetconsult.co.uk</managingEditor>
    <webMaster>richard@dotnetconsult.co.uk</webMaster>
    <item>
      <trackback:ping>http://www.dotnetconsult.co.uk/weblog2/Trackback.aspx?guid=46ca0e3d-b096-4746-87e6-d8670afbfdc4</trackback:ping>
      <pingback:server>http://www.dotnetconsult.co.uk/weblog2/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,46ca0e3d-b096-4746-87e6-d8670afbfdc4.aspx</pingback:target>
      <dc:creator>Richard Blewett</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks to all who came to my REST talk at Oredev 
</p>
        <p>
The slides are here
</p>
        <p>
          <a href="http://www.dotnetconsult.co.uk/weblog2/content/binary/REST.pdf">REST.pdf
(325.61 KB)</a>
        </p>
        <p>
and the demos are here
</p>
        <p>
          <a href="http://www.dotnetconsult.co.uk/weblog2/content/binary/REST.zip">REST.zip
(30.32 KB)</a>
        </p>
        <img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=46ca0e3d-b096-4746-87e6-d8670afbfdc4" />
      </body>
      <title>Slides and demos from REST talk at Oredev</title>
      <guid isPermaLink="false">http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,46ca0e3d-b096-4746-87e6-d8670afbfdc4.aspx</guid>
      <link>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,46ca0e3d-b096-4746-87e6-d8670afbfdc4.aspx</link>
      <pubDate>Fri, 21 Nov 2008 15:28:54 GMT</pubDate>
      <description>&lt;p&gt;
Thanks to all who came to my REST talk at Oredev 
&lt;/p&gt;
&lt;p&gt;
The slides are here
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetconsult.co.uk/weblog2/content/binary/REST.pdf"&gt;REST.pdf
(325.61 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
and the demos are here
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetconsult.co.uk/weblog2/content/binary/REST.zip"&gt;REST.zip
(30.32 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=46ca0e3d-b096-4746-87e6-d8670afbfdc4" /&gt;</description>
      <category>.NET;ASP.NET;MVC;REST;WCF</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetconsult.co.uk/weblog2/Trackback.aspx?guid=f4c218cd-6de0-42fb-ad4a-3393c49ec542</trackback:ping>
      <pingback:server>http://www.dotnetconsult.co.uk/weblog2/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f4c218cd-6de0-42fb-ad4a-3393c49ec542.aspx</pingback:target>
      <dc:creator>Richard Blewett</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.oredev.org">
            <img src="http://www.dotnetconsult.co.uk/weblog2/content/binary/oredev.jpg" border="0" />
          </a>
        </p>
        <p>
I'm going to be doing a couple of sessions at the <a href="http://www.oredev.org">Oredev</a> conference
in Sweden in November
</p>
        <p>
          <span class="normal">
            <strong>Writing REST based Systems with .NET</strong>
          </span>
        </p>
        <p>
          <span class="normal">For many, building large scale service based systems equate to
using SOAP. There is, however, another way to architect service based systems by embracing
the model the web uses - REpresentational State Transfer, or REST. .NET 3.5 introduced
a way of building the service side with WCF - however you can also use ASP.NET's infrastructure
as well. In this session we talk about what REST is, two approaches to creating REST
based services and how you can consume these services very simply with LINQ to XML.</span>
        </p>
        <span class="normal">
          <p style="PADDING-TOP: 1em">
            <span class="normal">
              <strong>Writing Service Oriented Systems with WCF and Workflow</strong>
            </span>
          </p>
          <p>
            <span class="normal">Since its launch WCF has been Microsoft's premier infrastructure
to writing SOA based systems. However one of the main benefits of Service Orientation
is combining the functionality of services to create higher order functionality which
itself is exposed as a service - namely service composition. Workflow is a very descriptive
way of showing how services are combined and in .NET 3.5 Microsoft introduced an integration
layer between WCF and Workflow to simplify the job of service composition. In this
session we examine this infrastructure and bring out both its string and weak points
with an eye to what is coming down the line in Project Oslo - Microsoft's next generation
of its SOA platform.</span>
          </p>
          <p>
            <span class="normal">Hope to see you there</span>
          </p>
        </span>
        <img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=f4c218cd-6de0-42fb-ad4a-3393c49ec542" />
      </body>
      <title>Speaking at Oredev</title>
      <guid isPermaLink="false">http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f4c218cd-6de0-42fb-ad4a-3393c49ec542.aspx</guid>
      <link>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f4c218cd-6de0-42fb-ad4a-3393c49ec542.aspx</link>
      <pubDate>Tue, 16 Sep 2008 12:45:26 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.oredev.org"&gt;&lt;img src="http://www.dotnetconsult.co.uk/weblog2/content/binary/oredev.jpg" border=0&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I'm going to be doing a couple of sessions at the &lt;a href="http://www.oredev.org"&gt;Oredev&lt;/a&gt; conference
in Sweden in November
&lt;/p&gt;
&lt;p&gt;
&lt;span class=normal&gt;&lt;strong&gt;Writing REST based Systems with .NET&lt;/strong&gt;&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span class=normal&gt;For many, building large scale service based systems equate to
using SOAP. There is, however, another way to architect service based systems by embracing
the model the web uses - REpresentational State Transfer, or REST. .NET 3.5 introduced
a way of building the service side with WCF - however you can also use ASP.NET's infrastructure
as well. In this session we talk about what REST is, two approaches to creating REST
based services and how you can consume these services very simply with LINQ to XML.&lt;/span&gt;
&lt;/p&gt;
&lt;span class=normal&gt; 
&lt;p style="PADDING-TOP: 1em"&gt;
&lt;span class=normal&gt;&lt;strong&gt;Writing Service Oriented Systems with WCF and Workflow&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=normal&gt;Since its launch WCF has been Microsoft's premier infrastructure
to writing SOA based systems. However one of the main benefits of Service Orientation
is combining the functionality of services to create higher order functionality which
itself is exposed as a service - namely service composition. Workflow is a very descriptive
way of showing how services are combined and in .NET 3.5 Microsoft introduced an integration
layer between WCF and Workflow to simplify the job of service composition. In this
session we examine this infrastructure and bring out both its string and weak points
with an eye to what is coming down the line in Project Oslo - Microsoft's next generation
of its SOA platform.&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=normal&gt;Hope to see you there&lt;/span&gt;
&lt;/p&gt;
&lt;/span&gt;&lt;img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=f4c218cd-6de0-42fb-ad4a-3393c49ec542" /&gt;</description>
      <category>.NET;ASP.NET;LINQ;MVC;Oslo;REST;WCF;WF</category>
    </item>
    <item>
      <trackback:ping>http://www.dotnetconsult.co.uk/weblog2/Trackback.aspx?guid=f975f04c-1bce-4169-8e2b-8b9db0d012e0</trackback:ping>
      <pingback:server>http://www.dotnetconsult.co.uk/weblog2/pingback.aspx</pingback:server>
      <pingback:target>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f975f04c-1bce-4169-8e2b-8b9db0d012e0.aspx</pingback:target>
      <dc:creator>Richard Blewett</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been looking at the routing infrastructure Microsoft are releasing in <a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx">.NET
3.5 SP1</a>. This is the infrastructure that allows me to bind an HTTP Hander to a
URI rather than simply using webforms. It is used in the <a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx">ASP.NET
MVC</a> framework that is in development. The infrastructure is pretty clean in design,
First you add a reference to <font face="Courier New">System.Web.Routing.</font> Then you
simply create <font face="Courier New">Route</font> objects binding a URI to an implementation
of <font face="Courier New">IRouteHandler. </font>Finally you add it to a <font face="Courier New">RouteTable</font> static
class. <font face="Courier New">Global.asax</font> is the ideal spot for this code.
</p>
        <p>
          <font face="Courier New">
            <font color="#0000ff">void</font> Application_Start(<font color="#0000ff">object</font> sender,
EventArgs e) <br />
{<br />
        Route r = <font color="#0000ff">new</font> Route("books", <font color="#0000ff">new</font> BooksRouteHandler());<br />
        RouteTable.Routes.Add(r);<br />
        r = <font color="#0000ff">new</font> Route("books/isbn/{isbn}", <font color="#0000ff">new</font> BooksRouteHandler());<br />
        RouteTable.Routes.Add(r);<br />
        r = <font color="#0000ff">new</font> Route("search/price", <font color="#0000ff">new</font> SearchRouteHandler());<br />
        RouteTable.Routes.Add(r);<br />
}</font>
        </p>
        <p>
Here <font face="Courier New">BooksRouteHandler</font> and <font face="Courier New">SearchRouteHandler</font> implement <font face="Courier New">IRouteHandler</font></p>
        <p>
          <font face="Courier New">
            <font color="#0000ff">public interface</font> IRouteHandler<br />
{<br />
    IHttpHandler GetHttpHandler(RequestContext requestContext);<br />
}</font>
        </p>
        <p>
So for example the BooksRouteHandler looks like this
</p>
        <p>
          <font face="Courier New">
            <font color="#0000ff">public</font>
            <font color="#0000ff">class</font> BooksRouteHandler
: IRouteHandler<br />
{<br /></font>
          <font face="Courier New">    <font color="#0000ff">public</font> IHttpHandler
GetHttpHandler(RequestContext requestContext)<br />
    {<br />
        <font color="#0000ff">if</font> (requestContext.RouteData.Values.ContainsKey("isbn"))<br />
        {<br />
            <font color="#0000ff">string</font> isbn
= (string)requestContext.RouteData.Values["isbn"];<br />
            <font color="#0000ff">return</font><font color="#0000ff">new</font> ISBNHandler(isbn);<br />
        }<br />
        <font color="#0000ff">else</font><br />
        {<br />
            <font color="#0000ff">return
new</font> BooksHandler();<br />
        }<br />
    }<br /></font>
          <font face="Courier New">}</font>
        </p>
        <p>
Where <font face="Courier New">ISBNHandler</font> and <font face="Courier New">BooksHandler</font> both
implement <font face="Courier New">IHttpHandler</font></p>
        <p>
This is all pretty straightforward. The one thing that had me puzzling for a while
is who looks at the <font face="Courier New">RouteTable</font>. <a href="http://www.aisto.com/roeder/dotnet/">Reflector</a> to
the rescue! There is a module in the <font face="Courier New">System.Web.Routing</font> assembly
called <font face="Courier New">UrlRoutingModule</font>. If you add this in to your <font face="Courier New">web.config</font> the
routing starts working. The config piece looks like this
</p>
        <p>
          <font face="Courier New">&lt;httpModules&gt;<br />
      &lt;add name="Routing" <br />
           type="System.Web.Routing.UrlRoutingModule,
System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/&gt;<br />
&lt;/httpModules&gt;<br /></font>
        </p>
        <br />
I'm currently using it to build a REST based service for the second part of a two
part article for the <a href="http://www.develop.com/">DevelopMentor</a> DevelopMents
newsletter so if you're not on the distribution list for that <a href="http://www.develop.com/us/user/myprofile.aspx">subscribe!</a><img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=f975f04c-1bce-4169-8e2b-8b9db0d012e0" /></body>
      <title>Using the ASP.NET Routing infrastructure in .NET 3.5 SP1</title>
      <guid isPermaLink="false">http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f975f04c-1bce-4169-8e2b-8b9db0d012e0.aspx</guid>
      <link>http://www.dotnetconsult.co.uk/weblog2/PermaLink,guid,f975f04c-1bce-4169-8e2b-8b9db0d012e0.aspx</link>
      <pubDate>Wed, 18 Jun 2008 09:36:52 GMT</pubDate>
      <description>&lt;p&gt;
I've been looking at the routing infrastructure Microsoft are releasing in &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;.NET
3.5 SP1&lt;/a&gt;. This is the infrastructure that allows me to bind an HTTP Hander to a
URI rather than simply using webforms. It is used in the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx"&gt;ASP.NET
MVC&lt;/a&gt; framework that is in development. The infrastructure is pretty clean in design,
First you add a reference to &lt;font face="Courier New"&gt;System.Web.Routing.&lt;/font&gt; Then&amp;nbsp;you
simply create &lt;font face="Courier New"&gt;Route&lt;/font&gt; objects binding a URI to an implementation
of &lt;font face="Courier New"&gt;IRouteHandler. &lt;/font&gt;Finally you add it to a &lt;font face="Courier New"&gt;RouteTable&lt;/font&gt; static
class. &lt;font face="Courier New"&gt;Global.asax&lt;/font&gt; is the ideal spot for this code.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;void&lt;/font&gt; Application_Start(&lt;font color=#0000ff&gt;object&lt;/font&gt; sender,
EventArgs e)&amp;nbsp;&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Route r = &lt;font color=#0000ff&gt;new&lt;/font&gt; Route("books", &lt;font color=#0000ff&gt;new&lt;/font&gt; BooksRouteHandler());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RouteTable.Routes.Add(r);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = &lt;font color=#0000ff&gt;new&lt;/font&gt; Route("books/isbn/{isbn}", &lt;font color=#0000ff&gt;new&lt;/font&gt; BooksRouteHandler());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RouteTable.Routes.Add(r);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = &lt;font color=#0000ff&gt;new&lt;/font&gt; Route("search/price", &lt;font color=#0000ff&gt;new&lt;/font&gt; SearchRouteHandler());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RouteTable.Routes.Add(r);&lt;br&gt;
}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Here &lt;font face="Courier New"&gt;BooksRouteHandler&lt;/font&gt; and &lt;font face="Courier New"&gt;SearchRouteHandler&lt;/font&gt; implement &lt;font face="Courier New"&gt;IRouteHandler&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;public interface&lt;/font&gt; IRouteHandler&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IHttpHandler GetHttpHandler(RequestContext requestContext);&lt;br&gt;
}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
So for example the BooksRouteHandler looks like this
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&lt;font color=#0000ff&gt;public&lt;/font&gt; &lt;font color=#0000ff&gt;class&lt;/font&gt; BooksRouteHandler
: IRouteHandler&lt;br&gt;
{&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;public&lt;/font&gt; IHttpHandler
GetHttpHandler(RequestContext requestContext)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;if&lt;/font&gt; (requestContext.RouteData.Values.ContainsKey("isbn"))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;string&lt;/font&gt; isbn
= (string)requestContext.RouteData.Values["isbn"];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;return&lt;/font&gt; &lt;font color=#0000ff&gt;new&lt;/font&gt; ISBNHandler(isbn);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;else&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=#0000ff&gt;return
new&lt;/font&gt; BooksHandler();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Where &lt;font face="Courier New"&gt;ISBNHandler&lt;/font&gt; and &lt;font face="Courier New"&gt;BooksHandler&lt;/font&gt; both
implement &lt;font face="Courier New"&gt;IHttpHandler&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
This is all pretty straightforward. The one thing that had me puzzling for a while
is who looks at the &lt;font face="Courier New"&gt;RouteTable&lt;/font&gt;. &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt; to
the rescue! There is a module in the &lt;font face="Courier New"&gt;System.Web.Routing&lt;/font&gt; assembly
called &lt;font face="Courier New"&gt;UrlRoutingModule&lt;/font&gt;. If you add this in to your &lt;font face="Courier New"&gt;web.config&lt;/font&gt; the
routing starts working. The config piece looks like this
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;httpModules&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name="Routing"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type="System.Web.Routing.UrlRoutingModule,
System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/&amp;gt;&lt;br&gt;
&amp;lt;/httpModules&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;/p&gt;
&lt;br&gt;
I'm currently using it to build a REST based service for the second part of a two
part article for the &lt;a href="http://www.develop.com/"&gt;DevelopMentor&lt;/a&gt; DevelopMents
newsletter so if you're not on the distribution list for that &lt;a href="http://www.develop.com/us/user/myprofile.aspx"&gt;subscribe!&lt;/a&gt;&lt;img width="0" height="0" src="http://www.dotnetconsult.co.uk/weblog2/aggbug.ashx?id=f975f04c-1bce-4169-8e2b-8b9db0d012e0" /&gt;</description>
      <category>.NET;ASP.NET;REST;MVC</category>
    </item>
  </channel>
</rss>