Introduction |
|
1 | (1) |
|
What Does This Book Cover? |
|
|
2 | (3) |
|
|
2 | (1) |
|
Starting an E-Commerce site |
|
|
2 | (1) |
|
Laying Out the Foundations |
|
|
2 | (1) |
|
The Product Catalog: Part I |
|
|
2 | (1) |
|
The Product Catalog: Adding Content |
|
|
3 | (1) |
|
|
3 | (1) |
|
Receiving Payments using PayPal |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
Dealing with Customer Orders |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
Implementing the Pipeline |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
5 | (1) |
|
What You Need to Use This Book |
|
|
5 | (1) |
|
|
5 | (1) |
|
Customer Support and Feedback |
|
|
6 | (5) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (3) |
|
Starting an E-Commerce Site |
|
|
11 | (10) |
|
|
11 | (2) |
|
|
12 | (1) |
|
Make Customers Spend More |
|
|
12 | (1) |
|
Convincing Them to Come Back |
|
|
13 | (1) |
|
Reduce the Costs of Fulfilling Orders |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
15 | (3) |
|
Phase I - Getting a Site Up |
|
|
16 | (1) |
|
Phase II - Our Own Shopping Cart |
|
|
16 | (1) |
|
Phase III - Processing Orders |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (3) |
|
Laying Out the Foundations |
|
|
21 | (34) |
|
|
22 | (6) |
|
|
22 | (1) |
|
The Magic of Three-Layered Architecture |
|
|
23 | (1) |
|
|
24 | (2) |
|
|
26 | (1) |
|
The Right Logic for the Right Tier |
|
|
26 | (1) |
|
A Three-Tier Architecture for WroxJokeShop |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (5) |
|
|
29 | (1) |
|
|
29 | (1) |
|
Web Forms and Web User Controls |
|
|
30 | (1) |
|
ASP.NET and the Three-Tier Architecture |
|
|
31 | (1) |
|
|
31 | (1) |
|
|
32 | (1) |
|
|
32 | (1) |
|
SQL Server and the Three-Tier Architecture |
|
|
33 | (1) |
|
|
33 | (1) |
|
Creating the Visual Studio .NET Project |
|
|
34 | (5) |
|
Implementing the Site Skeleton |
|
|
39 | (12) |
|
|
41 | (6) |
|
Adding the Header to the Main Page |
|
|
47 | (4) |
|
Creating the SQL Server Database |
|
|
51 | (2) |
|
|
53 | (1) |
|
|
53 | (2) |
|
Creating the Product Catalog |
|
|
55 | (42) |
|
Showing the Visitor What we Have |
|
|
55 | (6) |
|
What Does a Product Catalog Look Like? |
|
|
56 | (1) |
|
Previewing the Product Catalog |
|
|
57 | (2) |
|
What we'll Do in This Chapter |
|
|
59 | (2) |
|
A Place to Store the Data |
|
|
61 | (10) |
|
The Theory: What Makes up a Data Table |
|
|
61 | (1) |
|
Previewing the Department Table |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
64 | (2) |
|
Nullable Columns and Default Values |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
67 | (1) |
|
|
68 | (3) |
|
|
71 | (5) |
|
The Theory: Speaking with the Database |
|
|
71 | (3) |
|
Creating the Stored Procedure |
|
|
74 | (1) |
|
How to Ask for a List of Department Names |
|
|
74 | (1) |
|
Saving the Query as a Stored Procedure |
|
|
75 | (1) |
|
|
76 | (9) |
|
The Theory: How to Access SQL Server from VB.NET |
|
|
77 | (1) |
|
Opening a Database Connection |
|
|
77 | (2) |
|
Issuing Commands Using the Connection |
|
|
79 | (2) |
|
|
81 | (1) |
|
Implementing the Business-Tier Functionality |
|
|
81 | (1) |
|
Adding the Catalog Class to the Solution |
|
|
81 | (1) |
|
Storing the Connection String in a Central Location |
|
|
82 | (1) |
|
Adding the GetDepartments() method to the Catalog Class |
|
|
83 | (2) |
|
|
85 | (10) |
|
Preparing the Field: Setting the Styles |
|
|
86 | (2) |
|
Creating the DepartmentsList Web User Control |
|
|
88 | (7) |
|
|
95 | (1) |
|
|
95 | (2) |
|
The Product Catalog: Adding Content |
|
|
97 | (62) |
|
What is the New Functionality? |
|
|
97 | (5) |
|
A New Place to Store the Data |
|
|
102 | (15) |
|
The Theory: What Makes a Relational Database? |
|
|
102 | (1) |
|
Relational Data and Table Relationships |
|
|
103 | (2) |
|
The Foreign Key Constraint |
|
|
105 | (1) |
|
Implementing Table Relationships |
|
|
106 | (1) |
|
Departments, Categories, and the One-to-Many Relationship |
|
|
106 | (4) |
|
Adding Categories Linked to Existing Departments |
|
|
110 | (1) |
|
Categories, Products, and the Many-to-Many Relationship |
|
|
110 | (5) |
|
|
115 | (2) |
|
|
117 | (8) |
|
The Theory: Where to Join? |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
119 | (2) |
|
|
121 | (1) |
|
Input and Output Stored Procedure Parameters |
|
|
121 | (1) |
|
Implementing the Stored Procedures |
|
|
122 | (3) |
|
|
125 | (8) |
|
The Theory: Working with Stored Procedure Parameters |
|
|
125 | (3) |
|
Completing the Catalog Class |
|
|
128 | (5) |
|
|
133 | (20) |
|
Displaying Data about the Selected Department |
|
|
133 | (5) |
|
Displaying the List of Categories |
|
|
138 | (7) |
|
|
145 | (5) |
|
Displaying Contents on the Main Web Page |
|
|
150 | (3) |
|
|
153 | (2) |
|
|
155 | (4) |
|
|
159 | (20) |
|
What Kind of Search do we Want? |
|
|
159 | (2) |
|
|
161 | (5) |
|
The Theory: Teaching the Database to Search Itself |
|
|
161 | (1) |
|
Dynamically Creating the Query in the Business Tier |
|
|
162 | (1) |
|
Dynamically Creating the Query in the Data Tier |
|
|
163 | (1) |
|
Not Using Dynamically Generated Queries |
|
|
164 | (1) |
|
Implementing the SearchCatalog Stored Procedure |
|
|
165 | (1) |
|
|
166 | (3) |
|
|
169 | (7) |
|
The SearchBox User Control |
|
|
170 | (2) |
|
The SearchResults User Control |
|
|
172 | (4) |
|
|
176 | (3) |
|
Receiving Payments using PayPal |
|
|
179 | (14) |
|
Internet Payment Service Providers |
|
|
180 | (1) |
|
Learning how to Use PayPal |
|
|
181 | (9) |
|
Creating a New PayPal Account |
|
|
181 | (2) |
|
Integrating PayPal into our Web Site |
|
|
183 | (5) |
|
Letting PayPal Calculate Shipping Costs |
|
|
188 | (1) |
|
The PayPal Single Item Purchases |
|
|
189 | (1) |
|
|
190 | (3) |
|
|
193 | (70) |
|
|
194 | (1) |
|
Authenticating Administrators |
|
|
195 | (8) |
|
Setting up the Catalog Administration Page |
|
|
203 | (5) |
|
Administering Departments |
|
|
208 | (16) |
|
The DepartmentsAdmin User Control |
|
|
209 | (10) |
|
Middle-Tier Methods for Departments Administration |
|
|
219 | (3) |
|
Stored Procedures for Departments Administration |
|
|
222 | (1) |
|
Testing the DepartmentsAdmin Web User Control |
|
|
223 | (1) |
|
|
224 | (13) |
|
The CategoriesAdmin Web User Control |
|
|
225 | (8) |
|
Middle-Tier Methods for Categories Administration |
|
|
233 | (2) |
|
Stored Procedures for Categories Administration |
|
|
235 | (1) |
|
Testing the CategoriesAdmin Web User Control |
|
|
236 | (1) |
|
|
237 | (17) |
|
The ProductsAdmin Web User Control |
|
|
238 | (10) |
|
Middle-Tier Methods for Products Administration |
|
|
248 | (3) |
|
Stored Procedures for Products Administration |
|
|
251 | (3) |
|
Testing the ProductsAdmin Web User Control |
|
|
254 | (1) |
|
Viewing Product Details and Deleting Products |
|
|
254 | (7) |
|
The ProductDetailsAdmin Web User Control |
|
|
255 | (4) |
|
Middle-Tier Methods for Product Details Admin |
|
|
259 | (1) |
|
Stored Procedures for Product Details Admin |
|
|
260 | (1) |
|
Testing the ProductDetailsAdmin Web User Control |
|
|
260 | (1) |
|
|
261 | (2) |
|
|
263 | (32) |
|
Designing the Shopping Cart |
|
|
264 | (1) |
|
|
265 | (1) |
|
A Place to Store Shopping Cart Items |
|
|
265 | (5) |
|
|
265 | (1) |
|
|
266 | (1) |
|
|
267 | (1) |
|
|
268 | (1) |
|
|
269 | (1) |
|
|
269 | (1) |
|
|
269 | (1) |
|
|
270 | (6) |
|
Generating Shopping Cart IDs |
|
|
270 | (3) |
|
|
273 | (3) |
|
|
276 | (16) |
|
|
277 | (2) |
|
|
279 | (1) |
|
Modifying default.aspx to Load ShoppingCart |
|
|
280 | (1) |
|
Creating the ShoppingCart Web User Control |
|
|
281 | (4) |
|
Adding `Continue Shopping' Functionality |
|
|
285 | (3) |
|
Allowing the Visitor to Change the Quantity |
|
|
288 | (1) |
|
|
289 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (1) |
|
Testing the Shopping Cart |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
292 | (3) |
|
Dealing with Customer Orders |
|
|
295 | (50) |
|
Implementing an Order Placing System |
|
|
295 | (10) |
|
Storing Orders in the Database |
|
|
296 | (1) |
|
|
297 | (3) |
|
|
300 | (2) |
|
Updating the Business Layer |
|
|
302 | (1) |
|
Implementing the User Interface |
|
|
302 | (1) |
|
|
302 | (3) |
|
|
305 | (38) |
|
The OrdersAdminPage Web Form |
|
|
305 | (1) |
|
|
306 | (3) |
|
|
309 | (1) |
|
Having a Link to OrdersAdminPage on the First Page |
|
|
309 | (1) |
|
The OrdersAdmin Web User Control |
|
|
310 | (1) |
|
The Database Stored Procedures |
|
|
311 | (2) |
|
The Busines Layer Methods |
|
|
313 | (2) |
|
The Presentation Tier: OrdersAdmin.ascx |
|
|
315 | (10) |
|
The OrderDetailsAdmin Web User Control |
|
|
325 | (1) |
|
The Database Stored Procedures |
|
|
326 | (2) |
|
|
328 | (5) |
|
The Presentation Tier: OrderDetailsAdmin.ascx |
|
|
333 | (10) |
|
|
343 | (2) |
|
|
345 | (50) |
|
|
346 | (41) |
|
WroxJokeShop Customer Account Scheme |
|
|
346 | (1) |
|
|
347 | (1) |
|
The SecurityLib Class Library |
|
|
348 | (1) |
|
|
348 | (3) |
|
|
351 | (16) |
|
|
367 | (6) |
|
The Customer Registration Page |
|
|
373 | (5) |
|
Customer Detail Modification Pages |
|
|
378 | (1) |
|
|
379 | (8) |
|
|
387 | (4) |
|
Obtaining a SSL Certificate from VeriSign |
|
|
388 | (1) |
|
Enforcing SSL Connections |
|
|
388 | (2) |
|
Modifying Redirections to Use SSL Connections |
|
|
390 | (1) |
|
|
391 | (4) |
|
|
395 | (34) |
|
What is an Order Pipeline? |
|
|
396 | (1) |
|
The WroxJokeShop Order Pipeline |
|
|
396 | (31) |
|
|
397 | (3) |
|
|
400 | (1) |
|
|
400 | (1) |
|
|
400 | (1) |
|
The CreateCustomerOrder Stored Procedure |
|
|
401 | (1) |
|
WroxJokeShop Modification |
|
|
402 | (1) |
|
|
403 | (7) |
|
|
410 | (13) |
|
Adding More Functionality to OrderProcessor |
|
|
423 | (4) |
|
|
427 | (2) |
|
Implementing the Pipeline |
|
|
429 | (40) |
|
|
429 | (1) |
|
|
430 | (2) |
|
|
432 | (1) |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
435 | (1) |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
438 | (6) |
|
WroxJokeShop Modifications |
|
|
444 | (22) |
|
The Checkout.aspx Web Page |
|
|
445 | (1) |
|
Modifications to OrdersAdminPage.aspx |
|
|
446 | (1) |
|
|
447 | (1) |
|
|
447 | (3) |
|
OrderManager Modifications |
|
|
450 | (4) |
|
OrdersAdmin.ascx Modifications |
|
|
454 | (4) |
|
OrderDetailsAdmin.ascx Modifications |
|
|
458 | (5) |
|
Testing the Order Administration Page |
|
|
463 | (3) |
|
|
466 | (3) |
|
|
469 | (26) |
|
Credit Card Transaction Fundamentals |
|
|
469 | (3) |
|
Credit Card Payment Gateways |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
471 | (1) |
|
Implementing Credit Card Processing |
|
|
472 | (20) |
|
|
472 | (1) |
|
|
472 | (1) |
|
|
473 | (1) |
|
|
474 | (1) |
|
|
475 | (1) |
|
|
475 | (12) |
|
Integration with WroxJokeShop |
|
|
487 | (1) |
|
OrderProcessor Configuration Modification |
|
|
487 | (2) |
|
|
489 | (3) |
|
|
492 | (1) |
|
|
492 | (1) |
|
|
492 | (3) |
|
|
495 | (4) |
|
|
495 | (1) |
|
|
495 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (1) |
|
|
496 | (3) |
Appendix A: Installing IIS, MSDE, OSQL, and Creating Class Libraries |
|
499 | |
|
Installing the IIS 5.x Web Server |
|
|
499 | (6) |
|
|
503 | (1) |
|
The Microsoft Management Console (MMC) |
|
|
503 | (1) |
|
Testing your Installation |
|
|
504 | (1) |
|
Identifying your Web Server's Name |
|
|
504 | (1) |
|
|
505 | (4) |
|
Obtaining and Installing MSDE |
|
|
506 | (1) |
|
|
507 | (2) |
|
Running Scripts with osql |
|
|
509 | (1) |
|
|
509 | |
Indexes |
|
1 | (1) |
|
|
1 | (520) |
|
|
521 | |