Visual Studio 2010 and.NET Framework 4 Training Workshop.

Slides:



Advertisements
Similar presentations
Ofir Aspis 1/2010 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
An overview of… Luis Guerrero Plain Concepts
.NET 3.5 – Mysteries. NetFx Evolution NetFx 1.0 C# 1.0, VB 7.0, VS.NET NetFx 1.1 C# 1.1, VB 7.1, VS 2003 NetFx 2.0 C# 2.0, VB 8.0, VS 2005 NetFx 3.0 C#
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Managed Extensibility Framework Georges
Visual Studio 2010 and.NET Framework 4 Training Workshop.
CS-2135 Object Oriented Programming
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Advanced Object-Oriented Programming Features
Evolution of NBII Search-Based Technologies Oct 24, 2002 Donna Roy USGS Center for Biological Informatics.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Programming Techniques Non-declarative needs (VRH 3.8) Program design in the.
Chapter 7 Methods: A Deeper Look Visual C# 2010 How to Program © by Pearson Education, Inc. All Rights Reserved.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Detailed Technical Feature Presentation Background Information The Importance of Software Software Roadblocks Development Environment DSP Development Cycle.
Sage CRM v7.2 Developers Course An Introduction to the Developer Program.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
1 Sandcastle Documentation Compilers For Managed Class Libraries common) Enabling managed class library developers throughout the world to easily create.
Neal Stublen Class Objectives  Develop an understanding of the.NET Framework  Gain proficiency using Visual Studio  Begin learning.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Computing with C# and the.NET Framework Chapter 1 An Introduction to Computing with C# ©2003, 2011 Art Gittleman.
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers & Technical Decision.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
VBUG Talks in Bristol Coordinators David Ringsell Steve Hallam
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Workflow Development Overview Architecture Requirements Types of workflows Stages of workflow.
Tech Talk Go4 Factory Patterns Presented By: Matt Wilson.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Life cycle services for automation products
Introducing Allors Applications, Tools & Platform.
7/28/2003 (c) 2003 Orbonyx Corp. All Rights Reserved. GotDotNet – Building Upon the Framework Roy Ogborn, Independent.NET Consultant Orbonyx Corp.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Challenges in the Business Digital Ecosystems Pierfranco Ferronato, Soluta.net DBE Principal Architect Digital Ecosystem Workshop, 18 May 2005 “Towards.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Bart J.F. De Smet Software Development Engineer Microsoft Corporation Session Code: DTL315.
Integrated Electronic Message Board ( iEMB) Phase 2 Presentation Team S02PT.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
.NET Mobile Application Development XML Web Services.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
Chapter – 1. The UML Approach USECASE DRIVEN ARCHITECTURE CENTRIC ITERATIVE & INCREMENTAL.
V7 Foundation Series Vignette Education Services.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and .NET Framework 4 Training Workshop
Services & Dependency Injection
Chapter 2: The Visual Studio .NET Development Environment
Visual Studio 2010 and .NET Framework 4 Training Workshop
Managed Extensibility Framework
Magento Technical Guidelines Eugene Shakhsuvarov, Software Magento
Tech·Ed North America /10/2018 2:43 PM
Creating and Using Classes
Present by Andie Saizan, MCP
Component-Based Software Engineering
Dependency Injection with MEF and Unity
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Software Design Lecture : 12.
Software Design Lecture : 15.
Software Design Lecture : 14.
Social Media And Global Computing ACST 3540
Peter Provost Sr. Program Manager Microsoft Session Code: DEV312
Data Structures and Database Applications ACST 3330
A (partial) blueprint for dealing with change
Presentation transcript:

Visual Studio 2010 and.NET Framework 4 Training Workshop

Presentation Outline (hidden slide): Technical Level: 300 Intended Audience: Developers & Architects Objectives (what do you want the audience to take away): Understand why and where MEF would be used Understand how MEF is used Presentation Outline: What is extensibility? Where does MEF fit? MEF Basics (Import/Export/Container/Catalogs) MEF Intermediate Topics Lifetime Scoping

A Lap Around Managed Extensibility Framework Name Title Organization

Objectives Understand why and where MEF would be used Understand how MEF is used

A MEF-ified Application

Managed Extensibility Framework? The Managed Extensibility Framework (MEF) is a new library in the.NET Framework that enables greater reuse of applications and components. Using MEF,.NET applications can make the shift from being statically compiled to dynamically composed

What is “Extensibility”? In software engineering, extensibility is a systemic measure of the ability to extend a system and the level of effort required to implement the extension.

Open/Closed Principle Software entities should be open for extension, but closed for modification.

KnownUnknown VS.

MEF ABCs

Application built of parts…

Using MEF is as simple as Import and Export

Part, enter stage left… Part A public class SimpleMortgageCalculator : IMortgageCalculator { public ILogger Logger { get; set; } public float Calculate() { Logger.Log("Calculating Mortgage"); return...; }

Imports are Contracts a part needs… Part A public class SimpleMortgageCalculator : IMortgageCalculator { [Import(typeof(ILogger))] public ILogger Logger { get; set; } public float Calculate() { Logger.Log("Calculating Mortgage"); return...; } Import

Exports are Contracts a part offers… Part A [Export(typeof(IMortgageCalculator))] public class SimpleMortgageCalculator : IMortgageCalculator { [Import(typeof(ILogger))] public ILogger Logger { get; set; } public float Calculate() { Logger.Log("Calculating Mortgage"); return...; } Export

Container is the Match Maker Container

Catalogs provide Parts Container Catalog

Catalogs provide Parts Container Catalog TypeCatalog AssemblyCatalog DirectoryCatalog AggregatingCatalog

Hello, MEF!

Parts can be lazy… Part B Export Export [Import(typeof(ILogger))] public ILogger Export Logger { get; set; }

Lifetime Container Part A Part B [CompositionOptions(CreationPolicy=CreationPolicy.NonShared)] [CompositionOptions(CreationPolicy=CreationPolicy.Shared)] Shared Non-Shared On Export [Import(RequiredCreationPolicy=CreationPolicy.NonShared)] [Import(RequiredCreationPolicy=CreationPolicy.Shared)] On Import

Export Defaults Custom Logger Default Logger Export Order Manager Import [Import(typeof(ILogger)] public MortgageCalculator (ILogger logger) { }

Scoping Child Container Parent Container Catalog

ImperativeDeclarative What How The importance of declarative

The importance of discovery Think of a Phonebook…