Reading list July 2017

Design patterns for microservices.

The AzureCAT patterns & practices team has published nine new design patterns on the Azure Architecture Center. These nine patterns are particularly useful when designing and implementing microservices.

Clean Micro-service Architecture

How do you scale a software system? One thing should be obvious: at some point you need to have more than one computer. There was a day, and it wasn’t so long ago, that scaling a system could be achieved by waiting. You simply waited for computers to get faster and more powerful.

Messaging and Microservices

Cloud Architecture: The Scheduler-Agent-Supervisor Pattern

As our team was starting to transform our parts of the Azure Services Platform from a CTP ‘labs’ service exploring features into a full-on commercial service, it started to dawn on us that we had set ourselves up for writing a bunch of ‘enterprise apps’.

Cloud-Native or Lift-and-Shift?

Azure Application Gateway Anatomy

In this article, we’re going to look at its anatomy, i.e. its internal component as exposed in the Azure Resource Manager (ARM) model.

Walkthrough–Add Azure Web App to Visual Studio Team Services

In this walkthrough I will show you how to use Visual Studio Team Services with an existing Azure App Service project (specifically an Azure Web App). We will add a task to update/create the project database from a DACPAC file and enable CI (Continuous Integration).

A guide to caching in ASP.NET Core

This post looks at the various techniques available in ASP.NET Core for caching. We’ll look at caching of data, partial pages and full pages at the server and client level and explain when to use each.

Achieving Transactional Behavior with Messaging Elastic and dynamic multitenant cloud environments have characteristics that make traditional failure management mechanisms using coordinated 2-phase transactions a suboptimal choice.

What’s brewing in Visual Studio Team Services: This post series provides the latest updates and news for Visual Studio Team Services and is a great way for Azure users to keep up-to-date with new features being released every three weeks.

Under the Hood of Server-Side Encryption for Amazon Kinesis Streams 

Build Your First Serverless Web App

Serverless computing allows you to build and run applications and services without thinking about servers. With serverless computing, your application still runs on servers, but all the server management is done by AWS.

Analyze OpenFDA Data in R with Amazon S3 and Amazon Athena One of the great benefits of Amazon S3 is the ability to host, share, or consume public data sets. This provides transparency into data to which an external data scientist or developer might not normally have access.

About SAML 2.0-based Federation Before you can use SAML 2.0-based federation as described in the preceding scenario and diagram, you must configure your organization’s IdP and your AWS account to trust each other. The general process for configuring this trust is described in the following steps.

 

How to Use AWS Organizations to Automate End-to-End Account Creation

AWS Organizations offers new capabilities for managing AWS accounts, including automated account creation via the Organizations API.

Practical VPC Design

Few areas of cloud infrastructure are more important to get right from the start than the IP address layout of one’s Virtual Private Cloud (VPC). VPC design has far-reaching implications for scaling, fault-tolerance, and security.

Curated List of AI and Machine Learning Resources from Around the Web When I was writing books on networking and programming topics in the early 2000s, the web was a good, but an incomplete resource. Blogging had started to take off, but YouTube wasn’t around yet, nor was Quora, Twitter, or podcasts.

Using a JWT on a Windows Service

Where is my solution One of this days I had this really fun challenge that I need to tackle. So consider the follow, I had a solution where I need to authenticate a Windows Service (so non-interactive) against an (ASP.net) Web API, using ADFS 3.0 with ADAL.NET, and the current user’s credentials, fun right?

Inside the Standard Bindings:

NetTcp Today continues the series I started last week about the standard bindings. The previous article covered the BasicHttp binding. Today’s article covers the NetTcp binding, which is going to be the popular out-of-the-box choice for communicating over an Intranet.

Creating Web API With ASP.NET Core Using Visual Studio Code In this article, we are going to learn how to create an API with ASP.NET Core. Web API is a framework that allows us to build web or http based endpoints.

You’re using HttpClient wrong and it is destabilizing your software I’ve been using HttpClient wrong for years and it finally came back to bite me. My site was unstable and my clients furious, with a simple fix performance improved greatly and the instability disappeared.

TLS 1.2 and .NET Support: How to Avoid Connection Errors I recently ran into an interesting issue when developing a connector for a third-party API.

