SlideShare a Scribd company logo
1 of 49
Download to read offline
Developing Line-of-Business
Applications with Microsoft Silverlight
                                 Nuno Godinho
                         Nuno.Godinho@sapo.pt
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
About Me
Nuno Filipe Godinho
Independent Consultant

Mail:    Nuno.Godinho@sapo.pt
         Nuno.Godinho@itech4all.com

Blogs:   http://pontonetpt.com/blogs/nunogodinho
         http://xamlpt.com/blogs/nunogodinho
         http://weblogs.asp.net/nunogodinho
         http://msmvps.org/blogs/nunogodinho

Twitter: @NunoGodinho
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Introduction
Problem Statement

   Problems
    ◦   N-Tier
    ◦   Controls
    ◦   Rich Text Support
    ◦   Multi-language Support
    ◦   Customer Devices Interaction
    ◦   Communications
    ◦   Extensibility
    ◦   Offline Support
    ◦   Interoperability
Introduction
Challenges using N-Tier applications

    LoB applications use data that needs to flow across tiers

    Created and used through basic CRUD operations

    In an internet application, there is a trust boundary between
     the client and the mid-tier server

    Important to have a well defined and secured resources that
     are available to the client tier and also what operations are
     permitted
Introduction
Challenges using N-Tier applications

    The validation needs to run on Client and On Server as well as
     on Mid-Tiers

    Common validation across the tiers

    Services that may be shared with other applications
Introduction
Vision and Goals

    Simplify RIA-style application development
     ◦ n-tier is hard, and un-natural
     ◦ Focus on data-driven apps

    Bring ASP.NET-style productivity to RIA development
     ◦ Building blocks for data, security, etc.
     ◦ Focus on scenarios
Introduction
Value Propositions

    Focus on data in an end-to-end manner

    A unified story for client and server development

    A prescriptive framework that targets key scenarios, and
     leads the common developer to a pit of success
Introduction
Value Propositions

    Simplify application development across tiers and trust
     boundary
     ◦ Provides a set of tools to build the multiple tiers of an application
       together
     ◦ Application logic remains aware of tier and trust boundaries
     ◦ Uses the end-to-end flow of data and metadata described earlier
     ◦ Code generation and shared code
         Enhance the experience by providing multiple choices for sharing
          logic while respecting tier and trust boundaries
Introduction
A Unified Story for Client and Server

    Client is an extension of the server
                                                                                  Service
    A single logical application
                          Rich Internet Application
        Browser                                 Application



                            Presentation             App            Data Access
        HTML                Network
                               Logic                Logic              Layer


                                                                                       DB
                                                              Services




                                                      Other Applications
Introdution
Value Propositions

    Define and support a pattern for exposing a set of operations
     on resources

    DomainService
     ◦ Define a set of operations on resources

    Framework and Tools
     ◦ Collaborate to generate code for a corresponding client-tier
     ◦ Services for authentication and user settings can be used out-of-the
       box
Introduction
A Prescriptive Pattern
                                                                                   Services




                                Rich Internet Application


 Presentation    Domain        Network
                                               Domain        App    Data Access
    Logic        Context                       Service      Logic      Layer

                    Under the covers infrastructure




                                                                              DB
Introduction
A Single Pattern that Scales and Grows

     Support for multiple presentation tiers and data access technologies

.NET Clients                                                       Databases
Silverlight, WPF                                                   ADO.NET,
                                                                   ORMs (LTS, EF, …)

Standards
Clients
JavaScript                                                        CLR
                                           App                    Lists/Objects
                                          Logic                   Repository
     Server                                                       (nHibernate, …)
     Rendering
     HTML, SEO,
     Printing, …                                                  Services
                                                                  REST/SOAP
                   SOAP,                 Unit Test                (Azure, …)
 Services           XML,                  Code
                   JSON,
 WCF
                   Binary
