<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://shazwazza.com/rss/xslt"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Shazwazza</title>
    <link>https://shazwazza.com/</link>
    <description>My blog which is pretty much just all about coding</description>
    <generator>Articulate, blogging built on Umbraco</generator>
    <image>
      <url>/media/0libq25y/frog.png?rmode=max&amp;v=1da0e911f4e6890</url>
      <title>Shazwazza</title>
      <link>https://shazwazza.com/</link>
    </image>
    <item>
      <guid isPermaLink="false">1162</guid>
      <link>https://shazwazza.com/post/introducing-snapshot/</link>
      <category>Umbraco</category>
      <title>Introducing Snapshot</title>
      <description>&lt;div class="imported-post"&gt;This post was imported from FARMCode.org which has been discontinued. These posts now exist here as an archive. They may contain broken links and images.&lt;/div&gt;Over the past few weeks Shannon and I have been dropping hints on Twitter about an exciting new project we’ve been working on. We’ve now started dropping hints including the name Snapshot. &lt;br&gt;Well we thought it was about time that we stopped playing the tease and brought more to the table.  &lt;h3&gt;What is Snapshot?&lt;/h3&gt; &lt;p&gt;In short Snapshot is a tool for Umbraco, giving you the ability to export a full ASP.NET site from the CMS.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.darren-ferguson.com/" target="_blank"&gt;Darren Ferguson&lt;/a&gt; tweeted about a similar product he’s working on, generating HTML files from Umbraco.&lt;/p&gt; &lt;p&gt;But we’re going up a notch, we’re exporting &lt;strong&gt;a fully working ASP.NET website&lt;/strong&gt; from Umbraco. &lt;br&gt;This means that macros will work, .NET User Controls will work, everything you’d expect from an Umbraco site.&lt;/p&gt; &lt;p&gt;Just there’s no CMS at all. In fact, you shouldn’t require any of the Umbraco assemblies to run it!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Enough talk, here’s a video!&lt;/p&gt; &lt;p&gt;&lt;object width="400" height="300"&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="allowscriptaccess" value="always" /&gt; &lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11805292&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=11805292&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://vimeo.com/11805292"&gt;Snapshot introduction&lt;/a&gt; from &lt;a href="http://vimeo.com/user3836949"&gt;The Farm&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:14 Z</pubDate>
      <a10:updated>2023-03-23T15:08:14Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1315</guid>
      <link>https://shazwazza.com/post/why-snapshot/</link>
      <category>Umbraco</category>
      <title>Why Snapshot?</title>
      <description>&lt;div class="imported-post"&gt;This post was imported from FARMCode.org which has been discontinued. These posts now exist here as an archive. They may contain broken links and images.&lt;/div&gt;In my &lt;a href="http://farmcode.org/post/2010/05/18/Introducing-Snapshot.aspx" target="_blank"&gt;previous post&lt;/a&gt; I introduced a new tool we’re working on here at TheFARM called Snapshot which is a content export engine for Umbraco.  &lt;p&gt;When doing that post I knew that I was going to have to write this one anyway, people were inevitably going to ask “But why?”&lt;/p&gt; &lt;p&gt;I was hoping to have time to do it before anyone did, but alas I was wrong :P.&lt;/p&gt; &lt;p&gt;Here’s a few scenarios which Snapshot aims to be useful in.&lt;/p&gt; &lt;h3&gt;The “We Don’t Need a CMS” client&lt;/h3&gt; &lt;p&gt;We’ve all had these, it’s “just a small site”, “we don’t change content”, etc. But in the back of your mind you &lt;em&gt;know&lt;/em&gt; they will change content and if it’s a static site you’ll have to get the devs to do it. Well with Snapshot you can create a CMS but the client doesn’t have to know.&lt;/p&gt; &lt;h3&gt;Shared hosting, virtual folders and medium trust&lt;/h3&gt; &lt;p&gt;Yes Umbraco can run in Shared Hosting, yes with 4.1 it can run in a virtual folder and medium trust. But 4.1 isn’t out yet. So you could look at the medium trust patch for 4.0.3, but you may not be comfortable with running a custom version of Umbraco, it does mean that upgrades are off the table.&lt;/p&gt; &lt;p&gt;Since Snapshot generates an ASP.NET site from within itself there’s no need to worry about Umbraco restrictions like that, it comes down to how you’ve coded your site.&lt;/p&gt; &lt;h3&gt;Database-less websites&lt;/h3&gt; &lt;p&gt;Not every website needs a database, but unfortunately Umbraco requires one even when you’re not editing content. You may not be aware but when you work with the Media API (either via the umbraco.library methods, or though the Media classes) you are going into the database. Yes there are projects which simulate a media cache you can even do this with &lt;a href="http://examine.codeplex.com" target="_blank"&gt;Examine&lt;/a&gt;. &lt;br&gt;But you’ll still have to have your web server talking to a database.&lt;/p&gt; &lt;p&gt;Snapshot doesn’t require a database form the web server. We’ve got built-in Media caching, a Media API and even replace the umbraco.library XSLT methods so that the Media interaction in an XSLT doesn’t require a database!&lt;/p&gt; &lt;h3&gt;Security&lt;/h3&gt; &lt;p&gt;Umbraco is reasonably secure, but wherever you have a login you have a vulnerability, it’s just the way of the web. A Snapshot site &lt;em&gt;has no login&lt;/em&gt;, &lt;em&gt;has no database&lt;/em&gt;, thus it is more secure (yes yes, famous last words :P). With Snapshot you can put your CMS inside your DMZ and never have it expose itself to the outside world. You can then get Snapshot to generate a site from the CMS and you just deployed the generated files.&lt;/p&gt; &lt;h3&gt;Speed&lt;/h3&gt; &lt;p&gt;As fast as Umbraco is (and the backed just &lt;a href="http://farmcode.org/post/2010/04/15/Umbraco-41-Benchmarks-Part-1.aspx" target="_blank"&gt;got&lt;/a&gt; &lt;a href="http://farmcode.org/post/2010/04/28/Umbraco-41-Benchmarks-Part-2-e28093-Back-Office-Database-Queries.aspx" target="_blank"&gt;faster&lt;/a&gt;) there’s always room for improvement. When writing Snapshot we came across several places which were not as good as they could have been within the Umbraco API. Take umbraco.library for example. You interact with static methods on the type in XSLT, but for every XSLT macro an instance of the class is created. This means that it can’t really have request-level caching of what you’re interacting with. &lt;br&gt;Or take NodeFactory, it doesn’t have caching of the node(s) you’ve tried to access; you get a new instance each time.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Now I’m not having a go at Umbraco’s API on this, just pointing out some facts.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;In Snapshot we have much improved caching. Since we’re using Dependency Injection (via &lt;a href="http://code.google.com/p/autofac/" target="_blank"&gt;Autofac&lt;/a&gt;) we only create a single instance of our umbraco.library implementation, we also do the same for our ContentService (the NodeFactory replacement) and MediaService (media API replacement). &lt;br&gt;These have caching built into them as well, so you hardly ever create objects, you get back previously created ones.&lt;/p&gt; &lt;p&gt;In future posts we’ll look more into the new API’s and just how sexy they can be ;).&lt;/p&gt; &lt;h3&gt;Because we can&lt;/h3&gt; &lt;p&gt;Really, does there need to be any reason other than this! :P&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hopefully this gives some insight into what we’re trying to achieve and shows you how it could be viable in your scenarios. Keep in mind this isn’t all you can do with Snapshot, it’s just some of the most common reasons &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:14 Z</pubDate>
      <a10:updated>2023-03-23T15:08:14Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1284</guid>
      <link>https://shazwazza.com/post/snapshot-cms-api/</link>
      <category>Umbraco</category>
      <title>Snapshot CMS API</title>
      <description>&lt;div class="imported-post"&gt;This post was imported from FARMCode.org which has been discontinued. These posts now exist here as an archive. They may contain broken links and images.&lt;/div&gt;As we’ve been working on the API for &lt;a href="http://farmcode.org/post/2010/05/18/Introducing-Snapshot.aspx"&gt;Snapshot&lt;/a&gt; we realised that there’s a bunch of cool aspects to the API which we think that everyone can benefit from.  &lt;p&gt;To this end we at TheFARM have decided that we’re going to give away the CMS API’s for Snapshot free!&lt;/p&gt; &lt;h2&gt;What does this include?&lt;/h2&gt; &lt;p&gt;What we’re providing is a set of API’s which can be used as replacements for some of the Umbraco API’s, most importantly the Media and NodeFactory API’s.&lt;/p&gt; &lt;p&gt;In Snapshot we’ve got quite a bit of caching built in for working with both media and node, along with some handy features around the creation of strongly typed representations of your objects, similar to LINQ to Umbraco, but not tied to Umbraco 4.1 and more focused on being used in the scope of NodeFactory.&lt;/p&gt; &lt;h2&gt;What’s not included?&lt;/h2&gt; &lt;p&gt;This is just the Snapshot API for working with the Umbraco XML cache, it does not include the Snapshot export engine, nor does it include the API for working in the published Snapshot environment (sorry, those &lt;strong&gt;aren’t&lt;/strong&gt; going to be free!).&lt;/p&gt; &lt;h2&gt;&lt;/h2&gt; &lt;h2&gt;Why would I want to use it?&lt;/h2&gt; &lt;p&gt;Well this is a good question, we’ve already got both Media and NodeFactory, why would you want to use something more custom for it?&lt;/p&gt; &lt;p&gt;Media caching is an obvious advantage, but most importantly the Snapshot API is designed with dependency injection as a forethought. This means that when you’re working on your applications in Umbraco you can have the Media or Node API’s injected using &lt;a href="http://code.google.com/p/autofac"&gt;Autofac&lt;/a&gt;. This makes testable Umbraco development quite easy.&lt;/p&gt; &lt;p&gt;Lastly, since Snapshot is an abstraction away from the Umbraco API you can even write your own implementations which don’t require the Umbraoc XML file to read data, you could pull it in from any source.&lt;/p&gt; &lt;h2&gt;Getting it&lt;/h2&gt; &lt;p&gt;The pre-release of the Snapshot CMS API is available on the &lt;a href="http://farmcode.org/page/Snapshot.aspx"&gt;Snapshot page of FarmCode.org&lt;/a&gt;. Keep in mind that this is an early build of the Snapshot CMS API, and it &lt;strong&gt;is&lt;/strong&gt; subject to change. For updated releases keep an eye on our blog.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:13 Z</pubDate>
      <a10:updated>2023-03-23T15:08:13Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1295</guid>
      <link>https://shazwazza.com/post/usnapshot-coming-soon/</link>
      <category>Umbraco</category>
      <title>uSnapshot… coming soon!</title>
      <description>&lt;div class="imported-post"&gt;This post was imported from FARMCode.org which has been discontinued. These posts now exist here as an archive. They may contain broken links and images.&lt;/div&gt;A while ago Shannon and I blogged about a project we were working on called &lt;a href="http://farmcode.org/page/Snapshot.aspx"&gt;Snapshot&lt;/a&gt; which was essentially a way to export flat ASP.Net websites from an Umbraco install.  &lt;p&gt;Since then, TheFARM has launched a few websites using development versions of Snapshot and we’ve been working towards getting a version of Snapshot ready for which anyone could purchase and use. &lt;br&gt;There have been some hurdles along the way such as legality around ownership, how to release it as a commercial product and my moving on from TheFARM. But finally … this has culminated in something exciting…&lt;/p&gt; &lt;h2&gt;uSnapshot is coming!&lt;/h2&gt; &lt;p&gt;That’s right sports fans, we’ve renamed Snapshot to &lt;a href="http://usnapshot.com/"&gt;uSnapshot&lt;/a&gt; and we’re going to be working on finishing v1.&lt;/p&gt; &lt;p&gt;But we realised that we don’t &lt;em&gt;know&lt;/em&gt; how everyone wants to use &lt;a href="http://usnapshot.com/"&gt;uSnapshot&lt;/a&gt;, so we’re throwing open the doors. Today we’ve launched the &lt;strong&gt;&lt;span style="font-size: x-large"&gt;&lt;a href="http://usnapshot.com/beta-program"&gt;uSnapshot Beta Program&lt;/a&gt;!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We’re looking for people who are interested in helping us beta test &lt;a href="http://usnapshot.com/"&gt;uSnapshot&lt;/a&gt; as we work towards a v1 release, help us find bugs and ultimately work on a final feature set for the release.&lt;/p&gt; &lt;p&gt;So if you think that &lt;a href="http://usnapshot.com/"&gt;uSnapshot&lt;/a&gt; may be something that you (or your company) may be interested in please &lt;a href="http://usnapshot.com/"&gt;&lt;span style="font-size: x-large"&gt;sign up&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Have a look at the &lt;a href="http://usnapshot.com" target="_blank"&gt;uSnapshot&lt;/a&gt; site for full details and benefits regarding the beta program.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:09 Z</pubDate>
      <a10:updated>2023-03-23T15:08:09Z</a10:updated>
    </item>
  </channel>
</rss>