Contents tagged with dotnet

  • Generating links inside a .NET Core Tag Helper

    Previously when generating links inside any non view code I'd always try and get hold of an instance of IUrlHelper, but I've found a simpler way that has been available since .NET Core 2.2.

    LinkGenerator can be injected into a tag helper or any class. It has all the useful methods of IUrlHelper, with fewer dependencies. It only asks for HttpContext if it absolutely needs it, which in many cases it does not.

    Inject it into your class like so:

    private readonly LinkGenerator _linkGenerator;

    public NogginTagHelper(LinkGenerator linkGenerator)

    {

    _linkGenerator = linkGenerator;

    } … more

  • Using URL helper inside your .NET Core Tag Helper

    I've discovered a better way of doing this. Check out my new post on using LinkGenerator instead.

    If you're writing a tag helper and would like to generate links using IUrlHelper then you can not inject this directly. You need to inject an IUrlHelperFactory and then there are a few hoops that you need to jump through.

    This is how to set up the UrlHelper inside you tag helper constructor:

    private readonly IUrlHelper _urlHelper;

    public NogginTagHelper(IUrlHelperFactory urlHelperFactory, IActionContextAccessor contextAccessor)

    {

    _urlHelper = urlHelperFactory.GetUrlHelper( … more

  • Dot net on Docker at Dot Net North

    I miss going to usergroups, but with all the videos online now it is does mean I can get to more of the slightly further away user groups like Dot Net North. Even if I don't get to talk to anyone there.

    I first saw Docker being used by a developer in my co-working space for his Dating Site Whitelabel platform. The platform's userbase was growing and he was experimenting with different infrastructures to help support that growth. Docker enabled him to set up test environments that would be identical to the final production environment, to set them up quickly and repeatedly. He found this … more

  • Forms Authentication in .NET Core (AKA Cookie Authentication)

    In .NET Core MVC you're encourages to use .NET Identity, but you don't have to. You can manage your own user identities and you use forms authentication which is now called Cookie Authentication (which is a better name really).

    You need to install the Microsoft.AspNetCore.Authentication.Cookies nuget package.

    There is some configuration that needs to go in startup.cs:

    public void ConfigureServices(IServiceCollection services)

    {

    services

    .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)

    .AddCookie(options => {

    options. … more

  • My Windows Services Panel

    As a developer I have a lot of different types of Windows Services installed on my computer for the different projects I work on. Services like MS SQL Server Express, MS SQL Server, IIS, MSMQ and MySQl.

    I don't use all of them all of the time, but I would normally leave them running because I couldn't be bothered trawling through all of the services in Services Manager to stop and start them. Having them running all the time made my computer take longer to startup and I felt like it was slowing it down generally and stealing battery power.

    So I created My Windows Services Panel as a way to … more

  • Dizzy Dalek at NDC 2014

    The video of my talk on MonoGame and 3D (featuring a dizzy dalek) is now live on Vimeo:

    You can find the demo code here:

    bitbucket.org/NogginBox/monogame-3d-dizzy-dalek

    Other NDC Game Development Related talks

    If you enjoyed this talk, you may also enjoy:

    Cross-platform physics-based gaming using MonoGame and Farseer

    Game and Simulator Physics for Developers, Gamers and Petrol Heads

    Porting Quake III to F#: A Journey to Functional Programming

    more

  • Sharing your view model between Monogame and Xaml

    If you create a new Monogame Windows Store XAML Project. You will get a XAML page called GamePage.xaml and you'll get the monogame game class Game1.cs. If you want display data from your game class in XAML or if you want to take input from XAML into your game then these two sides are going to need to communicate.

    One way they can communicate is by sharing a view model. As the XAML page creates the instance of your game class, it can also let your game class know about it's view model. Like this in GamePage.xaml.cs:

    public GamePage(string launchArguments){    this. … more

  • Real readonly lists in C#

    In C# there is the readonly keyword that enforced the rule that the variable must be initialised as it's declared or in the constructor. This works as expected for simple types, but for objects and lists it's not quite like that. With a list, you can still add, remove and change items in the list. You may also expose a list as a property with a public get and a private set. You want the owner class to be able to modify the list items, but you don't want anything outside the class to modify the list items.

    Here is an example with an almost readonly list, but as you can see it's not as … more

  • Mocking with NSubstitute

    My previous C# mocking framework of choice was MOQ. It's very powerful and fairly easy to use, but I recently started using NSubstitute and fell in love with how easy and intuative it was to use.

    The cleverest part is that unlike MOQ the mocks produced actually implement the interface they're mocking and this makes the code much clearer and a little bit shorter.

    Here is a very simple example:

    var mockThing = Substitute.For<IThing>();mockThing.DoThingy().Returns("Something");// Use mock thingUseThing(mockThing);

    In MOQ this is also quite straightforward but the setup code to change … more

  • Mocking your Entity Framework data context and testing it in .NET MVC

    I explained in my previous post Do we need the repository pattern? why you might want to mock your Entity Framework context rather than using the repository pattern. In this post I’ll show you how to do that and how to test your .NET MVC controllers with a fake data context.

    The way you do this varies slightly depending on whether you're using code first or database first. I’ll cover both in this post.

    Using Code First in Entity Framework 4

    My implementation of code first is based heavily on the blog post by Rowan Miller.

    A mockable data context (EF Code First)

    When you … more

  • 1