Line-of-Business Application
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Recommended Pattern
Recommended Pattern
MVVM

   Why?
    ◦ Separation of concerns
    ◦ Better Workflow between Developer and Designer
    ◦ Easier Testability

   Why not MVC?
    ◦ We need to have access to the Code-Behind and MVC doesn’t support
      that, only Code-Behind Pattern does, but doesn’t delivers easy
      separation of concerns
Recommended Pattern
MVVM




                Display data in Controls


                UI Friendly Entities, UI State, Actions


                Entities representing data
MVVM Implementation in Silverlight
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Communication
Unified Programming Model




   ASMX & WSE                                     .NET Remoting


      Interop                                      Extensibility
    with other                                       Location
Platforms & WS-*                                  transparency


        Attribute-                            Message-
         Based                                 Oriented
      Programming           REST / HTTP      Programming
                            Programming
        Enterprise                           System.Messaging
         Services
                             HTTP Services
Communications
Windows Communication Foundation (WCF)
Communications
WCF RIA Services

    Framework, tools and services with prescriptive pattern for n-
     tier applications
                                             Trust
                                           Boundary
       Web
      Service

                           Data
                         Access     App                App
                                                              View
                          Layer    Logic              Logic
                          (DAL)

  Database
Communications
WCF RIA Services

    Design-time view
                                  Solution (Application)

             Server project                                  Client project

        Entities                                      Entities
                                  Build, reflect
          Data                    & code-gen                            Views
        Access          Domain
                                                      Domain
         Layer          Service
                                                      Context
         (DAL)
Communications
Run-time view (entity lifecycle)

                                      Application

               Web server                                     Silverlight
                                        Query                   Load
           Data
                                        Entities    Domain     Entities
         Access             Domain                                          Views
          Layer             Service                 Context     Submit
                                       Submit
          (DAL)
                                        Results                 Results
Communications
Services

    Authentication
    Roles
    User profile
    All integrate w/ ASP.NET infrastructure
WCF RIA Services
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Beyond the Browser
   Out-of-Browser Applications

   Trusted Applications
Beyond the Browser
Out-of-Browser – Already on Silverlight 3


    Configuration Based

    AppManifest.xml

    Can be enabled in an existing application without rebuilding

    Install option on its right-click menu

    Can run without a network connection
    You can implement network detection and provide offline
     support when a connection is unavailable
Beyond the Browser
Out-of-Browser

    Windowing API

    WebBrowser control

    HtmlBrush

    Notification (aka. Toast)
Beyond the Browser
Trusted Applications



    OOB with elevated privileges

    COM Interop in Windows

    File system access

    Cross-domain networking access

    Full keyboard support in Full-Screen Mode
Beyond the Browser
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Extensibility
   Prism v2

   MEF – Managed Extensibility Framework
Extensibility
Prism v2

    Prism is a set of options
    Use what you want and ignore the rest
     ◦ Example:
        Choose Modules and Commanding, but ignore Event Aggregation
         and Regions
Extensibility
Prism v2

    Prism Technical Concepts
Extensibility
MEF – Managed Extensibility Framework




   A new library in Silverlight 4 for building
    applications that can be incrementally
                   extended.
Extensibility
MEF – Managed Extensibility Framework

                     An Application is built of parts.
Extensibility
MEF – Managed Extensibility Framework



                                          Export it.

                                          Import it.

                                        Compose it.
Extensibility
MEF – Managed Extensibility Framework

    Export it - Metadata
                              [ExportMetadata(“Location”,Location.Top)]
                              [Export(typeof(UserControl))]
                              public class Widget1 : UserControl
                              {
                                            public string Message {
                                              get{return(string) Button.Content;}
                                          set{Button.Content=value;}
                                       }
                              }




 Widget1                     Export
