Sr .Net Developer

  • Foothill Ranch
  • Contract
  • Mon Mar 12 15:33:55 2018
  • BBBH5692

Job Title: Senior .Net Developer
Duration: 3 month contract
Location: Alter Foothill Ranch, CA

Technologies Used

  • .NET Standard 2.0 for Utils Library, Service Libraries, Clients (proxies) and entity projects
  • .NET 4.6.2 for web apis, web projects and business logic (plan to migrate to .net core once signal r is out of beta)
  • Web projects will be using React 16 with Redux with transpiling with Typescript 2.5 and packaging with webpack on the client side and on the backend MVC 4 (until we migrate to .net Core)
  • Workflows will be in .NET 4.6.2 as it supports .NET Standard in the majority of APIs and service fabric
  • Service Fabric
  • Redis Cache
  • Cosmos DB (Table Storage, Document DB and SQL Azure)
  • Web APP / App Service
  • Blob
  • Service Bus / Queues and Topics

Following is the architecture breakdown and story points for micro services our customer is building . The resource we’re looking for will be part of this development effort.

  • Repository pattern
We are using this pattern at the ODATA entry points which perform CRUD operations following the ODATA standard
The repository handles SQL, Mongo, Document DB and Table storage and can easily can be extended.

  • No SQL domain model
We are using the NO SQL Domain approach using POCO classes inheriting from a base interface and class. Generics and reflection is being used to determine behavior described on configuration.

  • SOLID Principles
We perform code reviews, code refactoring and analysis to follow the principles

  • Inversion of control for micro services
In this particular case we are using Abstract factories for injection at runtime for repositories, workflows and instantiation. We decided to implement our code, as putting the dynamic aspect on autofac configuration proved slower.

  • OAUTH 2.0

For securing the web apis, ODATA and web controllers using Identity Server 4.0 with open ID standard.

  • Retry policies with Polly
As for now, we have simple retry operations, but we will like to implement polly for our service fabric stateless jobs, proxies and cache.

  • Cache-Aside Pattern
We are using redis cache to store json documents (from ODATA), session and signal r tracking

  • Event-Listener / Event-Subscriber Server and Client wide approach
Detached event subscriptions using signal r (long processes are being diverted to queues and service fabric)

  • Proxy and Brokers
We have our own implementation of proxies and brokers to delegate communication between microservices, each proxy is using generics for the POCO classes and DTOs that can be cached or contacted directly on the microservice

  • Unit of Work / Chain of command and workflows

For complex business rules and long running tasks, we are using Workflow foundation (eventually will be migrated to durable azure functions). The workflow will be responsible of keeping track of the unit of work, delegate the chain of command and perform compensation in event of failure.

  • Asynchronous Queueing
We are using this pattern to do fire and forget tasks, queue requests and process them.
The queues can be topics as well to broadcast events.

  • Servant / Abstract factory

When possible we are encapsulating generic functionality for a group of classes as abstractions