In this issue from October 2017: Explaining tuples in C# 7; .NET 4.7.1 can now consume packages targeting .NET Standard 2.0; Hanselman finds he’s smarter when working with someone else; Pwned passwords available for download; Stackoverflow reports on software developer ecosystems; and Richard Campbell presents the history of .NET.
Sharpen the Saw is a somewhat delayed repost of a semi-regular newsletter of information I publish for the professional development of software developers. While targeted primarily at developers working with the Microsoft technology stack, content will cover a wider range of topics.
To subscribe, send me an email and I’ll put you on the list. Membership is moderated.
Always a way to improve the code you write every day.
Essential .NET - C# 7.0: Tuples Explained
In this article fro MSDN magazine, Mark Michaelis looks at the new
ValueTuple type introduced with C# 7.0 and shows how it can make your code more expressive.
If you haven’t already seen them, tuples provide a clean syntax for returning multiple values from a single function call - imagine an
int.TryParse() method that returns both a bool and an int without needing an out parameter.
Software and Updates
A new or upgraded tool can be a beautiful thing.
.NET Framework 4.7.1 Runtime and Compiler Features
With the release of .NET Framework 4.7.1, you can now consume packages targeting .NET Standard 2.0 from your full framework projects. This is immensely useful given the wide variety of projects that are now targeting .NET Standard 2.0 for distribution and maximal compatibility.
This release of the framework also includes performance improvements for garbage collection when you’re using the large object heap; serialization of the new
ValueTuple type; and initial support for some new features coming in C# 7.2.
A great developer does more than just write great code.
However good you are as a solo coder, chances are that you’ll be better if you work alongside someone. Technologist Scott Hanselman finds that he’s a better programmer when pairing, an experience that mirrors my own experiences. Scott talks about why this is the case in this blog post.
Staying safe online and writing secure systems are both harder than we think.
Introducing 306 Million Freely Downloadable Pwned Passwords
Here’s an interesting resource made available by security blogger Troy Hunt - a corpus of over 320 million real-world passwords (it’s grown), compiled from the many many breaches he’s loaded into his Have I been pwned service. Cleverly, the passwords aren’t in clear text but instead are provided as SHA1 hashes, allowing easy testing to see if a password is present without releasing all the passwords themselves.
Sometimes the answer is random.
Mapping Ecosystems of Software Development
At StackOverflow, they have access to a stunning array of data that gives them insights into the way developer tools are developing and evolving, simply as a side effect of their success as a (some would say “the”) question and answer site for developers.
There’s more to this article on software ecosystems than meets the eye - check out the interactive graph showing which tools are often used together. If you’re looking for the next thing to learn, spending 10 minutes with this graph might give you some insights on what to select.
Video of the Week
Take some time to feed your mind.
The History of .NET by Richard Campbell of .NET Rocks!
Twenty years of the history of .NET, presented by the veteran presenter and podcaster Richard Campbell.
Audience: All developers