Extensibility
MEF – Managed Extensibility Framework

    Import it - Metadata
                           [Export(typeof(UserControl))]
                           public class MainPage: UserControl
                           {
                                        [ImportMany(typeof(UserControl))]
                                        public IEnumerable<Lazy<UserControl, IWidgetMetadata>
                                        {
                                           get;set;
                                        }
                           }




     Main
                              ImportMany
     Page
MEF – Managed Extensibility Framework
Agenda
 Introduction
 Recommended Pattern
 Communications
 Beyond the Browser
 Extensibility
 Q&A
Nuno Filipe Godinho
Independent Consultant

Mail:   Nuno.Godinho@sapo.pt
        Nuno.Godinho@itech4all.com

More Related Content

What's hot

ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 Worldoslc
 
Dev Days Unified Communications Development
Dev Days  Unified  Communications  DevelopmentDev Days  Unified  Communications  Development
Dev Days Unified Communications DevelopmentMatthijs Hoekstra
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax Worldrajivmordani
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsCisco Service Provider
 
Building tomorrow's web with today's tools
Building tomorrow's web with today's toolsBuilding tomorrow's web with today's tools
Building tomorrow's web with today's toolsJames Pearce
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session WSO2
 
adrian coyler open tour keynote
adrian coyler open tour keynoteadrian coyler open tour keynote
adrian coyler open tour keynotemarklucovsky
 
GlassFish Mobility Platform - Hans Hrasna
GlassFish Mobility Platform - Hans HrasnaGlassFish Mobility Platform - Hans Hrasna
GlassFish Mobility Platform - Hans HrasnaEduardo Pelegri-Llopart
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureDarren Cunningham
 
How to Choose A SOA Gateway from Layer 7
How to Choose A SOA Gateway from Layer 7How to Choose A SOA Gateway from Layer 7
How to Choose A SOA Gateway from Layer 7CA API Management
 
Data in your SOA: From SQL to NoSQL and Beyond
Data in your SOA: From SQL to NoSQL and BeyondData in your SOA: From SQL to NoSQL and Beyond
Data in your SOA: From SQL to NoSQL and BeyondWSO2
 
3 12-2013 performance-testing_service_virtualization
3 12-2013 performance-testing_service_virtualization3 12-2013 performance-testing_service_virtualization
3 12-2013 performance-testing_service_virtualizationsilviasiqueirahp
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeSalcom Group
 

What's hot (20)

ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 World
 
Mxim Framework
Mxim FrameworkMxim Framework
Mxim Framework
 
Dev Days Unified Communications Development
Dev Days  Unified  Communications  DevelopmentDev Days  Unified  Communications  Development
Dev Days Unified Communications Development
 
Cloud Computing2
Cloud Computing2Cloud Computing2
Cloud Computing2
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service Models
 
Web Application Solutions
Web Application SolutionsWeb Application Solutions
Web Application Solutions
 
Building tomorrow's web with today's tools
Building tomorrow's web with today's toolsBuilding tomorrow's web with today's tools
Building tomorrow's web with today's tools
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
adrian coyler open tour keynote
adrian coyler open tour keynoteadrian coyler open tour keynote
adrian coyler open tour keynote
 
GlassFish Mobility Platform - Hans Hrasna
GlassFish Mobility Platform - Hans HrasnaGlassFish Mobility Platform - Hans Hrasna
GlassFish Mobility Platform - Hans Hrasna
 
Nasim Ahmad
Nasim AhmadNasim Ahmad
Nasim Ahmad
 
Keynote Day 1 2009
Keynote Day 1 2009Keynote Day 1 2009
Keynote Day 1 2009
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and Infrastructure
 
Introduction inbox v2.0
Introduction inbox v2.0Introduction inbox v2.0
Introduction inbox v2.0
 
How to Choose A SOA Gateway from Layer 7
How to Choose A SOA Gateway from Layer 7How to Choose A SOA Gateway from Layer 7
How to Choose A SOA Gateway from Layer 7
 
