Options pattern in ASP.NET Core

Size: px
Start display at page:

Download "Options pattern in ASP.NET Core"

Transcription

1 Options pattern in ASP.NET Core By Luke Latham The options pattern uses classes to represent groups of related settings. When configuration settings are isolated by scenario into separate classes, the app adheres to two important software engineering principles: The Interface Segregation Principle (ISP): Scenarios (classes) that depend on configuration settings depend only on the configuration settings that they use. Separation of Concerns: Settings for different parts of the app aren't dependent or coupled to one another. View or download sample code (how to download) This article is easier to follow with the sample app. Prerequisites Add a package reference to the Microsoft.Extensions.Options.ConfigurationExtensions package. Basic options configuration Basic options configuration is demonstrated as Example #1 in the sample app. An options class must be non-abstract with a public parameterless constructor. The following class, MyOptions, has two properties, Option1 and Option2. Setting default values is optional, but the class constructor in the following example sets the default value of Option1. Option2 has a default value set by initializing the property directly (Models/MyOptions.cs): public class MyOptions public MyOptions() // Set default value. Option1 = "value1_from_ctor"; public string Option1 get; set; public int Option2 get; set; = 5; The MyOptions class is added to the service container with Configure<TOptions>(IServiceCollection, IConfiguration) and bound to configuration:

2 // Example #1: Basic options // Register the Configuration instance which MyOptions binds against. services.configure<myoptions>(configuration); The following page model uses constructor dependency injection with IOptions<TOptions> to access the settings (Pages/Index.cshtml.cs): private readonly MyOptions _options; public IndexModel( IOptions<MyOptions> optionsaccessor, IOptions<MyOptionsWithDelegateConfig> optionsaccessorwithdelegateconfig, IOptions<MySubOptions> suboptionsaccessor, IOptionsSnapshot<MyOptions> snapshotoptionsaccessor, IOptionsSnapshot<MyOptions> namedoptionsaccessor) _options = optionsaccessor.value; _optionswithdelegateconfig = optionsaccessorwithdelegateconfig.value; _suboptions = suboptionsaccessor.value; _snapshotoptions = snapshotoptionsaccessor.value; _named_options_1 = namedoptionsaccessor.get("named_options_1"); _named_options_2 = namedoptionsaccessor.get("named_options_2"); // Example #1: Simple options var option1 = _options.option1; var option2 = _options.option2; SimpleOptions = $"option1 = option1, option2 = option2"; The sample's appsettings.json file specifies values for option1 and option2: JSON "option1": "value1_from_json", "option2": -1, "subsection": "suboption1": "subvalue1_from_json", "suboption2": 200, "Logging": "LogLevel": "Default": "Warning", "AllowedHosts": "*" When the app is run, the page model's OnGet method returns a string showing the option class values: HTML option1 = value1_from_json, option2 = -1

3 Note When using a custom ConfigurationBuilder to load options configuration from a settings file, confirm that the base path is set correctly: var configbuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true); var config = configbuilder.build(); services.configure<myoptions>(config); Explicitly setting the base path isn't required when loading options configuration from the settings file via CreateDefaultBuilder. Configure simple options with a delegate Configuring simple options with a delegate is demonstrated as Example #2 in the sample app. Use a delegate to set options values. The sample app uses the MyOptionsWithDelegateConfig class (Models/MyOptionsWithDelegateConfig.cs): public class MyOptionsWithDelegateConfig public MyOptionsWithDelegateConfig() // Set default value. Option1 = "value1_from_ctor"; public string Option1 get; set; public int Option2 get; set; = 5; In the following code, a second IConfigureOptions<TOptions> service is added to the service container. It uses a delegate to configure the binding with MyOptionsWithDelegateConfig: // Example #2: Options bound and configured by a delegate services.configure<myoptionswithdelegateconfig>(myoptions => myoptions.option1 = "value1_configured_by_delegate"; myoptions.option2 = 500; ); Index.cshtml.cs:

4 private readonly MyOptionsWithDelegateConfig _optionswithdelegateconfig; public IndexModel( IOptions<MyOptions> optionsaccessor, IOptions<MyOptionsWithDelegateConfig> optionsaccessorwithdelegateconfig, IOptions<MySubOptions> suboptionsaccessor, IOptionsSnapshot<MyOptions> snapshotoptionsaccessor, IOptionsSnapshot<MyOptions> namedoptionsaccessor) _options = optionsaccessor.value; _optionswithdelegateconfig = optionsaccessorwithdelegateconfig.value; _suboptions = suboptionsaccessor.value; _snapshotoptions = snapshotoptionsaccessor.value; _named_options_1 = namedoptionsaccessor.get("named_options_1"); _named_options_2 = namedoptionsaccessor.get("named_options_2"); // Example #2: Options configured by delegate var delegate_config_option1 = _optionswithdelegateconfig.option1; var delegate_config_option2 = _optionswithdelegateconfig.option2; SimpleOptionsWithDelegateConfig = $"delegate_option1 = delegate_config_option1, " + $"delegate_option2 = delegate_config_option2"; You can add multiple configuration providers. Configuration providers are available in NuGet packages. They're applied in the order that they're registered. Each call to Configure<TOptions> adds an IConfigureOptions<TOptions> service to the service container. In the preceding example, the values of Option1 and Option2 are both specified in appsettings.json, but the values of Option1 and Option2 are overridden by the configured delegate. When more than one configuration service is enabled, the last configuration source specified wins and sets the configuration value. When the app is run, the page model's OnGet method returns a string showing the option class values: HTML delegate_option1 = value1_configured_by_delgate, delegate_option2 = 500 Suboptions configuration Suboptions configuration is demonstrated as Example #3 in the sample app. Apps should create options classes that pertain to specific scenario groups (classes) in the app. Parts of the app that require configuration values should only have access to the configuration values that they use. When binding options to configuration, each property in the options type is bound to a configuration key of the form property[:sub-property:]. For example, the

5 MyOptions.Option1 property is bound to the key Option1, which is read from the option1 property in appsettings.json. In the following code, a third IConfigureOptions<TOptions> service is added to the service container. It binds MySubOptions to the section subsection of the appsettings.json file: // Example #3: Sub-options // Bind options using a sub-section of the appsettings.json file. services.configure<mysuboptions>(configuration.getsection("subsection")); The GetSection extension method requires the Microsoft.Extensions.Options.ConfigurationExtensions NuGet package. If the app uses the Microsoft.AspNetCore.App metapackage (ASP.NET Core 2.1 or later), the package is automatically included. The sample's appsettings.json file defines a subsection member with keys for suboption1 and suboption2: JSON "option1": "value1_from_json", "option2": -1, "subsection": "suboption1": "subvalue1_from_json", "suboption2": 200, "Logging": "LogLevel": "Default": "Warning", "AllowedHosts": "*" The MySubOptions class defines properties, SubOption1 and SubOption2, to hold the options values (Models/MySubOptions.cs): public class MySubOptions public MySubOptions() // Set default values. SubOption1 = "value1_from_ctor"; SubOption2 = 5; public string SubOption1 get; set; public int SubOption2 get; set;

6 The page model's OnGet method returns a string with the options values (Pages/Index.cshtml.cs): private readonly MySubOptions _suboptions; public IndexModel( IOptions<MyOptions> optionsaccessor, IOptions<MyOptionsWithDelegateConfig> optionsaccessorwithdelegateconfig, IOptions<MySubOptions> suboptionsaccessor, IOptionsSnapshot<MyOptions> snapshotoptionsaccessor, IOptionsSnapshot<MyOptions> namedoptionsaccessor) _options = optionsaccessor.value; _optionswithdelegateconfig = optionsaccessorwithdelegateconfig.value; _suboptions = suboptionsaccessor.value; _snapshotoptions = snapshotoptionsaccessor.value; _named_options_1 = namedoptionsaccessor.get("named_options_1"); _named_options_2 = namedoptionsaccessor.get("named_options_2"); // Example #3: Sub-options var suboption1 = _suboptions.suboption1; var suboption2 = _suboptions.suboption2; SubOptions = $"suboption1 = suboption1, suboption2 = suboption2"; When the app is run, the OnGet method returns a string showing the sub-option class values: HTML suboption1 = subvalue1_from_json, suboption2 = 200 Options provided by a view model or with direct view injection Options provided by a view model or with direct view injection is demonstrated as Example #4 in the sample app. Options can be supplied in a view model or by injecting IOptions<TOptions> directly into a view (Pages/Index.cshtml.cs): private readonly MyOptions _options; public IndexModel( IOptions<MyOptions> optionsaccessor, IOptions<MyOptionsWithDelegateConfig> optionsaccessorwithdelegateconfig, IOptions<MySubOptions> suboptionsaccessor, IOptionsSnapshot<MyOptions> snapshotoptionsaccessor, IOptionsSnapshot<MyOptions> namedoptionsaccessor) _options = optionsaccessor.value; _optionswithdelegateconfig = optionsaccessorwithdelegateconfig.value;

7 _suboptions = suboptionsaccessor.value; _snapshotoptions = snapshotoptionsaccessor.value; _named_options_1 = namedoptionsaccessor.get("named_options_1"); _named_options_2 = namedoptionsaccessor.get("named_options_2"); // Example #4: Bind options directly to the page MyOptions = _options; For direct injection, inject IOptions<MyOptions> with IOptions<MyOptions> ViewData["Title"] = "Using Options Sample"; <h1>@viewdata["title"]</h1> When the app is run, the options values are shown in the rendered page:

8 Reload configuration data with IOptionsSnapshot Reloading configuration data with IOptionsSnapshot is demonstrated in Example #5 in the sample app. IOptionsSnapshot supports reloading options with minimal processing overhead. IOptionsSnapshot is a snapshot of IOptionsMonitor<TOptions> and updates automatically whenever the monitor triggers changes based on the data source changing. The following example demonstrates how a new IOptionsSnapshot is created after appsettings.json changes (Pages/Index.cshtml.cs). Multiple requests to the server return constant values provided by the appsettings.json file until the file is changed and configuration reloads. private readonly MyOptions _snapshotoptions; public IndexModel(

