48
Plataformas .NET para desenvolvimento de aplicações web José António Silva [email protected]

Plataformas.NET para desenvolvimento de aplicações web José António Silva [email protected] [email protected]

Embed Size (px)

Citation preview

Page 1: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Plataformas .NET para desenvolvimento de aplicações web

José António [email protected]

Page 2: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 3: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

The .NET Framework:A Once in a Decade Change

PDC 2000 Paradigm Shift

• Managed Code

• Web services

19801980 19901990 20002000

Ric

hn

ess

Ric

hn

ess

Win16Win16 Win32Win32COMCOM

MFCMFCComponents

ComponentsServicesServices

APIsAPIs

Windows3.0

Page 4: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Tools

Client Application Model

Windows Forms

Web & Service Application Model

ASP.NET Compact Framewo

rk

Yukon

Data Systems Application Model

Presentation

Mobile PC & Devices Application Model

Communication

Command Line

NT Service

System.MessagingSystem.DirectoryServicesSystem.Runtime.Remoting

System.Windows.Forms

System.Console

System.ServiceProcess

System.Windows.Forms System.Web

System.Data.SqlServer

HttpWebRequestFtpWebListener

SslClientStream

WebClient

System.Net

NetworkInformation

Sockets

Cache

System.Windows.Forms

Forms

Control

Print Dialog

Design

System.Web.UI

Page

Control

HtmlControls

MobileControls

WebControls

Adaptors

Design

System.Drawing

System.Web.Services

Web.Service

Description

Discovery

Protocols

System.Timers

System.Globalization

System.Serialization

System.Threading

System.Text

System.Design

CompilerServices

Base & Application Services

Fundamentals

System.ComponentModel

System.CodeDom

System.Reflection

System.EnterpriseServices

System.Transactions

Security

System.Web.Security

AccessControl

Credentials

Cryptography

System.Web.Configuration

System.Configuration

System.Resources

System.Management

System.Deployment

System.Diagnostics

Configuration Deployment/Management

Ports

InteropServices

System.Runtime

System.IO

System.Collections

GenericPermissions

Policy

Principal

Token

System.Security System.Web

Administration

Management

Data

System.Web

Personalization

Caching

SessionState

System.Xml

Schema

Serialization

Xpath

Query

DataSet

Mapping

ObjectSpaces

ObjectSpace

Query

Schema

System.Data

SqlClient

SqlTypes

SqlXML

OdbcClient

OleDbClient

OracleClient

Serialization

.NET Framework

Page 5: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Application ArchitectureApplication Architecture

User Interface Components

User Process Components

Service Interfaces

BusinessWorkflo

ws

BusinessComponent

s

Business

Entities

Data Access LogicComponents Service Agents

Data Source Service

Sec

uri

ty

Op

erat

ion

al M

anag

emen

t

Com

mu

nic

atio

n

Page 6: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 7: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

patterns & practices

ProvenBased on field experience

AuthoritativeBest advice available

AccurateTechnically validated and tested

ActionableProvide the steps to success

RelevantAddress real world scenarios

“Proven practices for predictable results”

Page 8: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Availability

Online on MSDN and TechNethttp://msdn.microsoft.com/practices

Printed guides available fromhttp://shop.microsoft.com/practices

http://amazon.com/practices

Page 9: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Operating .NET-Based Applications

Monitoring

Securing .NET Based Apps

Debugging Microsoft .NET Applications

Deploying .NET Applications

Team Development with Visual Studio.NET and Visual SourceSafe

SQL Server 2000 High Availability

Operations Guides

SQL Server 2000

Exchange 2000 Server

Security Operations Guides

Windows 2000 Server

Exchange 2000 Server

Backup and Restore for MSA:IDC

Building Secure ASP.NET Applications

Data Access for .NET

Designing Data Tier Components and Passing Data Through Tiers

Exception Management in .NET

Monitoring in .NET Distributed Application Design

.NET/COM Migration and Interoperability

Production Debugging for .NET-Connected Applications

Authentication in ASP.NET

Designing Application-Managed Authorization

Designing Caching for Distributed Apps

Application Architecture for .NET

Microsoft Systems Architecture

Enterprise Data Center

Internet Data Center

UNIX Application Migration Guide

Enterprise Notification for Exchange 2000 Server

Active Directory Branch Office

Exchange 2000 Server

Server Upgrade Series

Hosting Series

Content Integration Pack for CMS 2001 and SPS 2001

Lifecycle PracticesReference Building BlocksReference Architectures

Available Now

Page 10: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Plan – Next 6 Months

.NET Operations

Windows Server 2003 Refresh

Application Profiling and Capacity Planning

Change Management

Windows Server 2003 Refresh

Reference Building Blocks

