The .NET Framework is Microsoft's great new programming world. It is designed to revolutionize the way in which businesses use the Internet by changing the way that services, devices, and users interact. The next generation of applications will be built with it allowing for much richer, broader, and all round better interaction with machines, and between machines.
As well as enabling a new way of interacting with our devices, .NET also provides a fast and efficient means of creating them. Using industry standards like XML, developers will be able to create applications that can traverse device and domain boundaries with ease. Naturally, none of this is much good unless businesses can be certain that their information can be kept secure. Microsoft has kept this in mind while developing .NET technologies, and has provided a secure means of keeping data on the Internet, allowing applications to deliver functionality tailored to the user.
This is a solution-focused book that uses an extended case study to give the reader a clear understanding of all the issues involved in the design and development of a complete enterprise application. It gives a broad based look at how to create a .NET enterprise application and how we can connect to it with various devices, in various ways, in a secure manner. So, whatever size application you need to create, reading this book will help you to understand how to go about it, and how to define more clearly the scope and breadth of any part of an enterprise application.
What Does This Book Cover?
Chapter 1 introduces us to the topics covered in this book and gives an outline of the application we develop throughout the rest of the book. Specifically, we look at distributed programming and N-tier apps in a generic way in order to set the background for our sample development.
Chapter 2 talks about the application design. We run through the Wrox Enterprise Objects or "WINO", which is a rich object layer built by the Builder tool (covered in Appendix A). Following on from this, we also look at how to use the tool, as well as how we can create and use stored procedures.
Once we have the basic application up and running, Chapter 3 looks at building an application browser. We begin with a brief discussion on the various methods available to make the browser available for general use, and then we show how to build it, touching briefly on topics like authentication, adding menu options, and running sub-applications.
Chapter 4 shows how we can build and hook up a desktop application to our business objects. We present a relatively simple example to demonstrate the principle of desktop apps. In this example we show, amongst other things, how we can edit customer information and use our application to search for customers on our database.
Chapter 5 discusses automated processes. We look at capturing, shipping, processing, and reporting orders, and show how to build an order processor. While we discuss this topic we will also have a look at architectural issues and ways of making life easier when developing this sort of functionality.
Chapter 6 talks about Web Services. It shows how we can use Web Services to expose the functionality of the business objects. Initially, we use the Web Services with a desktop application, but in Chapter 7 we show how to use our Web Services with ASP. NET. We also present our examples in a secure manner, using SSL to transfer user information to an authenticator service in IIS. Since it is now possible to view data from many different clients, including wireless ones, Chapter 8 takes a look at how we can use mobile clients to connect to our application. Specifically, we begin by talking about the Microsoft Mobile Internet Toolkit, and move on to demonstrate a small application, which makes use of our enterprise business objects.
Chapter 9 talks about services, and we begin by looking at the token-based authentication system we use to authenticate the users of remote objects. From here we look at building a service, connecting to it (while being authenticated), and finally how to install and run the service.
Chapter 10 discusses security and automated deployment. First we talk about code access security in depth, covering topics like obtaining evidence and evaluating permissions. After this we discuss application security and securing customer edits.
Chapter 11 delves into the topic of administration. In this chapter, we build an administration tool and show, amongst other things, some basic principles like stopping and starting the service. We also end with a brief discussion of the Microsoft Management Console.
The final chapter in the book, Chapter 12, deals with managing our enterprise application, and includes discussions on topics like performance counters, exception reporting, debugging, and load balancing. To round off, we have a brief discussion of Microsoft Application Center 2000.
Appendix A shows us the inner workings of the Builder tool used throughout the book to give the reader a better idea of what goes on behind the scenes.
Who Is This Book For?
People interested in this book will be those developing and selling off-the-shelf software products for use as line-of-business (or to an extent, productivity) applications. People who customize either their own organization's off-the-shelf products or another organization's off-the-shelf products for deployment as a line-of-business application, and those developing line-of-business applications internally, will also find this book an invaluable source of information.
Naturally, anyone who wishes to have a good look at the internals of an enterprise application, in order to better appreciate what goes on "under the hood" would also benefit from reading this book. Of special interest is the Object Builder tool developed for this book by the author, which allows us to create objects based on our data.
Intermediate in level, this book will help beginners and advanced developers alike to appreciate the scope and requirements inherent in building enterprise applications.
What You Need to Use This Book
To run the samples in this book you need to have the following:
Windows 2000 or Windows XP
Visual Studio .NET
Conventions
We've used a number of different styles of text and layout in this book to help differentiate between the different kinds of information. Here are examples of the styles we used and an explanation of what they mean.
Code has several fonts. If it's a word that we're talking about in the text - for example, when discussing a For...Next loop, it's in this font. If it's a block of code that can be typed as a program and run, then
it's also in a gray box:
Sometimes we'll see code in a mixture of styles, like this:
Widget
$10~ O0
In cases like this, the code with a white background is code we are already familiar with; the line highlighted in gray is a new addition to the code since we last looked at it.
Advice, hints, and background information comes in this type of ~bnt.
Important pieces of information come in boxes like this.
Bullets appear indented, with each new bullet marked as follows:
Important Words are in a bold type font.
Words that appear on the screen, or in menus like the Open or Close, are in a Sans sefif font similar to the one you see on a Windows desktop.
Keys that you press on the keyboard, like Ctrl and Enter, are in italics.
Customer Support
We always value hearing from our readers, and we want to know what you think about this book: what you liked, what you didn't like, and what you think we can do better next time. You can send us your comments, either by returning the reply card in the back of the book, or by e-mail to feedback@wrox.com. Please be sure to mention the book title in your message.
How to Download the Sample Code for the Book
When you visit the Wrox site, http://www.wrox.com/, simply locate the title through our Search facility or by using one of the title lists. Click on Download in the Code column, or on Download Code on the book's detail page.
The files that are available for download from our site have been archived using WinZip. When you have saved the attachments to a folder on your hard-drive, you need to extract the files using a de- compression program such as WinZip or PKUnzip. When you extract the files, the code is usually extracted into chapter folders. When you start the extraction process, ensure your software (WinZip, PKUnzip, etc.) is set to use folder names.
Errata
We've made every effort to make sure that there are no errors in the text or in the code. However, no one is perfect and mistakes do occur. If you find an error in one of our books, like a spelling mistake or a faulty piece of code, we would be very grateful for feedback. By sending in errata you may save another reader hours of frustration, and of course, you will be helping us provide even higher quality information. Simply e-mail the information to support@wrox.com. Your information will be checked and if correct, posted to the errata page for that title, and used in reprints of the book.
To find errata on the web site, go to http://www.wrox.com/, and simply locate the title through our
Advanced Search or title list. Click on the Book Errata link, which is below the cover graphic on the book's detail page.
E-mail Support
If you wish to directly query a problem in the book with an expert who knows the book in detail then e-mail support@wrox.com, with the title of the book and the last four numbers of the ISBN in the subject field of the e-mail. A typical e-mail should include the following things:
The title of the book, last four digits of the ISBN, and page number of the problem in the
Subject field.
Your name, contact information, and the problem in the body of the message.
We won't send you junk mail. We need the details to save your time and ours. When you send an e-mail message, it will go through the following chain of support:
Customer Support - Your message is delivered to our customer support staff, who are the first people to read it. They have files on most frequently asked questions and will answer anything general about the book or the web site immediately.
Editorial - Deeper queries are forwarded to the technical editor responsible for that book.
They have experience with the programming language or particular product, and are able to answer detailed technical questions on the subject.
The Authors - Finally, in the unlikely event that the editor cannot answer your problem, he or she will forward the request to the author. We do try to protect the author from any distractions to their writing; however, we are quite happy to forward specific requests to them.
All Wrox authors help with the support on their books. They will e-mail the customer and the editor with their response, and again all readers should benefit.
The Wrox support process can only offer support to issues that are directly pertinent to the content of our published title. Support for questions that fall outside the scope of normal book support is provided via the community lists of our http://p2p.wrox.com/forum.
p2p.wrox.com
For author and peer discussion join the P2P mailing lists. Our unique system provides programmer to programmerTM contact on mailing lists, forums, and newsgroups, all in addition to our one-to-one e-mail support system. If you post a query to P2P, you can be confident that it is being examined by the many
Wrox authors and other industry experts who are present on our mailing lists. At p2p.wrox.com you will find a number of different lists that will help you, not only while you read this book, but also as you develop your own applications. Particularly appropriate to this book are the pro_windows_forms andthe vs_dotnet lists.
To subscribe to a mailing list just follow these steps:
1. Go to http://p2p.wrox.com/.
2. Choose the appropriate category from the left menu bar.
3, Click on the mailing list you wish to join.
4. Follow the instructions to subscribe and fill in your e-mail address and password.
5. Reply to the confirmation e-mail you receive.
6. Use the subscription manager to join more lists and set your e-mail preferences.
Why this System Offers the Best Support
You can choose to join the mailing lists or you can receive them as a weekly digest. If you don't have the time, or facility, to receive the mailing list, then you can search our online archives. Junk and spam mails are deleted, and your own e-mail address is protected by the unique Lyris system. Queries about joining or leaving lists, and any other general queries about lists, should be sent to l istsupport @ p2p.wrox.com.