9 IOptions<MyOptions> optionsaccessor, IOptions<MyOptionsWithDelegateConfig> optionsaccessorwithdelegateconfig, IOptions<MySubOptions> suboptionsaccessor, IOptionsSnapshot<MyOptions> snapshotoptionsaccessor, IOptionsSnapshot<MyOptions> namedoptionsaccessor) _options = optionsaccessor.value; _optionswithdelegateconfig = optionsaccessorwithdelegateconfig.value; _suboptions = suboptionsaccessor.value; _snapshotoptions = snapshotoptionsaccessor.value; _named_options_1 = namedoptionsaccessor.get("named_options_1"); _named_options_2 = namedoptionsaccessor.get("named_options_2"); // Example #5: Snapshot options var snapshotoption1 = _snapshotoptions.option1; var snapshotoption2 = _snapshotoptions.option2; SnapshotOptions = $"snapshot option1 = snapshotoption1, " + $"snapshot option2 = snapshotoption2"; The following image shows the initial option1 and option2 values loaded from the appsettings.json file: HTML snapshot option1 = value1_from_json, snapshot option2 = -1 Change the values in the appsettings.json file to value1_from_json UPDATED and 200. Save the appsettings.json file. Refresh the browser to see that the options values are updated: HTML snapshot option1 = value1_from_json UPDATED, snapshot option2 = 200 Options factory, monitoring, and cache IOptionsMonitor is used for notifications when TOptions instances change. IOptionsMonitor supports reloadable options, change notifications, and IPostConfigureOptions. Accessing options during startup IOptions can be used in Startup.Configure, since services are built before the Configure method executes. public void Configure(IApplicationBuilder app, IOptions<MyOptions> optionsaccessor) var option1 = optionsaccessor.value.option1;

10 IOptions shouldn't be used in Startup.ConfigureServices. An inconsistent options state may exist due to the ordering of service registrations. Additional resources Configuration in ASP.NET Core

Simple Injector Documentation

Simple Injector Documentation Simple Injector Documentation Release 2 Simple Injector Contributors November 09, 2014 Contents 1 Quick Start 3 1.1 Overview................................................. 3 1.2 Getting started..............................................

More information

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP OOP Object oriented programming Polymorphism Encapsulation Inheritance OOP Class concepts Classes can contain: Constants Delegates Events Fields Constructors Destructors Properties Methods Nested classes

More information

Index. Bower, 133, 352 bower.json file, 376 Bundling files, 157

Index. Bower, 133, 352 bower.json file, 376 Bundling files, 157 Index A Action results. See Controllers Actions. See Controllers Application model, 986 action constraints, 1000 Areas. See Routing Arrow functions. See Lambda expressions ASP.NET Core MVC (see Model View

More information

ComponentSpace SAML v2.0 Developer Guide

ComponentSpace SAML v2.0 Developer Guide ComponentSpace SAML v2.0 Developer Guide Copyright ComponentSpace Pty Ltd 2017-2018. All rights reserved. www.componentspace.com Contents Introduction... 1 Visual Studio and.net Core Support... 1 Application

More information

Real-Time SignalR. Overview

Real-Time SignalR. Overview Real-Time SignalR Overview Real-time Web applications feature the ability to push server-side content to the connected clients as it happens, in real-time. For ASP.NET developers, ASP.NET SignalR is a

More information

Bringing Together One ASP.NET

Bringing Together One ASP.NET Bringing Together One ASP.NET Overview ASP.NET is a framework for building Web sites, apps and services using specialized technologies such as MVC, Web API and others. With the expansion ASP.NET has seen

More information

Ten good practices for ASP.NET MVC applications

Ten good practices for ASP.NET MVC applications Ten good practices for ASP.NET MVC applications Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e Options for Web development Fully serverside Fully clientside Hybrid SPA And

More information

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core Gill Cleeren @gillcleeren www.snowball.be Agenda Overall application structure The Xamarin application architecture

More information

5.1 Registration and Configuration

5.1 Registration and Configuration 5.1 Registration and Configuration Registration and Configuration Apache Wink provides several methods for registering resources and providers. This chapter describes registration methods and Wink configuration

More information

DESCRIPTION OF TYPICAL NETWORK SERVICES ON SERVERS

DESCRIPTION OF TYPICAL NETWORK SERVICES ON SERVERS DESCRIPTION OF TYPICAL NETWORK SERVICES ON SERVERS Before you start Objectives: Familiarize yourself with the services such as File and Print, WWW, FTP, E- mail, Faxing, Remote Access, DHCP, DNS and WINS.

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

INSTALLATION GUIDE FOR ACPL FM220 RD WINDOWS APPLICATION INDEX

INSTALLATION GUIDE FOR ACPL FM220 RD WINDOWS APPLICATION INDEX INSTALLATION GUIDE FOR ACPL FM220 RD WINDOWS APPLICATION INDEX CONTENT PAGE No. Setup FM220 RD Service 2 Setup FM220 RD Service Support Tool 5 Instructions to enable HTTPS in RD Service 8 RD Service troubleshooting

More information

Web API Best Practices

Web API Best Practices Web API Best Practices STEVE SMITH ARDALIS.COM @ARDALIS STEVE@DEVIQ.COM DEVIQ.COM Learn More After Today 1) DevIQ ASP.NET Core Quick Start http://aspnetcorequickstart.com DEVINTFALL17 20% OFF! 2) Microsoft