Implementing Two-factor authentication with IdentityServer4 and Twilio

This article shows how to implement two factor authentication using Twilio and IdentityServer4 using Identity. On the Microsoft’s Two-factor authentication with SMS documentation, Twilio and ASPSMS are promoted, but any SMS provider can be used.

Adding an external Microsoft login to IdentityServer4 This article shows how to implement a Microsoft Account as an external provider in an IdentityServer4 project using ASP.NET Core Identity with a SQLite database. Give the application a name and add your email.

Promoting reliability in web software companies

Building a website is easy. Keeping your website online and available as you grow its audience can be very hard. I have heard many reasons for this, including The root problem is not any of these.

Want to Keep Your Employees Happy and Motivated?

They Need to Experience These 7 Things Every Day Since leadership development is broad, it needs to be clearly defined for business outcomes. The common denominator is teaching managers the fine art of people skills. After all, leading an organization is still mostly about people — its most important asset.

This Scientist Thinks That Life Could Be a Guide to The Evolution of The Cosmos

Does humanity exist to serve some ultimate, transcendent purpose? Conventional scientific wisdom says no. As physicist Lawrence Krauss puts it in his latest book, our evolution on this planet is just a “cosmic accident”.

Why the United States is not the best country in the world

The Fourth of July is a complicated holiday for African-Americans. We love the food, family and even the fireworks, but the actual history and rationale behind the holiday have never sat well with us.

Google Thought They Knew How to Create the Perfect Team.

Their Research Said Otherwise Over the years, Google has embarked on countless quests, collected endless amounts of data and spent millions trying to better understand its people.

Advertisements

Reading List Mar 16 – 23, 2017

Azure Architecture Center Ever wondered what the best practice for setting up and configuring cloud architectures well here is the answer welcome to the Azure Architecture Center

https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/03/18/azure-architecture-center/
Accessing Azure App Services using Azure AD Bearer token Here are some simplified instructions on how to setup and use Azure Active Directory authentication for Azure App Services and code that will allow an application to use a Bearer Token to access that app.
https://blogs.msdn.microsoft.com/jpsanders/2017/03/17/accessing-azure-app-services-using-azure-ad-bearer-token/
Cloud Messaging – Amazon or Azure? When architecting solutions that need to communicate between separate services or applications, messages queues and services buses become increasingly important. http://ardalis.com/cloud-messaging-amazon-or-azure

 

ASP.NET Core: Building chat room using WebSocket WebSocket is real-time communication protocol we can use to make UI in browser to send and receive messages from server over real-time communication channel. WebSocket is also supported by ASP.NET Core. This blog post demonstrates how to build simple browser based chat room on ASP.

http://gunnarpeipman.com/2017/03/aspnet-core-websocket-chat/
Tweak sign in messages with the ASP.NET OWIN middleware Configuring the ASP.NET OWIN middleware (MW from now on) in your web app makes it super easy to sent your users to authenticate with Azure AD, as the MW takes care of manufacturing the right message for the Authorization endpoint from the options you provided at startup.

http://www.cloudidentity.com/blog/2017/03/20/tweak-sign-in-messages-with-the-asp-net-owin-middleware/
Short introduction to serverless architecture Serverless architecture and Functions as a Service (FaaS) are new trends in cloud computing. Besides Microsoft and Amazon there are many other vendors providing FaaS services. This blog post is short introduction to serverless architecture and here I try to explain what it is and why we need it.
http://gunnarpeipman.com/2017/03/serverless-architecture/

Demystifying a few Angular2 concepts for starters Being immersed in the JavaScript frameworks world can be intimidating. Today, I will try to demystify a few concepts and perhaps at the same time answer some questions that someone starting with Angular2 will most probably have.
http://www.domstamand.com/demystifying-a-few-angular2-concepts-for-starters/
An Angular 2+ . Net Core Application Consuming an Azure Machine Learning Model Skip Navigation Links.
http://aihelpwebsite.com/Blog/EntryId/1021/An-Angular-2-Net-Core-Application-Consuming-an-Azure-Machine-Learning-Model

