Web Development
VM3Best Practices in ASP.NET 2.0/3.5: Defending Yourself from Worst Practices
Richard Hale Shaw
Monday, September 8, 9:45 a.m.
The Question is: if brought before a jury of your peers and accused of following Best Practices while programming ASP.NET, would there be enough evidence to convict you? While I could make a strong case that if you just used a little common sense, the evidence would be plentiful, I'm not sure I can say the same for ASP.NET itself.
Where other parts of .NET at least don't get in your way when you try to build a rock-solid, extensible, maintainable application built from re-usable components -- and some parts of .NET seem to really encourage doing the right thing -- ASP.NET seems to be chock-full of the worst possible ways of solving problems -- or at least it seems to encourage or conspire to get you to implement solutions in the worst possible way. It's almost as if the technology itself were designed and written with an expectation that fragility would be the watchword of the day. So in this talk, an admittedly hostile- to-ASP.NET developer -- who maintains and extends his own sites with it, and wouldn't turn back to ASP or JSP or raw HTML -- talks about some defensive coding practices he's developed over the last 6 years of web programming with ASP.NET. We'll start with Strings. In ASP.NET, they're used all over the place for a variety of entities: file names, page and control names, paths and URLs, etc. The problem is that they're not type-safe (they always compile) and you can easily mistype them. What if you accidentally redirect to an .ASPX who's filename has changed? What if someone decides that "Default.aspx" is no longer going to be the default page of the site? Then we'll move to the problems of programming with Cassini, the built-in web server that is so much easier to use than IIS -- or is it? Next, we'll look at page-redirects and dynamic Control loading: what if a control is moved or re-named? And how do you work with Session State is a sane fashion?
And when it comes to Web Forms and User Controls, “re-usability” is treated like a four-letter word: every .ASPX and .ASCX you create must be copied into the project directory of every ASP.NET application that uses them. And that means bugs in these pages and controls are propagated, so fixes and updates require re-copying them. For many developers, the solution is to heavily use server controls (aka custom controls), which are self-contained in assemblies that are easily referenced. But server controls don’t have the UI support that .ASCXs have – and the issue of how to create re-usable .ASPXs still remains. The solution: a set of techniques you can use to create libraries from web pages and user controls that you want to re-use across a variety of ASP.NET projects. You'll see how to create web projects that don’t have to “own” or contain any .ASPXs or .ASCXs, but which reference and “inherit” pages and controls which can simultaneously be used by multiple projects. You’ll leave with a handful of techniques you can immediately apply to existing VS2005/2008 projects to stop copying and easily re-use your pages and controls across a variety of applications. We'll wrap up with the failures you’ll run into if you’re using the VS2005 Web Site project model. And Richard will buy the lunch of anyone who can demonstrate the value-add of Web Site Projects (vs. Web Application Projects). You'll see mistake after mistake waiting to happen when you use them, and why Web Application projects are your only realistic option. By the time you leave, you'll be well-armed with defenses against even the worst that ASP.NET has to offer, and you'll be ready to give it your Best.
VM7CSS, Skins and Themes for the ASP.NET Developer
Paul Sheriff
Monday, September 8, 11:15 a.m.
Want to make your HTML efficient and easy to maintain? Cascading Styles Sheets (CSS) are the answer. Many developers use an HTML Table structure to layout their data input pages. While this works it is not the most efficient, and not very flexible. Learn how to use CSS to build input pages that can change without modifying every page and every table in your ASPX pages. Also learn the difference between Themes/Skins and CSS. You will see the new CSS Explorer and other great features in VS.NET 2008 that help you with CSS.
You will learn:
- Why using CSS will make your applications faster.
- How to use CSS the best way
- How to eliminate Tables in HTML with CSS
- How to create Skins and Themes
- How to use Skins and Themes and CSS together
VT1Scaling ASP.NET with Cloud-Based Content Delivery
Mike Culver
Tuesday, September 9, 9:45 a.m.
Imagine delivering heavy-weight ASP.NET content, such as images and media files, from a robust end point in the Cloud while your core ASP.NET logic runs on your site. Yet the end user thinks that your site delivered everything, because all of the urls say that it did. In this session we will look at what Cloud-based storage is all about, and at the significant benefits for an ASP.NET developer. You'll learn how to implement Web Service calls from C# to store your content in the cloud, and how to set up an ASP.NET site so that it appears that all content came from your servers.
VT3ASP.NET Data Binding
John Papa
Tuesday, September 9, 9:45 a.m.
Generics can enhance the implementation of a data access model. You can bind a list of objects directly to a bindable control or you can use the ADO.NET DataSet. The new data binding and data source objects in ASP.NET are a huge step forward in reducing and simplifying UI code. This session will begin by demonstrating how to use the SqlDataSource to retrieve and modify data from an OLE DB compliant database and bind it directly to an ASP.NET web form, without writing any code. The ObjectDataSource is ideal for multi layer applications as it allows data bound web controls to bind to a data source through a middle tier class library or web service. It can also be used to assist in binding either a DataSet or a list of objects using Generics. I will demonstrate these new data source tools and walk through examples of when and where each is ideal.
VT7New features of ASP.NET 3.5 and Visual Studio 2008
Fritz Onion
Tuesday, September 9, 11:15 a.m.
This talk will look at the new features of ASP.NET with the 3.5 release accompanying Visual Studio 2008, as well as several enhancements to the IDE that improve the lives of Web developers. We will cover features and intend uses of new controls including the ListView, DataPager, and LinqDataSource. We will also look at Visual Studio 2008 features like the multi-targeting feature that lets you develop for both 2.0 and 3.5, the improved factoring support for CSS, and improved JavaScript debugging.
VT10ASP.NET/ AJAX/ Silverlight – Which one to Use, and When?
Vishwas Lele
Tuesday, September 9, 1:45 a.m.
This talk is an extension of popular AJAX-style application development from
2005, 2006 2007 VSLive! Conferences. With the announcement of Silverlight2, web developers have yet another tool for building rich, interactive web applications. This talk compares and contrasts these options and provides guidelines on their usage.
VT15Demystifying URL Rewriting
Miguel Castro
Tuesday, September 9, 3:15 p.m.
By now we’ve all seen blogs with interesting looking URLs. URLs like “…archive/2007/11/9.aspx”. Visually this may look like there is a page for every day of the year, but in fact there is not. URL rewriting allows you to expose friendly URLs while maintaining control of the actual redirection taking place. In fact, you can do this with just about any extension you want, really giving your site some URL customization. But this isn’t just for exposing friendly looking URLs; it is essential for search-engine optimization as well. I’ll show you how easy it is to provide this functionality for your site and how you can wrap it all up in a URL rewriting engine.
VW15Fun with HTTP Handlers & Security
Miguel Castro
Wednesday, September 10, 3:15 p.m.
Ever wish you can track what people download from your site? Or even worse, prevent people from downloading files for which they need to first pay. Well once someone figures out the web folder where you store files for download, they may just be able to browse to them. Let's put a stop to this now! While I give away a lot of software, I also make you pay for some of it, and by golly you're not breaking through the techniques for file protection that I'll teach you here.
VW19Internet Explorer 8 and its Impact on Your ASP.NET Web Sites
Robert Boedigheimer
Wednesday, September 10, 4:45 p.m.
Internet Explorer 8 will ship in a new "standards" mode by default, which has the potential to impact many sites that have been crafted around various "features" in past versions. Learn which current practices will need to change and how this will affect your development techniques and your existing sites. Review tools that will be built into the browser to help developers debug and create web pages. Web Slices are a new feature that allow developers to mark areas of web pages that users can subscribe to like RSS feeds to watch for updates to those slices. Don't be surprised the day IE 8 ships and your sites break - be prepared!
VM11Controlling AJAX when You’re Out of Control
G. Andrew Duthie
Monday, September 8, 1:45 p.m.
While implementing and troubleshooting AJAX functionality in an application is rarely easy, it gets even harder when you don’t have complete control over the site where you have to implement it. Shared hosting environments, blog accounts on large blog sites, etc. are situations where you may have only limited control over where and when your javascript gets loaded and executed. In this talk, Microsoft developer evangelist G. Andrew Duthie will walk you through some examples of how you can overcome limitations on such sites, and how to troubleshoot some of the inevitable issues you may run into. Some basic understanding of javascript and AJAX is assumed. Examples will span from simple mouseover image manipulation to implementing controls such as Microsoft’s Virtual Earth and Vertigo’s Slide.Show Silverlight photo gallery.
VM15ASP.NET Ajax Application Design
Fritz Onion
Monday, September 8, 3:15 p.m.
ASP.NET Ajax has brought the world of client-side programming to ASP.NET developers with a complete set of tools and controls for building highly interactive Ajax-enabled Web applications. With these tools, however, comes a new set of design considerations for Web applications that were not present when building traditional post-back ASP.NET applications. This session will explore the many design issues that come up when you begin integrating ASP.NET Ajax into your Web applications, including both pitfalls and notable benefits. Topics covered will include reducing server chattiness, optimizing request and response sizes, managing navigational history, caching data in the browser, implementing predictive fetching, and building pages that support multistage downloading.
VM19Data-Driven ASP.NET Ajax
Jeffrey McManus
Monday, September 8, 4:45 p.m.
Performing asynchronous postbacks using ASP.NET Ajax UpdatePanels is simple, but how do you go beyond the basics to provide sophisticated data visualization and user experience idioms? In this session we'll take a look at some common data-driven user experiences and demonstrate how to implement them using ASP.NET Ajax.
VT6LOB 2.0 with Silverlight and AJAX
Anthony Lombardo
Tuesday, September 9, 11:15 a.m.
Line-of-business applications have a long history of being more functional than friendly. Leveraging the rich experiences that can be created with Silverlight 2 along with the power of the Microsoft ASP.NET AJAX framework, enables developers to build LOB applications with a Web 2.0 flare, like never before. In this session attendees will learn about the tools available in Silverlight 2, databinding options, and AJAX integration needed to build a visually appealing User Interface that ultimately adds value and efficiency to business operations.
VT10ASP.NET/ AJAX/ Silverlight – Which one to Use, and When?
Vishwas Lele
Tuesday, September 9, 1:45 a.m.
This talk is an extension of popular AJAX-style application development from
2005, 2006 2007 VSLive! Conferences. With the announcement of Silverlight2, web developers have yet another tool for building rich, interactive web applications. This talk compares and contrasts these options and provides guidelines on their usage.
VT19Server Communication with Silverlight and ASP.NET Ajax
Fritz Onion
Tuesday, September 9, 4:45 p.m.
The release of Silverlight brings opens a lot of doors for Web developers for building rich internet applications, including sophisticated vector graphics rendering, streaming video support, and seamless browser integration. In order to make these flashy applications actually useful, however, developers need infrastructure for communicating with the server efficiently. This session will go into depth on how to best leverage WCF 3.5 Web services from Silverlight, covering the details of JSON serialization, asynchronous callbacks, and the JavaScript integration in Silverlight. We will also look at the upcoming v2 release of Silverlight and its native support for Web service proxies using either JSON or XML serialization with SOAP in its client-side CLR implementation.
VM3Best Practices in ASP.NET 2.0/3.5: Defending Yourself from Worst Practices
Richard Hale Shaw
Monday, September 8, 9:45 a.m.
The Question is: if brought before a jury of your peers and accused of following Best Practices while programming ASP.NET, would there be enough evidence to convict you? While I could make a strong case that if you just used a little common sense, the evidence would be plentiful, I'm not sure I can say the same for ASP.NET itself.
Where other parts of .NET at least don't get in your way when you try to build a rock-solid, extensible, maintainable application built from re-usable components -- and some parts of .NET seem to really encourage doing the right thing -- ASP.NET seems to be chock-full of the worst possible ways of solving problems -- or at least it seems to encourage or conspire to get you to implement solutions in the worst possible way. It's almost as if the technology itself were designed and written with an expectation that fragility would be the watchword of the day. So in this talk, an admittedly hostile- to-ASP.NET developer -- who maintains and extends his own sites with it, and wouldn't turn back to ASP or JSP or raw HTML -- talks about some defensive coding practices he's developed over the last 6 years of web programming with ASP.NET. We'll start with Strings. In ASP.NET, they're used all over the place for a variety of entities: file names, page and control names, paths and URLs, etc. The problem is that they're not type-safe (they always compile) and you can easily mistype them. What if you accidentally redirect to an .ASPX who's filename has changed? What if someone decides that "Default.aspx" is no longer going to be the default page of the site? Then we'll move to the problems of programming with Cassini, the built-in web server that is so much easier to use than IIS -- or is it? Next, we'll look at page-redirects and dynamic Control loading: what if a control is moved or re-named? And how do you work with Session State is a sane fashion?
And when it comes to Web Forms and User Controls, “re-usability” is treated like a four-letter word: every .ASPX and .ASCX you create must be copied into the project directory of every ASP.NET application that uses them. And that means bugs in these pages and controls are propagated, so fixes and updates require re-copying them. For many developers, the solution is to heavily use server controls (aka custom controls), which are self-contained in assemblies that are easily referenced. But server controls don’t have the UI support that .ASCXs have – and the issue of how to create re-usable .ASPXs still remains. The solution: a set of techniques you can use to create libraries from web pages and user controls that you want to re-use across a variety of ASP.NET projects. You'll see how to create web projects that don’t have to “own” or contain any .ASPXs or .ASCXs, but which reference and “inherit” pages and controls which can simultaneously be used by multiple projects. You’ll leave with a handful of techniques you can immediately apply to existing VS2005/2008 projects to stop copying and easily re-use your pages and controls across a variety of applications. We'll wrap up with the failures you’ll run into if you’re using the VS2005 Web Site project model. And Richard will buy the lunch of anyone who can demonstrate the value-add of Web Site Projects (vs. Web Application Projects). You'll see mistake after mistake waiting to happen when you use them, and why Web Application projects are your only realistic option. By the time you leave, you'll be well-armed with defenses against even the worst that ASP.NET has to offer, and you'll be ready to give it your Best.
VT7New features of ASP.NET 3.5 and Visual Studio 2008
Fritz Onion
Tuesday, September 9, 11:15 a.m.
This talk will look at the new features of ASP.NET with the 3.5 release accompanying Visual Studio 2008, as well as several enhancements to the IDE that improve the lives of Web developers. We will cover features and intend uses of new controls including the ListView, DataPager, and LinqDataSource. We will also look at Visual Studio 2008 features like the multi-targeting feature that lets you develop for both 2.0 and 3.5, the improved factoring support for CSS, and improved JavaScript debugging.
VT11The Zen of ASP.NET and MVC
Javier Lozano
Tuesday, September 9, 1:45 p.m.
The Model-View-Controller (MVC) pattern has been around for over 20 years and has predominantly been the pattern-poster-child for web frameworks, such as Ruby on Rails, Struts, SpringMVC and recently ASP.NET.
In this session will we cover how the two current implementation of this pattern on the .NET platform, MonoRails and ASP.NET MVC, enhance the way we approach web development by making it more specific, yet simple at the same time. If you’re a web developer that’s either curious or seasoned on this old new thing, this session is definitely worth checking out.
VW11Extending IIS 7 with HttpModules and HttpHandlers
Robert Boedigheimer
Wednesday, September 10, 1:45 p.m.
IIS 7 utilizes a modular architecture and has tight ASP.NET integration which provides great opportunities for ASP.NET developers to extend or replace its functionality. Learn how modules and handlers replace ISAPI filters and extensions with managed code. IIS features such as the very outdated directory browsing can be completely replaced by a new interface. Review a module that modifies response headers to automatically encrypt and decrypt cookies used by a web site. Discover how to intercept requests for all file types (including directory requests) and provide custom redirection rules. The new administration UI can also be extended to allow administrators a safe method of modifying custom configuration sections. Leverage your ASP.NET skills to extend and modify the behavior of IIS 7 for your web sites.
VW1
Internet Explorer 8 and its Impact on Your ASP.NET Web Sites
Robert Boedigheimer
Wednesday, September 10, 4:45 p.m.
Internet Explorer 8 will ship in a new "standards" mode by default, which has the potential to impact many sites that have been crafted around various "features" in past versions. Learn which current practices will need to change and how this will affect your development techniques and your existing sites. Review tools that will be built into the browser to help developers debug and create web pages. Web Slices are a new feature that allow developers to mark areas of web pages that users can subscribe to like RSS feeds to watch for updates to those slices. Don't be surprised the day IE 8 ships and your sites break - be prepared!