Data in your SOA: From SQL to NoSQL and Beyond
Data in your SOA: From SQL to NoSQL and BeyondData in your SOA: From SQL to NoSQL and Beyond
Data in your SOA: From SQL to NoSQL and Beyond
 
3 12-2013 performance-testing_service_virtualization
3 12-2013 performance-testing_service_virtualization3 12-2013 performance-testing_service_virtualization
3 12-2013 performance-testing_service_virtualization
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / Exchange
 

Viewers also liked

PRICKIMAGE draft presentation
PRICKIMAGE draft presentationPRICKIMAGE draft presentation
PRICKIMAGE draft presentationEnda P Guinan
 
Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010joaogoncalves
 
Wikis for everyone
Wikis for everyoneWikis for everyone
Wikis for everyonedpmackenzie
 
How NUI Maynooth Supports Learners with Disabilities
How NUI Maynooth Supports Learners with DisabilitiesHow NUI Maynooth Supports Learners with Disabilities
How NUI Maynooth Supports Learners with DisabilitiesEnda P Guinan
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

Viewers also liked (7)

PRICKIMAGE draft presentation
PRICKIMAGE draft presentationPRICKIMAGE draft presentation
PRICKIMAGE draft presentation
 
Mutual funds
Mutual fundsMutual funds
Mutual funds
 
Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010Ria Event Lisbon Jan 2010
Ria Event Lisbon Jan 2010
 
Luis Martins
Luis MartinsLuis Martins
Luis Martins
 
Wikis for everyone
Wikis for everyoneWikis for everyone
Wikis for everyone
 
How NUI Maynooth Supports Learners with Disabilities
How NUI Maynooth Supports Learners with DisabilitiesHow NUI Maynooth Supports Learners with Disabilities
How NUI Maynooth Supports Learners with Disabilities
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 

Similar to Nuno Godinho

Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...rsnarayanan
 
Introduction to WCF RIA Services for Silverlight 4 Developers
Introduction to WCF RIA Services for Silverlight 4 DevelopersIntroduction to WCF RIA Services for Silverlight 4 Developers
Introduction to WCF RIA Services for Silverlight 4 DevelopersSaltmarch Media
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...goodfriday
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Servicesgoodfriday
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Servicesgoodfriday
 
SwiftKnowledge Multitenancy
SwiftKnowledge MultitenancySwiftKnowledge Multitenancy
SwiftKnowledge MultitenancyPivotLogix
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...rsnarayanan
 
Soa204 Kawasaki Final
Soa204 Kawasaki FinalSoa204 Kawasaki Final
Soa204 Kawasaki FinalAnush Kumar
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise ArchitecturesBIOVIA
 
Silverlight Document Search Engine
Silverlight Document Search EngineSilverlight Document Search Engine
Silverlight Document Search EngineMustata Bogdan
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For ArchitectsAnko Duizer
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloudumityalcinalp
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologiesssuser3a47cb
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 
Azure Services Platform Oc Event Ned
Azure Services Platform Oc Event NedAzure Services Platform Oc Event Ned
Azure Services Platform Oc Event NedWes Yanaga
 
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!goodfriday
 

Similar to Nuno Godinho (20)

Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
Silverlight And .Net Ria Services – Building Lob And Business Applications Wi...
 
Introduction to WCF RIA Services for Silverlight 4 Developers
Introduction to WCF RIA Services for Silverlight 4 DevelopersIntroduction to WCF RIA Services for Silverlight 4 Developers
Introduction to WCF RIA Services for Silverlight 4 Developers
 
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
NET RIA Services - Building Data-Driven Applications with Microsoft Silverlig...
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Services
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Services
 
SwiftKnowledge Multitenancy
SwiftKnowledge MultitenancySwiftKnowledge Multitenancy
SwiftKnowledge Multitenancy
 
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
Build Mission Critical Applications On The Microsoft Platform Using Eclipse J...
 