Building Secure ASP.NET Applications

Persistent Asynchronous Invocation

Rich Client

User Interface Process

Configuration Management

Updating Application Components

Code Security and Threat Analysis

.NET Line of Business Application

WSI Base Profile and Security

J2EE Interop

UNIX Migration (additional coverage)

Patterns

.NET Line of Business Application Patterns and Model

.NET Application Integration Patterns

Data Patterns

Network Infrastructure Patterns (Microsoft Systems Architecture)

Lifecycle PracticesReference Building BlocksReference Architectures

Page 11: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

UIP - User Interface Process

Simple yet extensible framework for developing user interface processes. It is designed to abstract the control flow and state management out of the user interface layer into a user interface process layer. This enables you to write generic code for the control flow and state management of different types of applications (for example, Web applications and Windows-based applications) and helps you write applications that manage users' tasks in complex scenarios (for example, suspending and resuming stateful tasks).

http://msdn.microsoft.com/library/en-us/dnbda/html/uip.asp

Page 12: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com
Page 13: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com
Page 14: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

UIP Samples

Page 15: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Caching Application Block

Microsoft .NET Framework class library that allows you to increase the efficiency and scalability of distributed applications by caching Web service data, which saves time and resources that are needed to refresh data that is still current. Data can be cached in several formats, including a Microsoft SQL Server 2000 database, a memory-mapped file, or a singleton object. The Caching Application Block also includes example classes for caching, scavenging, expiration, and data protection.

http://msdn.microsoft.com/library/en-us/dnpag/html/Cachingblock.asp

Page 16: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com
Page 17: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com
Page 18: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Data Access Application Block for .NET

The Data Access Application Block is a .NET component that contains optimized data access code that will help you call stored procedures and issue SQL text commands against a SQL Server database. The documentation provides guidelines for implementing an ADO.NET-based data access layer in a multi-tiered .NET application. It focuses on a range of common data access tasks and scenarios and presents guidance to help you choose the most appropriate approaches and techniques. This guide encapsulates performance and resource management best practices and can easily be used as a building block in your own .NET application. If you use it, you will reduce the amount of custom code you need to create, test, and maintain.

http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp

Page 19: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

SqlHelper

Data Access Application BlockData Access Component

SQL Server

SqlHelper

ExecuteNonQuery

SqlHelperParameterCache

ExecuteDataset

ExecuteReader

ExecuteScalar

ExecuteXmlReader

CacheParameterSet

GetCachedParameterSet

GetSpParameterSet

int

DataSet

SqlDataReader

object

XmlReader

SqlParameter[ ]

Transact-SQLor

Stored Procedure

Page 20: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

SQL Server

Data Access Application BlockASPX PageWeb Browser

Retrieving a SqlDataReader

SqlHelper

ExecuteReader

Use ExecuteReader

Products--

CategoryID

Page 21: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Retrieving a DataSet

SQL Server

Data Access Application Block

Data AccessComponent

BusinessComponent

SqlHelper

ExecuteDataset

Use ExecuteDataset

ProductsDataSet

CategoryID

Page 22: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Retrieving a Single Row

SQL Server

Data Access Application BlockASPX PageWeb Browser

SqlHelper

ExecuteNonQuery

Use ExecuteNonQuery with output parameters

ProductDetails

ProductID

Page 23: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Retrieving a Single Value

Use ExecuteScalar

SQL Server

Data Access Application Block

Data AccessComponent

BusinessComponent

SqlHelper

ExecuteScalarProductName

ProductID

Page 24: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Retrieving XML

Use ExecuteXmlReader

SQL Server

Data Access Application Block

Data AccessComponent

BusinessComponent

SqlHelper

ExecuteXmlReaderProducts

XML

Page 25: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Configuration Management Application Block

A simple yet flexible solution that you can use across all your applications to manage configuration data. Specifically, it provides a set of methods that allow you to read and write application configuration data without the need to instantiate objects or perform complex data conversions in your code through a flexible data model that allows you to use any in-memory data structure to represent your configuration data.

http://msdn.microsoft.com/library/en-us/dnbda/html/cmab.asp

Page 26: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Configuration Management AB Architecture

//[C#]Hashtable configData;// Read the configuration section named AppConfigconfigData = (Hashtable)ConfigurationManager.Read("AppConfig");

Page 27: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Exception Management Application Block for .NET

Exception Management Application Block for .NET consists of an architecture guide (see Exception Management in .NET) and an application block. The documentation discusses design and implementation guidelines for exception management systems that use .NET technologies. It focuses on the process of handling exceptions within .NET applications in a highly maintainable and supportable manner. Exception Management Application Block for .NET provides a simple yet extensible framework for handling exceptions. With a single line of application code, you can easily log exception information to the Event Log or extend it by creating your own components that log exception details to other data sources or notify operators, without affecting your application code. Exception Management Application Block for .NET can easily be used as a building block in your own .NET application.