NuGet is now fully integrated into MSBuild In the past, NuGet packages were managed in two different ways – packages.config and project.json – each with their own sets of advantages and limitations. With Visual Studio 2017, we have revamped the NuGet package management experience by introducing package reference.

http://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html

20 Software Scalability Questions & Answers for Architect Interview Web applications scalability is a common problem most of the web architect face. Any internet facing web application may require to be highly scalable due to heavy load of traffic. Now adays , developing a smart web application is much more than creating dynamic Web pages.
http://www.fromdev.com/2013/07/architect-interview-questions-and-answers.html
The strange link between the human mind and quantum physics “I cannot define the real problem, therefore I suspect there’s no real problem, but I’m not sure there’s no real problem.
http://www.bbc.com/earth/story/20170215-the-strange-link-between-the-human-mind-and-quantum-physics
Pressure Doesn’t Have to Turn into Stress When I was in my late twenties, I was diagnosed with stomach cancer. Doctors operated and told me to hope for the best. I returned to Japan, where I was working, and tried to forget about it. The tumors returned a year later, this time in my liver.
https://hbr.org/2017/03/pressure-doesnt-have-to-turn-into-stress
What are the 21st-century skills every student needs? The gap between the skills people learn and the skills people need is becoming more obvious, as traditional learning falls short of equipping students with the knowledge they need to thrive, according to the World Economic Forum report New Vision for Education

https://www.weforum.org/agenda/2016/03/21st-century-skills-future-jobs-students/

Reading List Feb 6 – Feb 13, 2017

This mind-boggling map explains how everything in mathematics is connected Unless you were a total pro at mathematics in high school, you probably only have a vague recollection of things like geometry, algebra, and some guy called Isosceles (what a great name). 
http://www.sciencealert.com/this-mind-boggling-map-explains-how-everything-in-mathematics-is-connected-3

he Security Impact of HTTPS Interception As HTTPS deployment grows, middlebox and an- tivirus products are increasingly intercepting TLS connections to retain visibility into network traffic. In this work, we present a comprehensive study on the prevalence and impact of HTTPS in- terception 
https://crypto.dance/projects/6356834

More on GVFS After watching a couple of days of GVFS conversation, I want to add a few things. What problems are we solving?   
https://blogs.msdn.microsoft.com/bharry/2017/02/07/more-on-gvfs/

Migrate from centralized version control to Git The switch from centralized version control to Git is more than just learning new commands. Git uses a fundamentally different model for storing previous versions of code. Instead of storing a linear series of changes to files, Git represents your code as a graph of snapshots called commits.  
https://www.visualstudio.com/learn/centralized-to-git/

Creating Scalable WCF Service for Azure Service Fabric Azure Service Fabric provides a platform for creating and deploying scalable and reliable services for the cloud.  
http://www.dotnetcurry.com/windows-azure/1342/create-wcf-service-azure-service-fabric

Developing Transactional Microservices Using Aggregates, Event Sourcing and CQRS – Part 2 Key Takeaways Event Sourcing is a technique for reliably updating state and publishing events that overcomes limitations of other solutions. The design concepts for an event-driven architecture, using event sourcing, align well with microservices architecture patterns.  

https://www.infoq.com/articles/microservices-aggregates-events-cqrs-part-1-richardson

https://www.infoq.com/articles/microservices-aggregates-events-cqrs-part-2-richardson

IaC on Azure – An introduction of Infrastructure as Code (IaC) with Azure Resource Manager (ARM) Template What is Infrastructure as Code (IaC)? Infrastructure as Code is a process of managing and provisioning computing infrastructure with some declarative approach while setting their configuration using definition files instead of traditional interactive configuration tools.   
http://blogs.msdn.microsoft.com/azuredev/?p=3405

How to Encrypt Connection Strings One of the problems that exists in database programming today is how to keep database Connection String information from prying eyes. Typically the Connection String is stored inside the application’s XML-based “config” file.  
http://www.emmet-gray.com/Articles/EncryptConnectionStrings.html

Setting up an Angular 2 Development Environment Angular 2 requires a bit of setup to get started. To avoid the headaches associated with setup, the Angular team came up with the Angular CLI. The Angular 2 CLI makes it easy to create an application that just works out of the box. Note: The Angular team has decided to drop the 2 from the name.   
https://ponyfoo.com/articles/setting-up-angular-2-development-environment

