Posts tagged with 'azure'
Steven Swenson is encrypting and hashing with .NET.
Show notes:
- Steven Swenson's blog
- Book: Cryptography Engineering, Design Principles and Practical Applications, by Bruce Schneier
- Adam Caudill
- Risky Business podcast
- libsodium crypto library
- Elliptic curve cryptography (ECC)
- CodeStock conference in Knoxville
- Azure Identity Services
- bcrypt is available on NuGet
- scrypt is available on GitHub and NuGet
Want to be on the next episode? You can! All you need is the willingness to talk about something technical.
Theme music is "Crosscutting Concerns" by The Dirty Truckers, check out their music on Amazon or iTunes.
David Giard is a developer evangelist for Microsoft who has some ideas for how to use Cognitive Services.
Show notes:
- Microsoft Cognitive Services (formerlly known as Project Oxford)
- David Giard's resources for learning about Cognitive Services
- The Technology and Friends Show
Want to be on the next episode? You can! All you need is the willingness to talk about something technical.
Theme music is "Crosscutting Concerns" by The Dirty Truckers, check out their music on Amazon or iTunes.
Vance Feldman is a developer and an artist who faced technical challenges when bringing his ForeverScape artwork to mobile devices.
Show notes:
- ForeverScape (content may not be SFW)
- Haxe cross-platform toolkit
- Ionic framework
- Apache Cordova
- Azure Table Storage
- Azure Functions
- Lob API for postcards
- ForeverScape on Twitter
- ForeverScape on Instagram
- ForeverScape on Etsy
- ForeverScape on Amazon
If you're interested in Henry Darger, check out this clip from NPR's All Things Considered. If you're interested in SuperJail, you can watch it on Adult Swim.
Want to be on the next episode? You can! All you need is the willingness to talk about something technical.
Theme music is "Crosscutting Concerns" by The Dirty Truckers, check out their music on Amazon or iTunes.
Managing database migrations is an important part of a project. Everyone on the team needs to be on the same page when it comes to the database, while still having the ability to make database changes when necessary.
I've used a variety of tools to do this on various projects, but one tool that I especially like is Fluent Migrator.
The idea with Fluent Migrator is to create a series of classes that create and modify the database schema (and data). Each class represents a single "migration" (in the sense that you are "migrating" from an empty database to a database with something in it). Here's an example of a migration that I might create if I were creating a table to store user information:
Several things to note:
Fluent syntax. This just means that you can chain stuff together in a natural and fluent way (see NDecision, Fluent NHibernate, Fluent Validation, etc for other examples). This was kinda a "trend" for a while in C# projects, but it does make sense in a number of contexts. The goal is to make the API discoverable and easy to use and also to make the code easier to read. Note that there are some sensible defaults when you create columns, but it never hurts to be explicit.
Migration attribute and Migration base class. This attribute and base class needs to be on each migration class. The number in the attribute determines the order in which the migrations will be executed (we only have 1 so far, but the next one would be 2, for instance).
Up and Down. Override the "Up" method to put in the code that will create/alter the database. Override the "Down" method to put in the code that will revert the changes made in the "Up" method. In some cases, it may not make sense to create a "Down".
Okay, let's say I create that migration, execute it (more on how to execute it later) against a database, write some code that uses that table, and check everything in. The next day, I learn that I need to create an optional "url" field for users. To do that, I'll create another migration class (I'm not editing the existing migration).
These migrations get compiled into a plain DLL, so to actually execute them against a database, you'll need some sort of migration runner. I've been using the command line runner, but there are runners for NAnt, MSBuild, and Rake available too if you use any of those tools on your build server to automatically deploy the database migrations alongside your application.
My next step usually involves creating some convenience batch files to use the command line migration runner. You can use these locally while you develop, or possibly call them as part of your build process. Here's an example of a set of batch files that I use to "Up" my local database to run all the latest migrations and one to "Down" my migration back a number of steps (both of these operations are very common while developing).
I put these in the project, but I always have them deploy to the bin folder (where the compiled migrations are). You could do it vice versa if you want.
So that's it. Works against SQL 2012 and SQL Azure, in case you were wondering.
One other thing I do for the sake of organization is that I name all my migration files like NN_MigrationName. When I look at the list of files, I'll see them in migration order. Here's a screenshot from a real project of mine:
Welcome back to another "Weekly Concerns" (after skipping a week). This is a post-a-week series of interesting links, relevant to programming and programmers. You can check out previous Weekly Concerns posts in the archive.
- If you haven't seen Seth Petry-Johnson's Patterns of Effective Test Setup presentation yet, you should at least check out his slides.
- Source code for MS-DOS and Word for Windows is now available.
- You can play Missile Command with a YouTube video. Just go to any YouTube video, like this one, and type "1980".
- Mark Greenway and myself did an introductory presentation on WordPress with Azure through the MVP Mentor program. A recording of WordPress with Azure is now available.
If you have an interesting link that you'd like to see in Weekly Concerns, leave a comment or contact me.