http://msdn.microsoft.com/library/en-us/dnbda/html/emab-rm.asp

Page 28: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Exception Handling Architecture

Database

Config File

ApplicationException

ExceptionManagement Assembly

ExceptionManager

BaseApplicationException

ExceptionManagementSectionHandler

DefaultPublisher

Custom Publisher

Custom Publisher

Custom Publisher

Event Log

Log File

EmailNotification

1

2

3

4

5

5

CustomPublisherException

Interfaces Assembly

IPublishExceptionIPublishXMLException

6

Page 29: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Publishing an Exception

1. Reference the assembly

2. Add an imports/using statement

3. Add try catch statements

4. Publish error in the catch block

Create NameValueCollection to pass additional information

using Microsoft.ApplicationBlocks.ExceptionManagement;

ExceptionManager.Publish(exception);

ExceptionManager.Publish(exception, info);

Page 30: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Config File Settings

<configuration>

<configSections>

<section name="exceptionManagement"

type="Microsoft.ApplicationBlocks.ExceptionManagement

ExceptionManagerSectionHandler,

Microsoft.ApplicationBlocks.ExceptionManagement" />

</configSections>

<exceptionManagement mode="on/off">

<publisher mode="on/off" assembly="AssemblyName"

type="TypeName" exclude="Type,Type"

include="Type,Type" exceptionFormat="xml"

customattr = "value" />

</exceptionManagement>

</configuration>

<configuration>

<configSections>

<section name="exceptionManagement"

type="Microsoft.ApplicationBlocks.ExceptionManagement

ExceptionManagerSectionHandler,

Microsoft.ApplicationBlocks.ExceptionManagement" />

</configSections>

<exceptionManagement mode="on/off">

<publisher mode="on/off" assembly="AssemblyName"

type="TypeName" exclude="Type,Type"

include="Type,Type" exceptionFormat="xml"

customattr = "value" />

</exceptionManagement>

</configuration>

Page 31: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 32: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

IBuySpy Portal

Dynamic Site Layout using User Controls

Portal Module Implementation

Multiple Device Support

Portal Configuration using SQL Server

Role-based security

                                                                           

Page 33: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Dynamic Layout

Page 34: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Layout Configuration

Page 35: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Security Configuration

Page 36: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Community Starter KitEasy Customization with Themes

Skin your site with the click of a button

Includes eight themes

Can be customized with your own themes

Includes Six Standard Content Modules

Articles

Links

Downloads

Photo Gallery

Events

Books

Create Multiple Communities with a Single Installation

Set community quotas

Additional Features

Send Newsletters

Create voting polls

Supports RSS news feeds and XML Web services

Page 37: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

outros

Page 38: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 39: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

DotNetNuke

Page 41: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 42: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Windows Sharepoint Services

Page 43: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

SharePoint Portal and the New Microsoft Web

Customized with a largeCustomized with a largelibrary of Web Partslibrary of Web Parts

““My Site”My Site”for everyfor everyemployeeemployee

Look upLook uppeoplepeople

Fast Search!Fast Search!

Look upLook upterms &terms &acronymsacronyms

Tools andTools andTasks forTasks forsmarter smarter workwork

Links to Links to important important intranet intranet sitessites

News News & Info& Info

Page 44: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

And a Personalized Site

Personalize with a largePersonalize with a largelibrary of Web Partslibrary of Web Parts

PresencePresenceInformationInformation

Search your stuffSearch your stuff

Active Active DirectoryDirectoryIntegrationIntegration

RecentlyRecentlyRelevant Relevant DocumentsDocuments

Tools &Tools &Tasks toTasks tohelp youhelp youworkworksmartersmarter

Public &Public &PrivatePrivateViewsViews

Page 45: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

InfoPath - Time Absence Report

Page 46: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

Agenda

Intro .NET

Building Blocks

Starter Kits

Outros projectos Open Source

Outros componentes

Discussão aberta

Page 47: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

ASP.NET 2.0 - "Whidbey Release”

Technology Preview @ PDC

Master Pages, Themes/Skins, and Navigation Controls

Membership, Role Management and Security System

Personalization System

Web Parts

Advanced Caching

Data Controls

Speech-Enabling

“Indigo“ Web Services

Page 48: Plataformas.NET para desenvolvimento de aplicações web José António Silva joseas@microsoft.com joseas@microsoft.com

José António [email protected]://canoas.com/blog/

Patterns & Practiceshttp://www.microsoft.com/practices

ASP.NET Communityhttp://asp.net

GotDotNet Community

http://gotdotnet.com