Technology Overview

57 %
43 %
Information about Technology Overview
Technology

Published on June 29, 2009

Author: vzilka

Source: slideshare.net

Description

An overview of up to date Microsoft technology, like VSTS, WCF, Silverlight and more

סקר טכנולוגי לירן זילכה מנכ " ל משותף [email_address]

Aluna Israel’s leading Java/JavaEE and SOA consulting company Customers:

Israel’s leading Java/JavaEE and SOA consulting company

Customers:

Agenda IT concepts: SOA Cloud Computing Products: SQL Server 2008 VSTS Development Technologies: WPF (XAML) Silverlight WCF

IT concepts:

SOA

Cloud Computing

Products:

SQL Server 2008

VSTS

Development Technologies:

WPF (XAML)

Silverlight

WCF

SOA

From Objects to Services Polymorphism Encapsulation Subclassing Message-based Schema+Contract Binding via Policy 1980s 2000s Interface-based Dynamic Loading Runtime Metadata 1990s Object-Oriented Service-Oriented Component-Based

Polymorphism

Encapsulation

Subclassing

Message-based

Schema+Contract

Binding via Policy

Interface-based

Dynamic Loading

Runtime Metadata

Benefits of Service Orientation Facilitates implementation/platform interop Independent deployment, versioning, mgmt Promotes technology reuse

Facilitates implementation/platform interop

Independent deployment, versioning, mgmt

Promotes technology reuse

The Challenge - Radically Simplifying Distributed Application Development Development of connected systems remains costly and frustrating Different programming models for different tasks Need for security and reliable messaging Interoperability with applications on other platforms Productive service-oriented programming model needed

Development of connected systems remains costly and frustrating

Different programming models for different tasks

Need for security and reliable messaging

Interoperability with applications on other platforms

Productive service-oriented programming model needed

Cloud Computing

Questions What is cloud computing? Horizontal and functional services What’s it going to change? Software business models, science, life How many clouds will there be? 1, 2, 3, infinity What’s new in cloud computing? HPC grids, ASPs, hosted services, Multics (!) Emerging “cloud stack” to support a broad class of programs, including data intensive applications

What is cloud computing?

Horizontal and functional services

What’s it going to change?

Software business models, science, life

How many clouds will there be?

1, 2, 3, infinity

What’s new in cloud computing?

HPC grids, ASPs, hosted services, Multics (!)

Emerging “cloud stack” to support a broad class of programs, including data intensive applications

Living in the Clouds We want to start a new website, FredsList.com Our site will provide listings of items for sale, jobs, etc. As time goes on, we’ll add more features And illustrate how more cloud capabilities (and corresponding infrastructure components) are used as needed List of capabilities/components is illustrative, not exhaustive Our cloud provides a “dataset” abstraction FredsList doesn’t worry about the underlying components

We want to start a new website, FredsList.com

Our site will provide listings of items for sale, jobs, etc.

As time goes on, we’ll add more features

And illustrate how more cloud capabilities (and corresponding infrastructure components) are used as needed

List of capabilities/components is illustrative, not exhaustive

Our cloud provides a “dataset” abstraction

FredsList doesn’t worry about the underlying components

Step 1: Listings Scenario Simple Web Service API’s Database PNUTS FredsList.com application 1234323, transportation, For sale: one bicycle, barely used FredsList wants to store listings as (key, category, description) 5523442, childcare, Nanny available in San Jose 215534, wanted, Looking for issue 1 of Superman comic book DECLARE DATASET Listings AS ( ID String PRIMARY KEY, Category String, Description Text )

Step 2: System Evolution Simple Web Service API’s Database PNUTS FredsList.com application 1234323, transportation, For sale: one bicycle, barely used Fred belatedly realizes prices are useful information! 5523442, childcare, Nanny available in San Jose 215534, wanted, Looking for issue 1 of Superman comic book ALTER DATASET Listings ADD (Price Float) Schemas are flexible, and evolve 32138, camera, Nikon D40, USD 300 Not every record in a dataset has values defined for all fields declared for the dataset vs.

Step 3: Search Simple Web Service API’s Database PNUTS “ bicycle” FredsList’s customers quickly ask for keyword search Search Vespa “ dvd’s” “ nanny” FredsList.com application ALTER Listings SET Description SEARCHABLE Messaging Tribble Federation of systems offering different capabilities

Step 4: Photos Simple Web Service API’s Database PNUTS FredsList decides to add photos/videos to listings Search Vespa Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings ADD Photo BLOB Messaging Tribble Federation of systems offering different performance points

Step 5: Data Analysis Simple Web Service API’s Database PNUTS FredsList wants to analyze its listings to get statistics about category, do geocoding, etc. Search Vespa Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings MAKE ANALYZABLE Compute Grid Batch export Pig query to analyze categories Hadoop program to geocode data Hadoop program to generate fancy pages for listings Messaging Tribble

Step 6: Performance Simple Web Service API’s Database PNUTS FredsList wants to reduce its data access latency Search Vespa Messaging Tribble Storage MObStor Foreign key photo -> listing FredsList.com application ALTER Listings MAKE CACHEABLE Compute Grid Batch export Caching memcached And by now, Fred is global, and wants geo-replication!

Data Serving vs. Analysis Very different workloads, requirements Data from serving system is one of many kinds of data (click streams are another common kind, as are syndicated feeds) to be analyzed and integrated The result of analysis often goes right back into serving system

Very different workloads, requirements

Data from serving system is one of many kinds of data (click streams are another common kind, as are syndicated feeds) to be analyzed and integrated

The result of analysis often goes right back into serving system

Why Clouds? On-demand infrastructure to create a fundamental shift in the OE curve: Do things we can’t do Build more robustly, more efficiently, more globally, more completely, more quickly, for a given budget Cloud services should do heavy lifting of heavy-lifting of scaling & high-availability Today, this is done at the app-level, which is not productive

On-demand infrastructure to create a fundamental shift in the OE curve:

Do things we can’t do

Build more robustly, more efficiently, more globally, more completely, more quickly, for a given budget

Cloud services should do heavy lifting of heavy-lifting of scaling & high-availability

Today, this is done at the app-level, which is not productive

Requirements for Cloud Services Multitenant. A cloud service must support multiple, organizationally distant customers. Elasticity. Tenants should be able to negotiate and receive resources/QoS on-demand. Resource Sharing. Ideally, spare cloud resources should be transparently applied when a tenant’s negotiated QoS is insufficient, e.g., due to spikes. Horizontal scaling. It should be possible to add cloud capacity in small increments; this should be transparent to the tenants of the service.

Multitenant. A cloud service must support multiple, organizationally distant customers.

Elasticity. Tenants should be able to negotiate and receive resources/QoS on-demand.

Resource Sharing. Ideally, spare cloud resources should be transparently applied when a tenant’s negotiated QoS is insufficient, e.g., due to spikes.

Horizontal scaling. It should be possible to add cloud capacity in small increments; this should be transparent to the tenants of the service.

Requirements for Cloud Services Metering. A cloud service must support accounting that reasonably ascribes operational and capital expenditures to each of the tenants of the service. Security. A cloud service should be secure in that tenants are not made vulnerable because of loopholes in the cloud. Availability. A cloud service should be highly available. Operability. A cloud service should be easy to operate, with few operators. Operating costs should scale linearly or better with the capacity of the service.

Metering. A cloud service must support accounting that reasonably ascribes operational and capital expenditures to each of the tenants of the service.

Security. A cloud service should be secure in that tenants are not made vulnerable because of loopholes in the cloud.

Availability. A cloud service should be highly available.

Operability. A cloud service should be easy to operate, with few operators. Operating costs should scale linearly or better with the capacity of the service.

Types of Cloud Services Two kinds of cloud services: Horizontal (“Platform”) Cloud Services Functionality enabling tenants to build applications or new services on top of the cloud Functional Cloud Services Functionality that is useful in and of itself to tenants. E.g., various SaaS instances, such as Saleforce.com; Google Analytics and Yahoo!’s IndexTools; Yahoo! properties aimed at end-users and small businesses, e.g., flickr, Groups, Mail, News, Shopping Could be built on top of horizontal cloud services or from scratch Yahoo! has been offering these for a long while (e.g., Mail for SMB, Groups, Flickr, BOSS, Ad exchanges)

Two kinds of cloud services:

Horizontal (“Platform”) Cloud Services

Functionality enabling tenants to build applications or new services on top of the cloud

Functional Cloud Services

Functionality that is useful in and of itself to tenants. E.g., various SaaS instances, such as Saleforce.com; Google Analytics and Yahoo!’s IndexTools; Yahoo! properties aimed at end-users and small businesses, e.g., flickr, Groups, Mail, News, Shopping

Could be built on top of horizontal cloud services or from scratch

Yahoo! has been offering these for a long while (e.g., Mail for SMB, Groups, Flickr, BOSS, Ad exchanges)

Horizontal Cloud Services Horizontal cloud services are foundations on which tenants build applications or new services. They should be: Semantics-free. Must be "generic infrastructure,” and not tied to specific app-logic. May provide the ability to inject application logic through well-defined APIs Broadly applicable. Must be broadly applicable (i.e., it can't be intended for just one or two properties). Fault-tolerant over commodity hardware. Must be built using inexpensive commodity hardware, and should mask component failures. While each cloud service provides value, the power of the cloud paradigm will depend on a collection of well-chosen, loosely coupled services that collectively make it easy to quickly develop and operate innovative web applications.

