<?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">1231</guid>
      <link>https://shazwazza.com/post/benchmarking-performance-of-your-code-between-release-versions/</link>
      <category>ASP.Net</category>
      <title>Benchmarking performance of your code between release versions</title>
      <description>&lt;p&gt;A while ago in 2016 I posted a &lt;a rel="noopener" href="https://github.com/dotnet/BenchmarkDotNet/issues/290" target="_blank"&gt;question&lt;/a&gt; on the &lt;a rel="noopener" href="https://github.com/dotnet/BenchmarkDotNet" target="_blank"&gt;BenchmarkDotNet&lt;/a&gt; repository about an official way to run benchmarks between Nuget releases. In 2018 I managed to find some time and with the with the help of &lt;a rel="noopener" href="https://github.com/adamsitnik" target="_blank"&gt;Adam Sitnik&lt;/a&gt; (one of the project’s maintainers), was able to &lt;a rel="noopener" href="https://github.com/dotnet/BenchmarkDotNet/pull/922" target="_blank"&gt;make that work&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;I won’t go into detail about what BenchmarkDotNet is, but it’s a brilliant way to accurately run benchmarks against your code to see how it performs, how much memory is being used, etc…&lt;/p&gt;
&lt;p&gt;With this new feature you can now easily see how your code changes effect performance between your releases.&lt;/p&gt;
&lt;h2&gt;Show me the code&lt;/h2&gt;
&lt;p&gt;Making this work is quite easy and there’s a &lt;a rel="noopener" href="https://github.com/dotnet/BenchmarkDotNet/blob/master/samples/BenchmarkDotNet.Samples/IntroNuGet.cs" target="_blank"&gt;quick start code snippet&lt;/a&gt; in the repo already. For the example below I’ll use &lt;a rel="noopener" href="https://sixlabors.com/projects/imagesharp/" target="_blank"&gt;ImageSharp&lt;/a&gt; as the library to be tested and we’ll see how well &lt;a rel="noopener" href="https://twitter.com/James_M_South" target="_blank"&gt;James&lt;/a&gt; and his team is doing with regards to improving it’s JPEG decoding performance.&lt;/p&gt;
&lt;pre class="lang-csharp"&gt;&lt;code&gt;
[Config(typeof(Config))]
public class ImageTests
{
    private static readonly string _filePath = @"C:\temp\test.jpg";

    private class Config : ManualConfig
    {
        public Config()
        {
            var baseJob = Job.MediumRun.With(CsProjCoreToolchain.Current.Value);
            Add(baseJob.WithNuGet("SixLabors.ImageSharp", "1.0.0-beta0006").WithId("1.0.0-beta0006"));
            Add(baseJob.WithNuGet("SixLabors.ImageSharp", "1.0.0-beta0005").WithId("1.0.0-beta0005"));
            Add(baseJob.WithNuGet("SixLabors.ImageSharp", "1.0.0-beta0004").WithId("1.0.0-beta0004"));
        }
    }

