530 likes | 635 Views
Act academy provides .net training with 100% job assurance.
E N D
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 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>
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
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 • System.Drawing • Dynamically generate GIFs/JPGs from .aspx • Set ContentType appropriately • Optionally output cache results
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>
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/>
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 • Create “web.config” file in app vroot: • To return value: Configuration.AppSettings(“dsn”) <configuration> <appSettings> <add key=“dsn” value=“localhost;uid=sa;pwd=;Database=foo”/> </appSettings> </configuration>
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 • Create “web.config” file in app vroot • Add following text: <configuration> <system.web> <sessionState cookieless=“true”/> </system.web> </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 • 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
Error Handling Tips And Tricks Application tracing steps • Create “web.config” file in app vroot: • Access tracing URL within app • http://localhost/approot/Trace.axd <configuration> <system.web> <trace enabled=“true” requestLimit=“10”/> </system.web> </configuration>
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 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
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 • 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>
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 application-specific performance data • Great for real-time application monitoring • Example: total orders, orders/sec
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 Reliable session state • Session State can now be external from ASP.NET Worker Process • ASPState Windows NT Service • SQL Server™ • Big reliability wins • Session state survives crashes/restarts • Enables Web farm deployment • Multiple FE machines point to a common state store
Production Tips And Tricks External session state steps • Start ASP State Service on a machine • net start aspnet_state • 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 • ASP.NET Quickstart at • http://www.asp.net • 900+ samples that can be run online • ASP.NET discussion lists • For good “best practice” reference applications, please visit IBuySpy • http://www.IBuySpy.com
MSDN Subscriptions Universal Enterprise NEW Professional Operating Systems Library MSDN For Everyone Visual Studio .NET Enterprise Architect Enterprise Developer Professional VB, C++, C# Standard
.NET Developer SIG’S (CT, MA and ME) msdn.microsoft.com/usergroups • 4th Tuesday of each month (CT) • CT http://www.ctmsdev.net. • 2nd Wed of each month (MA and ME) • ME http://www.mainebytes.com Feb 21 – ASP.NET Tips and Tricks • MA http://www.idevtech.com • VB.NET 1st Thursday (MA) • MA http://www.nevb.com • BACOM 2nd Monday (MA) • MA http://www.bacom.com • Share Point Server (MA) 4th Tuesday • MAhttp://www.starit.com/sughome • First meeting Feb 4 – 7pm
.NET Developer SIG’S (NH, VT, RI) msdn.microsoft.com/usergroups • .NET user groups in NH • http://www.nhdnug.com • http://www.jjssystems.net • .NET user group in Burlington VT • First meeting Feb 11 – 6PM – ASP.NET Tips and tricks • .Net user group for RI • Details coming
Do you have a very large shop? See Russ (rfustino@microsoft.com) or Bill (wheys@microsoft.com)about .NET Readiness offer.
If you’re 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.
Live Webcast Events: http://www.microsoft.com/usa/webcasts/upcoming/ Architecting Web Services January 14, 2002 , 3pmMicrosoft 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 3pmAdvanced Web Services Using ASP .NETJanuary 29, 2002, 2PMWebservices 101January 30, 2002 3pmAdvanced XML/XSLFebruary 1, 2002 3:30pmHow To Build Mobile Solutions Using the Microsoft Mobile Internet Toolkit February 5, 2002 2pmCaching ASP.NET Application Settings February 6, 2002, 3pmBuilding a .NET Mobile Solution February 13, 2002 3pm