tools to power your vision aleksandrs lielbriedis microsoft latvia

40
Tools to Power Your Tools to Power Your Vision Vision Aleksandrs Lielbriedis Aleksandrs Lielbriedis Microsoft Latvia Microsoft Latvia

Post on 19-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Tools to Power Your Vision Tools to Power Your Vision

Aleksandrs LielbriedisAleksandrs LielbriedisMicrosoft LatviaMicrosoft Latvia

Page 2: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

AgendaAgenda

New Features inNew Features in VS .NET 200 VS .NET 20033

Web Service EnhancementsWeb Service Enhancements

Code ObfuscatorCode Obfuscator

Application Center TestApplication Center Test

IIS 6.0IIS 6.0

Page 3: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

.NET Framework.NET FrameworkPlatform and ToolsPlatform and Tools

Operating systemOperating systemOperating systemOperating system

Common language runtimeCommon language runtimeCommon language runtimeCommon language runtime

Base class libraryBase class libraryBase class libraryBase class library

ADO.NET and XMLADO.NET and XMLADO.NET and XMLADO.NET and XML

ASP.NETASP.NETWeb forms Web servicesWeb forms Web services

ASP.NETASP.NETWeb forms Web servicesWeb forms Web services

WindowsWindowsFormsForms

WindowsWindowsFormsForms

Common language specificationCommon language specificationCommon language specificationCommon language specification

VisualVisual BasicBasic®®

VisualVisual BasicBasic®® C++C++C++C++ C#C#C#C# J#J#J#J# …………

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 4: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

.NET Framework version 1.1.NET Framework version 1.1

Increased scalability and performanceIncreased scalability and performance

Side-by-side execSide-by-side exec with with .NET Framework 1.0.NET Framework 1.0

NNo-touch deploymento-touch deployment from the Internet from the Internet

Code access security for ASP.NETCode access security for ASP.NET

ASP.NET ASP.NET Mobile ControlsMobile Controls

SSupport for ODBC and Oracle DB 7i and 8iupport for ODBC and Oracle DB 7i and 8i

IPv6IPv6

IIncluded with Windowsncluded with Windows®® Server 2003 Server 2003

Page 5: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Windows Server 2003Windows Server 2003with with .NET .NET FrameworkFramework 1.1 1.1

- application server errors - application server errors beyondbeyond

Page 6: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

ASP.NET Mobile ASP.NET Mobile ControlsControls

Build-in Mobile DevelopmentBuild-in Mobile Development

Mobile Web PagesMobile Web PagesLocal CodeLocal Code

.NET Compact .NET Compact FrameworkFramework

Device operating systemDevice operating system

Mobile Web Mobile Web browserbrowser

Smart Device Smart Device ProgrammabilityProgrammability

Page 7: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

One programming modelOne programming model

One development toolOne development tool

One set of skillsOne set of skills

Build-in Mobile DevelopmentBuild-in Mobile Development

Broad-reach Web applicationsBroad-reach Web applicationsVisual Studio .NETVisual Studio .NET

ASP.NET Mobile Web ControlsASP.NET Mobile Web Controls

Over 200 device modelsOver 200 device models

Smart device applicationsSmart device applicationsVisual Studio .NETVisual Studio .NET

Microsoft .NET Compact Microsoft .NET Compact FrameworkFramework

Pocket PC, Windows CE .NETPocket PC, Windows CE .NET

WWW

Page 8: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Increased IDE PerformanceIncreased IDE Performance

Startup time reducedStartup time reduced

Improved IntelliSenseImproved IntelliSense®®

Dynamic help faster Dynamic help faster

Object browser fasterObject browser faster

Code editor drop-down menus fasterCode editor drop-down menus faster

Page 9: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Upgrading ApplicationsUpgrading Applications

Run multiple version of Visual Studio Run multiple version of Visual Studio side-by-side:side-by-side:

Visual Studio 6.0Visual Studio 6.0

Visual Studio .NET 2002Visual Studio .NET 2002

Visual Studio .NET 2003Visual Studio .NET 2003

Upgrade from Visual Studio .NET 2002 Upgrade from Visual Studio .NET 2002 to Visual Studio .NET 2003to Visual Studio .NET 2003

Only the project files are updatedOnly the project files are updated

Doesn’t change Doesn’t change anyany of your source files of your source files

Application configuration Application configuration

Page 10: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

VB 6.0 UpgradingVB 6.0 Upgrading

Form layoutForm layout

ActiveXActiveX®® controls controls

