Indy.Code() Sessions tagged .net

Lowering in the C# Compiler

A compiler translates a program written in one language into an equivalent program in another language; typically, the source language is a high-level language (C#) and the target language is a low-level language (CIL or Common Intermediate Language). A common technique along the way though is to have the compiler “lower” from high-level language features to low-level language features in the same language.

The C# compiler use the Lowering step quite a bit. Essentially, every new language feature we’ve got since C# 2.0 is lowered to C# 2.0 and then compiled to CIL. You’ll be surprised at what all the C# compiler lowers and to what it lowers it to.

In this talk we’ll take a look at all the hard work the compiler does for us as well as how the C# team brings us new features without the need to change the runtime. This talk will also expose you to having a better understand of the performance and/or memory implications of the code you write. A real eye opener!

Speaker

Shiv Kumar

Shiv Kumar

Senior Solutions Architect, Applied Information Sciences

Creating and consuming a private Nuget repository using Azure DevOps

There are benefits to using Nuget package manager for your libraries. When you have libraries that contain propitiatory code, or are just for your organizations internal use only, you don't want to expose those libraries to the open marketplace. That's where a private repository comes in. During this session, we'll discuss some of the reasons why package managers are a good idea, and we'll demonstrate how to create a private repository in Azure DevOps for your organization, and show how to publish to and consume that repository.

Speaker

Johnie Karr

Johnie Karr

Sr. Software Engineer, ScholarRx

Unit-Testing With Ease

Do you want to skip all the setup ceremony and get straight to the actual testing when writing unit tests? Leveraging dependency injection and IoC makes it a breeze to build solutions that are modular and testable, but building out those dependency chains in our unit tests can leave them cluttered and overly complex. It's time to learn to embrace the magic of IoC, DI, and mocking to lower the friction of writing and maintaining unit tests. Taking cues from the open-source library Ease, you can see how to tap into the life-cycle of unit testing frameworks and integrate it with an IoC container to give you a fresh start for each test. Throw in a little mocking and a flexible pattern for managing setup and now you are testing in high gear! A great side-effect of using Ease, or a similar methodology, is that tests become more resilient against changes in the dependencies that are not a direct concern of the test, so you end up breaking fewer tests and changing less test code. What are you waiting for? Stop the ceremony, and start testing!

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Packaging your world with NuGet

Whether you are creating an open source library or building enterprise app core components, you need to get that functionality into other projects. But developing these resources is usually easier than consuming them. How about a worry free way to distribute and reference those resources in your project that will let you stay up to date, but allow you to avoid problems that may introduce breaking changes or new bugs? NuGet packages to the rescue! We'll also take a look at where you can find NuGet (packages aren't just for code any more) and how to create, distribute, and maintain your very own package. Then, you’ll be ready to share your package with your team, your enterprise, or even… The world!

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC