August 2008

Monthly Archive

The Microsoft Data Warehouse Toolkit With SQL Server 2005 and the Microsoft Business Intelligence Toolset

aspnetnerd 31 Aug 2008 | : Book

The Microsoft Data Warehouse Toolkit With SQL Server 2005 and the Microsoft Business Intelligence Toolset




This groundbreaking book is the first in the Kimball Toolkit series to be product-specific. Microsoft’s BI toolset has undergone significant changes in the SQL Server 2005 development cycle. SQL Server 2005 is the first viable, full-functioned data warehouse and business intelligence platform to be offered at a price that will make data warehousing and business intelligence available to a broad set of organizations. This book is meant to offer practical techniques to guide those organizations through the myriad of challenges to true success as measured by contribution to business value.

Building a data warehousing and business intelligence system is a complex business and engineering effort. While there are significant technical challenges to overcome in successfully deploying a data warehouse, the authors find that the most common reason for data warehouse project failure is insufficient focus on the business users and business problems. In an effort to help people gain success, this book takes the proven Business Dimensional Lifecycle approach first described in best selling The Data Warehouse Lifecycle Toolkit and applies it to the Microsoft SQL Server 2005 tool set.

Beginning with a thorough description of how to gather business requirements, the book then works through the details of creating the target dimensional model, setting up the data warehouse infrastructure, creating the relational atomic database, creating the analysis services databases, designing and building the standard report set, implementing security, dealing with metadata, managing ongoing maintenance and growing the DW/BI system. All of these steps tie back to the business requirements. Each chapter describes the practical steps in the context of the SQL Server 2005 platform.

Intended Audience

The target audience for this book is the IT department or service provider (consultant) who is:

  • Planning a small to mid-range data warehouse project;
  • Evaluating or planning to use Microsoft technologies as the primary or exclusive data warehouse server technology;
  • Familiar with the general concepts of data warehousing and business intelligence.

The book will be directed primarily at the project leader and the warehouse developers, although everyone involved with a data warehouse project will find the book useful. Some of the book’s content will be more technical than the typical project leader will need; other chapters and sections will focus on business issues that are interesting to a database administrator or programmer as guiding information.

The book is focused on the mass market, where the volume of data in a single application or data mart is less than 500 GB of raw data. While the book does discuss issues around handling larger warehouses in the Microsoft environment, it is not exclusively, or even primarily, concerned with the unusual challenges of extremely large datasets.

About the Authors

JOY MUNDY has focused on data warehousing and business intelligence since the early 1990s, specializing in business requirements analysis, dimensional modeling, and business intelligence systems architecture. Joy co-founded InfoDynamics LLC, a data warehouse consulting firm, then joined Microsoft WebTV to develop closed-loop analytic applications and a packaged data warehouse.

Before returning to consulting with the Kimball Group in 2004, Joy worked in Microsoft SQL Server product development, managing a team that developed the best practices for building business intelligence systems on the Microsoft platform. Joy began her career as a business analyst in banking and finance. She graduated from Tufts University with a BA in Economics, and from Stanford with an MS in Engineering Economic Systems.

WARREN THORNTHWAITE has been building data warehousing and business intelligence systems since 1980. Warren worked at Metaphor for eight years, where he managed the consulting organization and implemented many major data warehouse systems. After Metaphor, Warren managed the enterprise-wide data warehouse development at Stanford University. He then co-founded InfoDynamics LLC, a data warehouse consulting firm, with his co-author, Joy Mundy. Warren joined up with WebTV to help build a world class, multi-terabyte customer focused data warehouse before returning to consulting with the Kimball Group. In addition to designing data warehouses for a range of industries, Warren speaks at major industry conferences and for leading vendors, and is a long-time instructor for Kimball University. Warren holds an MBA in Decision Sciences from the University of Pennsylvania’s Wharton School, and a BA in Communications Studies from the University of Michigan.

RALPH KIMBALL, PH.D., has been a leading visionary in the data warehouse industry since 1982 and is one of today’s most internationally well-known authors, speakers, consultants, and teachers on data warehousing. He writes the “Data Warehouse Architect” column for Intelligent Enterprise (formerly DBMS) magazine.

User Ratings and Reviews

5 Stars Not for Beginners?
Mundy and Thornthwaite provide the knowledgeable SQL Server technician with many of the soft and hard tools required to deliver a successful BI project. And even if most beginners might miss most of the authors’ finer points and hard earned wisdom, they’ll still be further ahead on a steep learning curve.

Only wish the Kimball team had written the same book for Analysis Server 2000. It’d have saved me much time! ;-)

2 Stars More an academic discussion, than hands-on
I found this a frustrating book. Eventually I skipped this first 43 pages of introduction plus 120 first pages of the book proper. I felt the authors were more interested in using esoteric language than actually showing how to use the product. If you’re trying to baffle someone with tech-speak, this is the book for you. If you have a deadline, and are trying to actually accomplish something, I would suggest looking elsewhere. Disappointed.

5 Stars Very approachable but authoritative source on DW
Having inherited a mature DW, I was weak on the Theory behind what I was supporting. I needed to be able to be confident of not breaking the current system, but still be able to take this vital system forward with the business. I am also under the Time pressure that we all work with. This book gave thorough but clear explanations of the concepts that underlie DW/BI solutions and then went on to particularise these explanations with details based on SQL Server. I am still working through it, but it is a pleasure rather than a chore.

Thanks for the great work that you and the editorial team put into this book. JK.

5 Stars Very complete
I bought this book for a class. It is very complete. I am an IT person who need this sense of Business Size of BI while I am updating my SQL Server skills. I recommend this book.

4 Stars Essential Reading for Data Warehousing with SQL Server 2005
Having spent more time doing data warehousing than reading about it, I didn’t realize what a phenomenon the Kimball Method had become. I was interviewing with a company that mentioned Kimball and wanted to use his methods to build a data warehouse on SQL Server 2005, so I turned to Amazon, found this book, used my Amazon Prime to get the tome and got the job. So how was the book? Honestly, it covers the Kimball Method well and most experienced analysts will not find much new other than the jargon. The practical advice from Mundy and Thornthwaite is valuable and will help you make some practical decisions on implementation, if not spell out all the steps. My feeling was that if you are comfortable with implementing data marts or data warehouses, this book will give you the advice you need for setting up a SQL Server 2005 data warehouse and implementing Analysis Services. For a more in depth look at how to implement Analysis Services, I recommend Melomed’s book as a follow on.

The only complaint I have with this book is it over sells SQL Server Integration Services (SSIS) as an ETL tool. That is probably Mundy’s Microsoft viewpoint speaking rather than actual experience with the tool. After using SSIS, I look at it as Data Transformation Services (DTS) with a nice face on it, but really its just lipstick on the same pig. I have picked up several books on SSIS to try find out how to do all the wonderful things it promises, but they pretty much echo the documentatiion, so I can’t really recommend any of them.

Overall, this is book well worth reading. After spending the last year on an Oracle/Teradata project, its refreshing to get back to SQL Server 2005 and Analysis Services. If you are just making the jump to data warehousing on SQL Server 2005, this is a must read. If you are already familiar with Kimball, you will skip a lot but get some good implementation advice and that makes it worth the price. If you want to know more about MDX or SSIS, this isn’t what you are looking for.

Buy/More Info

ASP NET and VB NET Web Programming The Addison Wesley Microsoft Technology Series

aspnetnerd 31 Aug 2008 | : Book

ASP NET and VB NET Web Programming The Addison Wesley Microsoft Technology Series




Active Server Pages (ASP) has been the backbone of server-side programming in the Microsoft environment for several years. Visual Basic has been that company’s toolkit for developing client-server applications in a hurry. Now, with the release of the ASP.NET specification and the VB .NET development environment, the two technologies intersect more than ever. ASP.NET and VB.NET Web Programming explains how each of these technologies works on its own, and explains in implementation-level detail (i.e., lots of code listings) exactly how they work together to provide Web services under the .NET Framework.

Matt Crouch uses a nifty technique for annotating his code. Rather than comment long listings extensively, or repeat sections later for commentary, he attaches a number to interesting lines in long listings. Then, in the commentary sections that follow the listings, he refers to lines by number (so-and-so happens in line 84 because we did thus-and-such in line 56, for example). The effect is like reading an analysis of poetry. The technique works well, except for the fact that you sometimes end up flipping back and forth between commentary and listing. Overall, this is a fine choice for someone familiar with VB 6 or old-style ASP who wants to learn about Microsoft-style Web services with the help of numerous code samples and careful commentary. –David Wall

Topics covered: How to create Web sites under the Microsoft .NET Framework. The author covers techniques for creating HTML interfaces with ASP.NET, shows how to build managed components for COM+, and explains how to create Web services under VB .NET. It’s a comprehensive guide to Web services and HTML page generation for VB .NET programmers.

User Ratings and Reviews

2 Stars Not for begginers to Microsoft programming
I am an experienced HTML, PHP and Javascript developper.

I recenctly decided I would like to pick up VB.net for web development and maybe pass 70-305. I just finished VB.net Step-by-Step and was pretty happy.

I bought this book based on the reviews and I have to say I am frustrated and disappointed.

First off, most of the book is spent making console applications, not web applications.

Second, there are no clear tutorials or labs that allow you to practice or apply what you have learned. Lots of code snippets and incomplete programs that aren’t terribly clear. Lots of theory, not much application

Finally, the author assumes knowledge that hasn’t been demonstrated in the book to date when giving examples or using terminology. For someone who is unfamiliar with the MS programming world, it can very confusing.

All in all I’m not impressed.

1 Star Very disappointing
.NET technology is specifically tailored for internet applications and the title of this book includes Web Programming. In fact there is very little coverage of web programming. The entire section on VB.NET covers only console applications. We are almost half-way through the book (if you ignore the 140 plus pages of appendices and index at the end) before a step-by-step guide to creating a (very simple) web application is given.

Most of the book consists of tedious listings of available controls and their properties/methods - is not that what the user manual is for? Code samples are almost childish, like displaying a message stating which check boxes have been selected. In the intro Crouch states the book is aimed at software developers. If so, why spend so much of the book explaining the simple in detail and skipping over the difficult concepts that are new to VB.NET. OOP is not new or exclusive ot VB.NET so why should it be covered here? And why having covered OOP, does Crouch then proceed to totally ignore the concept in his samples? Nowhere does Mr Crouch explain how to use his code samples, which are usually separate HTML and VB code, in the .NET framework. Loads of topics covered come without any code samples at all (yes, you’ve guessed it, the complicated or difficult parts).

The book also covers ADO.NET. Why? If I wanted a book on ADO.NET, then that is what I would buy. Ironically, the code included with the section on ADO.NET is much more practical than in the rest of the book. Pity the same standard could not have been applied throughout. I strongly recommend you buy something else.

2 Stars Poorly written, “jumpy” explanations
The author’s writing style is not only extremely poor, but confusing as he uses terminologies that a LOT of beginners may not be familiar with. You’ll find yourself going over to webopedia.com for explanations for a lot of his terms which he simply mentions or just glosses over.

I was forced to by this text for a college course and have found much better beginning asp.net and vb.net texts since buying it.

3 Stars General
Over all this book is covering a lot of topics and should be good for beginner. Too much explanation of the code and stuff that’s obvious for intermediate / senior levels. I did encounter couple problems. COM+ part does not go into details. The sample that I made (downloaded) for this chapter did not work. It might be the operation system problem, but I did not find any references in the book that you can’t do this if you are running on WIN2000. Also, web services did not work with my components, again, no references in the book what do you do if web service looks inaccessible.

1 Star Bad Book
Disorganized….ADO.NET example in chapter 7 doesn’t even make any sense if you follow it….Errors throughout…download of examples doesn’t even have the examples from the book….

Buy/More Info

Microsoft ASP NET Programming with Microsoft Visual Basic NET Version 2003 Step By Step Step By Step Microsoft

aspnetnerd 31 Aug 2008 | : Book

Microsoft ASP NET Programming with Microsoft Visual Basic NET Version 2003 Step By Step Step By Step Microsoft




ASP NET PROGRAM W/ VISUAL BASIC NET 2003 STEP/STEP

User Ratings and Reviews

1 Star Bad Code
It’s really frustrating to try to learn from a programming book where the author’s code doesn’t work! None of the examples I tried would actually compile without my having to “fix” his code. In most cases that worked out ok, but in some cases I never really knew if my “fix” was a legitimate way to solve the problem or if it might cause problems later. Not a good way to learn!

2 Stars Not Really Good for Beginners
I expect that this book will help me learn ASP.NET thru VB.NET. I am very frustrated, it didn’t really help me to easily understand the simple thought of ASP.NET thru VB.NET. For beginners like me, I will not suggest this book. Much better to browse the web.

1 Star I was robbed
This is the least useful book I have ever bought. It doesn’t have anything useful and didn’t answer me any questions I had. No wonder it was so cheap. I spent $9.95 for the book from Amozon, but I feel like I was robbed. I can give it to you for free if you ask for, but I would be guilty if I do, becuase it would waste your valuable time. Look at other’s review and I was not the only victim, don’t buy this one, it is 100% garbage.

2 Stars Someone should have proofread this book
As an ASP developer who has not used Visual Studio, I found the first chapters of this book very insightful. The author does a good job explaining ASP.NET and its differences with ASP coding.

But if there’s one thing that I can’t stand in a programming book, it’s a lack of proofreading of the code given in the book and poor programming practices displayed. This book, unfortunately, has a lot of that.

An example (from page 216):

Label6.Text = “Final Balance: $” + CalcBalance(Convert.ToInt32(TextBox1.Text),

Convert.ToInt32(TextBox2.Text) / 100,

Convert.ToInt32(TextBox3.Text),

Convert.ToInt16(DropDownList1.SelectedItem.Value)).ToString();

private string CalculateBalance(int Principal, double Rate, int Years, int Period)

{

double result;

double NumToBeRaised = (1 + Rate + Period);

result = Principal * System.Math.Pow(NumToBeRaised, (Years * Period));

return(result.ToString(”C”));

}

This is to be a Compound Interest Calculator.

If you enter this code, as given in the book, it won’t run. There are several errors:

Error 1) In the calling procedure, it’s CalcBalance. In the function, it’s CalculateBalance.

Error 2) If you fix that oversight and run it, your result is the same as the given Principal. Why? Because the function calls for a double Rate variable, and yet the calling routine converts the Rate to an int variable. If you change “Convert.ToInt32(TextBox2.Text) / 100″ to “Convert.ToDouble(TextBox2.Text) / 100″, the result is correct - sort of…

Error 3) The result will be displayed as “$$67,537.12″ instead of “$67,537.12″. The reason for the double-$ is that the function converts the result to a currency string, but then the calling procedure adds an extra “$”.

Fixing these three errors will solve the problems, but obviously no one tried this code before the book was published.

And a couple of picky points just because I’m so irritated with something so glaring as these errors.

Error 4) Since the function returns as a string, why then convert the result to a string in the calling procedure?? It’s unnecessary.

Error 5) The code uses default naming of objects instead of taking 1 minute to give some meaningful names, like txtPrincipal instead of TextBox1.

Two stars for having no thought to the simplest details.

1 Star This book is just bad
I started this book with a background in both VB and classic ASP, with the goal of upgrading my knowledge to ASP.NET. I’ll state that I think this book is just bad.

It seems that half the book presupposes that you have extensive knowledge of classic ASP, and the other half assumes that you’ve never used any sort of scripting language before. The examples are horribly simplistic to the point that they have absolutely no relation to modern web applications. But, you won’t understand large parts of the book unless you have a background in programming.

The first two parts (six chapters) could actually be somewhat useful to a true beginner. They start slow and build up some very basic skills.

Part 2 is a little different. Chapter 7 on web forms is fairly decent, but could use to be longer. Chapter 8 on server controls is just poorly written. Chapter 9 on accessing date is AWFUL. It presupposes you have a fairly good background in traditional database access with something like ADO, so it’s definitely not for beginners. For instance it compares the DataReader object to a read-only forward-only cursor, but if you don’t have a background in data access you aren’t going to understand how cursors work. This is right next to where he explains that the password key “Specifies the password to use to log into the SQL Server database.” Yeah, DUH. Also, a bulk of the chapter is devoted to working with XML data but the chapter sets out to work with databases. For a 68 page chapter it conveys surprisingly little actual new information. No time is given to explaining how databases have traditionally been accessed and used in actual working applications. I just wanted to scream as I read it.

Chapter 10 on creating custom server controls and chapter 11 on creating web services are very brief introductions to some fairly advanced and complicated topics. They provide simplistic examples and then expect you might be able to actually use the knowledge you gained in the chapters. Yeah right.

Chapter 13 is aimed at beginners on deploying ASP.NET applications. Chapter 14 on tracing and debugging is actually not bad. (Not good either.)

Also the book is based on using Visual Studio .NET. I’ll state that I have a bias against using IDEs for simple scripting, so I won’t comment on appropriateness here. But be forewarned that three-quarters or more of the examples involve VS.NET.

Buy/More Info

LINQ in Action

aspnetnerd 31 Aug 2008 | : Book

LINQ in Action




LLINQ, Language INtegrated Query, is a new extension to the Visual Basic and C# programming languages designed to simplify data queries and database interaction. It addreses O/R mapping issues by making query operations like SQL statements part of the programming language. It also offers built-in support for querying in-memory collections like arrays or lists, XML, DataSets, and relational databases.

LINQ in Action is a fast-paced, comprehensive tutorial for professional developers. This book explores what can be done with LINQ, shows how it works in an application, and addresses the emerging best practices. It presents the general purpose query facilities offered by LINQ in the upcoming C# 3.0 and VB.NET 9.0 languages. A running example introduces basic LINQ concepts. You’ll then learn to query unstructured data using LINQ to XML and relational data with LINQ to SQL. Finally, you’ll see how to extend LINQ for custom applications.

LINQ in Action will guide you along as you explore this new world of lambda expressions, query operators, and expression trees. As well, you’ll explore the new features of C# 3.0, VB.NET 9.0. The book is very practical, anchoring each new idea with running code. Whether you want to use LINQ to query objects, XML documents, or relational databases, you will find all the information you need to get started

But LINQ in Action does not stop at the basic code. This book also shows you how LINQ can be used for advanced processing of data, including coverage of LINQ’s extensibility, which allows querying more data sources than those supported by default. All code samples are built on a concrete business case. The running example, LinqBooks, is a personal book cataloging system that shows you how to create LINQ applications with Visual Studio 2008.

User Ratings and Reviews

5 Stars An important book, on an important topic
LINQ in Action, at 600 pages provides a substantial introduction and in-depth discussion of LINQ, its history, its impact, and most important - its syntax and features. I found this book easy to navigate, given that many developers (I know I do) moved between LINQ to Objects, LINQ to XML and LINQ to SQL througout the working day. When you stumble over a particular query, I found it easy to find a relavent sample in the index.

If you haven’t had an opportunity to move into the .NET 3.5 Framework world and use C# .0 or VB 0 syntax yet, then this book will arm you with the background necessary to move productively into the new ‘Query Centric’ programming paradigm - one free of complex ‘for’ loops and deeply nested ‘if’ statements (and free of embedded SQL string statements).

Although hefty in size, I recommend this book if you seriously want to move beyond the basics and really understand how to use LINQ.

3 Stars Linq in Action
This book is best used with a companion book covering basic C# terms. I found that I had to refer to the internet for explanations of terms.

Explanations, not just definitions. That need slowed my reading to a crawl. though I have been using C# for the past year.

2 Stars LINQ with no action
I am disappointed with this book - it did not meet my expectations. I found many examples and it is really hard to use them because the author hardly explains where all comes from and why I should go this way and not another one. It sometimes confuses why, where and for what purpose the author shows an example and whether it suits my case. It is hard to decide because there are almost no explanations about roots of examples and basic theory.

However, I am happy with the fact that more and more books about LINQ come up and I do hope to find a proper one for me. Unfortunately, for now, I have to move from one book to another one for finding a solution.

5 Stars The only Linq book you will need
If you want to learn Linq, whether its data stored in a database, in XML files, DataSets or just in-memory objects this is the book for you.

I found it so easy to understand, and really comprehend. There are lots of examples, but not too many. After reading the first few chapters you become comfortable with the concept and syntax of the new language extensions.

The authors style had just the right combination of light humor and serious programming. He seems able to express complicated issues with the greatest of ease, and obviously has enoumous knowledge on the subject.

If that was not enough, there are forums avalable where you can raise queries and doubts and the author will do his best to accomodate you, again with a nice and easy flowing style.

The book is a ‘must have’ to any serious Linq programmer (or want-to-be Linq programmer!) and will certainly occupy a prominent place on my bookshelf.

Highly recommended!

Regards,

Martin.

5 Stars Very, very nice and good book
This is a very nicely written book.

Clear explanations, concepts are introduced gradually and build on each other with no forward references, simple and to the point code samples, good and appropriate pace, and very easy to read and understand.

I was actually amazed by this book. I read a couple of books/month, and this book reminded me a lot of the quality of classic CS books, which is so hard to come by nowadays — think “The unix programming environment”, but more accessible.

This is in sharp contrast with most of the today books in the (programming/CS) field which tend to have a big ratio of page-count to information (lots of screenshots, or 101/intro-level intermixed content, lots of fluff). This is not a book that you can shrink without loosing quality.

Buy/More Info

ASP NET for Web Designers VOICES

aspnetnerd 31 Aug 2008 | : Book

ASP NET for Web Designers VOICES



Teaching ASP.NET in a non-linear format that creative thinkers can easily grasp and understand without the typical programming jargon. Provides clear and concise, hands-on, real-world examples right from the beginning of the book. The book contains a natural progression by providing foundational information in the opening chapters. Content will be presented with “hands-on” examples so the opening chapters will also be laying the groundwork for more advanced subjects by not only presenting the information but by writing code as well. The middle section of the book covers the key cast members on the .NET stage including HTML Controls, Web Controls and List Controls. The third and final section of the book covers more advanced issues in ASP.NET including data access and security issues.

User Ratings and Reviews

5 Stars Excellent book
The writer of this book has a very laid back style and uses simple words to explain asp.net concepts. He uses a lot of examples and goes through them in detail. The book also has a very pleasant appearance and makes you want to read it. This is actually my first asp.net book that i’ve read and i liked it.

4 Stars Unique Book that doesn’t regurgitate the SDK docs
A unique book that serves as a strong starting point for non-programmers who want an overview of asp.net basics and who do not all-ready know how to program. Why is "ASP.NET for Web Designers" a unique book? Many asp.net intro books assume prior programming experience; many read as though MS gave the author an outline and content templates for the writer to <<add intro paragraph here>>. Ladka however thinks for himself: the result- a useful & unique book. Yes, he covers the server controls as all intro books should, but in addition to covering the bare minimum he does a nice job explaining and demonstrating how to implement OO concepts in your development.

Downside: He tries too hard to make the book’s examples "user friendly." Ladka likes food allot and all the examples revolve around this topic to the point annoying the reader.

Over all a great book for someone wanting an introduction to Asp.Net and an intro on how to program with it.

4 Stars Well laid out
ASP.NET for Web Designers by Peter Ladka

Published by Peachpit Press

Reviewed by Larry Hess HuNTUG member

Just as his cover states “Are you sick and tired of all those 1,200-page technical manuals that seen to be written in a language only Martians could understand?” Mr. Ladka has created a manual that is designed for the beginner that’s not boring for the more experienced web developers. He shows both VB.Net and C# samples of all code snipping.

The book is divided into 4 main sections:

Part 1 ASP.Net Overview

1. ASP.Net Basics

2. Understanding Object-Oriented Programming

3. Scripting Basics

4. ASP.NET Pages

5. Understanding User Controls

Part 2 Designing with ASP.Net

6. HTML Server Controls

7. Web Server Controls

8. Web Form Validators

9. Displaying Data with Server Controls

Part 3 Advanced Features in ASP.Net

10. ADO.NET

11. State Management in ASP.NET

12. Form-Based Security in ASP.NET

13. XML in ASP.Net

Part 4 Appendixes

A. Installing the .NET Framework

B. Compiling Custom Objects

For the beginner the flow of the book takes the reader through the steps of designing their first web site with the standard “HELLO WORLD” approach, with each chapter building on the previous chapter information.

For the more experienced web developer the reader can jump in any chapter and get the information needed in that area. This is one of the best laid out and structured books’ I’ve read.

The web link to the code snipping was the hardest thing about the whole book.

4 Stars Decent, not the best…
This book is good for anyone wanting to get their feet wet with asp.net. It’s nice they presented both vb.net and C# code however, this book is riddled with syntax errors like the holes in swiss cheese.
Peter Ladka did a good job with the overall material of this book, but his “Technical Reviewers” must have not been paid for their efforts, otherwise they would have probably paid more attention to detail.

3 Stars Just Okay
The book is okay in that it gives you a quick and dirty overview of ASP.NET. The code examples are okay but where the book falls short in that the author babbles a lot rather than actually discussing the subject.

Buy/More Info

Next Page »