Saturday, April 15, 2017

Microservices Anatomy..

Overview of Microservices

Antifragile Software and Evolution 

The 

Microservices in term of their Principles, Benefits and Challenges

Explore the forces (stressors) of change on software

Trending: Monolith to Microservices

Design by decomposition:
a. Decomposition by Business Capability
b. Decomposition by Sub-Domain

Introduction to Spring Boot

Working with traditional RDBMS & NoSQL

Building Microservices: Using an API Gateway

Introduction to Eureka/Service Registry

Inter-Process Communication in a Microservices Architecture

Service Discovery in Microservices Architecture

Reactive Extension: Future/Promises

Introduction to Domain Driven Development

Event-Driven Data Management for Microservices
Event Sourcing
Application Events

Designing and Implementing Microservice Failover and Auto-Recovery Strategies using the Circuit Breaker Pattern
Introduction to Hystrix Circuit Breaker
Introduction to DevOps
Applying effective health and monitoring for microservices
Building the Containers with Docker/Kubernetes

Deploying Microservices



1.   Aspect of Microservices from Client Application perspects
2.   Microservices Orchestration : Architecture + Tools + Considerations
3.   Versioning of services : Maintenance of version + Management of different versions
4.   Polyglot : Architecture + Consideration
6.   Polyglot Persistence
7.   Service definition/ binding/integration
8.   Integration with third party services/store
9.   Microservices Complexity : Complexity as a Service
10.TDD
11.Data Synchronization : Tools + Guidance



Friday, May 6, 2016

Angular Template Engineering with DOTnet..


This will show how we can stringify template from CSHTML & pass as a JS variable to leverage:

============== cshtml ====================

<body>

    <header id="mainHeader" ui-view="mainHeader" class="rcorners2"></header>

    <section ui-view="container" class="rcorners2"></section>
    <footer id="mainFooter" ui-view="mainFooter" class="rcorners2"></footer>
    <script src="../../../Resources/Scripts/base/myApp.js"> </script>
    <script type="text/javascript" language="javascript">
    window.onload = function () {
        angular.element(document).ready(function () {
            angular.bootstrap(document, ['myApp']);
        });
    };
@{
    var _htmlHeader = Html.Partial("Header", null);
    var _htmlRawHeader = _htmlHeader.ToString().Replace("\n", String.Empty).Replace("\t", String.Empty).Replace("\r", String.Empty);
    var _htmlFooter = Html.Partial("Footer", null);
    var _htmlRawFooter = _htmlFooter.ToString().Replace("\n", String.Empty).Replace("\t", String.Empty).Replace("\r", String.Empty);
    }
    var _headerTemplate = '@_htmlRawHeader';

    var _footerTemplate = '@_htmlRawFooter';

    </script>


</body>

======================= js ============================


    var app = angular.module("myApp", ['ui.router', 'ngResource']);
               app.controller("DefaultController", function($scope) {
                 $scope.message = "Hello, welcome global";       
               })
    .controller("HeaderController", function($scope) {   
                              $scope.instanceName = 'Core';
                              $scope.Pages = ['1','2','3'];
               })
    .controller("FooterController", function($scope) {$scope.datetime= new Date();});

        $stateProvider
                    .state('home', {
                        url: '',
                        cache: false,
                        views: {              
                            'mainHeader@': {
                                template: $('< div / >').html(_headerTemplate).text(),

                                controller: 'HeaderController'
                            },
                            'mainFooter@': {
                                template: $('< div / >').html(_footerTemplate).text(),

                                controller: 'FooterController'
                            }                           
                        }
                    });
               });