Back to description
By the end of this chapter you’ll have created an online diary, organizer, and contacts manager.... more
By the end of this chapter you’ll have created an online diary, organizer, and contacts manager. So what exactly does the online diary and organizer do? Using a calendar-based interface it allows you to add, delete, and edit a diary entry for any day. It also allows you to create events: for example, to keep a note of your rich Uncle Bob’s birthdaywouldn’t want to forget that, would you? It’s not just limited to birthdays, but any event: meetings, appointments, and so on.
The system has a basic username and password logon system, so that only you and no one else can view your own diary. This is what differentiates it from a blog. This system is a private diary and contacts managera place to put all those thoughts and comments you’d rather not have the world see. Unlike a blog, where you want the world to see it!
This whole project demonstrates the power of ASP.NET 2.0 and how easy it makes creating projects like this. Gone are the days of hundreds of lines of code to do security logons, create new users, and so on. This chapter employs the new security components of ASP.NET 2.0 to show just how easy it is to create fun, exciting, and useful projects.
The first section takes you through using the diary and its main screens. Then, the “Design of the Online Diary” section walks you through an overview of the system’s design. After that you get into the nuts and bolts of the system and how it all hangs together. In the final section, you set up the diary.
... less
If you have ever tried to send a large e-mail attachment and failed, you’re not alone. The idea that you can attach... more
If you have ever tried to send a large e-mail attachment and failed, you’re not alone. The idea that you can attach a file or document to an e-mail message and send it over the Internet is a revolutionary concept in the history of computer technology. But not so fast! In order to send a document over the Internet, your Internet connection has to be fast enough to upload the file. In addition, the file has to be small enough to pass through the Internet connection before a timeout event occurs. If an Internet service provider decides that there is a limit on the size of files that can be transferred over the connection they provide, your e-mail capabilities may be greatly hindered. Furthermore, e-mail attachments can take up space on the server where they reside, and must be treated carefully. Some of the popular e-mail providers have to balance millions of e-mail users, and must create file storage policies that are fair and reasonable. Most of the time, there are limits to the size of e-mail attachments allowed to be sent through the e-mail server. Some providers allow for e-mail attachments up to 10MB; other providers allow for files even larger. This phenomenon has caused problems over the years because users are not able to send large files to their coworkers and friends over an Internet connection. What’s a user to do?
A solution to the conundrum of sending large e-mail attachments is to use a go-between web sitecommonly known as a file sharethat acts as an online file repository. The web site can send out a notification as to the file being sent to the server and provide a clickable link for the user to click and prompt to download the file. In this way, you’re not actually sending an e-mail message, but rather uploading a file tool web site for propagation. This solution has been copied many times over by many different web sites. This chapter, then, uses the file share as an opportunity to demonstrate some of the new and powerful features in ASP.NET 2.0.
The essential features of the Wrox File Share include the following:
The capability to upload a file to the web site, specifying which e-mail address to send the file to via an e-mail hyperlink for downloading the file.
Sending an e-mail automatically to the recipient, with the custom message and hyperlink to the download file.
The option to change the text content of the automatically sent e-mail, using specific variables for the values of the sender, recipient, hyperlink, and a custom message to the recipient.
The capability to specify SMTP server information and e-mail account information as a configuration entry rather than a hard-coded value.
The capability to change the look and feel of the entire web site by simply modifying one entry in a configuration file.
This chapter also analyzes the various components that make up the web site, including the specific controls that ship with the ASP.NET 2.0 development environments. These controls include the following:
Login control
Login
PasswordRecovery control
PasswordRecovery
LoginStatus control
LoginStatus
Menu control
Menu
SiteMapDataSource control
SiteMapDataSource
Themes
FileUpload control
FileUpload
The section “File Share Design” explores the design of the application in great detail. This includes the essential elements of involvement with regard to the technology and structure of the web site, as well as the various classes involved, a detailed look at all of the members of each class, and an explanation regarding the database tables and their relationships and values.
The section titled “Code and Code Explanation” focuses on the code of each class or module of importance. Some areas of focus include the WebForms used to upload files to the system, inserting data into the database tables.
The final section reviews how to extract and customize the Wrox File Share in a development environment, and how to install it to production.
A web-based chat application can be a very useful component to your online presence. It is a great way for customers and... more
A web-based chat application can be a very useful component to your online presence. It is a great way for customers and support representatives to communicate and achieve instantaneous results. Questions can be answered within seconds, whereas e-mail and phone calls have delays that seem to drag the online experience to a grueling halt. Customers can simply type their question along with their order number into the browser window and receive the status of their order almost instantly from the customer support representative on the other side of the world. In other cases, chat applications allow companies to provide cost-effective support regardless of the language barriers that may normally exist between the two people communicating. Certainly, chat applications have had a tremendous impact on the way information is exchanged over the Web. For these reasons and more, many businesses add chat pages to their sites so they can provide instant access to their helpful customer support services. But this simple web site addition can end up becoming a larger effort than it initially appears. What’s the big deal, you ask? It’s just a little chat page! How hard can it be? Well, numerous ways exist to implement a chat application for an organization, and tons of implications may follow. For example, a chat application could require customizations, such as the following:
The capability to store chat messages within a database for reporting purposes.
A provision to logically group the chat rooms for special needs that web users may find helpful.
A way to identify common chat words and phrases that users are chatting about, which may lead to finding commonalities in the user community that provide insight to their interest or concerns.
A way to change the server name and settings of the chat system, allowing for maintenance to server configurations or infrastructure.
A means by which to share chat messages coming in to the web site among many customer support personnel.
Automated chat responses for commonly asked questions. These may include detecting a series of words or phrases that combine to form phrases that can be catalogued, and responses can be sent back in a form of artificial dialogue that might help people find what they are looking for.
Considering the possibilities, you must take a broad approach to implementing a chat section of a web site for any sort of successful online presence. The basic technology infrastructure needs to focus on the chat mechanisms specifically, because they are the crux of the application and seem to be the differentiator between applications on the market. That is, some chat applications are slower than others, and some are limited to being executed at the desktop level.
The time and energy it takes to create such an application, and the reusable nature of the application itself, make it a perfect candidate to include in this Instant Results book, which provides the basic foundational templates for implementing similar solutions on your own.
The essential features of the Wrox Chat Server include the following:
The capability to enter only your e-mail address and be able to start chatting immediately, without waiting for any sort of applet or heavy application to load.
The display of each chat room is grouped by category, allowing for an organized approach to the available chat categories within your application.
The display of each chat room is accompanied by a number of current chat room members, allowing web browsers to see which chat rooms are currently being accessed.
The use of asynchronous callbacks, a new feature in ASP.NET 2.0, which allow for easy implementation of Ajax methods and technologies (providing behind-the-scenes xmlHttp posts with JavaScript and responding to the posts via events on the server, all without refreshing the page).
xmlHttp
The capability to specify the number of hours for which each chat session maintains its messages on the server.
The capability to change the look and feel the entire web site by simply modifying one entry in a configuration file.
These features comprise the bulk of this Wrox Chat Server applicationit is fairly straightforward in its use of generalized chat application concepts, but actually implements some very exciting and complicated technologies. So get ready to learn about a few of the greatest web-based features with the all-new ASP.NET 2.0 release!
This chapter analyzes the various components that make up the web site, including the specific controls that ship with the ASP.NET 2.0 development environments. These controls include the following:
Master Pages
Callbacks
The section, “Wrox Chat Server Design,” digs into the physical design of the project in great detail. This includes the core pieces of technology and outlines the file structure of the site. It also looks at the various classes involved, the members of each class, and walks you through the database tables and their relationships.
The section titled “Code and Code Explanation” focuses on the design of each class, exposing their methods and properties.
The final section, “Setting up the Project,” reviews how to load up the Wrox Chat Server in a development environment, and how to customize it to meet your needs.
If you have ever taken an online survey before, you might have found that it is often very interesting to see the results... more
If you have ever taken an online survey before, you might have found that it is often very interesting to see the results and nod your head in agreement. Surveys can produce a sense of intrigue to the viewer, because they are aimed at gathering and compiling information about public opinion. The political scene is constantly speculating based on the polls and surveys conducted for a given set of people. Company changes and truckloads of monetary investments are made at the helm of an informative survey. You also may have noticed that surveys are often intentionally aimed and phrased to make sense to the average user. In fact, surveys are one of the proven best ways of extracting information from web users of the general public. Online surveys are found all over the Internet and have been a source of valuable data for companies of various sizes. The user is prompted with very simple and easy-to-understand questions that offer enticing answers from a list of multiple choices. Results from the survey questions are compiled immediately and available to management personnel for many times what proves to be important decisions for the company or department. It makes perfect sense, then, to implement surveys in order to ascertain the true state of a group or market sector.
The Survey Engine is an interesting application. It is easily reproducible in various environments with any number of multiple-choice questions. Once a survey has been conducted, the information gathered should be available to view in an organized and legible format. Reports can be run on survey results to demonstrate the responses of the majority.
The Wrox Survey Engine is a great example project that you can learn from in your valiant effort of tackling ASP.NET 2.0. This survey management web site provides the ability for an admin user to create surveys and monitor their results through the use of a user-friendly interface.
The Wrox Survey Engine provides a list of useful features, including the following:
Create a survey on the fly.
View survey responses with percentages.
Embed surveys into an existing web site.
These features comprise the core functionality of the web site, with room for plenty of enhancements and modifications.
This chapter demonstrates how easy it is to implement some of the newer controls and techniques available in ASP.NET 2.0. Some of these new areas include the ObjectDataSource control, enhanced SQL Server DataSource control, ASP.NET Web Security Interface, the application of themes at the Web.config file level, the new navigation controls, the login and password retrieval controls, and the use of master pages within a solution.
ObjectDataSource
DataSource
In the section “Wrox Survey Engine Design” you explore the design of the application in great detail. This includes the database file structures, class designs, a basic inheritance model, and the loosely coupled application architecture.
The section titled “Code and Code Explanation” performs a methodical examination of the code, breaking down the important modules and functions and explaining their role from the GUI to the database and back. In addition, it reviews the logic within the classes involved, and some possible modifications you can make to the project with specific instructions.
The final section, “Setting up the Project,” reviews how to extract and customize the Survey Engine in a development environment and how to install it to production.
But first things first: a review of the basics of using the Survey Engine.
Many of today’s web sites are database-driven, which means they get their content from a database and not from static... more
Many of today’s web sites are database-driven, which means they get their content from a database and not from static HTML files alone. Although this gives you great possibilities in the content you can present, it also brings a problem in updating that content. With static HTML sites you can design and create your files offline, and when you’re ready you simply use FTP or other network communication tools to get your files to the production server. However, with a site based on a database, this won’t work. Because the site must remain up and running, you often cannot simply overwrite the old database with new information. Also, because the site may be collecting run-time information (such as page views, user logins, and so forth) you could lose that information when you upload a new database with fresh content.
The most common way to solve this problem is to use an online Content Management System (CMS). Such a system allows you to log in to your site, and then manage the content right on the location where it’s stored and used: the web server.
In this chapter you learn how to build a generic CMS that allows you to manage content and the categories that this content is stored in. You can use the web site and CMS to publish information for a wide variety of scenarios. You can use it to publish information about your local soccer club, your company’s press releases, or any other topic you want to share with the world. The demo web site presented in this chapter uses the CMS to manage information about programming-related topics, including ASP.NET 2.0 and Visual Web Developer. The chapter begins with a quick tour of the web site and the CMS section. You see how to create new categories that will appear as menu items in the web site and how to enter the actual content in the database.
The section “Design of the Wrox CMS” explains how the CMS is designed, and what pages and classes are involved, and the section “Code and Code Explanation” takes a thorough look at the files and code in the site and explains how it all works.
Undoubtedly, blogginga contraction of web and loggingis the most popular Internet application of the past... more
Undoubtedly, blogginga contraction of web and loggingis the most popular Internet application of the past few years. Relatively new to the Internet world, blogging has now reached millions of web users, turning them into mini-publishers of news, diaries, and biographies.
Blogging applications come in all sorts and sizes. There are subscription-based blog sites from commercial companies, where you need to sign up for an account. Once you have an account, you can sign in to the company’s web site to manage your blog. People who want to read your blog should come to that same site. Other companies provide blogging services that allow you to manage your blog entries on their site, and make them available publicly (for example, on your own site) through XML and Web Services. Yet other organizations have developed ready-made blogging applications that you can install on your own server. Some of them come as free or open source packages, of which probably the most well known is Community Server (www.communityserver.org), which is also the driving force behind the forums on Microsoft’s community site, www.asp.net.
www.communityserver.org
www.asp.net
Despite the many advantages these ready-made applications have, they all share one disadvantage: They are often hard to incorporate into your web site, especially when you don’t control your own server but use a shared hosting service instead.
The Wrox Blog application presented in this chapter is really easy to integrate in an existing web application. This is accomplished by a few design decisions.
First of all, the Blog application does not contain normal ASPX WebForms; it consists solely of user controls. This makes it easy to embed the Blog application in existing pages, simply by dragging a few controls onto your page.
Secondly, the Blog application is designed to work with both a Microsoft Access database and with SQL Server 2005. This can be very useful if you have a host that hasn’t upgraded to SQL Server 2005 yet, or if you have to pay for the additional SQL Server services. Switching the application over from SQL Server to Access or vice versa is as simple as changing two settings in the Web.config file. This means you could even switch without taking the site offline.
The first section in this chapter shows you how to use the Blog application. You see how the user controls are incorporated in standard ASPX pages, enabling you to view and manage your blog.
The section “Design of the Wrox Blog” describes the design principles behind the Wrox Blog application. You see the classes involved, and how they interact together. You also see the design of the SQL Server and Microsoft Access databases.
The section that follows, “Code and Code Explanation,” gives you a good look at the classes, pages, and the code-behind files that make up the Wrox Blog application.
In “Setting up the Wrox Blog” you get a thorough explanation of setting up the Wrox Blog. You see how to run the supplied installer to create a full web site that uses the Blog application. You also learn how to incorporate the Blog application in an existing web site. But, first things first: learning how to use the Wrox Blog.
In recent years, the phenomenon of photo album web sites has provided viewers access to digital images that capture the... more
In recent years, the phenomenon of photo album web sites has provided viewers access to digital images that capture the essence of an amateur or professional photographer’s work. From personal family pictures to highly specialized artistic imaging, the Web is a great way to share photography from any source to the known digital world. A popular approach to sharing pictures over the Internet is to use an online photo album or catalogue of sorts. In this way, pictures can be logically grouped into collections and include contextual information for a viewer to properly observe the photograph in all its glory.
Although they usually serve the same overall purpose, photo album web sites exist in all sorts of styles and flavors. From thumbnail generators to photograph-editing batched systems, these image manipulation applications provide a wide array of features. However different and extensive they may be, they all usually provide a list of essential features, including the following:
View thumbnails of digital photos in a grid-like fashion.
Click a single photo to view a larger or full-size version.
Upload a new digital picture file.
Enter a name and/or description for the picture.
Classify the picture as a specific category or type.
Edit an existing picture’s contextual information.
Delete an existing picture.
These features alone would substantiate a useful web site package that any reasonable web developer would consider as a valid third-party software purchase. However, it is often difficult to modify such software applications or tools, because they often lock the developer into the standardized views and limit control over the display and position of the images on the web page. From the format of the font to the size of the thumbnails, there are usually undesirable constraints to customizing the web site design and implementation, unless the programmer has access to the source code files where the changes can occur. These considerations would point to the selection of an open source codebase to develop an online photo album, allowing for a maximum amount of customization with a nominal amount of time and effort.
The Wrox Photo Album is a great sample project that allows for easy customizations to be made on the display and functionality of a photo album web site. It implements not only the new development approaches to security and data, but also the desirable features that the user would expect for a better-than-average online photo album.
This chapter takes a practical approach to understanding some of the newer concepts now available in ASP.NET 2.0 by analyzing the implemented features within the Wrox Photo Album. Some of the new features you tackle include data binding, themes, security, page markup, and navigation.
In the section “Wrox Photo Album Design,” you explore the design of the application in great detail. This includes the structure of the web site, the pages and user controls, the database and data model used, file management, and image storage considerations.
The section titled “Code and Code Explanation” performs a thorough and complete examination of the areas of development necessary for storing and displaying photo albums online in the most effective fashion. It reviews the classes involved, as well as the specific areas of focus in which a developer could modify the application to his or her specific needs.
The final section reviews how to extract and customize the photo album in a development environment, and how to install it to production. First things first, though: You need to know how to use the photo album before you can modify or enhance it.
No matter how well your products might work, how stable the hardware you sell is, or how happy your customers are about... more
No matter how well your products might work, how stable the hardware you sell is, or how happy your customers are about your company and your products, your users are likely to have a need for more information about your products and services sooner or later. They may want to look up the specifications of a product, find the latest drivers to make the product work with a more recent version of their operation system, or find out handy tips about cleaning and maintaining it.
The Customer Support Site presented in this chapter is a web site that allows users to quickly find information about the products or services that your company might be selling. Although this chapter is based on a fictitious hardware-selling company called Wrox Hardware, the principles you learn in this chapter can be applied to many other sites that use a hierarchical content model.
Because this is a book about ASP.NET, this chapter focuses on a lot of the new features of ASP.NET 2.0. However, when Microsoft released the .NET Framework version 2.0 with ASP.NET 2.0, it not only released developer’s tools like Visual Studio and Visual Web Developer Express Edition, it also released a new version of its relational database management system called SQL Server 2005. This new version of SQL Server tightly integrates with the .NET 2.0 Framework and Visual Web Developer and has a long list of new features and improvements. Because many web applications make use of a database, it’s important to understand the capabilities of the database engine in use. Therefore, in this chapter you get a good look at one of the new features of SQL Server called Common Table Expressions. You see more of this when the data access layer and stored procedures are discussed.
E-commerce is one of the largest driving forces behind the Internet. Even in the Internet’s earliest days,... more
E-commerce is one of the largest driving forces behind the Internet. Even in the Internet’s earliest days, many sites featured a shop where you could order products and have them shipped to your home. With the advent of server-side techniques, such as ASP and ASP.NET, it has been much easier and cheaper for smaller sites to offer their products and services online. Despite the large diversity in the goods these sites offer, they all have one thing in common. To allow customers to select the products they want to order, they all feature a product catalog and a shopping cart where products are stored during the shopping process. At checkout time, these products are taken from the cart and usually stored in a database so the order can be processed later. The Wrox WebShop is no exception; this chapter shows you how to create a web shop with a shopping cart in ASP.NET 2.0.
The chapter starts off with a quick tour of the WebShop from an end-user’s point of view. It guides you through the process of browsing articles and adding them to a shopping cart, and shows you how the shopping cart is saved in the database as an order. Finally, this chapter also explains how you can manage the product catalog for the WebShop.
Once you have a basic understanding of the functionality in the WebShop you dig into its design, discovering the business and data access layer classes that make up the application.
The section “Code and Code Explanation” puts it all together and explains how the ASPX pages interact with the classes in the business layer.
If you want to set up the WebShop so you can follow along with the explanation, refer to the section “Setting up the WebShop” near the end of this chapter.
No matter what business you’re in or what organization you work for, a lot of day-to-day tasks involve appointments.... more
No matter what business you’re in or what organization you work for, a lot of day-to-day tasks involve appointments. Whether you run a hairdresser shop, hire out conference rooms or laptops, or you have a technical consultancy firm, you need a way to keep track of appointments that have been made. Quite often these kinds of appointments are made by phone, and then written down on sticky notes or saved in a calendar application like Microsoft Outlook or in a planning tool. Wouldn’t it be great if you could remove all the hassle these phone calls bring and allow your customers to make the appointments online?
The Appointment Booking System presented in this chapter allows you to do just that. The applicationwhich can be installed as part of your intranet or corporate web siteenables registered end-users to check availability and make direct appointments. To minimize abuse of the system, users have to sign up for an account and confirm their e-mail address before they can access the system’s vital areas. Users from your organization have direct access to the appointments that have been made online.
The chapter has a strong focus on working with controls. You see how to use some of the less-known controls like the Wizard and the MultiView. You learn how to create reusable user controls with custom properties and methods. Finally, you see how to create instances of server controls on the fly using code in code-behind files to create output that cannot be achieved with the existing ASP.NET 2.0 server controls.
Wizard
MultiView
Most of the chapters in this book so far had a strong focus on many of the new and exciting ASP.NET 2.0 server controls.... more
Most of the chapters in this book so far had a strong focus on many of the new and exciting ASP.NET 2.0 server controls. In addition to controls like the Wizard, the MultiView, and the new Navigation and Login controls, you also saw how to work with data-centric controls like the SqlDataSource and the ObjectDataSource.
Navigation
SqlDataSource
Because these controls are so easy to use, allowing you to build applications in no time using drag-and-drop, you may almost forget that ASP.NET 2.0 largely depends on the underlying .NET 2.0 Framework. This framework not only enables ASP.NET pages, but it also allows you to create Windows Forms application, Windows services, command-line tools, and many other types of applications. In addition to direct support for these applications, the .NET Framework also has a lot of technologies that are not directly tied to one of the application types, but that can be used in those applications.
One of those enabling technologies is called GDI+, which stands for Graphics Device Interface. GDI+ and its predecessor GDI have been around for a long time in various flavors of Microsoft Windows and provide the OS with vector graphics, imaging, and typography capabilities. With the advent of the .NET Framework version 1.0, the capabilities of GDI+ became available as managed code within the .NET Framework. This makes it very easy to create complex drawings and images in .NET.
Although Visual Web Developer Express edition is limited in a number of ways compared to its bigger brothers Visual Studio Standard, Professional, and Team System editions, you still have full access to the entire feature set of the .NET Framework. This also means you have full access to the huge GDI+ library that is part of the .NET Framework.
In this chapter you see how to use some techniques for working with images that are used frequently in many ASP.NET web sites. You see how to handle and save an uploaded file, rotate or flip it, crop it, and add text to the image on the fly.
This chapter uses a Greeting Card application to showcase all these techniques. However, because of the design of the application, you should find it very easy to use and reuse existing parts of this application in one of your own that serves a completely different purpose.
To give you a feel for what can be accomplished with GDI+ in the .NET Framework, the next section guides you through creating your own greeting card. Once you’ve seen how to upload, alter, and e-mail an image, you see how the application is designed in the section “Design of the Greeting Cards Application.” After the design, you get a good look at the actual implementation in the section “Code and Code Explanation.” As usual, the chapter ends with instructions for installing the application.
If you have ever done any web or other software development before, it’s likely that the applications you wrote... more
If you have ever done any web or other software development before, it’s likely that the applications you wrote contained bugs. No matter how good a programmer you are, it’s almost impossible to write an application that does not contain a single bug. Some bugs are caused by logic or coding errors and some are the result of a difference between the expectations of the project’s client and the programmer. Yet other bugs may not be discovered until you actually start using the application. For example, usability or performance issues are often discovered only once the end-users get hold of the web site or application. Somehow, you need to keep track of those bugs, so they can be fixed in a next release or service update.
If you’re a one-man development shop, you might be doing all your bug-tracking using sticky notes on your monitor with text such as “Fix security bug in login module; don’t allow access to just anyone.” But once your application starts to grow, or you work in a team of developers, this is no longer a viable solution. If you’re working for a large software development company, you may be working with advanced bug tracking tools like the Work Item Tracking feature from the new Microsoft Visual Studio 2005 Team System Edition (http://msdn.microsoft.com/vstudio/teamsystem), or tools like Bugzilla (www.bugzilla.org) or SourceGear’s Dragnet (www.sourcegear.com/dragnet). However, these types of applications often cost a lot of money, or may require considerable amounts of time, knowledge, and resources to set up and maintain.
http://msdn.microsoft.com/vstudio/teamsystem
www.bugzilla.org
www.sourcegear.com/dragnet
The Bug Base introduced in this chapter is positioned right in between the sticky notes on your monitor and an advanced bug tracking application. The Bug Base allows you and your team members to collaboratively file, change, and report on bugs through a web interface. The Bug Base can be installed on a server connected to the local network or the Internet, so it can be reached from any convenient location. It uses a role-based security mechanism, allowing you to determine who in your team can perform which operation. The member accounts and role settings and all other application settings are configurable within the web application itself so you can change them anywhere, anytime.
The first section of this chapter briefly guides you though the application, showing you the main screens and functionality. The section that follows digs into the design of the Bug Base. It describes the classes used in the application and how they interact. The section “Code and Code Explanation” analyzes all of the important files used in the application. If you want to know how to set up and use the Bug Base, you’ll find installation instructions in the section “Setting up the Bug Base” later in this chapter.
Purchase Before purchasing this product, please be sure you have met all software and system requirements, and that you understand any limits placed upon its use.
Return Policy Wrox Chapters on Demand are non-returnable and non-refundable.
Reader Software Wrox Chapters on Demand are offered as PDFs, and they must be viewed using the Adobe Reader. If you do not have the Reader installed, it can be downloaded for free at Adobe.com.
Test Download As Wrox Chapters on Demand purchases are non-returnable, it is advisable that you test your system and software configurations with a free sample download before you place an order.
Usage Rights for a Wrox Chapter on Demand File Any Wrox Chapter on Demand product you purchase from this site will come with certain restrictions that allow Wiley to protect the copyrights of its products. After you purchase and download this title, you:
If you have any questions about these restrictions, you may contact Customer Care at (877) 762-2974 (8 a.m. - 5 p.m. EST, Monday - Friday). If you have any issues related to Technical Support, please contact us at 800-762-2974 (United States only) or 317-572-3994 (International) 8 a.m. - 8 p.m. EST, Monday - Friday).
Related Books
ASP.NET Resources