Tool of the week: Rezoom.SQL
Rezoom.SQL is an F# ORM for SQL databases.
It integrates with the F# compiler via a generative type provider to statically typecheck its own dialect of SQL. It knows how to translate this SQL dialect to various backends. Currently it supports SQLite, SQL Server, and PostgreSQL.
The type provider makes it fast and easy to write SQL statements, run them, and consume their results from your F# code with full type safety. You don’t need to install any editor extensions or custom tooling, just add a NuGet package and you’re off and running writing code like this:.
type ListUsers = SQL<""" select * from Users """> let showUsers() = use context = new ConnectionContext() let users = ListUsers.Command().Execute(context) printfn "There are %d users." users.Count for user in users do printfn "User ID %d's email is %s..." user.Id user.Email match user.Name with | None -> printfn " and they don't have a name." | Some name -> printfn " and their name is %s." name
User group meeting of the week: Protobuf in Orlando
Protocol Buffers is a method of serializing structured data. It is useful in developing programs to communicate with each other over a wire or for storing data. Join the Orlando .NET User Group on Thursday, August 10 at 6:00PM to learn how to apply Protobuf in .NET.
- Welcome to the .NET Framework 4.7.1 Early Access! by Preeti Krishna.
- .NET Framework July 2017 Cumulative Quality Update for Windows 10 by Rich Lander.
- Visual Studio Toolbox: .NET Core 2.0 – Preview 2 by Rich Lander.
- Visual Studio for Mac by Lee Stott.
- Visual Studio for Mac version 7.2 Alpha Preview by Miguel de Icaza.
- Rider 2017.1 – JetBrains .NET IDE hits RTM by Jura Gorohovsky.
- Introduction to .NET Docker Images by Kendra Havens.
- Microservices and Docker containers: Architecture, Patterns and Development guidance by Cesar de la Torre.
- How we did (and did not) improve performance and efficiency in Marten 2.0 by Jeremy D Miller.
- Using .NET Core 2 on Raspbian Jessie to read serial data from an Arduino by Jeremy Lindsay.
- AutoMapper joins the .NET Foundation by Jimmy Bogard.
- Converting a Library to NetStandard by Derek Comartin.
- Porting to .Net Standard 2.0 Introduction, Part 1: Project Setup, and Part 2: Porting MEF 1.0 to MEF 2.0 on .Net Core by Siobhan Connell.
- ClrMD Part 6 – Manipulate memory structures like real objects by Christophe Nasarre & Kevin Gosse.
- How did I reduce the docker image of SimplCommerce from 900M to 145M using multi-stage builds by Thien Nguyen.
- Our experience with using third-party libraries by Patrick Smacchia.
- The Nuke command line by Matthias Koch.
- ASP.NET Core and 502 Bad Gateway Response by Wu Shuai.
- Getting Started With ASP.NET Core MVC by Sandeep Shekhawat.
- How to format response data as XML or JSON, based on the request URL in ASP.NET Core by Andrew Lock.
- Structured Logging with Application Insights by ASP.NET Monsters.
- Custom response caching in ASP.NET Core (with cache invalidation) by Paul Hiles.
- Develop Locally with HTTPS, Self-Signed Certificates and ASP.NET Core by Carlo van Wyk.
- ASP.NET Core SignalR – Simple chat by CodingBlast.
- .NET Core Middleware – OWASP Headers Part 2 – Configuration by Jamie Taylor.
- Creating Themes for ASP.NET Web Core by Mark Downie.
- Why, When and How to use Redis in ASP.NET MVC Core by Gary Woodfine.
- ASP.NET Core, response compression, response buffering and subtle difference between .NET Framework and .NET Core by Tomasz Pęczek.
- Practical C# – SelectMany in LINQ by Andrea Angella.
- Practical C# – Named and Optional Parameters by Andrea Angella.
- A look at the internals of ‘boxing’ in the CLR by Matt Warren.
- Declare Out variable right at the point – Out variable in C# 7.0 by Abhijit Jana.
- Using Visual Studio Code for C# (.NET Core) development by Jerrie Pelser.
- F# Hacking – Fable, Ionide, FSAC. by Krzyzstof Cieslak.
- Hey F#, load me this CSV file into a table! by Edgar Sánchez.
- Exoplanet Exploration with F# and MongoDb: Part 1 by Moko Sharma.
- Class-less Coding – Minimalist C# and Why F# and Function Programming Has Some Advantages by Marc Clifton.
- Extending folds for trees (F#) by Grzegorz Sławecki.
- GUI animations: async/await to F#’s Async by Sam WIlliams.
There is more content available this week in F# Weekly. If you want to see more F# awesomeness, please check it out!
- Exrin MVVM Operations – Write Less Code by Adam Pedley.
- Mobile Database Bi-Directional Synchronization with a REST API by Adam Pedley.
- Prism in Xamarin Forms Step by Step (Part. 3) by Charlin Agramonte.
- Learning Xamarin.Forms – Part 5: ListView by Jesse Liberty.
- Transient Fault Handling in Xamarin.Forms using Polly by David Britch.
- Transient Fault Handling in Xamarin.Forms by David Britch.
- MSBuild Basics by Jon Douglas.
- Being Reactive by Jon Douglas.
- LiveXAML for Xamarin Forms by LiveXAML.
- Xamarin.Tip – Borderless TimePicker by Alex Dunn.
- Xamarin.Tip – BottomNavigationView in Xamarin.Android by Alex Dunn.
- Xamarin.Tip – Borderless Editor by Alex Dunn.
- Xamarin.Tip – Playing Audio Through the Earpiece in iOS by Alex Dunn.
- Xamarin.Tip – Borderless Inputs by Alex Dunn.
- Xamarin.Tip – Playing Audio Through the Earpiece on Android by Alex Dunn.
- Xamarin.University – Guest Lecture Available for Free! by Alex Dunn.
- Join Us for Upcoming Xamarin University Guest Lectures by Rob Gibbens.
- Xamarin Podcast: Building Apps with iOS 11, Visual Studio for Mac, and Mobile Center by Pierce Boggan.
- Pragma Delivers High Performance Apps Field Service Employees Love by Lacey Butler.
- Xamarin Events in August by Jayme Singleton.
- Working UrhoSharp with Xamarin Workbooks by Greg Duncan.
- Building Your First .NET Core App in Visual Studio for Mac by The Xamarin Show.
- Xamarin Beta Release: 15.3 Preview 6 by Bri Brothers.
- Xamarin Preview: Xcode 9 beta 4, iOS 11, macOS 10.13 support – Preview 2 by Bri Brothers.
- A Filtered View of Core Image by Wallace McClure.
- Powershell and Azure on MacOS by Jan Tourlamain.
- Read Azure Service Health Activity Logs with .NET Core by Carlos Mendible.
- Change feed: Event Sourcing with Cosmos DB by Judy Hanwen Shen.
- .NET Native App accessing Web Service that calls a downstream Web API with Conditional Access by Jean-Marc Prieur.
- Get started with Azure Data Catalog by Derrick VanArnam.
- Read and write from EventHubs using a hybrid .NET/Java Storm topology by Larry Franks.
- Copy blobs into an Azure Media Services asset by Julia Kornich.
- ASP.NET and ASP.NET Core Application Restarts on Azure App Service. by Finbar Ryan.
- UWP Tip #4 – UWP Community Toolkit – Part 2, Consuming the Services by Alvin Ashcraft.
- #WINDOWS10 – UWP Community Toolkit 1.5. New BlueTooth LE features, new controls and more … by elbruno.
- #Hololens – Lunar Module, new sample App with some very cool PreFabs for motion controllers by elbruno.
- #Hololens – Tutorial to use Buttons, Dialogs and more with #MRDesignLab (#HoloToolkit ++) by elbruno.
- Configure your app to start at log-in by Andrew Whitechapel.
- Creating Materials and Lights in the Visual Layer by Windows UI Team.
- Exploring Windows Mixed Reality, switching between 2D / 3D and embedding Web Views by Davide Zordan.
- Using SQL Server Query Hints with Entity Framework by Dennes Torres.
- Unity 2017.1 feature spotlight: Playable API by Pierre Paul Giroux.
- Nested Coroutines in Unity by Alan Zucconi.
- Unity- How to make a 3d runner part 4? – Spawning algorithm by Unity Hour.
- 13.5 Unity Tower Defense Tutorial – Final by inScope Studios.
- Using Streaming Assets in Unity by Mark Placzek.
And this is it for this week!
Contribute to the week in .NET
As always, this weekly post couldn’t exist without community contributions, and I’d like to thank all those who sent links and tips. The F# section is provided by Phillip Carter, the gaming section by Stacey Haffner, the Xamarin section by Dan Rigby, and the Azure and UWP section by Michael Crump.
You can participate too. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new contribution or a useful library? Did you make or play a great game built on .NET?
We’d love to hear from you, and feature your contributions on future posts. Please add your posts, it takes only a second.
We pick the articles based on the following criteria: the posts must be about .NET, they must have been published this week, and they must be original contents. Publication in Week in .NET is not an endorsement from Microsoft or the authors of this post.