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)

 

WCF Data Services Vs ASP.NET Web API OData

If you are struggling with picking WCF Data Services/ ASP.NET Web API OData here are the high level key differences between these 2 implementation stacks.

WCF Data Services ASP.NET Web API OData
Architecture Interfaces Components
Server / Client? Server and Client Server only
Maturity Released Preview
OData coverage Full Partial, more coming
Flexibility Low High
Key requirements IQueryable
Custom business logic Medium Easy
Formats OData only Any format
Untyped Yes No