Is There Really a Skills Gap? A prosperous future for the world’s economy rests on the foundations we lay through our education and skills system, so it comes as sorry news to hear complaints we’re facing a skills shortage, or ‘skills gap’. 
 http://www.talentculture.com/is-there-really-a-skills-gap/

The state of salaries for product managers and data scientists While more attention is being paid to racial diversity, our data shows another form of bias is also present within the tech industry: ageism. On Hired’s platform, candidates between the ages of 25 and 30 receive the highest number of average job offers.
 https://hired.com/state-of-salaries-2017

Society is creating a new crop of alpha women who are unable to love Editor’s note: The following column is adapted from the new book “The Alpha Female’s Guide to Men & Marriage” Post Hill Press (February 14, 2017). Like me, my mother was not a perfect wife. She was, however, a remarkable and compassionate woman.  
http://www.foxnews.com/opinion/2017/02/08/society-is-creating-new-crop-alpha-women-who-are-unable-to-love.html

Trump and Weimar Germany The comparisons between Donald Trump’s political success and Hitler’s rise, so numerous even before the election, have intensified since the former won the electoral vote in November 2016. Historians have weighed in with differing opinions and analyses about the two phenomena.   
https://weimarstudies.wordpress.com/2016/12/04/trump-and-weimar-germany/

I Don’t Smoke or Drink, I Eat Well & Exercise. How Did I Still Get Cancer? An Oncologist Answers. Dr. Vishal Rao, an oncologist and head and neck surgeon at the Bangalore-based HealthCare Global (HCG) Cancer Center, writes about the debate on food safety in India and how it is related to cancer.  
http://www.thebetterindia.com/85386/cancer/

Reading List Jan 8 -Jan 16, 2017

What .NET Developers ought to know to start in 2017

8 Ways to Reboot Your Software Development Career

ASP.NET Core: Globalization and Localization

Async HTTP API and service bus

Using Azure Service Bus and BizTalk 2016 for messaging between enterprises

Azure WCF Relay DNS Support

Using AWS’s Simple Workflow Service (SWF) with C#

What are Microservices and Why Should You Care?

The elements of systems made with things

SOLID Design Patterns

Implement Queue with a single Stack

SignalR Core Part 1/3: Design Considerations

General

Japanese company replaces office workers with artificial intelligence

Why Most Published Research Findings Are False

Neodriven is a rearview mirror replacement that can make your car semi-autonomous

Scientist claims he’s discovered a magnetic ‘sixth sense’ in humans

Reading List Dec 5 – 12

Technology

Deploying TLS 1.3

Real Time Temperature WebApp with Raspberry, Azure IoT Hub and SignalR

OWIN Web API Starter Template

Nuget Package Security Alerts 

How to Improve, Not Kill the Annual Performance Review

Code Quality Tools in Visual Studio 2015

Async/Await – Best Practices in Asynchronous Programming

Repository pattern, done right

Microsoft researchers earn distinctions from premier computing society

Observations on Porting from .NET Framework to .NET Core

eBook on “Containerized Docker Application Lifecycle with Microsoft Tools and Platform”

Radically Simplified GPU Programming with C# | Seth Juarez | Channel 9

Introducing SAM – the State-Action-Model Pattern

Just Say No to More End-to-End Tests

General

The wonder and the puzzle of precision oncology : it might save your life, or it might do nothing

Google is not ‘just’ a platform. It frames, shapes and distorts how we see the world

The Doomsday Invention

Reading List – Nov 6 – 13, 2016

Technology

Essential DevOps Skills

Alice in Quantumland: A Charming Illustrated Allegory of Quantum Mechanics by a CERN Physicist

Angular 2 Security — The DomSanitizer Service

WCF Security Best Practices

Cuba’s Innovative Cancer Vaccine Is Finally Coming to America

Immo Landwerth – Net Standard 2.0 | On .NET

The 7 Types Of Security Jobs, According To NIST

Building Mobile-First Infrastructure for Messenger

Security Vulnerability Disclosure Is Still A Minefield