    [Benchmark]
    public Size LoadJpg()
    {
        using (var img = Image.Load(_filePath))
        {
            var size = img.Size();
            return size;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The code above should seem pretty straightforward. It’s just setting up 3 BenchmarkDotNet jobs, each using a different version of the SixLabors.ImageSharp Nuget package. Then the actual benchmark test is loading in a JPEG extracting it’s size and returning it.&lt;/p&gt;
&lt;p&gt;Running the benchmark is like running any other BenchmarkDotNet test, for example in a console app:&lt;/p&gt;
&lt;pre class="lang-csharp"&gt;&lt;code&gt;
class Program
{
    static void Main(string[] args)
    {   
        var summary = BenchmarkRunner.Run();
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The results&lt;/h2&gt;
&lt;table border="0"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;NuGetReferences&lt;/th&gt;
&lt;th&gt;Mean&lt;/th&gt;
&lt;th&gt;Error&lt;/th&gt;
&lt;th&gt;StdDev&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LoadJpg&lt;/td&gt;
&lt;td&gt;1.0.0-beta0004&lt;/td&gt;
&lt;td&gt;SixLabors.ImageSharp 1.0.0-beta0004&lt;/td&gt;
&lt;td&gt;297.5 ms&lt;/td&gt;
&lt;td&gt;142.8 ms&lt;/td&gt;
&lt;td&gt;7.827 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoadJpg&lt;/td&gt;
&lt;td&gt;1.0.0-beta0005&lt;/td&gt;
&lt;td&gt;SixLabors.ImageSharp 1.0.0-beta0005&lt;/td&gt;
&lt;td&gt;202.9 ms&lt;/td&gt;
&lt;td&gt;466.6 ms&lt;/td&gt;
&lt;td&gt;25.577 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoadJpg&lt;/td&gt;
&lt;td&gt;1.0.0-beta0006&lt;/td&gt;
&lt;td&gt;SixLabors.ImageSharp 1.0.0-beta0006&lt;/td&gt;
&lt;td&gt;148.8 ms&lt;/td&gt;
&lt;td&gt;107.8 ms&lt;/td&gt;
&lt;td&gt;5.910 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Looks good! from the beta0004 release to the beta0006 release there’s almost twice the performance boost.&lt;/p&gt;
&lt;h2&gt;API Surface Area&lt;/h2&gt;
&lt;p&gt;There is one caveat though… In order to run these tests between versions of your library, the same API surface area will need to exist otherwise you’ll get exceptions when running the benchmarks. This is the reason why versions beta0001 –&amp;gt; beta0003 are not included in the jobs listed above. Its because in the older versions either the APIs were different or the namespaces were different.&lt;/p&gt;
&lt;p&gt;It is possible to work around this but you’d need to use some ugly reflection to do it and then you need to be careful that you are not testing the reflection performance hit either.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Now you should have a pretty easy way to know how the performance of your library is changing between versions. Happy coding!&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:09:17 Z</pubDate>
      <a10:updated>2023-03-23T15:09:17Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1234</guid>
      <link>https://shazwazza.com/post/how-i-configure-my-umbraco-cloud-website-to-support-nuget-packages/</link>
      <category>Umbraco</category>
      <title>How I configure my Umbraco Cloud website to support Nuget packages</title>
      <description>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: &lt;em&gt;This post is about how I have my own website setup. This is based on my own personal opinions and is not meant to be an Umbraco Cloud ‘best practices’ guide. I’ve written this post since it might help others who have the same requirements as I do.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;My Requirements&lt;/h2&gt;
&lt;p&gt;For my simple website, I would like to manage all of my dependencies with Nuget, I don’t need anything compiled, don’t need class libraries and I don’t mind putting any required custom code into App_Code.&lt;/p&gt;
&lt;p&gt;Umbraco Cloud provisions a &lt;strong&gt;deployment&lt;/strong&gt; Git repository which for all intensive purposes is meant for deploying code between environments, not so much for a source code repository. That said, since my website is ultra simple and doesn’t contain any class library projects (etc…) I figured having an ASP.Net &lt;strong&gt;website&lt;/strong&gt; project configured in the Umbraco Cloud repository would be fine. A &lt;strong&gt;website&lt;/strong&gt; project is different from the standard &lt;strong&gt;web application&lt;/strong&gt; project; a website doesn’t compile, it runs &lt;em&gt;as-is&lt;/em&gt; which is suitable for the Umbraco Cloud Git repository since that’s exactly what the repository is made for: &lt;em&gt;to host a deployed website that runs based on the files as-is&lt;/em&gt;.  I prefer working with web application projects normally but in this case my website is ultra simple and a website project will work just fine plus this allows me to have a Visual Studio project/solution that works fairly seamlessly with Umbraco Cloud.&lt;/p&gt;
&lt;h2&gt;How to set this up&lt;/h2&gt;
&lt;p&gt;There’s not a lot required to set this up but there are a couple &lt;em&gt;‘gotchas’&lt;/em&gt;, here’s the steps:&lt;/p&gt;
&lt;h4&gt;1) Clone your Umbraco Cloud Git repo&lt;/h4&gt;
&lt;p&gt;The first step is straight forward, you need to clone your Umbraco Cloud Git repository to your local machine&lt;/p&gt;
&lt;h4&gt;2) Open your Umbraco Cloud site as a Website in Visual Studio&lt;/h4&gt;
&lt;p&gt;Open Visual Studio, &lt;em&gt;File –&amp;gt; Open –&amp;gt; Web site&lt;/em&gt; and choose the folder where your Umbraco Cloud site is cloned. This will open your Umbraco Cloud folder as a &lt;strong&gt;website&lt;/strong&gt; project (a&lt;em&gt;t this point you could ctrl+F5 and it would run your site). &lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;3) Save the sln file&lt;/h4&gt;
&lt;p&gt;You need to save the Visual Studio .sln file in order to have Nuget references, &lt;em&gt;File –&amp;gt; Save localhost_1234.sln As…&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This menu option is a bit odd and that’s because Visual Studio has created an in-memory .sln file which it’s auto-named to be localhost_PORT.sln&lt;/p&gt;
&lt;p&gt;&lt;a href="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_2.png"&gt;&lt;img style="display: inline; background-image: none;" src="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_thumb.png" border="0" alt="image" title="image" width="374" height="417" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you click on that, browse to your Umbraco Cloud Git repo folder and name the file something that makes more sense than localhost_PORT.sln.&lt;/p&gt;
&lt;h4&gt;4) Configure the Solution and Project to not build the website&lt;/h4&gt;
&lt;p&gt;This is optional but by default Visual Studio will try to build your website which means it’s going to try to precompile all views, etc… which not only can take some time but you will get false positive errors. So instead there’s 2 things to do: In Configuration Manager turn off the “Build” option for the website project and in the website project settings turn off building. Here’s how:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Build –&amp;gt; Configuration Manager&lt;/em&gt; opens a dialog, uncheck the Build checkbox for the website&lt;/p&gt;
&lt;p&gt;&lt;a href="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_4.png"&gt;&lt;img style="display: inline; background-image: none;" src="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_thumb_1.png" border="0" alt="image" title="image" width="534" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then right click the root of your website project and choose “Property Pages” and click on the “Build” navigation element. Then change the “Start action” to “No build” and un-check the “Build website as part of solution” checkbox&lt;/p&gt;
&lt;p&gt;&lt;a href="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_6.png"&gt;&lt;img style="display: inline; background-image: none;" src="https://shazwazza.com/media/articulate/open-live-writer-how-i-configure-my-umbraco-cloud-website_af45-image_thumb_2.png" border="0" alt="image" title="image" width="674" height="431" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;5) Create a Kudu .deployment file&lt;/h4&gt;
&lt;p&gt;Here’s one of the &lt;em&gt;‘gotchas’&lt;/em&gt;. Like Azure web apps, Umbraco Cloud also uses Kudu to perform some of it’s operations such as deploying a website from the Git repository to the hosting directory on the server. By default Kudu will copy the files in the deployment repository as-is to the hosting directory on the server &lt;em&gt;(which is what we want)&lt;/em&gt;… that is until Kudu sees things like &lt;em&gt;.sln &lt;/em&gt;or &lt;em&gt;.csproj &lt;/em&gt;files in the root of the Git repository, then it tries to be clever and build things &lt;em&gt;(which we don’t want).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So to tell Kudu to just deploy the files as-is, we create a special Kudu file at the repository root called &lt;em&gt;.deployment (to be clear this file name starts with a dot!)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;To create this, in your Visual Studio website project, right click the root click &lt;em&gt;Add –&amp;gt; Add new item –&amp;gt; Choose Text File –&amp;gt; Enter the name .deployment  &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Then add the following to this file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[config]
project = .&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and this tells Kudu to just deploy the files that are found in the repo.&lt;/p&gt;
&lt;h4&gt;6) Now you can add Nuget references&lt;/h4&gt;
&lt;p&gt;Once all of this is setup, you can add Nuget references to this website project like you would normally add Nuget references. At this point you might need to make a choice: Do you want to manage your Umbraco installation based on Nuget? In some cases you might not have a choice if you need to reference a Nuget package that has a dependency on Umbraco.Core. &lt;/p&gt;
&lt;p&gt;As it turns out this choice isn’t such a big deal but some things to be aware of. Since Umbraco Cloud auto-upgrades projects to the latest patch version, you might be concerned that your packages.config is going to get out of date… luckily Umbraco Cloud is clever and will auto-update this file to the version it just upgraded you too. This also goes for minor version upgrades that you perform on Umbraco Cloud. Since Umbraco Cloud auto-commits all of the upgraded files, it means you really don’t have to do anything.&lt;/p&gt;
&lt;h4&gt;7) You’ll need to commit the special *.dll.refresh files&lt;/h4&gt;
&lt;p&gt;Once you start using Nuget with a website project, you’ll notice a bunch of these *.dll.refresh files in your /bin directory. You’ll need to commit those. These are special marker files used by Visual Studio to know how to manage Nuget dependencies with a website project.&lt;/p&gt;
&lt;h2&gt;That's it!&lt;/h2&gt;
&lt;p&gt;The above setup is an easy way to setup a Visual Studio solution with a single website project that works seamlessly with Umbraco Cloud while allowing you to manage dependencies with Nuget.&lt;/p&gt;
&lt;p&gt;But what if your solution is more complicated or you want to add class libraries, etc… ? There’s Umbraco documentation on how to configure this found here: &lt;a href="https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Visual-Studio/" title="https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Visual-Studio/"&gt;https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Visual-Studio/&lt;/a&gt;, &lt;a href="https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Working-With-Visual-Studio/" title="https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Working-With-Visual-Studio/"&gt;https://our.umbraco.com/documentation/Umbraco-Cloud/Set-Up/Working-With-Visual-Studio/&lt;/a&gt;  and the configuration there isn’t so different than the above except that the .sln file isn’t committed to the Umbraco Cloud Git deployment repository and instead exists in your own Git repository which in that case, the special &lt;em&gt;.deployment&lt;/em&gt; file is not necessary.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:09:00 Z</pubDate>
      <a10:updated>2023-03-23T15:09:00Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1171</guid>
      <link>https://shazwazza.com/post/appveyor-and-aspnet-core-previously-aspnet-5/</link>
      <category>ASP.Net</category>
      <title>AppVeyor and ASP.Net Core (Previously ASP.Net 5)</title>
      <description>&lt;p&gt;Last year I created a runtime Js/Css pre-processor for ASP.Net Core (Previously ASP.Net 5) called “&lt;a href="https://github.com/Shazwazza/Smidge" target="_blank"&gt;Smidge&lt;/a&gt;” and have been meaning to blog about how I integrated this with AppVeyor – to run my tests, build the project and output the Nuget files I need, so here it goes…&lt;/p&gt; &lt;h2&gt;The build script&lt;/h2&gt; &lt;p&gt;I use Powershell for my build scripts for my projects since it’s reasonably easy to read and the same script format has worked quite well for ASP.Net Core projects too. You can see the whole build file &lt;a href="https://github.com/Shazwazza/Smidge/blob/master/build.ps1" target="_blank"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;. Here’s the important things to note:&lt;/p&gt; &lt;p&gt;With AppVeyor (and probably other build servers), you need to ensure that it actually has the dnx version you need: &lt;/p&gt;&lt;pre class="csharpcode"&gt;# ensure the correct version