More information

The core of Tapestry's form support is the Form component. The Form component encloses (wraps around) all the other field components such

The core of Tapestry's form support is the Form component. The Form component encloses (wraps around) all the other field components such Forms and Validation Forms are the traditional way for most web applications to gather significant information from the user. Whether it's a search form, a login screen or a multi-page registration wizard,

More information

CSCI 201 Google Chrome DevTools

CSCI 201 Google Chrome DevTools CSCI 201 Google Chrome DevTools This semester, our Factory code and assignments are written for use in Google Chrome. We will be taking advantage of Google Chrome DevTools, an assortment of web development

More information

ASP.NET Core Middleware

ASP.NET Core Middleware ASP.NET Core Middleware Dino Esposito @despos facebook.com/naa4e Press IIS and ASP.NET forever together Then it came OWIN OWIN is a specification on how web servers and web applications should be built

More information

Authorization in ASP.NET Core. Brock Allen

Authorization in ASP.NET Core. Brock Allen Authorization in ASP.NET Core Brock Allen brockallen@gmail.com http://brockallen.com @BrockLAllen Authorization in ASP.NET Core Complete re-write support for unauthorized vs forbidden better separation

More information

Method Slots: Supporting Methods, Events, and Advices by a Single Language Construct

Method Slots: Supporting Methods, Events, and Advices by a Single Language Construct Method Slots: Supporting Methods, Events, and Advices by a Single Language Construct YungYu Zhuang and Shigeru Chiba The University of Tokyo More and more paradigms are supported by dedicated constructs

More information

ANGULAR2 OVERVIEW. The Big Picture. Getting Started. Modules and Components. Declarative Template Syntax. Forms

ANGULAR2 OVERVIEW. The Big Picture. Getting Started. Modules and Components. Declarative Template Syntax. Forms FORMS IN ANGULAR Hello Cluj. I m Alex Lakatos, a Mozilla volunteer which helps other people volunteer. I want to talk to you today about Angular forms. What s a form you ask? A form creates a cohesive,

More information

C++ Modern and Lucid C++ for Professional Programmers

C++ Modern and Lucid C++ for Professional Programmers Informatik C++ Modern and Lucid C++ for Professional Programmers part 13 Prof. Peter Sommerlad Institutsleiter IFS Institute for Software Rapperswil, HS 2015 Inheritance and dynamic Polymorphism base classes,

More information

3 Days Training Program

3 Days Training Program 3 Days Training Program What is AngularJS? A JavaScript framework for creating dynamic web applications Open Source GitHub: https://github.com/angular/angular.js MIT License Uses jquery jquery 1.7.1 or

More information

T his article is downloaded from

T his article is downloaded from Some of the performance tips v ery useful during dev elopment, production and testing 1) Set debug="false" during deployment of your application NEVER deploy your web application to production with debug

More information

Argument Passing All primitive data types (int etc.) are passed by value and all reference types (arrays, strings, objects) are used through refs.