ADO bindingADO binding

RES filesRES files

CodeCode

COM librariesCOM libraries

User controlsUser controls

Web classesWeb classes

Page 11: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

J#J#

Visual J++ and Java Visual J++ and Java UpgradingUpgrading

Visual J++ Visual J++ Project Project

Other Java-Other Java-language language

sourcesource C#C#Java Language Java Language Conversion AssistantConversion Assistant

.class files.class files .exe.exe.dll.dll

Jblmp.exeJblmp.exe

Page 12: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Productivity EnhancementsProductivity Enhancements

Enhanced “Add Web Reference” dialogEnhanced “Add Web Reference” dialog

Code editor enhancementsCode editor enhancements

New componentsNew components

Debugging enhancementsDebugging enhancements

Designer enhancementsDesigner enhancementsSchema designer zoomSchema designer zoom

Mobile Web form designerMobile Web form designer

Page 13: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Developer Productivity Developer Productivity LanguagesLanguages

Visual Basic .NETVisual Basic .NETFully object-orientedFully object-oriented

Free threading, structured exception handlingFree threading, structured exception handling

Host Visual Basic 6.0 controls in Windows Forms applicationsHost Visual Basic 6.0 controls in Windows Forms applications

Improved IntelliSense and debuggerImproved IntelliSense and debugger

Variable declaration in loopsVariable declaration in loops

Bitshift operatorsBitshift operators

Mobile applicationsMobile applications

MicrosoftMicrosoft® ® Visual C++Visual C++®® .NET .NETManaged extensions for C++Managed extensions for C++

ISO C++ conformance ISO C++ conformance

Windows Forms designer Windows Forms designer

Enhanced floating point and performance optimizationsEnhanced floating point and performance optimizations

P4 targetingP4 targeting

Note: Items in green are new in Note: Items in green are new in Visual Studio .NET 2003Visual Studio .NET 2003

Page 14: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

LanguagesLanguages

MicrosoftMicrosoft®® Visual C# Visual C# ®® .NET (new in 2002) .NET (new in 2002)Component-oriented, type-safeComponent-oriented, type-safe

Improved IntelliSenseImproved IntelliSense

Custom build stepsCustom build steps

Code insertion for common tasksCode insertion for common tasks

Mobile applicationsMobile applications

MicrosoftMicrosoft®® Visual J# Visual J#™™ .NET .NETJava-language syntaxJava-language syntax

Full integration with Visual Studio .NETFull integration with Visual Studio .NET

Easy way to move Java-language skills, code to the .NET Easy way to move Java-language skills, code to the .NET FrameworkFramework

Full access to the .NET FrameworkFull access to the .NET Framework

Note: Items in green are new in Note: Items in green are new in Visual Studio .NET 2003Visual Studio .NET 2003

Page 15: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Productivity and Productivity and Language EnhancementsLanguage Enhancements

Page 16: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Web Service Enhancements Web Service Enhancements

WS-I: Web service interoperabilityWS-I: Web service interoperabilityIndustry organization: Microsoft, IBM, Intel…Industry organization: Microsoft, IBM, Intel…

Industry standard specificationsIndustry standard specificationsSecurity (WS-Security)Security (WS-Security)

Transactions (WS-Transaction)Transactions (WS-Transaction)

Routing (WS-Routing)Routing (WS-Routing)

More in the futureMore in the future

WSE: Microsoft implementation of WS-IWSE: Microsoft implementation of WS-IEnhancements to ASP.NET Web servicesEnhancements to ASP.NET Web services

Develop using Visual Studio .NETDevelop using Visual Studio .NET

Page 17: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Web Service Enhancements Web Service Enhancements

Signing

Encrypting

Routing

Only A can decrypt the message

Page 18: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Web Service Web Service EnhancementsEnhancements

Page 19: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

ObfuscatorObfuscator

Page 20: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Microsoft ACTMicrosoft ACT

ACT is a web stress tool designed to ACT is a web stress tool designed to simulate a high volume of HTTP simulate a high volume of HTTP requestsrequests

Test applications or web services as Test applications or web services as they are being developedthey are being developed

Discovers bottlenecks and provides Discovers bottlenecks and provides performance informationperformance information

Not a multiple client tool (developer Not a multiple client tool (developer only)only)

Page 21: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Creating an ACT testCreating an ACT test

Manually create testsManually create tests

Browser recording testsBrowser recording tests

Setting the test propertiesSetting the test propertiesSimultaneous browser connectionsSimultaneous browser connections

