Introduction to Microsoft.NET Enterprise Library (Patterns and Practices) Zaw Moe Tun Myanmar Information Technology.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Enterprise development reference architecture (EDRA) -Deepti Seelamsetti.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Technical Architectures
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
Leveraging Enterprise Library in Your Applications Keith Elder Quicken Loans Manager, Sr. Software Engineer Microsoft MVP Keith a t keithelder dot net.
What is.NET?. The Clients of.NET a) A new generation of connected application b) Microsoft.NET Framework managed execution c) Allows PCs and other smart.
Microsoft.Net Technology Sachin Shetty Vimal Amin Thomas Mullasaril Vinutna Pulavarti Software Engineering CS616 Instructor:Dr.Tappert.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Patterns & practices Enterprise Library Brian Button Consultant/Developer patterns & practices.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
B USINESS LAYER SAMANVITHA RAMAYANAM 4 th MARCH 2010 CPE 691.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
©2004 Avanade Inc. All rights reserved. The Avanade name and logo are registered trademarks in the US and other countries. Enterprise Library v1.0 A Technical.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Membership in ASP.Net...if only Presented by: Patrick Hynds President, CriticalSites Microsoft Regional Director.
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
Native Support for Web Services  Native Web services access  Enables cross platform interoperability  Reduces middle-tier dependency (no IIS)  Simplifies.
Enterprise Library for.NET Framework 2.0: Overview.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to Oracle Forms Developer and Oracle Forms Services.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Enterprise Library Building an Application Block Ed Jezierski Solution Architect Scott Densmore Software Engineer Ron Jacobs Product Manager.
第十四章 J2EE 入门 Introduction What is J2EE ?
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Office Business Applications Workshop Defining Business Process and Workflows.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Module 1: Overview of the Microsoft .NET Framework
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Configuring and Deploying Web Applications Lesson 7.
Enterprise Library Caching Application Block Peter Provost Software Design Engineer Ron Jacobs Product Manager Scott Densmore Software Design Engineer.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Enterprise Library Overview Tom Hollander Product Manager Microsoft Edward Jezierski ArchitectMicrosoft Kyle Huntley Architect Avanade Ron Jacobs Product.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
A Detailed Introduction To Visual Studio.NET CRB Tech ReviewsCRB Tech Reviews introduces you to the world of Visual.
The Holmes Platform and Applications
Building Enterprise Applications Using Visual Studio®
Introducing the Microsoft® .NET Framework
Distribution and components
Enterprise Library Overview
Introduction to J2EE Architecture
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Component-based Applications
Presentation transcript:

Introduction to Microsoft.NET Enterprise Library (Patterns and Practices) Zaw Moe Tun Myanmar Information Technology

Agenda ■Technology Review ■N-tier Application Architecture ■Microsoft.NET Technology Overview ■Enterprise library ■Demos ■Q & A

Technology Review Data Program Stand Alone System

Technology Review Query Execute Record set Returns Database Server Client Server Architecture ( 2-tier) Programs

Technology Review Business LogicsData Sources Web Server Web-based users Web Application Architecture (n-tier) Presentation BusinessData Access

Typical Roles of each Tier ■Presentation ●Rendering, acquisition and validation. ●Interpret gestures. ■Business ●Stateless components ●Implement short-lived business activities ●Enforce policy ●Aggregate data from data sources and services ●Represent data in business-relevant schemas ■Data Access ●Stateless encapsulation of data access and transformation logic ●Provides wrappers for calling stored procedures.

Benefits of N-Tier Architecture ■Scalability and Performance ●Can use different machines for each tier. ●Can also use multiple machines per tier. ■Maintainability and Stability ●Highly specialized components. ●Separation of concerns. ■Flexibility ●Supports reuse. ●Interchange components with same interface ●Loosely coupled -> flexible deployment

Beyond N-Tier Business Components Data Sources Web Server Process OrchestrationService Ifaces & Agents Internal Services Web-based users Rich Clients/Smart Client Services Business to Business

.NET N-Tier Technology Tools - Visual Studio.NET Foundation -.NET Framework Presentation Layer Business Objects Back-End Access.NET Components COM+ for Transactions ADO.NET ASP.NET Web Services.NET Remoting ASP.NET Web Forms Win Forms Mobile Forms

.NET Technology Overview Next generation of Microsoft development platform

.NET Framework ■The.NET Framework is an Integral Windows component that supports building and running the next generation of applications and XML Web services ■Well, Microsoft equivalent to J2EE

Two Main Components ■The.NET Framework has two main components: ●The common language runtime (CLR) ■The foundation of the.NET Framework ■Manages code at execution time, providing core services such as memory management, thread management and etc’ ●The.NET Framework class library ■The class library is a comprehensive, object- oriented collection of reusable types that developer can use to develop applications

Modern Software Challenges ■Heterogeneous client platform ●Personal Computer, PDA, Mobile Phone ●Global Audience ■Communication ●Different type of network (Internet, intranet) ●Different type of protocol (TCP/IP, HTTP, WAP, SOAP, etc…) ■Security ●Information is transmitted via public network ■Scalability ●Must be able to perform within expected performance ■Reliability ●24/7 availability

Why Process Model ?

Waterfall and spiral models

MSF Process Model ■The MSF Process Model combines the best principles of the waterfall and spiral models. ■It combines the waterfall model’s milestone-based planning and resulting predictability with the spiral model’s benefits of feedback and creativity.

MSF Process Model

MSF Versioned Release

Role Combination

MSF Process Model and UML Views

Tradeoff Triangle

What is Rapid Development ■Rapid development is a generic term that means the same thing as 'speedy development' or 'shorter schedules.' It means developing software faster than you do now."

Enterprise Library blocks

Introducing “Enterprise Library” ■Library of reusable software assets to address common enterprise development challenges ■Part of the patterns & practices guidance library ■Strong focus on consistency, extensibility, ease of use and integration

Consistency ■Design and implementation principles ■Configuration ■Documentation ■Tests ■Tooling ■Samples ■Operational requirements ■Installation procedures

Extensibility ■Extending existing blocks ●Pluggable providers ■Modifying existing blocks ●Design documentation and Unit Tests included ■Guidelines how to create new blocks ●Design patterns and principles ●Hooking into config tool ●Documentation guidelines and templates ●Testing requirements

Ease Of Use ■Configuration tooling ■Simplified installation and deployment ■Improved documentation and samples

Integration ■Packaged as a library ●Not a Framework: does not prescribe an architecture ■Blocks are designed to work well together, but they can still be used individually ●Loose coupling between blocks ■Configuration understands how to use blocks together in application ●Blocks used as providers for other blocks

Security Crypto ConfigRun-TimeConfigTooling DataAccess Logging & Instrumentation Caching ExceptionHandling Enterprise Library v1

Interdependece of application blocks

Data Access Application Block ■Provides simplified access to the most common data access operations ■Aim was to keep much of the simplicity of the original DAAB blocks, but to provide additional features requested by customers ■Notable new features: ●Support for multiple database types through a factory (SQL Server, Oracle and DB2 out of the box). This provides consistent and portable code (caveats apply!) ●Connection strings are stored and managed in external configuration

Data Access Application Block Design for Simplified Data Access ■Uniform methods of data access make code easier to understand, more predictable and easier to maintain ■Data Access is simplified ●Housekeeping actions are performed automatically ●Complex actions are encapsulated and exposed as simple methods ■All interactions happen through the abstract base Database class ● ExecuteDataSet() ● LoadDataSet() ● ExecuteReader() ● ExecuteScalar() ● ExecuteNonQuery() ● UpdateDataSet() ■Note: each method has multiple overloads

Data Access Application Block Design Overview Configuration Application Block Database factory Database factory Database Data Access Application Block dataconfiguration.config Client Code CreateDatabase() Parameter Cache Parameter Cache MS SQL Database MS SQL Database Oracle Database Oracle Database DB2 Database DB2 Database Command Wrapper Database Command Wrapper MS SQL Command MS SQL Command Oracle Command Oracle Command DB2 Command DB2 Command Create Complex Commands Invoke Operations on db instance 1.0

Configuration Application Block ■Allows applications to easily read and write configuration data from configurable storage locations ■Used by all blocks in Enterprise Library, can also be used by customer blocks, frameworks and applications ■Includes two parts: ●Configuration Runtime, which applications use at runtime to access configuration data ●Configuration Designtime, which provides nodes that are used by the configuration tool to give a simple design-time experience ■Configuration can be encrypted and individual elements can be masked in the tool ■Enterprise Library will include standalone and Visual Studio-integrated versions of the configuration tool

Configuration Application Block Design Overview Configuration Manager Configuration Manager Client Code Configuration Context Configuration Context IStorageProviderWriter: IStorageProviderReader IStorageProviderWriter: IStorageProviderReader App.Config / Web.Config Configuration Builder Configuration Builder Configuration Cache (hashtable) Configuration Cache (hashtable) XmlFileStorageProvider ITransformer XmlSerializerTransformer Configuration Dictionary Configuration Dictionary Client Code Other Application Blocks Static Facade Custom config Configuration Application Block

Exception Handling Application Block ■Facilitates consistent exception handling behavior at logical boundaries of an application ■Allows the creation of “exception policies” which dictate which actions should be taken for specific exception types at the logical boundary ●Example: All security exceptions arising from the business layer need to be logged, and the messages sanitized before being propagated to the caller ■Actions are extensible; we provide Logging, Wrapping one exception with another, and Replacing one exception with an other ■Block has little in common with the existing EMAB which was primarily used to log exceptions

Exception Handling Application Block Design Overview Logging Application Block Configuration Application Block Exception Policy exceptionhandling configuration.config Client Code dataconfiguration. config Exception Policy Entry Exception Policy Entry IExceptionHandler Wrap Handler Wrap Handler Logging Handler Logging Handler Replace Handler Replace Handler Custom Handler Custom Handler HandleException(“policyname”) Each Policy has different exceptions Each Policy Entry has set of handlers 1.0

Logging & Instrumentation Application Block ■Allows applications to log business and operations data to various destinations, which are externally configurable ■Replaces the Enterprise Instrumentation Framework and the existing Logging Application Block ■Configuration specifies which messages go where, and how they are formatted ■Formatters and sinks are extensible. We provide sinks for Event Log, Database, Text File, MSMQ, , WMI and Windows Event Tracing

Logging and Instrumentation Design Overview Configuration Application Block Logger Logging and Instrumentation Application Block logging configuration.config Client Code Strategies implement ILogDistribution interface Write() LogEntry LogWriter ILogDistribution Strategy ILogDistribution Strategy InProc Distribution Strategy InProc Distribution Strategy MSMQ Distribution Strategy MSMQ Distribution Strategy LogDistributor MSMQLogDistributor ILogSink Sink Sink FlatFile Sink FlatFile Sink EventLog Sink EventLog Sink Msmq Sink Msmq Sink WMIlog Sink WMIlog Sink MSMQ Sinks implement ILogSink interface Add Logging Details 1.0 Database Sink Database Sink

Caching Application Block ■Provides a flexible and extensible caching mechanism that can be used at all layers of an application ■Supports backing stores that persist cache data into a database or isolated storage, so the data can survive app restarts ■Can be used in ASP.NET apps, although the ASP.NET cache is preferred for simple scenarios ■Supports similar scenarios to the original caching block, but with a revised architecture to make it more thread- and exception-safe

Caching Application Block Design Overview Data Access Application Block Configuration Application Block CacheManager Factory CacheManager Factory Null BackingStore (for memory) Null BackingStore (for memory) Cache Application Block securityconfigura tion.config Client Code dataconfiguration.config Cache Manager Cache Manager Cache Database BackingStore Database BackingStore IsolatedStorage BackingStore IsolatedStorage BackingStore Base BackingStore Base BackingStore Expiration Task Expiration Task Scavenge Task Scavenge Task Background Scheduler Background Scheduler Add/Retrieve Create Instance 1.0

Cryptography Application Block ■Provides a simplified approach to implementing common cryptography scenarios ■Includes modules for symmetric cryptography and hashing ■Each module supports pluggable algorithms and key stores ●Supports all.NET crypto algorithms out of the box, or developers can implement their own ■Algorithms and keys can be managed through the configuration tool

Cryptography Application Block Design Overview Configuration Application Block Cryptographer Symmetric ProviderFactory Symmetric ProviderFactory Cryptography Application Block securitycryptography configuration.config Client Code EncryptSymmetric/DecryptSymmetric Hash ProviderFactory Hash ProviderFactory DpapiSymmetric Cryptographer DpapiSymmetric Cryptographer Symmetric Cryptographer Symmetric Cryptographer KeyedHash Algorithm Provider KeyedHash Algorithm Provider HashAlgorithm Provider HashAlgorithm Provider ISymmetricCrypto Provider ISymmetricCrypto Provider DpapiSymmetric Crypto Provider DpapiSymmetric Crypto Provider DpapiSymmetric Crypto Provider DpapiSymmetric Crypto Provider IHash Provider IHash Provider CreateHash/CompareHash 1.0

Security Application Block ■Provides a simple API and pluggable implementations of core security primitive operations ■Covers 5 security areas: Authentication, Authorization, Roles, Profile and Security Caching ■Each module supports extensible plug-in providers. In general we supply plug-ins for common Microsoft infrastructure (AD, AzMan) as well as a light-weight database implementation ■Developers can build their own plug-ins to interface with existing security solutions

Security Application Block Role-based Security: Principals and Identities Principal Authentication Module(s) Authentication Module(s) Application Security Context Windows Forms Passport IPrincipal Identity IsInRole() IPrincipal Identity IsInRole() GenericPrincipal Identity IsInRole() GenericPrincipal Identity IsInRole() WindowsPrincipal Identity IsInRole() WindowsPrincipal Identity IsInRole() Custom Principal Identity IsInRole() custom methods Custom Principal Identity IsInRole() custom methods Credentials (username, password) Identity Roles

Some Reference Applications ■Task Vision ■Infragistics (Third Party Tools)

Reference website ■ application.aspx?PageID=20&tabindex=8http:// application.aspx?PageID=20&tabindex=8 ■ sp?url=/library/en- us/dnpag2/html/ehab.asphttp://msdn.microsoft.com/library/default.a sp?url=/library/en- us/dnpag2/html/ehab.asp ■ kspace.aspx?id=295a464a e25- 94e2-91be http:// kspace.aspx?id=295a464a e25- 94e2-91be

Conclusion ■Software Engineer's capability depends on ●what he/she has in his/her toolkit ●His/her ability to apply the right tools for the right purpose