Offshoring roulette: lessons from outsourcing to India, China and the Philippines

String pattern matching

Getting Started With the Pocket Developer API

OAuth 2.0 Hack Exposes 1 Billion Mobile Apps to Account Hijacking

 

Usability

Rethinking Responsive Design

UX Myths

 

Personal Growth

How To Successfully Respond To A Question You Really Don’t Want To Answer

8 Essential Leadership Traits You Need to Thrive in Today’s Uncertain Economy

 

Politics

President Trump

Revenge of the Forgotten Class

62 people own same as half world – Oxfam

Decision 2016 | The SourceMedia Business Issues Scorecard

Here’s how many Americans crashed Canada’s immigration site

Worried Americans thinking about fleeing to Canada send Zillow traffic way up with real estate searches

C# Coding Guidelines

If you are looking for C# Coding Guidelines grab these guidelines from

I have listed the important ones here.

Basic Principles of Coding

Class Design

  • A class or interface should have a single purpose (AV1000)
  • An interface should be small and focused (AV1003)
  • Use an interface to decouple classes from each other (AV1005)
  • Don’t hide inherited members with the new keyword (AV1010)
  • It should be possible to treat a derived object as if it were a base class object (AV1011)
  • Don’t refer to derived classes from the base class (AV1013)
  • Avoid exposing the objects an object depends on (AV1014)
  • Avoid bidirectional dependencies (AV1020)
  • Classes should have state and behavior (AV1025)

Member Design

  • Allow properties to be set in any order (AV1100)
  • Avoid mutual exclusive properties (AV1110)
  • A method or property should do only one thing (AV1115)
  • Don’t expose stateful objects through static members (AV1125)
  • Return an IEnumerable or ICollection instead of a concrete collection class (AV1130)
  • String, list and collection properties should never return a null reference (AV1135)

Miscellaneous Design

  • Throw exceptions rather than returning status values (AV1200)
  • Provide a rich and meaningful exception message text (AV1202)
  • Don’t swallow errors by catching generic exceptions (AV1210)
  • Always check an event handler delegate for null (AV1220)
  • Use a protected virtual method to raise each event (AV1225)
  • Don’t pass null as the sender parameter when raising an event (AV1235)
  • Use generic constraints if applicable (AV1240)
  • Don’t add extension methods to the same namespace as the extended class (AV1245)
  • Evaluate the result of a LINQ expression before returning it (AV1250)

 Maintainability

  • Methods should not exceed 7 statements (AV1500)
  • Make all members private and types internal by default (AV1501)
  • Avoid conditions with double negatives (AV1502)
  • Don’t use “magic numbers” (AV1515)
  • Only use var when the type is very obvious (AV1520)
  • Initialize variables at the point of declaration (AV1521)
  • Favor Object and Collection Initializers over separate statements (AV1523)
  • Don’t make explicit comparisons to true or false (AV1525)
  • Don’t use nested loops in a method (AV1532)
  • Add a block after all flow control keywords, even if it is empty (AV1535)
  • Always add a default block after the last case in a switch statement (AV1536)
  • Finish every if-elseif statement with an else-part (AV1537)
  • Be reluctant with multiple return statements (AV1540)
  • Don’t use selection statements instead of a simple assignment or initialization (AV1545)
  • Prefer conditional statements instead of simple if-else constructs (AV1546)
  • Encapsulate complex expressions in a method or property (AV1547)
  • Call the most overloaded method from other overloads (AV1551)
  • Only use optional parameters to replace overloads (AV1553)
  • Avoid using named parameters (AV1555)
  • Avoid methods with more than three parameters (AV1561)
  • Don’t use ref or out parameters (AV1562)
  • Avoid methods that take a bool flag (AV1564)
  • Always check the result of an as operation (AV1570)
  • Don’t comment-out code (AV1575)
  • Consider abstracting an external dependency or 3rd party component (AV1580)

Framework Guidelines

  • Use C# type aliases instead of the types from the System namespace (AV2201)
  • Build with the highest warning level (AV2210)
  • Use Lambda expressions instead of delegates (AV2221)
  • Only use the dynamic keyword when talking to a dynamic object (AV2230)