Run time or iterationsRun time or iterations

Page 22: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Adding dynamic dataAdding dynamic data

Changing request data makes the Changing request data makes the simulation more accuratesimulation more accurate

You can modify any part of the request You can modify any part of the request or responseor response

Query stringsQuery strings

Controlling the current userControlling the current user

CookiesCookies

ASP.NET view stateASP.NET view state

Page 23: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

SecuritySecurity

Authentication schemes supported:Authentication schemes supported:

BasicBasic

Integrated WindowsIntegrated Windows

DigestDigest

PassportPassport

FormsForms

Encryption types supportedEncryption types supported

Secure Socket LayerSecure Socket Layer

Page 24: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Using SOAPUsing SOAP

SOAP request can be obtained from SOAP request can be obtained from the web service help pagethe web service help page

You’ll need to format the SOAP request You’ll need to format the SOAP request to be properly encodedto be properly encoded

Utilize Visual Studios built-in macro Utilize Visual Studios built-in macro recorderrecorder

Page 25: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Creating an ACT TestCreating an ACT Test

Page 26: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Analyzing the resultsAnalyzing the results

Getting performance information is an Getting performance information is an iterative processiterative process

Stand-alone ACT interface has better Stand-alone ACT interface has better reportingreporting

Saturation pointSaturation pointProcessor, memory, disk, network, Processor, memory, disk, network, backendbackend

Response time: TTLB of 10,000 msResponse time: TTLB of 10,000 ms

Watch client CPU utilization!Watch client CPU utilization!

Page 27: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Decreasing requests/secondDecreasing requests/second

Page 28: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

MHz cost formulaMHz cost formula for a Page for a Page

Mhz Cost = N * S * avg (CPU) / avg(RPS)Mhz Cost = N * S * avg (CPU) / avg(RPS)

Where:Where:

N = Number of ProcessorsN = Number of Processors

S = Speed of ProcessorsS = Speed of Processors

CPU = Processor: % CPU UtilizationCPU = Processor: % CPU Utilization

RPS = ASP.NET: Requests/SecondRPS = ASP.NET: Requests/Second

Page 29: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

MHz cost formula explainedMHz cost formula explained

A test using a 2 processor web server A test using a 2 processor web server achieved 80 requests per second, with achieved 80 requests per second, with the processors 70% utilizedthe processors 70% utilized

So, this works out to …So, this works out to …

2 processors * 700 MHz = 1,400 MHz2 processors * 700 MHz = 1,400 MHz

70% CPU utilization = (1,400) * (0.70) = 70% CPU utilization = (1,400) * (0.70) = 980 MHz available to use980 MHz available to use

80 ASP requests per second 980/80 = 80 ASP requests per second 980/80 =

12.25 MHz12.25 MHz per ASPx request per ASPx request

Page 30: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Performance countersPerformance counters

ProcessorProcessorProcessor, % CPU UtilizationProcessor, % CPU Utilization

MemoryMemorySystem, Context Switches/SecSystem, Context Switches/Sec

Network bandwidthNetwork bandwidthNetwork interface, Bytes Total/SecNetwork interface, Bytes Total/Sec

DiskDiskPhysical Disk, % Disk Time_TotalPhysical Disk, % Disk Time_Total

Backend resourceBackend resourceASP.NET, Requests QueuedASP.NET, Requests Queued

Page 31: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Performance tipsPerformance tips

Try to use a dedicated web server for Try to use a dedicated web server for testingtesting

Use SQLDataReader for SQL Server Use SQLDataReader for SQL Server data access, not the OleDB readerdata access, not the OleDB reader

Turn off debug mode when not usingTurn off debug mode when not using

Turn off view state where its not Turn off view state where its not neededneeded

Turn off session state if not neededTurn off session state if not needed

Page 32: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Performance tips (cont.)Performance tips (cont.)

Pre-batch compile - request a page Pre-batch compile - request a page from the web applicationfrom the web application

Running code in both managed and Running code in both managed and unmanaged worlds is expensiveunmanaged worlds is expensive

Cache items that have a long Cache items that have a long expirationexpiration

Use a Repeater instead of a DataGrid Use a Repeater instead of a DataGrid control – its less expensivecontrol – its less expensive

Page 33: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

web web appapp

Making Your .NET Apps More Reliable Making Your .NET Apps More Reliable A New Architecture for IIS6A New Architecture for IIS6

GOAL: enable complete GOAL: enable complete app isolation from other app isolation from other web apps and core web web apps and core web serverserver

