Vous êtes sur la page 1sur 66

ASP.

NET Tips and Tricks

Russ Fustino Microsoft Corporation

What we will cover


Development Tips and Tricks Error Handling Tips and Tricks Production Tips and Tricks

Session Prerequisites

ASP Basic knowledge of ASP.NET

Level 300

Agenda

Development Tips and Tricks Error Handling Tips and Tricks Production Tips and Tricks

Development Tips And Tricks


File upload
ASP.NET provides built-in file upload support
No posting acceptor required No third party components required

Accessible through two APIs:

Request.Files collection <input type=file> server control

HttpPostedFile Object:

HttpPostedFile.InputStream HttpPostedFile.ContentType HttpPostedFile.FileName HttpPostedFile.SaveAs(fileLocation)

Development Tips And Tricks


File upload - Notes
ASP.NET provides built-in file upload support
No posting acceptor required No third party components required

Accessible through two APIs:

Request.Files collection <input type=file> server control

HttpPostedFile Object:

HttpPostedFile.InputStream HttpPostedFile.ContentType HttpPostedFile.FileName HttpPostedFile.SaveAs(fileLocation)

Development Tips And Tricks


File upload example
<html> <script language="VB" runat=server> Sub Btn_Click(Sender as Object, E as EventArgs) UploadFile.PostedFile.SaveAs("c:\foo.txt") End Sub </script> <body> <form enctype="multipart/form-data" runat=server> Select File To Upload: <input id="UploadFile" type=file runat=server> <asp:button OnClick="Btn_Click runat=server/> </form> </body> </html>

Demonstration 1
File Upload

Development Tips And Tricks


Richer file upload

File system is not the only option Example: Storing within SQL

Access uploaded file as byte array Store file within SQL as image (blob) Store ContentType and ContentLength also Provide Edit Link to display page Edit Link Page sets ContentType header and then writes binary array back to client

Demonstration 2
File Upload With SQL

Development Tips And Tricks


Image generation

Rich server image generation


Additionally supports resizing & cropping Overlays on top of existing images Read/Write Any Standard IO Stream Dynamically generate GIFs/JPGs from .aspx Set ContentType appropriately Optionally output cache results

System.Drawing

Demonstration 3
Image Generation

Development Tips And Tricks


ASP.NET XML Server Control

ASP.NET <asp:xml runat=server>


Enables output of XML Enables optional XSL/T transform of XML

Binding options

File system Database item

Built-in caching

Ensure efficient re-use Improves performance

Development Tips And Tricks


<ASP:XML> file sample
<html> <body> <asp:xml id="MyXml1" DocumentSource="SalesData.xml" TransformSource="SalesChart.xsl" runat=server /> </body> </html>

Demonstration 4
Static XML

Development Tips And Tricks


<ASP:XML> data sample
<%@ <%@ <%@ <%@ Page ContentType="text/xml" %> Import Namespace="System.Data" %> Import Namespace="System.Data.SQLClient" %> Import Namespace="System.Xml" %>