Application Migration & Enhancement
Application Migration & EnhancementApplication Migration & Enhancement
Application Migration & Enhancement
 
Soa204 Kawasaki Final
Soa204 Kawasaki FinalSoa204 Kawasaki Final
Soa204 Kawasaki Final
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 
Silverlight Document Search Engine
Silverlight Document Search EngineSilverlight Document Search Engine
Silverlight Document Search Engine
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologies
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to find
 
Azure Services Platform Oc Event Ned
Azure Services Platform Oc Event NedAzure Services Platform Oc Event Ned
Azure Services Platform Oc Event Ned
 
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
 
Cloud & The Mobile Stack
Cloud & The Mobile StackCloud & The Mobile Stack
Cloud & The Mobile Stack
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Nuno Godinho

  • 1. Developing Line-of-Business Applications with Microsoft Silverlight Nuno Godinho Nuno.Godinho@sapo.pt
  • 2. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 3. About Me Nuno Filipe Godinho Independent Consultant Mail: Nuno.Godinho@sapo.pt Nuno.Godinho@itech4all.com Blogs: http://pontonetpt.com/blogs/nunogodinho http://xamlpt.com/blogs/nunogodinho http://weblogs.asp.net/nunogodinho http://msmvps.org/blogs/nunogodinho Twitter: @NunoGodinho
  • 4. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 5. Introduction Problem Statement  Problems ◦ N-Tier ◦ Controls ◦ Rich Text Support ◦ Multi-language Support ◦ Customer Devices Interaction ◦ Communications ◦ Extensibility ◦ Offline Support ◦ Interoperability
  • 6. Introduction Challenges using N-Tier applications  LoB applications use data that needs to flow across tiers  Created and used through basic CRUD operations  In an internet application, there is a trust boundary between the client and the mid-tier server  Important to have a well defined and secured resources that are available to the client tier and also what operations are permitted
  • 7. Introduction Challenges using N-Tier applications  The validation needs to run on Client and On Server as well as on Mid-Tiers  Common validation across the tiers  Services that may be shared with other applications
  • 8.
  • 9. Introduction Vision and Goals  Simplify RIA-style application development ◦ n-tier is hard, and un-natural ◦ Focus on data-driven apps  Bring ASP.NET-style productivity to RIA development ◦ Building blocks for data, security, etc. ◦ Focus on scenarios
  • 10. Introduction Value Propositions  Focus on data in an end-to-end manner  A unified story for client and server development  A prescriptive framework that targets key scenarios, and leads the common developer to a pit of success
  • 11. Introduction Value Propositions  Simplify application development across tiers and trust boundary ◦ Provides a set of tools to build the multiple tiers of an application together ◦ Application logic remains aware of tier and trust boundaries ◦ Uses the end-to-end flow of data and metadata described earlier ◦ Code generation and shared code  Enhance the experience by providing multiple choices for sharing logic while respecting tier and trust boundaries
  • 12. Introduction A Unified Story for Client and Server  Client is an extension of the server Service  A single logical application Rich Internet Application Browser Application Presentation App Data Access HTML Network Logic Logic Layer DB Services Other Applications
  • 13. Introdution Value Propositions  Define and support a pattern for exposing a set of operations on resources  DomainService ◦ Define a set of operations on resources  Framework and Tools ◦ Collaborate to generate code for a corresponding client-tier ◦ Services for authentication and user settings can be used out-of-the box
  • 14. Introduction A Prescriptive Pattern Services Rich Internet Application Presentation Domain Network Domain App Data Access Logic Context Service Logic Layer Under the covers infrastructure DB
  • 15. Introduction A Single Pattern that Scales and Grows  Support for multiple presentation tiers and data access technologies .NET Clients Databases Silverlight, WPF ADO.NET, ORMs (LTS, EF, …) Standards Clients JavaScript CLR App Lists/Objects Logic Repository Server (nHibernate, …) Rendering HTML, SEO, Printing, … Services REST/SOAP SOAP, Unit Test (Azure, …) Services XML, Code JSON, WCF Binary
  • 17. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 19. Recommended Pattern MVVM  Why? ◦ Separation of concerns ◦ Better Workflow between Developer and Designer ◦ Easier Testability  Why not MVC? ◦ We need to have access to the Code-Behind and MVC doesn’t support that, only Code-Behind Pattern does, but doesn’t delivers easy separation of concerns
  • 20. Recommended Pattern MVVM  Display data in Controls  UI Friendly Entities, UI State, Actions  Entities representing data
  • 21. MVVM Implementation in Silverlight
  • 22. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 23. Communication Unified Programming Model ASMX & WSE .NET Remoting Interop Extensibility with other Location Platforms & WS-* transparency Attribute- Message- Based Oriented Programming REST / HTTP Programming Programming Enterprise System.Messaging Services HTTP Services
  • 25. Communications WCF RIA Services  Framework, tools and services with prescriptive pattern for n- tier applications Trust Boundary Web Service Data Access App App View Layer Logic Logic (DAL) Database
  • 26. Communications WCF RIA Services  Design-time view Solution (Application) Server project Client project Entities Entities Build, reflect Data & code-gen Views Access Domain Domain Layer Service Context (DAL)
  • 27. Communications Run-time view (entity lifecycle) Application Web server Silverlight Query Load Data Entities Domain Entities Access Domain Views Layer Service Context Submit Submit (DAL) Results Results
  • 28. Communications Services  Authentication  Roles  User profile  All integrate w/ ASP.NET infrastructure
  • 30. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 31. Beyond the Browser  Out-of-Browser Applications  Trusted Applications
  • 32. Beyond the Browser Out-of-Browser – Already on Silverlight 3  Configuration Based  AppManifest.xml  Can be enabled in an existing application without rebuilding  Install option on its right-click menu  Can run without a network connection  You can implement network detection and provide offline support when a connection is unavailable
  • 33. Beyond the Browser Out-of-Browser  Windowing API  WebBrowser control  HtmlBrush  Notification (aka. Toast)
  • 34. Beyond the Browser Trusted Applications  OOB with elevated privileges  COM Interop in Windows  File system access  Cross-domain networking access  Full keyboard support in Full-Screen Mode
  • 36. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 37. Extensibility  Prism v2  MEF – Managed Extensibility Framework
  • 38. Extensibility Prism v2  Prism is a set of options  Use what you want and ignore the rest ◦ Example:  Choose Modules and Commanding, but ignore Event Aggregation and Regions
  • 39. Extensibility Prism v2  Prism Technical Concepts
  • 40. Extensibility MEF – Managed Extensibility Framework A new library in Silverlight 4 for building applications that can be incrementally extended.
  • 41. Extensibility MEF – Managed Extensibility Framework An Application is built of parts.
  • 42. Extensibility MEF – Managed Extensibility Framework Export it. Import it. Compose it.
  • 43.
  • 44. Extensibility MEF – Managed Extensibility Framework  Export it - Metadata [ExportMetadata(“Location”,Location.Top)] [Export(typeof(UserControl))] public class Widget1 : UserControl { public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } } Widget1 Export
  • 45. Extensibility MEF – Managed Extensibility Framework  Import it - Metadata [Export(typeof(UserControl))] public class MainPage: UserControl { [ImportMany(typeof(UserControl))] public IEnumerable<Lazy<UserControl, IWidgetMetadata> { get;set; } } Main ImportMany Page
  • 46. MEF – Managed Extensibility Framework
  • 47. Agenda  Introduction  Recommended Pattern  Communications  Beyond the Browser  Extensibility  Q&A
  • 48.
  • 49. Nuno Filipe Godinho Independent Consultant Mail: Nuno.Godinho@sapo.pt Nuno.Godinho@itech4all.com