Web service in INETINFO Web service in INETINFO split out to do this:split out to do this:

HTTP.SYS: kernel mode HTTP.SYS: kernel mode listener and request routerlistener and request router

WAS: config and process WAS: config and process managermanager

W3WP.exe: where web apps W3WP.exe: where web apps are processedare processed

Multiple W3WP.exe’sMultiple W3WP.exe’s

WASWAS W3WP.exeW3WP.exe

web web appapp

HTTP.SYSHTTP.SYS

kern

elke

rnel

W3WP.exeW3WP.exe

web web appapp

W3WP.exeW3WP.exe

web web appapp

Page 34: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Making Your .NET Apps More ReliableMaking Your .NET Apps More ReliableApplication PoolsApplication Pools

Can create 1 or Can create 1 or more application more application poolspools

Each served by 1 or Each served by 1 or more W3WP.exe’s.more W3WP.exe’s.

Each W3WP.exe serves Each W3WP.exe serves only 1 pool.only 1 pool.

Reqs routed directly to Reqs routed directly to pool by HTTP.syspool by HTTP.sys

Isolate apps based Isolate apps based on:on:

Site/CustomerSite/Customer

FunctionalityFunctionality

ReliabilityReliability

Page 35: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Making Your .NET Apps More Reliable Making Your .NET Apps More Reliable .NET Application Domains vs Application Pools.NET Application Domains vs Application Pools

Application DomainsApplication DomainsLightweight CLR unit of isolationLightweight CLR unit of isolation

One app domain per IIS applicationOne app domain per IIS application

Combine w/W3WP.exe’s to achieve Combine w/W3WP.exe’s to achieve high scalability and isolationhigh scalability and isolation

ASP.NET manages app domains ASP.NET manages app domains independentlyindependently

Recycled within a single processRecycled within a single process

Can have private components, Can have private components, session variables , etc.session variables , etc.

HTTP.SYSHTTP.SYS

W3WP.exeW3WP.exe

ASP.NETASP.NETWASWAS

App poolApp pool

W3WP.exeW3WP.exe

ASP.NETASP.NET

AppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomainAppApp

DomainDomain

Application PoolApplication Pool

W3WP.exeW3WP.exe

ASP.NETASP.NET

App poolApp pool

Page 36: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Making Your .NET Apps More ReliableMaking Your .NET Apps More ReliablePeriodic Process RecyclingPeriodic Process Recycling

What is it?What is it?Periodically restart Periodically restart applications based on:applications based on:

UptimeUptime

# of requests# of requests

Scheduled timeScheduled time

Memory consumptionMemory consumption

On-demandOn-demand

Why use it?Why use it?Refresh apps to ensure Refresh apps to ensure availabilityavailability

Prevent bad apps from Prevent bad apps from taking over the systemtaking over the system

Page 37: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

Making Your .NET Apps More ReliableMaking Your .NET Apps More ReliableDynamic Kernel CachingDynamic Kernel Caching

GET http://www.acme.com/store/sproketcatalog.aspxGET http://www.acme.com/store/sproketcatalog.aspx

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

RequestRequestResponseResponse

WithoutWithoutCacheCache

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

WithWithCacheCache

RequestRequest ResponseResponse

<%@ OutputCache Duration="10" VaryByParam="none" %>

Page 38: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

SummarySummary

More “in the box”More “in the box”

Developer productivity enhancementsDeveloper productivity enhancements

Java developers can develop for .NET Java developers can develop for .NET platformplatform

Web Service EnhancementsWeb Service Enhancements

Stress test your ASP.NET applicationsStress test your ASP.NET applications

Protect your intelectual propertyProtect your intelectual property

IIS 6.0IIS 6.0

Page 39: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

ASP.NET HostingASP.NET Hosting

http://www.dot-net.lvhttp://www.dot-net.lv

http://dotnet.asp.lvhttp://dotnet.asp.lv

Page 40: Tools to Power Your Vision Aleksandrs Lielbriedis Microsoft Latvia

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.Microsoft, Windows, the Windows logo, Visual Studio, the Visual Studio logo, BizTalk, Visual SourceSafe, Visio, IntelliSense, Visual Basic, Visual J++, Visual C++, and Visual Microsoft, Windows, the Windows logo, Visual Studio, the Visual Studio logo, BizTalk, Visual SourceSafe, Visio, IntelliSense, Visual Basic, Visual J++, Visual C++, and Visual C# are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products C# are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.mentioned herein may be the trademarks of their respective owners.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.