Using the Harvest API

Using the Harvest API

by 

|

|  

in

Anyone who does consulting is keenly aware of the importance of time tracking. Harvest is an excellent tool for logging time for projects. It’s the system we use here at Don’t Panic Labs, and we’ve found it to be both low friction and highly valuable. But there may be times when you want to use…

Read more…

I Want My .NET Maui!

I Want My .NET Maui!

by 

|

|  

in

There is something really appealing about native applications. As a user, having a “real” application – as opposed to a web application – often feels better. Native applications feel like a real piece of productive software. Maybe that’s why I enjoy working on them. I know that my work will produce something I might enjoy…

Read more…

GitHub Actions and a C# AWS Lambda

GitHub Actions and a C# AWS Lambda

by 

|

|  

in

GitHub is the standard for online source control. It was really the first platform many of us knew about for the hosting of git in the cloud, and we have all used it at some point. At Don’t Panic Labs, we have been using Azure Dev Ops more than GitHub during the last few years….

Read more…

Latest Updates from Nebraska Dev Lab

Latest Updates from Nebraska Dev Lab

by 

|

|  

in

When we began thinking about what would become the Nebraska Dev Lab Pipeline Program, we had one goal: create more software developers in Nebraska. But as time went on and we took a hard look at the state of the industry, we realized that we could also make an impact by helping to create a…

Read more…

Building Serverless Applications in C# with AWS Lambda

Building Serverless Applications in C# with AWS Lambda

by 

|

|  

in

Hosting your backend solution used to be pretty straightforward for .NET developers. You were basically writing an ASP.NET website that was hosted in IIS. Today there are a lot of options, of which IIS is still one of them. Many of the web applications we write today end up hosted in either Azure App Services…

Read more…

How To: Sending Emails with Mailgun

How To: Sending Emails with Mailgun

by 

|

|  

in

Sending emails is a common feature in software these days. A user signs up, we send an email. A user places an order, we send an email. This sort of action happens all over. So it isn’t surprising that as software developers, it’s pretty common for us to include email functionality in the systems we…

Read more…

Reading Code Reviews from the Azure DevOps API

Reading Code Reviews from the Azure DevOps API

by 

|

|  

in

Code reviews are one of the best things you can use as a proxy for how things are going on a project. Just the lack of code reviews is very telling. But how long it takes to do code reviews can also be telling, as can the size of code reviews. If you have to…

Read more…

A History of Microsoft .NET, Part 6: 4.0 (Parallel, Dynamic)

A History of Microsoft .NET, Part 6: 4.0 (Parallel, Dynamic)

by 

|

|  

in

.NET Framework 4, in some ways, is “the” .NET. This is when .NET felt like a super solid platform that didn’t need anything else. It was great. Ironically, I don’t think .NET 4 added much over .NET 3.5, but it felt like a clean solution was fully brought together. It was released alongside Visual Studio…

Read more…

A History of Microsoft .NET, Part 5: 3.5 SP1 (ADO.NET Entity Framework)

A History of Microsoft .NET, Part 5: 3.5 SP1 (ADO.NET Entity Framework)

by 

|

|  

in

SqlConnection, SqlCommand, SqlDataReader, and SqlDataAdapter are classes we were very familiar with in 2008. If you wanted to write a database query, you were probably using a combination of these classes. Things changed in 2008 with the release of .NET 3.5 SP1, giving .NET a Microsoft-provided Object-Relational Mapping (ORM). A lack of ORM was becoming…

Read more…

Using AWS Cognito

Using AWS Cognito

by 

|

|  

in

AWS has a lot of great services, but one of the most useful is also one of the least sexy: a basic user management service called Cognito. Cognito provides authentication for users in the cloud. For those of us used to the Azure world, think Azure B2C but with a less awkward configuration. I actually…

Read more…