Argument Passing All primitive data types (int etc.) are passed by value and all reference types (arrays, strings, objects) are used through refs. Local Variable Initialization Unlike instance vars, local vars must be initialized before they can be used. Eg. void mymethod() { int foo = 42; int bar; bar = bar + 1; //compile error bar = 99; bar = bar

More information

Creating and Sharing a Google Calendar

Creating and Sharing a Google Calendar Creating and Sharing a Google Calendar How to Create a Google Calendar You can only create new calendars on a browser on your computer or mobile device. Once the calendar is created, you'll be able to

More information

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion, Dependency Injection and Inversion of Control Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion Principle History Postulated by Robert C. Martin Described

More information

55191: Advanced SharePoint Development

55191: Advanced SharePoint Development Let s Reach For Excellence! TAN DUC INFORMATION TECHNOLOGY SCHOOL JSC Address: 103 Pasteur, Dist.1, HCMC Tel: 08 38245819; 38239761 Email: traincert@tdt-tanduc.com Website: www.tdt-tanduc.com; www.tanducits.com

More information

Office 365 Calendar Sharing and Scheduling Assistant (Refer to Office 365 Features Handout for an overview of the Calendar)

Office 365 Calendar Sharing and Scheduling Assistant (Refer to Office 365 Features Handout for an overview of the Calendar) Office 365 Calendar Sharing and Scheduling Assistant (Refer to Office 365 Features Handout for an overview of the Calendar) http://www.jeffersonstate.edu/resources-for-instructors-de/ Select the Calendar

More information

Microsoft Visual Basic 2005: Reloaded

Microsoft Visual Basic 2005: Reloaded Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 10 Creating Classes and Objects Objectives After studying this chapter, you should be able to: Define a class Instantiate an object from a class

More information

C#.NET TRAINING / /

C#.NET TRAINING / / C#.NET TRAINING.NET ENTERPRISE ARCHITECTURE Introduction to the.net platform Common Language Run Time(CLR) The Common Type Specification(CTS) The Common Language Specification(CLS) Microsoft Intermediate

More information

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class.

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class. 1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity

More information

CHAPTER 1: INTRODUCING C# 3

CHAPTER 1: INTRODUCING C# 3 INTRODUCTION xix PART I: THE OOP LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the.net Framework? 4 What s in the.net Framework? 4 Writing Applications Using the.net Framework 5 What Is C#? 8 Applications

More information

Liskov Substitution Principle

Liskov Substitution Principle Liskov Substitution Principle Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles

More information

ComponentSpace SAML v2.0 Examples Guide

ComponentSpace SAML v2.0 Examples Guide ComponentSpace SAML v2.0 Examples Guide Copyright ComponentSpace Pty Ltd 2017-2018. All rights reserved. www.componentspace.com Contents Introduction... 1 Visual Studio Solution Files... 1 Visual Studio

More information

bla bla OX App Suite User Guide

bla bla OX App Suite User Guide bla bla OX App Suite User Guide OX App Suite OX App Suite: User Guide Publication date Wednesday, 10. April 2013 Version 7.0.1 Copyright 2006-2013 OPEN-XCHANGE Inc., This document is the intellectual property

More information

APACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER Dynamic Components using SPA Concepts Andon Sikavica, Bojana Popovska

APACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER Dynamic Components using SPA Concepts Andon Sikavica, Bojana Popovska APACHE SLING & FRIENDS TECH MEETUP BERLIN, 22-24 SEPTEMBER 2014 Dynamic Components using SPA Concepts Andon Sikavica, Bojana Popovska Dynamic Components adaptto() 2014 2 Dynamic vs Static Components Count

More information

(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University

(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University (12-1) OOP: Polymorphism in C++ D & D Chapter 12 Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University Key Concepts Polymorphism virtual functions Virtual function tables

More information

How To Uninstall Wsus 3.0 Sp2 And Its Related Components

How To Uninstall Wsus 3.0 Sp2 And Its Related Components How To Uninstall Wsus 3.0 Sp2 And Its Related Components Further following hotfixes for WSUS 3.0 SP2 were also installed on the sytem. renaming software distribution folder & reseting Window Update Component.

More information

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet

Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet Lab 7 Macros, Modules, Data Access Pages and Internet Summary Macros: How to Create and Run Modules vs. Macros 1. Jumping to Internet 1. Macros 1.1 What is a macro? A macro is a set of one or more actions

More information

Step by Step ASR, Azure Site Recovery

Step by Step ASR, Azure Site Recovery Prepared by: Mohammad Asmayal Jawad linkedin.com/in/asmayal/ August 14, 2017 V1.0 Table of Contents WORK LOADS PROTECTED... 1 DEPLOYMENT STEPS... 1 PREREQUISITES...2 LIMITATIONS... 3 SET UP AZURE... 4

More information

The Great SharePoint 2016/2013 Adventure for Developers

The Great SharePoint 2016/2013 Adventure for Developers The Great SharePoint 2016/2013 Adventure for Developers Developing for SharePoint 2016/2013 On-premises Course Code Audience Format Length Course Description Student Prerequisites GSA2016 Professional

More information

Implementing DHCP for IPv6

Implementing DHCP for IPv6 Implementing DHCP for IPv6 Last Updated: December 19, 2011 This module describes how to configure Dynamic Host Configuration Protocol (DHCP) for IPv6 prefix delegation on your networking devices. Finding

More information

Patterns Continued and Concluded. July 26, 2017

Patterns Continued and Concluded. July 26, 2017 Patterns Continued and Concluded July 26, 2017 Review Quiz What is the purpose of the Singleton pattern? A. To advertise to other developers that the object should only be modified by `main()` B.To prevent

More information

20486: Developing ASP.NET MVC 4 Web Applications

20486: Developing ASP.NET MVC 4 Web Applications 20486: Developing ASP.NET MVC 4 Web Applications Length: 5 days Audience: Developers Level: 300 OVERVIEW In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework

More information

MarkLogic Server. Database Replication Guide. MarkLogic 6 September, Copyright 2012 MarkLogic Corporation. All rights reserved.

MarkLogic Server. Database Replication Guide. MarkLogic 6 September, Copyright 2012 MarkLogic Corporation. All rights reserved. Database Replication Guide 1 MarkLogic 6 September, 2012 Last Revised: 6.0-1, September, 2012 Copyright 2012 MarkLogic Corporation. All rights reserved. Database Replication Guide 1.0 Database Replication

More information

Imgur.API Documentation

Imgur.API Documentation Imgur.API Documentation Release 3.7.0 Damien Dennehy May 13, 2017 Contents 1 Quick Start 3 1.1 Get Image................................................ 3 1.2 Get Image (synchronously - not recommended).............................

More information

Configuring and Managing Embedded Event Manager Policies

Configuring and Managing Embedded Event Manager Policies Configuring and Managing Embedded Event Manager Policies The Cisco IOS XR Software Embedded Event Manager (EEM) functions as the central clearing house for the events detected by any portion of the Cisco

More information

Configuration for Microprofile. Mark Struberg, Emily Jiang 0.3,

Configuration for Microprofile. Mark Struberg, Emily Jiang 0.3, Configuration for Microprofile Mark Struberg, Emily Jiang 0.3, 2017-01-18 Table of Contents Microprofile Config......................................................................... 2 Architecture................................................................................

More information

SHAREPOINT DEVELOPMENT FOR 2016/2013

SHAREPOINT DEVELOPMENT FOR 2016/2013 SHAREPOINT DEVELOPMENT FOR 2016/2013 Course Code: AUDIENCE: FORMAT: LENGTH: SP16-310-GSA (CP GSA2016) Professional Developers Instructor-led training with hands-on labs 5 Days COURSE INCLUDES: 5-days of

More information

EMARSYS FOR MAGENTO 2

EMARSYS FOR MAGENTO 2 EMARSYS FOR MAGENTO 2 Integration Manual July 2017 Important Note: This PDF was uploaded in July, 2017 and will not be maintained. For the latest version of this manual, please visit our online help portal:

More information

ASP.NET Training Course Duration. 30 Working days, daily one and half hours. ASP.NET Training Course Overview

ASP.NET Training Course Duration. 30 Working days, daily one and half hours. ASP.NET Training Course Overview ASP.NET Training Course Duration 30 Working days, daily one and half hours ASP.NET Training Course Overview Introduction To Web Applications [Prerequisites] Types of Applications Web, Desktop & Mobile

More information

Enhancing Web Dynpro Table Performance

Enhancing Web Dynpro Table Performance Enhancing Web Dynpro Table Performance Bertram Ganz, Andreas Rössler, NW ESI Foundation - Web Dynpro Foundation for Java Overview The existing Web Dynpro table selection behavior is automatically combined

More information

APPLICATION INTERFACE

APPLICATION INTERFACE WEB PLATFORM OVERVIEW v.1.4.0 APPLICATION INTERFACE Start view and server selection options: Test progress view: Summary view: Mobile view: USER INTERFACE FIREPROBE is a platform designed for Internet

More information

How to be a Good Bean

How to be a Good Bean How to be a Good Bean A JavaBeans component, or simply a Bean, is a reusable software component that can be manipulated visually in a builder tool. The JavaBeans 1.0 architecture specifies how a JavaBeans

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

QuickStart Guide for Managing Computers. Version

QuickStart Guide for Managing Computers. Version QuickStart Guide for Managing Computers Version 10.2.0 copyright 2002-2018 Jamf. All rights reserved. Jamf has made all efforts to ensure that this guide is accurate. Jamf 100 Washington Ave S Suite 1100

More information

MATE: A Flex Framework Extreme Makeover

MATE: A Flex Framework Extreme Makeover MATE: A Flex Framework Extreme Makeover Our Agenda Introductions What Is MATE? Why Use MATE? Take A Look At The Original App - ClipSafe It s Time for an Extreme Makeover! Extending MATE Summary Introductions

More information

DI Why? Getting a Grip on Dependency Injection. Jeremy Clark

DI Why? Getting a Grip on Dependency Injection. Jeremy Clark DI Why? Getting a Grip on Dependency Injection Jeremy Clark www.jeremybytes.com @jeremybytes What Is Dependency Injection? Dependency Injection is a software design pattern that allows a choice of component

More information

ASP.NET State Management Techniques

ASP.NET State Management Techniques ASP.NET State Management Techniques This article is for complete beginners who are new to ASP.NET and want to get some good knowledge about ASP.NET State Management. What is the need of State Management?

More information

Working with Controllers

Working with Controllers Controller 1 Objectives 2 Define and describe controllers Describe how to work with action methods Explain how to invoke action methods Explain routing requests Describe URL patterns Working with Controllers

More information

Build Testable Client and Service Applications

Build Testable Client and Service Applications Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP

More information

EXAMGOOD QUESTION & ANSWER. Accurate study guides High passing rate! Exam Good provides update free of charge in one year!

EXAMGOOD QUESTION & ANSWER. Accurate study guides High passing rate! Exam Good provides update free of charge in one year! EXAMGOOD QUESTION & ANSWER Exam Good provides update free of charge in one year! Accurate study guides High passing rate! http://www.examgood.com Exam : 070-492 Title : Upgrade your MCPD: Web Developer

More information

Extranet User Manager

Extranet User Manager Extranet User Manager Prerequisite Guide v3.1 March 11, 2015 Envision IT 7145 West Credit Avenue Suite 100, Building 3 Mississauga, ON L5N 6J7 Table of Contents ENVISION IT EXTRANET USER MANAGER... 1 VERSION

More information

User Guide LC4. Before using this product, please read the guide carefully to avoid any damage to the product.

User Guide LC4. Before using this product, please read the guide carefully to avoid any damage to the product. User Guide LC4 Before using this product, please read the guide carefully to avoid any damage to the product. 1. Product Description 1.1 Packing list IP Camera User Manual Before using this product, please

More information

DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE

DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE 70-487 DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE ACCESSING DATA(20 TO 25%) 1) Choose data access technologies a) Choose a technology (ADO.NET, Entity Framework, WCF Data Services, Azure

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information

Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV. Vjekoslav Babić, MVP

Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV. Vjekoslav Babić, MVP Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV Vjekoslav Babić, MVP About the Presenter Vjekoslav Babić consultant, trainer, blogger, author

More information

Consent Management Platform (CMP) Full Documentation

Consent Management Platform (CMP) Full Documentation Consent Management Platform (CMP) 1.1.0 Full Documentation (Effective May, 2018) Introduction This document contains instructions to install the Rakuten Consent Management Platform (CMP) on your site.

More information

1. Product Description

1. Product Description 1. Product Description Hardware Description Note: The magnetic base can stick to any metal surface as per below diagram. This allows for better and more solid placement of the camera. 2. Installation 2.1

More information

Proxying. Why and How. Alon Altman. Haifa Linux Club. Proxying p.1/24

Proxying. Why and How. Alon Altman. Haifa Linux Club. Proxying p.1/24 Proxying p.1/24 Proxying Why and How Alon Altman alon@haifux.org Haifa Linux Club Proxying p.2/24 Definition proxy \Prox"y\, n.; pl. Proxies. The agency for another who acts through the agent; authority

More information

AngularJS Fundamentals

AngularJS Fundamentals AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM

More information

General. Analytics. MCS Instance Has Predefined Storage Limit. Purge Analytics Data Before Reaching Storage Limit

General. Analytics. MCS Instance Has Predefined Storage Limit. Purge Analytics Data Before Reaching Storage Limit Oracle Cloud Mobile Cloud Service Known Issues 18.1.3 E93163-01 February 2018 General MCS Instance Has Predefined Storage Limit Each MCS instance has a set storage space that can t be changed manually.

More information

5. Application Layer. Introduction

5. Application Layer. Introduction Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The

More information

Google Groups. Using, joining, creating, and sharing. content with groups. What's Google Groups? About Google Groups and Google Contacts

Google Groups. Using, joining, creating, and sharing. content with groups. What's Google Groups? About Google Groups and Google Contacts Google Groups Using, joining, creating, and sharing content with groups What's Google Groups? Google Groups is a feature of Google Apps that makes it easy to communicate and collaborate with groups of

More information

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google

GWT: The Technical Advantage. Presenter: Anirudh Dewani Company Name: Google GWT: The Technical Advantage Presenter: Anirudh Dewani Company Name: Google What is GWT? 2 How it works Google Web Toolkit Weekly Report 09/01/2008-09/08/200 Code against Java UI libraries 3 How it works

More information

Developing ASP.NET MVC 4 Web Applications

Developing ASP.NET MVC 4 Web Applications Developing ASP.NET MVC 4 Web Applications Duration: 5 Days Course Code: 20486B About this course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5

More information

The 12-Factor app and IBM Bluemix IBM Corporation

The 12-Factor app and IBM Bluemix IBM Corporation The 12-Factor app and IBM Bluemix After you complete this section, you should understand: The characteristics of a 12-Factor app Examples of following 12-Factor App methodology in Bluemix 2 What are the

More information

Developing Web Applications Using Microsoft Visual Studio 2008 SP1

Developing Web Applications Using Microsoft Visual Studio 2008 SP1 Developing Web s Using Microsoft Visual Studio 2008 SP1 Introduction This five day instructor led course provides knowledge and skills on developing Web applications by using Microsoft Visual Studio 2008

More information

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON 94 Developing a Web Server Platform with SAPI support for AJAX RPC using JSON Assist. Iulian ILIE-NEMEDI Informatics in Economy Department, Academy of Economic Studies, Bucharest Writing a custom web server

More information

Top 5 Tips to Excel as an Episerver Developer

Top 5 Tips to Excel as an Episerver Developer 25 th October 2017 Top 5 Tips to Excel as an Developer Moderator: Marc Erodotou Presenter: Mark Price Presenter: Mark Price Moderator: Marc Erodotou Copyright AB 1 Top 5 Tips to Excel as an Developer Agenda

More information

NetCoreControls Documentation

NetCoreControls Documentation NetCoreControls Documentation Release 0.1.0 Joao Pereira Jun 15, 2018 Get started 1 Features 3 1.1 Setup and Overview........................................... 3 1.2 Basic Usage...............................................

More information

ComponentSpace SAML v2.0 IdentityServer4 Integration Guide

ComponentSpace SAML v2.0 IdentityServer4 Integration Guide ComponentSpace SAML v2.0 IdentityServer4 Integration Guide Copyright ComponentSpace Pty Ltd 2017-2018. All rights reserved. www.componentspace.com Contents Introduction... 1 IdentityServer4 as the Service

More information

Financial. AngularJS. AngularJS.

Financial. AngularJS. AngularJS. Financial http://killexams.com/exam-detail/ Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview Questions with their answers hidden in a box to challenge

More information

Deploy Cisco Directory Connector

Deploy Cisco Directory Connector Cisco Directory Connector Deployment Task Flow, page 1 Install Cisco Directory Connector, page 3 Sign In To Cisco Directory Connector, page 4 Configure General Settings for Directory Connector, page 7

More information

This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project.

This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project. MVVMStarter Guide This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project. Table of Content Introduction...2 Purpose...2

More information

Module 3 Web Component

Module 3 Web Component Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session

More information

Release Notes: GRANTA MI Version 10.0 Update 1

Release Notes: GRANTA MI Version 10.0 Update 1 Release Notes: GRANTA MI Version 10.0 Update 1 April 2017 Granta Design produces regular updates to major version releases of GRANTA MI. These update releases are distributed in two forms: As a full product

More information

SOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016

SOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016 SOLID Principles Optional Subheading October 19, 2016 Why SOLID Principles? The traits of well designed software are as follows Maintainability - The ease with which a software system or component can

More information

Factory Method. Factory Method. Resource Mgt in App Framework. An Example: A Framework for Productivity ( Office ) Applications

Factory Method. Factory Method. Resource Mgt in App Framework. An Example: A Framework for Productivity ( Office ) Applications Factory Method Factory Method A method to instantiate a class and initializes a class instance without using its constructors Uses a regular (i.e., non-constructor) method. Lets a class defer instantiation

More information

Introduction to IdentityServer

Introduction to IdentityServer Introduction to IdentityServer The open source OIDC framework for.net Brock Allen http://brockallen.com @BrockLAllen brockallen@gmail.com @IdentityServer Dominick Baier http://leastprivilege.com @leastprivilege

More information

Financial. AngularJS. AngularJS. Download Full Version :

Financial. AngularJS. AngularJS. Download Full Version : Financial AngularJS AngularJS Download Full Version : https://killexams.com/pass4sure/exam-detail/angularjs Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview

More information

Chatter Answers Implementation Guide

Chatter Answers Implementation Guide Chatter Answers Implementation Guide Salesforce, Spring 16 @salesforcedocs Last updated: April 27, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

New Face of z/os Communications Server: V2R1 Configuration Assistant

New Face of z/os Communications Server: V2R1 Configuration Assistant New Face of z/os Communications Server: V2R1 Configuration Assistant Kim Bailey (ktekavec@us.ibm.com) IBM August 14, 2013 Session # 13630 Agenda What is the Configuration Assistant and how can it help

More information

LAT-TD-xxxxx-xx May 21, 2002

LAT-TD-xxxxx-xx May 21, 2002 Document # Date LAT-TD-xxxxx-xx May 21, 2002 Author(s) Supersedes Page 1 of 12 LAT TECHNICAL NOTE System or Sponsoring Office Science Analysis Software Document Title SAS Recommendations for Code Documentation

More information

Lab 2 (More Inheritance, Interfaces, Delegates)

Lab 2 (More Inheritance, Interfaces, Delegates) I. Inheritance Lab 2 (More Inheritance, Interfaces, Delegates) Goals of this activity: Learn how inheritance works Understand rules of construction with inheritance Learn the difference between static

More information

Lecture 10 Declarations and Scope

Lecture 10 Declarations and Scope Lecture 10 Declarations and Scope Declarations and Scope We have seen numerous qualifiers when defining methods and variables public private static final (we'll talk about protected when formally addressing

More information

5.1 Configuring Authentication, Authorization, and Impersonation. 5.2 Configuring Projects, Solutions, and Reference Assemblies

5.1 Configuring Authentication, Authorization, and Impersonation. 5.2 Configuring Projects, Solutions, and Reference Assemblies LESSON 5 5.1 Configuring Authentication, Authorization, and Impersonation 5.2 Configuring Projects, Solutions, and Reference Assemblies 5.3 Publish Web Applications 5.4 Understand Application Pools MTA

More information

Chatter Answers Implementation Guide

Chatter Answers Implementation Guide Chatter Answers Implementation Guide Salesforce, Summer 18 @salesforcedocs Last updated: July 26, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Qlik NPrinting. September 2018 Copyright QlikTech International AB. All rights reserved.

Qlik NPrinting. September 2018 Copyright QlikTech International AB. All rights reserved. Qlik NPrinting Qlik NPrinting September 2018 Copyright 1993-2018 QlikTech International AB. All rights reserved. Contents 1 What is Qlik NPrinting? 22 1.1 How does Qlik NPrinting work? 22 Qlik NPrinting

More information

Syllabus of Dont net C#

Syllabus of Dont net C# Syllabus of Dont net C# 1. What is.net? 2. Why do we require Framework/IDE 3. Fundamentals of.net Framework 4..Net Architecture 5. How to create first Console application 6. Statements, Expressions, operators

More information