&amp;amp; $DNVM install 1.0.0-rc1-update1&lt;/pre&gt;
&lt;p&gt;Next you need to make sure that the current process is using the version you need to build:&lt;/p&gt;&lt;pre class="csharpcode"&gt;# use the correct version
&amp;amp; $DNVM use 1.0.0-rc1-update1&lt;/pre&gt;
&lt;p&gt;Then we need to use DNU to make sure that your project has everything it needs to build:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;amp; $DNU restore &lt;span class="str"&gt;"$ProjectJsonPath"&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Lastly it’s just building and packaging the project:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;amp; $DNU build &lt;span class="str"&gt;"$ProjectJsonPath"&lt;/span&gt;
&amp;amp; $DNU pack &lt;span class="str"&gt;"$ProjectJsonPath"&lt;/span&gt; --configuration Release --&lt;span class="kwrd"&gt;out&lt;/span&gt; &lt;span class="str"&gt;"$ReleaseFolder"&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;The rest of the build file is normal Powershell bits. &lt;/p&gt;
&lt;h2&gt;The test script&lt;/h2&gt;
&lt;p&gt;I’m using xunit for unit tests in this project and similarly to the build script I’m using a simple Powershell script to execute the tests on the build server, the test runner file is &lt;a href="https://github.com/Shazwazza/Smidge/blob/master/tests.ps1" target="_blank"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;. The important parts are just like the above: Ensure the correct version is installed and being used by the current process and making sure that the project has everything it needs to build and finally to build it. The last missing piece is to actually run the tests:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;amp; $DNX -p &lt;span class="str"&gt;"$TestsFolder"&lt;/span&gt; test&lt;/pre&gt;
&lt;p&gt;Where ‘&lt;em&gt;test’&lt;/em&gt; is a command defined in my &lt;a href="https://github.com/Shazwazza/Smidge/blob/master/tests/Smidge.Tests/project.json#L10" target="_blank"&gt;project.json as part of my unit test project&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;AppVeyor configuration&lt;/h2&gt;
&lt;p&gt;The good news is that there’s really not a lot to setup, it’s super easy. In your AppVeyor settings just go to the ‘Build’ section and tell it to execute the Powershell script with its build version information:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_2.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_thumb.png" width="600" height="208"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then for the unit tests is basically the same, click on the ‘Tests’ section and tell it to execute the Powershell test script:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_4.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_thumb_1.png" width="600" height="222"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And that’s pretty much it! The only other part I’ve had to setup is the paths to my Artifacts (Nuget files) based on the current build number.&lt;/p&gt;
&lt;p&gt;Now whenever I commit, AppVeyor will execute the build script and test script and we can see the output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_6.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_thumb_2.png" width="600" height="238"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And it’s smart enough to know that the test runner executed is for unit tests, so all the unit test output shows up in the ‘Tests’ tab of the build&lt;/p&gt;
&lt;p&gt;&lt;a href="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_8.png"&gt;&lt;img title="image" style="display: inline" alt="image" src="http://shazwazza.com/media/articulate/windows-live-writer-smidge-rc3-released_eb4d-image_thumb_3.png" width="600" height="152"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now that that’s all setup, AppVeyor even gives you a handy Nuget feed that you can use to test your packages based on each build, this can be configured on the ‘NuGet’ settings section, for example here’s the Smidge feed: &lt;a title="https://ci.appveyor.com/nuget/smidge" href="https://ci.appveyor.com/nuget/smidge"&gt;https://ci.appveyor.com/nuget/smidge&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Smidge 1.0.0-RC3&lt;/h2&gt;
&lt;p&gt;It’s worth noting that I’ve also released a new version of Smidge since I finally had some time to work on it. Couple of bugs fixed in this release and also a handy new feature too! You can see the release notes here: &lt;a title="https://github.com/Shazwazza/Smidge/releases/tag/1.0.0-rc3" href="https://github.com/Shazwazza/Smidge/releases/tag/1.0.0-rc3"&gt;https://github.com/Shazwazza/Smidge/releases/tag/1.0.0-rc3&lt;/a&gt;.&amp;nbsp; I’ve also updated a lot of the documentation, the main readme file was getting quite long so I’ve moved all of the docs over to the project’s Wiki on GitHub and condensed the readme for the most important bits. Have a look here: &lt;a title="https://github.com/Shazwazza/Smidge/releases/tag/1.0.0-rc3" href="https://github.com/Shazwazza/Smidge/releases/tag/1.0.0-rc3"&gt;https://github.com/Shazwazza/Smidge&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:15 Z</pubDate>
      <a10:updated>2023-03-23T15:08:15Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1207</guid>
      <link>https://shazwazza.com/post/examine-151-released/</link>
      <category>Umbraco</category>
      <category>Examine</category>
      <title>Examine 1.5.1 released</title>
      <description>&lt;style&gt;