Horizontal cloud services are foundations on which tenants build applications or new services. They should be:

Semantics-free. Must be "generic infrastructure,” and not tied to specific app-logic.

May provide the ability to inject application logic through well-defined APIs

Broadly applicable. Must be broadly applicable (i.e., it can't be intended for just one or two properties).

Fault-tolerant over commodity hardware. Must be built using inexpensive commodity hardware, and should mask component failures.

While each cloud service provides value, the power of the cloud paradigm will depend on a collection of well-chosen, loosely coupled services that collectively make it easy to quickly develop and operate innovative web applications.

What’s in the Horizontal Cloud? Shared Infrastructure Horizontal Cloud Services Edge Content Services e.g., YCS, YCPI Provisioning & Virtualization e.g., EC2 Batch Storage & Processing e.g., Hadoop & Pig Operational Storage e.g., S3, MObStor, Sherpa Other Services Messaging, Workflow, virtual DBs & Webserving Simple Web Service API’s Common Approaches to QA, Production Engineering, Performance Engineering, Datacenter Management, and Optimization ID & Account Management Monitoring & QoS Metering, Billing, Accounting Security

Web Data Management Large data analysis (Hadoop) Structured record storage (PNUTS/Sherpa) Blob storage (SAN/NAS) Scan oriented workloads Focus on sequential disk I/O $ per cpu cycle CRUD Point lookups and short scans Index organized table and random I/Os $ per latency Object retrieval and streaming Scalable file storage $ per GB

Scan oriented workloads

Focus on sequential disk I/O

$ per cpu cycle

CRUD

Point lookups and short scans

Index organized table and random I/Os

$ per latency

Object retrieval and streaming

Scalable file storage

$ per GB

The World Has Changed Web serving applications need: Scalability! Preferably elastic Flexible schemas Geographic distribution High availability Reliable storage Web serving applications can do without: Complicated queries Strong transactions

Web serving applications need:

Scalability!

Preferably elastic

Flexible schemas

Geographic distribution

High availability

Reliable storage

Web serving applications can do without:

Complicated queries

Strong transactions

SQL Server 2008

SQL Server 2008

Enterprise Data Platform Policy-Based Management Management of multiple SQL Server instances from a single location. Create policies that control security, database options, object naming conventions, and other settings at a highly granular level. Data Collector Collect, store, and view performance data automatically. It collects disk usage, server activity, and query statistics data, which it loads in a management data warehouse and performance data can be reviewed in SQL Server Management Studio or by using third-party tools.

Policy-Based Management

Management of multiple SQL Server instances from a single location.

Create policies that control security, database options, object naming conventions, and other settings at a highly granular level.

Data Collector

Collect, store, and view performance data automatically.

It collects disk usage, server activity, and query statistics data, which it loads in a management data warehouse and performance data can be reviewed in SQL Server Management Studio or by using third-party tools.

Enterprise Data Platform – Cont’ Data compression Resource Governor Allocate resource to high profile applications Database files encryption Auditing

Data compression

Resource Governor

Allocate resource to high profile applications

Database files encryption

Auditing

Development MERGE support Allows easy merge of data for Data Warehouses Language Integrated Query (LINQ) A .NET Framework version 3.5 feature that provides developers with a common syntax to query any data source from client applications. Using LINQ to SQL or LINQ to Entities, developers can select, insert, update, and delete data that is stored in SQL Server 2008 databases using any .NET programming language

MERGE support

Allows easy merge of data for Data Warehouses

Language Integrated Query (LINQ)

A .NET Framework version 3.5 feature that provides developers with a common syntax to query any data source from client applications.

Using LINQ to SQL or LINQ to Entities, developers can select, insert, update, and delete data that is stored in SQL Server 2008 databases using any .NET programming language

Development – Cont’ Change Data Capture (CDC) Allows you to track changes in the database (insert/update/delete) and store them in a table, for use in Data Warehouses ADO.NET Entity Framework An ORM solution, much like Nhibernate ADO.NET Data Services A data access infrastructure for Internet applications by enabling Web applications to expose SQL Server data as a service that can be consumed by client applications in corporate networks and across the Internet.

Change Data Capture (CDC)

Allows you to track changes in the database (insert/update/delete) and store them in a table, for use in Data Warehouses

ADO.NET Entity Framework

An ORM solution, much like Nhibernate

ADO.NET Data Services

A data access infrastructure for Internet applications by enabling Web applications to expose SQL Server data as a service that can be consumed by client applications in corporate networks and across the Internet.

Non Relational Data Spatial support Full text search Large user defined types Better XML support

Spatial support

Full text search

Large user defined types

Better XML support

Visual Studio Team System

VSTS ALM Solution Excel Project Operations, QA and Help Desk Non-Microsoft Developer Team System Web Access

Facilitate Team Collaboration Approachable and intuitive products Tight integration across tools, process and roles Single integrated server for greater communication and collaboration Tailored tools for each role Greater team productivity

Approachable and intuitive products

Tight integration across tools, process and roles

Single integrated server for greater communication and collaboration

Team System Architecture Dev Team (Local) Dev Team (Remote) Business User Build Server Version Control Proxy (Remote) Active Directory TCP/IP HTTP / S Win 2003 Server SQL Server 2005 IIS 6.0 Team Foundation Server

Process Enacted By Tooling Choose process when creating a new project

Process IS important in TFS Take your process/methodology and use it Does not need to be heavy process Grab processes from elsewhere Eg: SCRUM Easily Customizable through Process Templates

Take your process/methodology and use it

Does not need to be heavy process

Grab processes from elsewhere

Eg: SCRUM

Easily Customizable through Process Templates

Process Templates: Make the entire system work the way you want it to work: Define your (bug, etc) definition, your terms, your form layout, and workflow Create your own process guidance easily Create your own look and feel for a collaboration portal Include all of your document templates, other artifacts Include your own roles and security settings Include your own reporting

Make the entire system work the way you want it to work:

Define your (bug, etc) definition, your terms, your form layout, and workflow

Create your own process guidance easily

Create your own look and feel for a collaboration portal

Include all of your document templates, other artifacts

Include your own roles and security settings

Include your own reporting

Team Foundation Server A single, integrated server for team collaboration: Team Portal – SharePoint site for team collaboration Change Management – flexible work item tracking system for requirements, change requests, bugs, issues and other work items Project Management – manage project resources, timelines and quality Version Control – robust version control system for all project artifacts, including branching, change sets, and shelving Build Server – automate team project build, analysis, testing Reporting – central data warehouse for real-time project metrics and analytics

A single, integrated server for team collaboration:

Team Portal – SharePoint site for team collaboration

Change Management – flexible work item tracking system for requirements, change requests, bugs, issues and other work items

Project Management – manage project resources, timelines and quality

Version Control – robust version control system for all project artifacts, including branching, change sets, and shelving

Build Server – automate team project build, analysis, testing

Reporting – central data warehouse for real-time project metrics and analytics

Team Explorer Common integrated client to access: Work Items Documents Reports Team Builds Source Code Control Single team view of all project artifacts Fully integrated into Visual Studio 2005 Available as stand-alone for business analysts, project managers and other team members

Common integrated client to access:

Work Items

Documents

Reports

Team Builds

Source Code Control

Single team view of all project artifacts

Fully integrated into Visual Studio 2005

Available as stand-alone for business analysts, project managers and other team members

Web Access Browser-based access to Project Dashboard Documents Reports Work Item Tracking Source Code Control Single team view of all project artifacts Includes Source Control search capabilities ASP.NET 2.0 Solution Free Download!

Browser-based access to

Project Dashboard

Documents

Reports

Work Item Tracking

Source Code Control

Single team view of all project artifacts

Includes Source Control search capabilities

ASP.NET 2.0 Solution

Free Download!

Some Adoption Scenarios Replace Source Control (Replace SourceSafe) Need to track bugs, etc. Want to have a build server to handle promotion management Need to work towards audit requirements Support for distributed teams

Replace Source Control (Replace SourceSafe)

Need to track bugs, etc.

Want to have a build server to handle promotion management

Need to work towards audit requirements

Support for distributed teams

Compliance and Audit TFS supports this easily: Process Guidance details how you work Work Items provide a granular audit trail Reports used to supplement this TFS does all (or most of) the work for you.

TFS supports this easily:

Process Guidance details how you work

Work Items provide a granular audit trail

Reports used to supplement this

TFS does all (or most of) the work for you.

Compliance And Auditing Capturing evidence does not have to be a manual process, ...

Compliance And Auditing … because there is a complete audit trail on all the tasks, code, and tests.

Integrated Project Portal Customizable SharePoint portal for team collaboration

Business Requirements Business requirements captured and managed to enable end-to-end traceability

Project Planning Full integration into Microsoft Project for a real-time view of work items

Team Explorer Access work items, project documents, reports, builds and source control from one location

Web Access Access work items, project documents, reports, builds and source control any browser!

Work Item Association Associate work items with each check-in to provide traceability from requirements to code

Check-In Policies Policies enforced by tooling reinforce good development practices

Managing Work Items Manage and analyze work items using Microsoft Excel

Database Change Management A new offline Database project allows you to work with your database schema offline while full integration with TFS allows you to manage and version these changes Rename refactoring makes it easy to make changes to your database schema

Build And Deployment Build verification test results as part of the build process Who checked in what?

What Requirements Haven’t Been Tested? Tracks progression of requirements’ states from untested to passed by successive build

How Far Can We Get In The Available Time? Work completed Work planned

Where Do We Need To Shift Resources? Bulge in work in process (i.e. in testing) indicates inadequate resources or inadequate incoming quality

Scope Creep “ Dark matter” emerging during iteration Planned work is squeezed out

How Effective Is Our Team? Test rates (pass, inconclusive, fail) shown in bars Against code coverage, … code churn, … and active bugs

Inadequate Unit Testing Falling code coverage Fewer passing and more inconclusive tests Rising code churn

Integration with Project Server Project Server 2007 VSTS Connector available on CodePlex

Project Server 2007 VSTS Connector available on CodePlex

Workspaces Workspaces provide Isolated areas A single PC can have many workspaces Workspaces are a powerful tool with branching

Workspaces provide Isolated areas

A single PC can have many workspaces

Workspaces are a powerful tool with branching

Branching Allows parallel development But for anything that you don't want to service or patch, labelling is sufficient.  For a release that you do want to service or patch, branching is the way to go.  Using merging, you can move changes between branches.

Allows parallel development

But for anything that you don't want to service or patch, labelling is sufficient. 

For a release that you do want to service or patch, branching is the way to go. 

Using merging, you can move changes between branches.

Branching

Using the TFS API Team Explorer installs all the DLLs are in the GAC, but doesn’t registered them for Visual Studio Can write own desktop clients to do anything you can in Team Explorer or the command line

Team Explorer installs all the DLLs are in the GAC, but doesn’t registered them for Visual Studio

Can write own desktop clients to do anything you can in Team Explorer or the command line

Other Cool Tools SVNBridge – Allows SubVersion client to access TFS Conchango’s Scrum Project Guidance Pack Personify Design’s TeamLook Outlook Addin Microsoft Israel’s Team System Outlook Addin TeamPrise Client Suite – TFS access from Macs, Linux and Eclipse IDE NB all clients still need a Team Explorer

SVNBridge – Allows SubVersion client to access TFS

Conchango’s Scrum Project Guidance Pack

Personify Design’s TeamLook Outlook Addin

Microsoft Israel’s Team System Outlook Addin

TeamPrise Client Suite – TFS access from Macs, Linux and Eclipse IDE

NB all clients still need a Team Explorer

TFS & VSS Differences Architecture TFS: client/server, VSS: client-side Security Windows/AD vs. VSS based security Reliability VSS database integrity can be compromised TFS uses SQL Server Scalability TFS can support up to 2000 user per instance and data size is limited only by physical media & SQL Server limits ( in the terabytes)

Architecture

TFS: client/server, VSS: client-side

Security

Windows/AD vs. VSS based security

Reliability

VSS database integrity can be compromised

TFS uses SQL Server

Scalability

TFS can support up to 2000 user per instance and data size is limited only by physical media & SQL Server limits ( in the terabytes)

TFS & VSS Differences TFS does NOT perform a “get latest” on checkout “ get latest” and “check out” are 2 separate ops “ get latest” is explicit in TFS, controlled by the user Provides a consistent snapshot of code TFS does NOT add a file until checked in

TFS does NOT perform a “get latest” on checkout

“ get latest” and “check out” are 2 separate ops

“ get latest” is explicit in TFS, controlled by the user

Provides a consistent snapshot of code

TFS does NOT add a file until checked in

Migration from VSS to TFS VSSConverter migration tool Imports VSS repository into TFS Command line interface Can migrate most VSS repositories easily VSS Shared files are copied VSS Pinned items are labeled as “PINNED” in TFS

VSSConverter migration tool

Imports VSS repository into TFS

Command line interface

Can migrate most VSS repositories easily

VSS Shared files are copied

VSS Pinned items are labeled as “PINNED” in TFS

Visual Studio 2008 Administration Share Point 2007 support Enable use of a separate Share Point farm. Support for SQL Named Instances “ Longhorn” server support Sync Large Groups (~30,000 or more) Installation on a domain controller Non-default ports & web sites Simplify installation Upgrade from TFS 2005

Share Point 2007 support

Enable use of a separate Share Point farm.

Support for SQL Named Instances

“ Longhorn” server support

Sync Large Groups (~30,000 or more)

Installation on a domain controller

Non-default ports & web sites

Simplify installation

Upgrade from TFS 2005

Visual Studio 2008 Version Control Add support for checkin policy overrides to the warehouse (an oversight from V1). Annotate & Folder Diff Destroy Get Latest On Checkout Workspace improvements Performance & Scale improvements Migration toolkit between TFS and other systems

Add support for checkin policy overrides to the warehouse (an oversight from V1).

Annotate & Folder Diff

Destroy

Get Latest On Checkout

Workspace improvements

Performance & Scale improvements

Migration toolkit between TFS and other systems

Visual Studio 2008 Build Support multi-threaded builds with the new MSBuild. Continuous Integration Improved ability to specify what source, versions of source, and other build properties. Improved ability to manage multiple build machines. Stop and delete builds from within VS. Simplified ability to specify what tests get run as part of a build. The ability to store build definitions anywhere in the version control hierarchy

Support multi-threaded builds with the new MSBuild.

Continuous Integration

Improved ability to specify what source, versions of source, and other build properties.

Improved ability to manage multiple build machines.

Stop and delete builds from within VS.

Simplified ability to specify what tests get run as part of a build.

The ability to store build definitions anywhere in the version control hierarchy

WPF

Why WPF? Windows Presentation Foundation, part of WinFx, is a completely new presentation framework replacing User, GDI, GDI+, Win32 Competes with HTML, Macromedia Flash, SVG Give developers the tools to make Office quality applications, but also Flash like websites.

Windows Presentation Foundation, part of WinFx, is a completely new presentation framework replacing User, GDI, GDI+, Win32

Competes with HTML, Macromedia Flash, SVG

Give developers the tools to make Office quality applications, but also Flash like websites.

Hello World C# example using System; using System.Windows; namespace AvalonExample { class MyApp { [STAThread] static void Main(){ MessageBox.Show(“Hello World!”); } } }

C# example

Hello World XAML example <Page xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot;> <TextBlock>Hello World!</TextBlock> </Page>

XAML example

What Is XAML XAML = eXtensible Application Markup Language XAML provides a declarative programming model that allows various objects to be defined: Layout controls User input Controls Shapes (lines, rectangles, ellipses, plus more) Media (audio or video files) Animations and transformations Silverlight supports a subset of the original XAML schema created for WPF applications

XAML = eXtensible Application Markup Language

XAML provides a declarative programming model that allows various objects to be defined:

Layout controls

User input Controls

Shapes (lines, rectangles, ellipses, plus more)

Media (audio or video files)

Animations and transformations

Silverlight supports a subset of the original XAML schema created for WPF applications

Application Object Application object acts as container for more complex applications MainWindow Application events like Startup & Shutdown

Application object acts as container for more complex applications

MainWindow

Application events like

Startup & Shutdown

Application Object public class MyApp : Application { [STAThread] static void Main(string[] args) { MyApp app = new MyApp(); app.Startup += app.OnApplicationStartup; app.Run(args); } void OnApplicationStartup(object sender, StartupEventArgs e) { Window w = new Window(); w.Title = &quot;Mark says: Hello World!&quot;; w.Show(); } }

Content Model WPF offers strong separation of behaviour (API) and presentation Behaviour (API) consists of Commands, Properties, Events & Methods Presentation of controls is controlled by Nested content Templates

WPF offers strong separation of behaviour (API) and presentation

Behaviour (API) consists of

Commands, Properties, Events & Methods

Presentation of controls is controlled by

Nested content

Templates

StackPanel example <Window x:Class=&quot;Demo4.Content.Window1&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot; Title=&quot;Demo4.Content&quot;> <StackPanel Orientation=“Vertical&quot;> <Button Name=&quot;button1&quot;>Just text</Button> <Button Name=&quot;button2&quot;> <Image Source=&quot;banner.jpg&quot; Name=&quot;image1&quot; Width=&quot;100&quot;/> </Button> <Button Name=&quot;button3&quot;> <StackPanel Orientation=&quot;Vertical&quot;> <TextBlock>Just text<LineBreak/>The next line</TextBlock> <Image Source=&quot;banner.jpg&quot; Name=&quot;image1&quot; Width=&quot;100&quot;/> </StackPanel> </Button> </StackPanel> </Window>

Grid example <Window x:Class=&quot;Demo4.Content.Window1&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/avalon/2005&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/xaml/2005&quot; Title=&quot;Demo4.Content&quot;> <Grid ShowGridLines=&quot;True&quot;> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <TextBlock Grid.Column=&quot;0&quot; Grid.Row=&quot;0&quot;>Top left</TextBlock> <TextBlock Grid.Column=&quot;1&quot; Grid.Row=&quot;1&quot;>Middle</TextBlock> <TextBlock Grid.Column=&quot;2&quot; Grid.Row=&quot;2&quot;>LRight</TextBlock> </Grid> </Window>

Eventhandling Most significant feature is ‘Event Bubbling’ called ‘EventRouting’ RoutedEventArgs e.Handled = true; void innerButton_Click(object sender, RoutedEventArgs e) { MessageBox.Show(&quot;Hello SDN!&quot;); e.Handled = true; }

Most significant feature is ‘Event Bubbling’ called ‘EventRouting’

RoutedEventArgs

e.Handled = true;

Databinding example <StackPanel Name=&quot;pnlMain&quot;> <TextBlock>Name: </TextBlock> <TextBox Name=&quot;txtName&quot; Text=&quot;{Binding Path=Name}“/> <TextBlock>City:</TextBlock> <TextBox Name=&quot;txtCity&quot; Text=&quot;{Binding Path=City}“/> <StackPanel Orientation=&quot;Horizontal&quot;> <Button Name=&quot;btnPrevious“ Click=&quot;btnPrevious_Click&quot;>&lt;</Button> <Button Name=&quot;btnNext“ Click=&quot;btnNext_Click&quot;>&gt;</Button> </StackPanel> <ListBox Name=&quot;lstCustomers“ IsSynchronizedWithCurrentItem=&quot;True“ ItemsSource=&quot;{Binding}&quot;/> </StackPanel>

Silverlight2

Introduction What is Silverlight? Browser control capable of displaying objects, shapes controls and media Handles animations and transformations of objects Works with IE, FireFox and Safari Works on Windows or Macs Applications written using C#, VB.NET, JavaScript or other languages Support for VC-1 (HD), WMV, MP3 and WMA

What is Silverlight?

Browser control capable of displaying objects, shapes controls and media

Handles animations and transformations of objects

Works with IE, FireFox and Safari

Works on Windows or Macs

Applications written using C#, VB.NET, JavaScript or other languages

Support for VC-1 (HD), WMV, MP3 and WMA

Silverlight2 Features Built-in subset of the CLR Support for multiple languages including C# and VB.NET Support for LINQ 30+ built-in controls Access distributed services (WCF, SOAP, sockets, more) Custom styles Custom control templates Data binding support Multiple layout control options Color, gradient and image brushes More…

Built-in subset of the CLR

Support for multiple languages including C# and VB.NET

Support for LINQ

30+ built-in controls

Access distributed services (WCF, SOAP, sockets, more)

Custom styles

Custom control templates

Data binding support

Multiple layout control options

Color, gradient and image brushes

More…

Uses

Calendar <UserControl xmlns:my=&quot;clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls &quot; x:Class=&quot;UserInputControls.Page&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/ presentation&quot; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; … <my:Calendar x:Name=&quot;cal&quot; IsTodayHighlighted=&quot;True&quot; HorizontalAlignment=&quot;Left&quot; /> … </UserControl>

WCF

Windows Communication Foundation Unified framework for rapidly building service-oriented applications

Unified framework for rapidly building service-oriented applications

WCF Design Goals “ The unified programming model for rapidly building service-oriented applications on the Windows platform” Unification Unifies today’s distributed technology stacks Composable functionality Appropriate for use on-machine, in the intranet, and cross the Internet Service-Oriented Programming Service-oriented programming model Maximized developer productivity Interoperability WS-* interoperability with applications running on other platforms Interoperability with today’s distributed stacks

“ The unified programming model for rapidly building service-oriented applications on the Windows platform”

Unification

Unifies today’s distributed technology stacks

Composable functionality

Appropriate for use on-machine, in the intranet, and cross the Internet

Service-Oriented Programming

Service-oriented programming model

Maximized developer productivity

Interoperability

WS-* interoperability with applications running on other platforms

Interoperability with today’s distributed stacks

Services and Clients Client Service Message Message

Endpoints Client Service Message Endpoint Endpoint Endpoint

WCF Architecture

Address, Binding, Contract Client Service Message Address Binding Contract (Where) (How) (What) A B C A B C A B C

WCF Architecture: Messaging Runtime Client Dispatcher Service Contract and Behaviors Binding Address Transport Encoder Protocol(s) Transport Encoder Protocol(s)

Service Model Layer Influences system operation based on incoming and outgoing messages. Effects of behaviors are local. Messaging Layer Moves messages back and forth and adds transfer semantics. Channels are symmetric. Service Code WCF Architecture: Composition & Behaviors Message Inspector Formatter Behavior Instancing Behavior Security Channel TCP Transport Security Channel TCP Transport Transaction Behavior Formatter Behavior

Three Types of Contracts Service Contract Defines Operations, Behaviors and Communication Shape Data Contract Defines Schema and Versioning Strategies Message Contract Allows defining application-specific headers and unwrapped body content

Service Contract

Defines Operations, Behaviors and Communication Shape

Data Contract

Defines Schema and Versioning Strategies

Message Contract

Allows defining application-specific headers and unwrapped body content

Ways to Talk One Way: Datagram-style delivery Request-Reply Immediate Reply on same logical thread Duplex Reply “later” and on backchannel (callback-style) Client Service One Way Request-Reply Duplex (Dual)

One Way:

Datagram-style delivery

Request-Reply

Immediate Reply on same logical thread

Duplex

Reply “later” and on backchannel (callback-style)

Bindings & Binding Elements Transport IPC MSMQ Custom TCP HTTP Protocol Encoders .NET TX Custom Security Reliability Binding HTTP TX Security Reliability Text Text Binary Custom

Standard Bindings N = None | T = Transport | M = Message | B = Both | RS = Reliable Sessions Binding Interop Security Session TX Duplex BasicHttpBinding BP 1.1 N, T N N n/a WSHttpBinding WS M , T, X N , T, RS N , Yes n/a WSDualHttpBinding WS M RS N , Yes Yes WSFederationBinding Federation M N , RS N , Yes No NetTcpBinding .NET T , M T ,RS N , Yes Yes NetNamedPipeBinding .NET T T , N N , Yes Yes NetPeerTcpBinding Peer T N N Yes NetMsmqBinding .NET T , M, X N N , Yes No MsmqIntegrationBinding MSMQ T N N , Yes n/a

Bindings & Behaviors: Security Service Client Be Be Bindings Insert Claims in Messages Behaviors Implement Security Gates C B A C B A A B C C B A

Security Claims based end-to-end security Secure end-to-end message exchanges Secure access to resources Record resource access requests X509, Username/Password, Kerberos, SAML, custom credentials Message security Confidentiality and integrity Transport or message level Access to resources Authentication and authorization

Claims based end-to-end security

Secure end-to-end message exchanges

Secure access to resources

Record resource access requests

X509, Username/Password, Kerberos, SAML, custom credentials

Message security

Confidentiality and integrity

Transport or message level

Access to resources

Authentication and authorization

Bindings & Behaviors: Transactions Service Client Be Be Bindings Flow Transactions Behaviors AutoEnlist and AutoComplete C B A C B A A B C C B A

Bindings & Behaviors: Reliable Sessions Service Client Bindings provide Session and Guarantees C B A C B A A B C C B A

Reliability and Transactions End-to-end Reliable messaging In-order guarantees Exactly once guarantees Transport-Independent Sessions Integration with ASP.NET Sessions in IIS-Hosted compatibility mode Transactions Guaranteed atomic success or failure across services

End-to-end Reliable messaging

In-order guarantees

Exactly once guarantees

Transport-Independent Sessions

Integration with ASP.NET Sessions in IIS-Hosted compatibility mode

Transactions

Guaranteed atomic success or failure across services

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Technology Overview | Forcepoint

You need an intelligent, integrated approach to network security so that you can move ahead with your organization’s broader mission.
Read more

Technology Overview | Corning Gorilla Glass

Gorilla Glass is chemically strengthened through an ion-exchange process that creates a deep compression layer on the surface of the glass substrate. This ...
Read more

Technology Overview - Products - Atego

Atego - software tools, techniques and services for complex systems and software development.
Read more

Technology Services for the Enterprise - Accenture

Accenture Technology harnesses the power of enterprise IT services to drive innovation, deliver cutting-edge solutions and increase productivity.
Read more

MIT Technology Review

The mission of MIT Technology Review is to equip its audiences with the intelligence to understand a world shaped by technology.
Read more

Technology Overview - JACK WOLFSKIN

Technology. That makes our products unique: Whether weatherproof membrane, suspension system or insulation. Discover our versatile technologies for an ...
Read more

Technology Overview | CompactGTL

Since its inception in 2006, CompactGTL has focused its entire technology development and commercialisation programme exclusively on the upstream oil & gas ...
Read more

X-FAB's Open Platform Technology Overview

X-FAB’s CMOS and BiCMOS platforms can be complemented with specialties ranging from analog mixed-signal functions to high voltage options, embedded non ...
Read more

Technology - Overview

Menlo Security Isolation Platform (MSIP) eliminates malware from key attack vectors including web and email via compromised or malicious web sites or ...
Read more

Technology Overview | Calyxt

TECHNOLOGY OVERVIEW. Scientists at Calyxt engineer and utilize customized nucleases (for example, TALEN®) to create valuable traits through precise ...
Read more