<script language="VB" runat=server> Sub Page_Load(Sender as Object, E as EventArgs) Dim conn as New SqlConnection(connectionString) Dim cmd as New SqlDataAdapter(select * from products", conn) Dim dataset As New DataSet() cmd.Fill (dataset, "dataset") Dim XmlDoc as XmlDocument = New XmlDataDocument(dataset) MyXml1.Document = XmlDoc End Sub </script> <asp:xml id="MyXml1" runat=server/>

Demonstration 5
Dynamically Bind XML

Development Tips And Tricks


App settings

Application specific settings


Stored in web.config files Enables devs to avoid hard-coding them Administrators can later change them

Examples:

Database Connection String MSMQ Queue Servers File Locations

Development Tips And Tricks


App settings steps
1.

Create web.config file in app vroot:


<appSettings> <add key=dsn value=localhost;uid=sa;pwd=;Database=foo/> </appSettings>

<configuration>

</configuration>

2.

To return value: Configuration.AppSettings(dsn)

Demonstration 6
Application Settings

Development Tips And Tricks


Cookieless sessions

Session State no longer requires client cookie support for SessionID

Can optionally track SessionID in URL

Requires no code changes to app

All relative links continue to work

Development Tips And Tricks


Cookieless sessions steps
1. 2.

Create web.config file in app vroot Add following text:


<system.web> <sessionState cookieless=true/> </system.web>

<configuration>

</configuration>

Development Tips And Tricks


Smart navigation

Eliminates browser flicker/scrolling on browser navigation


Smooth client UI but with server code Automatic down-level for non-IE browsers

No client code changes required


<%@ Page SmartNavigation=true %> Alternatively set in web.config file

Agenda

Development Tips and Tricks Error Handling Tips and Tricks Production Tips and Tricks

Error Handling Tips And Tricks


Page tracing

ASP.NET supports page and app tracing


Easy way to include debug statements No more messy Response.Write() calls!

Great way to collect request details


Server control tree Server variables, headers, cookies Form/Querystring parameters

Error Handling Tips And Tricks


Page tracing steps
1.

Add trace directive at top of page <%@ Page Trace=True %> Add trace calls throughout page Trace.Write(Button Clicked) Trace.Warn(Value: + value) Access page from browser

1.

1.

Demonstration 7
Page Tracing

Error Handling Tips And Tricks


Application tracing steps
1.

Create web.config file in app vroot:


<system.web> <trace enabled=true requestLimit=10/> </system.web>

<configuration>

</configuration>

2.

Access tracing URL within app

http://localhost/approot/Trace.axd

Demonstration 8
Application Tracing

Error Handling Tips And Tricks


Error handling

.NET provides unified error architecture


Runtime errors done using exceptions Full call stack information available w/ errors Can catch/handle/throw exceptions in any .NET Language (including VB)

ASP.NET also provides declarative application custom error handling


Enable programmatic logging of problems Automatically redirect users to error page when unhandled exceptions occur

Error Handling Tips And Tricks


Error handling - Notes

.NET provides unified error architecture


Runtime errors done using exceptions Full call stack information available w/ errors Can catch/handle/throw exceptions in any .NET Language (including VB)

ASP.NET also provides declarative application custom error handling


Enable programmatic logging of problems Automatically redirect users to error page when unhandled exceptions occur

Error Handling Tips And Tricks


Application_Error

Global application event raised if unhandled exception occurs


Provides access to current Request Provides access to Exception object Enables developer to log/track errors

Cool Tip:

Use new EventLog class to write custom events to log when errors occur Use new SmtpMail class to send email to administrators

Demonstration 9 Writing to NT Event Log

Error Handling Tips And Tricks


Sending SMTP mail
<%@ Import Namespace=System.Web.Mail" %> <script language="VB" runat=server> Sub Application_Error(sender as Object, e as EventArgs) Dim MyMessage as New MailMessage MyMessage.To = someone@microsoft.com" MyMessage.From = "MyAppServer" MyMessage.Subject = "Unhandled Error!!!" MyMessage.BodyFormat = MailFormat.Html MyMessage.Body = "<html><body><h1>" & Request.Path & _ "</h1>" & Me.Error.ToString() & "</body></html>" SmtpMail.Send(MyMessage) End Sub </script>

Error Handling Tips And Tricks


Custom errors

Enable easy way to hide errors from end-users visiting a site


No ugly exception error messages Enables you to display a pretty site under repair page of your design

Custom Errors configured within an application web.config configuration file


Can be configured per status code number Can be configured to only display remotely

Error Handling Tips And Tricks


Custom error page steps
1.

Create web.config file in app vroot:


<configuration> <system.web> <customErrors mode=remoteonly defaultRedirect=error.htm> <error statusCode=404 redirect=adminmessage.htm/> <error statusCode=403 redirect=noaccessallowed.htm/> </customErrors> </system.web> </configuration>

Demonstration 10 Custom Errors

Agenda

Development Tips and Tricks Error Handling Tips and Tricks Production Tips and Tricks

Production Tips And Tricks


Performance counters

Per Application Performance Counters

Enable easily monitoring of individual ASP.NET applications

Custom Performance Counters APIs


Now possible to publish unique applicationspecific performance data Great for real-time application monitoring Example: total orders, orders/sec

Demonstration 11 Performance Counters

Production Tips And Tricks


Process model recovery

ASP.NET runs code in an external worker process aspnet_wp.exe


Automatic Crash Recovery Automatic Memory Leak Recovery Automatic Deadlock Recovery

Can also proactively configure worker process to reset itself proactively


Timer based Request based

Production Tips And Tricks


Process model recovery - Notes

ASP.NET runs code in an external worker process aspnet_wp.exe


Automatic Crash Recovery Automatic Memory Leak Recovery Automatic Deadlock Recovery

Can also proactively configure worker process to reset itself proactively


Timer based Request based

Production Tips And Tricks


Reliable session state

Session State can now be external from ASP.NET Worker Process


ASPState Windows NT Service SQL Server Session state survives crashes/restarts Multiple FE machines point to a common state store

Big reliability wins

Enables Web farm deployment

Production Tips And Tricks


External session state steps
1.

Start ASP State Service on a machine

net start aspnet_state

1.

Create web.config file in app vroot, and point it at state service machine:
<configuration> <system.web> <sessionState mode=StateServer stateConnectionString=tcpip=server:port /> </system.web> </configuration>

Session Summary

Very easy to implement Little or no coding required for most Enhances the reliability of your apps

For More Information


MSDN Web site at

msdn.microsoft.com http://www.asp.net 900+ samples that can be run online

ASP.NET Quickstart at

ASP.NET discussion lists For good best practice reference applications, please visit IBuySpy

http://www.IBuySpy.com

MS Press
Essential Resources for Developers

Find out other titles from MS Press books at

www.microsoft.com/mspress
Choose from Windows 2000, SQL Server 2000, Exchange 2000, Office 2000, .NET Framework, C#, VB.NET, ASP.NET, and XML

Training
Training Resources for IT Professionals

Introduction to ASP.NET

Course # 2063 Available: Now

To locate a training provider for this course, please access

mcspreferral.microsoft.com/default.asp
Microsoft Certified Technical Education Centers (CTECs) are Microsofts premier partners for training services

MSDN
Essential Resources for Developers
Subscription Services Online Information Training & Events Print Publications Membership Programs Library, Professional, Universal Delivered via CD-ROM, DVD, Web MSDN Online, MSDN Flash

MSDN Training, Tech-Ed, PDC, Developer Days, MSDN/Onsite Events MSDN Magazine MSDN News MSDN User Groups

Where Can I Get MSDN?


Visit MSDN Online at msdn.microsoft.com Register for the MSDN Flash Email Newsletter at msdn.microsoft.com/flash Become an MSDN CD Subscriber at msdn.microsoft.com/subscriptions MSDN online seminars msdn.microsoft.com/training/seminars Attend More MSDN Events

Become A Microsoft Certified Solution Developer

What Is MCSD?

Premium certification for professionals who design and develop custom business solutions It requires passing four exams to prove competency with Microsoft solution architecture, desktop applications, distributed application development, and development tools For more information about certification requirements, exams, and training options, visit www.microsoft.com/mcp

How Do I attain MCSD Certification?

Where Do I Get More Information?

Microsoft Developer Roadmap


Products, Technologies, Subscriptions
Visual Studio 6.0 Visual Studio .NET 2002
Base features for XML Web services & mobile app development Enterprise lifecycle tools Development teams

VS.NET 2003
Client, Server & Services enhancements Deep integration of solution orchestration Continued language innovation

Design XML Web services Provide architectural guidance to teams

SOAP Toolkit SOAP Toolkit 2.0 2.0

J#, Devices J#, Devices


New product line now maps to all levels of Visual Studio .NET

2001

2002

2003

MSDN For Everyone


Visual Studio .NET
Enterprise Architect

MSDN Subscriptions
Universal

Enterprise Developer

Enterprise

NEW

Professional

Professional

Operating Systems VB, C++, C# Standard Library

.NET Developer SIGS


(CT, MA and ME) msdn.microsoft.com/usergroups

4th Tuesday of each month (CT)

CT http://www.ctmsdev.net. ME http://www.mainebytes.com Feb 21 ASP.NET Tips and Tricks MA http://www.idevtech.com MA http://www.nevb.com MA http://www.bacom.com
MA http://www.starit.com/sughome First meeting Feb 4 7pm

2nd Wed of each month (MA and ME)


VB.NET 1st Thursday (MA)

BACOM 2nd Monday (MA)

Share Point Server (MA) 4th Tuesday


.NET Developer SIGS


(NH, VT, RI) msdn.microsoft.com/usergroups

.NET user groups in NH


http://www.nhdnug.com http://www.jjssystems.net First meeting Feb 11 6PM ASP.NET Tips and tricks Details coming

.NET user group in Burlington VT

.Net user group for RI

Do you have a very large shop? See Russ (rfustino@microsoft.com) or Bill (wheys@microsoft.com) about .NET Readiness offer.
A B B ASEA BROWN BOVERI INC AETNA CIGNA CVS E M C CORPORATION GETRONICS GILLETTE COMPANY INVENSYS PLC NORTHEAST UTILITIES PARTNERS HEALTH CARE INC RAYTHEON COMPANY STAPLES TEXTRON INC THOMSON CORPORATION TYCO INTERNATIONAL UNITED HEALTHCARE CORP UNITED TECHNOLOGIES CORPORATION And more

If youre an ISV.

email Joe Stagner at NEISV@Microsoft.com and introduce yourself!

.NET Blitz program


For your development staff with a minimum size of 10 developers in over 300 pre-approved companies. One day onsite training (seminar format) Needs analysis 90 day MSDN Universal for 5 developers Contact rfustino@microsoft.com to see if your company is on the list.

Russ Tool Shed


9am-4pm

www.microsoft.co m/ /usa/newengland/ russtoolshed

Russ Fustino
Principal Technology Specialist Microsoft Corp

To be scheduled soon! Signup for the newsletter above for details.

VS.NET Launch!

Feb 26 Cromwell CT 105186732 Feb 28 Waltham MA 9am-2pm 105186533 Feb 28 Waltham MA 3pm-8pm 105186549 Mar 5 Providence 105186566 Mar 13 Portland ME 105186557 Mar 14 Nashua NH - 105186565

Live Webcast Events:


http://www.microsoft.com/usa/webcasts/upcoming/
Architecting Web Services January 14, 2002 , 3pm Microsoft Webcast Presents: XML Basics January 16, 2002, 3pm .NET Class Libraries From A to Z January 22, 2002, 2pm Understanding Visual Inheritance Jan 23, 2002 3pm Advanced Web Services Using ASP .NETJanuary 29, 2002, 2PM Webservices 101January 30, 2002 3pm Advanced XML/XSLFebruary 1, 2002 3:30pm How To Build Mobile Solutions Using the Microsoft Mobile Internet Toolkit February 5, 2002 2pm Caching ASP.NET Application Settings February 6, 2002, 3pm Building a .NET Mobile Solution
February 13, 2002 3pm

Live Webcast Events:


http://www.microsoft.com/usa/webcasts/upcoming/ XML and Web Enabling Legacy Applications Using BizTalk Server 2000 February 19, 2002 2pm Advanced Webpart Development February 20, 2002 3pm How To Develop Asynchronous Applications with .NET Framework February 26, 2002 2pm Introducing .NET Alerts February 27, 2002 3pm Part 1: Architecting an Application using the .NET Framework March 5, 2002 2pm Part 2: Building a .NET Application ASP .NET - Tips and Tricks
March 12, 2002 2pm March 19, 2002 2pm

Tool Shed Code and PowerPoint slides


PowerPoint slides: www.microsoft.com/ usa/newengland/russtoolshed Code: http://www.franklins.net/~russ

Carl Franklins VB.NET Master Class


Hands-on Expert VB.Net Training with Carl Franklin various cities in New England Take Carl Franklin's acclaimed VB.NET Master Class http://www.deeptraining.com

Session Credits

Author: Bill Wolfe Producer/Editor: Field Content Team Reviewers

Field Content Council

Vous aimerez peut-être aussi