div.nuget-badge p code {
background: none;
background-color: #202020 !important;
border: 4px solid silver !important;
border-bottom-left-radius: 5px 5px !important;
border-bottom-right-radius: 5px 5px !important;
border-top-left-radius: 5px 5px !important;
border-top-right-radius: 5px 5px !important;
color: #e2e2e2 !important;
display: block !important;
font: normal normal normal 1.5em/normal 'andale mono', 'lucida console', monospace !important;
line-height: 1.5em !important;
overflow: auto !important;
padding: 15px !important;
}
&lt;/style&gt;  &lt;p&gt;I’ve created a new release of Examine today, version 1.5.1. There’s nothing really new in this release, just a bunch of bug fixes. The other cool thing is that I’ve finally got Examine on Nuget now. The v1.5.1 release page is &lt;a href="https://examine.codeplex.com/releases/view/104554" target="_blank"&gt;here&lt;/a&gt; on CodePlex with upgrade instructions… which is really just replacing the DLLs.&lt;/p&gt; &lt;p&gt;Its &lt;em&gt;important&lt;/em&gt; to note that if you have installed Umbraco 6.0.1+ or 4.11.5+ then you already have Examine 1.5.0&amp;nbsp; installed (which isn’t an official release on the CodePlex page) which has 8 of these 10 bugs fixed already.&lt;/p&gt; &lt;h2&gt;Bugs fixed&lt;/h2&gt; &lt;p&gt;Here’s the full list of bugs fixed in this release:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10357" href="https://examine.codeplex.com/releases/view/10357"&gt;&lt;a href="https://examine.codeplex.com/workitem/10357"&gt;https://examine.codeplex.com/workitem/10357&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10356" href="https://examine.codeplex.com/releases/view/10356"&gt;&lt;a href="https://examine.codeplex.com/workitem/10356"&gt;https://examine.codeplex.com/workitem/10356&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10355" href="https://examine.codeplex.com/releases/view/10355"&gt;&lt;a href="https://examine.codeplex.com/workitem/10355"&gt;https://examine.codeplex.com/workitem/10355&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10363" href="https://examine.codeplex.com/releases/view/10363"&gt;&lt;a href="https://examine.codeplex.com/workitem/10363"&gt;https://examine.codeplex.com/workitem/10363&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10359" href="https://examine.codeplex.com/releases/view/10359"&gt;&lt;a href="https://examine.codeplex.com/workitem/10359"&gt;https://examine.codeplex.com/workitem/10359&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10358" href="https://examine.codeplex.com/releases/view/10358"&gt;&lt;a title="https://examine.codeplex.com/workitem/" href="https://examine.codeplex.com/workitem/10358"&gt;https://examine.codeplex.com/workitem/10358&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10358" href="https://examine.codeplex.com/releases/view/10358"&gt;&lt;a href="https://examine.codeplex.com/workitem/10360"&gt;https://examine.codeplex.com/workitem/10360&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10358" href="https://examine.codeplex.com/releases/view/10358"&gt;&lt;a href="https://examine.codeplex.com/workitem/10361"&gt;https://examine.codeplex.com/workitem/10361&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10358" href="https://examine.codeplex.com/releases/view/10358"&gt;&lt;a href="https://examine.codeplex.com/workitem/10362"&gt;https://examine.codeplex.com/workitem/10362&lt;/a&gt;&lt;/a&gt;  &lt;li&gt;&lt;a title="https://examine.codeplex.com/releases/view/10358" href="https://examine.codeplex.com/releases/view/10358"&gt;&lt;a href="https://examine.codeplex.com/workitem/10349"&gt;https://examine.codeplex.com/workitem/10349&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;UmbracoExamine&lt;/h2&gt; &lt;p&gt;You may already know this but we’ve moved the UmbracoExamine libraries in to the core of Umbraco so that the Umbraco core team can better support the implementation. That means that only the basic Examine libraries will continue to exist @ examine.codeplex.com. The release of 1.5.1 only relates to the base Examine libraries, not the UmbracoExamine libraries, but that’s ok you can still upgrade these base libraries without issue.&lt;/p&gt; &lt;h2&gt;Nuget&lt;/h2&gt; &lt;p&gt;There’s 2 Examine projects up on Nuget, the basic Examine package and the Azure package if you wish to use Azure directory for your indexes.&lt;/p&gt; &lt;p&gt;Standard package:&lt;/p&gt; &lt;div class="nuget-badge"&gt; &lt;p&gt;&lt;code&gt;PM&amp;gt; Install-Package Examine&lt;/code&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;Azure package:&lt;/p&gt; &lt;div class="nuget-badge"&gt; &lt;p&gt;&lt;code&gt;PM&amp;gt; Install-Package Examine.Azure&lt;/code&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Happy searching!&lt;/p&gt;</description>
      <pubDate>Thu, 23 Mar 2023 15:08:08 Z</pubDate>
      <a10:updated>2023-03-23T15:08:08Z</a10:updated>
    </item>
  </channel>
</rss>