Page 7

Search Result: - 618


Wes Mckinney photo
 2021-07-26 12:50:23 |  223 | Naser

Krishna Shasankar V photo

Zend Framework 2.0 by Example Beginners Guide
Author: Krishna Shasankar V
Pages: 228
Chapter 1: Getting Started with Zend Framework 2.0 7Zend Framework 2.0 7Introduction to Zend Server Community Edition (CE) 8Zend Server CE – system requirements 8Time for action – installing Zend Server CE 8Configuring Zend Server CE 11Zend Server CE – Administration Interface 11Time for action – configuring Zend Server CE 12MySQL 14Time for action – installing MySQL 15phpMyAdmin 16Time for action – creating a database 16Summary 20Chapter 2: Building Your First Zend Framework Application 21Prerequisites 21ZendSkeletonApplication 22Time for action – creating a Zend Framework project 22Zend Framework 2.0 – modules 27Zend Framework 2.0 – project folder structure 28Time for action – creating a module 29MVC layer 30Zend Framework module – folder structure 31Time for action – creating controllers and views 31Zend Framework module – configuration 33Time for action – modifying module configuration 34Summary 38
Chapter 3: Creating a Communication Application 39ZendForm 39Time for action – creating a registration form 40Form validation 46ZendInputFilter 46Time for action – adding validation to the registration form 47Models and database access 50TableGateway 50Time for action – creating models and saving the form 51ZendAuthentication 55Time for action – user authentication 56Summary 58Chapter 4: Data Management and Document Sharing 59Zend Framework 2 ServiceManager 59Time for action – migrating existing code to ServiceManager 61Database operations 63More on TableGateway 64Time for action – implementing an admin UI to manage users 65Document management 71Time for action – creating a file upload form 71Managing file sharing 76Time for action – implementing a file sharing system 76Summary 82Chapter 5: Chat and E-mail 83Layouts and views 83View helpers 84The URL helper 84The BasePath helper 85The JSON helper 85Concrete placeholder implementations 85The HeadLink helper 85The HeadMeta helper 86The HeadScript helper 86The HeadStyle helper 87The HeadTitle helper 87Time for action – using jQuery UI in a simple page 88Building a simple group chat 90Time for action – creating a simple group chat application 90Sending mails 95ZendMailTransport 96ZendMailMessage 96ZendMimeMessage and ZendMimePart 96
Time for action – creating a simple e-mail form 97ZendEventManager 99Time for action – setting module layout using ZF events 100Summary 103Chapter 6: Media Sharing 105External modules 105Resizing images 106Time for action – resizing images using modules 106The Photo gallery application 108Time for action – implementing a simple photo gallery 109Google Data APIs 113The Google Photos API 114Time for action – fetching photos from Google Photos 115YouTube Data API 119Time for action – listing YouTube videos for a keyword 119Summary 122Chapter 7: Search Using Lucene 123Introduction to Lucene 123Time for action – installing ZendSearchLucene 124Indexing 125Time for action – generating a Lucene index 127Searching 129Time for action – displaying search results 130Indexing Microsoft Office documents 133Time for action – indexing document files 134Summary 137Chapter 8: Creating a Simple Store 139Shopping cart 140Time for action – creating a store front 140The store administration 143Time for action – creating the Store Admin interface 144Payments with PayPal 146PayPal and Zend Framework 2.0 146Time for action – setting up PayPal 147PayPal Express Checkout 149Time for action – accepting payments using PayPal 150Summary 157

 2021-07-31 18:29:03 |  149 | Naser

Patrick Galbraith photo

Developing Web Applications with Perl memcached MySQL® and Apache
Author: Patrick Galbraith
Pages: 891
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviiChapter 1: LAMMP Now with an ExtraM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Chapter 2: MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Chapter 3: Advanced MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Chapter 4: Perl Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Chapter 5: Object-Oriented Perl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Chapter 6: MySQL and Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245Chapter 7: Simple Database Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Chapter 8: memcached . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Chapter 9: libmemcached . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359Chapter 10: Memcached Functions forMySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383Chapter 11: Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417Chapter 12: Contact List Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503Chapter 13: mod_perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565Chapter 14: Usingmod_perl Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601Chapter 15: More mod_perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633Chapter 16: Perl and Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707Chapter 17: Search Engine Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739Appendix A: InstallingMySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793Appendix B: Configuring MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831

 2021-07-25 07:36:02 |  195 | Naser

santonu kumar dhar photo

Building job sites with Joomla
Author: santonu kumar dhar
Pages: 236
کتاب آموزش جوملا
Pro 1.3.2 7Introduction 8Prerequisites for installation of Joomla! 1.5 and Jobs! 8Setting up a local server environment 9Uploading installation packages and files to server 12Creating database and user 12Installing and configuring Joomla! 1.5 14Managing sections categories and articles 20Managing extensions 22Installing and configuring Jobs! 23Adding modules 27Summary 27Chapter 2: Control Panel Interface 29Introducing Joomla! administrator panel 29Menus 31Submenus 31Tools 41Lists 42Dialogs 42Introducing Jobs! control panel interface 43Buttons 44Tabs 51Tools 52Summary 52
Chapter 3: Designing a Jobsite Template 53Introduction 53The basic structure and layout of a template 54Background and color schemes 54Template reference 55Jdoc include tags 55The head include tag 55The component include tag 55Module position include tag 55Coding 56Template parameters 62Installing your template 64Testing 65Validating W3C 66XHTML validation 66CSS validation 68Summary 68Chapter 4: Changing Configuration Settings 69Introduction 69Joomla! 1.5 Global Configuration 70Introducing the Site tab 70Site Settings 70Metadata Settings 71SEO Settings 72Introducing the System tab 72System Settings 73Users Settings 73Media Settings 74Debug Settings 76Cache Settings 76Session Settings 76Server Settings 77Local Settings 78FTP Settings 78Database Settings 79Mail settings 80Changing Jobs! Pro 1.3.2 Configurations 81General Settings 81Email 82Job posting 83

 2021-07-31 14:26:56 |  184 | Naser

----- photo
 2021-07-30 10:02:33 |  267 | Naser

Dr. M. O. Farquue Sarker photo
 2021-07-27 05:32:24 |  162 | Naser

Jose Luis Latorre Millas photo

Microsoft .NET Framework 4.5 Quickstart Cookbook
Author: Jose Luis Latorre Millas
Pages: 226
Chapter 1: Windows Store Apps 7Introduction 7Building our first Windows Store app 10Adding a splash screen (and app tiles) to our app 21Improving the application to make it compliant with theWindows 8 lifecycle model 24Improving our application tile 33Improving our application with toast notifications 40Chapter 2: Exploring the Top New Features of the CLR 43Introduction 43Creating a portable library 45Controlling the timeout in regular expressions 49Defining the culture for an application domain 52Overriding the default reflection behavior 53Using the new ZipArchive class 56Understanding async and await in .NET 4.5 59Using the new asynchronous file I/O operations 63Chapter 3: Understanding the New Networking Capabilities 67Introduction 67Using the HttpClient and the new System.Net.Http namespaces 68Chapter 4: Understanding the new features of Entity Framework 5.0 75Introduction 75Creating our first ´Code First´ application 76
Chapter 5: Understanding the New Features of ASP.NET 89Introduction 89Creating our first ASP.NET 4.5 Web Forms application 90Configuring our application to use unobtrusive validation 103Using Smart Tasks in the HTML editor 107Using WAI-ARIA support 109Using the Extract to User Control feature 110Using the Page Inspector feature 112Creating an asynchronous HTTP module 114Chapter 6: Implementing WPFs new features 117Introduction 117Implementing asynchronous error handling with INotifyDataErrorInfo 118Using the WeakEvent pattern with WeakEventManager 125Using the dispatchers new features 127Data binding to static properties 130Throttling data source update delays 133LiveShaping – repositioning elements when its bound data changes 138Chapter 7: Applying the New WCF Features 145Introduction 145Using the asynchronous features of WCF 145Using WebSockets 149Using Contract First development 156Chapter 8: Creating and Hosting Our First ASP.NET Web API 161Introduction 161Creating our first ASP.NET web API 162Implementing a CRUD ASP.NET web API 170Setting up a self-hosted ASP.NET web API 175Chapter 9: Using the New Capabilities of WF 181Introduction 181Creating a state machine workflow 182Using the enhanced designer features 193Appendix A: Resources for Further Knowledge 199Resources for knowing more about .NET 4.5 and its tools 199Resources for knowing more about Windows 8 200Resources for knowing more about general development 201

 2021-07-31 18:28:58 |  161 | Naser

ananymous photo

The Web Developer’s SEO Cheat Sheet
Author: ananymous
Pages: 2

آموزش سئو

در اینجا یک صفحه تقلب (یا همان cheatsheet)، که در آن به صورت کلی بسیاری از عوامل موثر در سئو یا بهینه سازی سایت های اینترنتی برای موتورهای جستجو ذکر شده برای شما دوستان بیان شده است.
برای دوستانی که ممکن است آشنایی زیادی با cheatsheet  نداشته باشیند باید این توضیح را اضافه کنیم که cheatsheet ها، حجم زیادی از اطلاعات و نکاتی که باید به یاد داشته باشیم را به طور کلی و خلاصه و سریع، در اختیار ما می گذارند و نیاز ما را از به خاطر سپردن تک تک قواعد مربوطه تا جای ممکن کم می کنند.

 2021-08-02 10:51:08 |  154 | Naser

with charlie rissel photo

Windows 7 Up and Running
Author: with charlie rissel
Pages: 203
1 Planning Deployments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Automating and Customizing Installations. . . . . . . . . . . . . . . . . . . . . . . . 473 Multilingual Solutions for Global Business . . . . . . . . . . . . . . . . . . . . . . . 1314 Supporting Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Part II Desktop Management5 Managing Desktops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2016 Managing Files and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2397 Supporting Mobile Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2718 Configuring Remote Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3119 Managing Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32910 Managing Digital Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39711 Enabling Printing and Faxing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43112 Disk Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47313 Working with File Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51114 Backing Up and Restoring Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58315 Managing Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609Part III Security16 Understanding Logon and Authentication . . . . . . . . . . . . . . . . . . . . . . . 63917 Managing Authorization and Access Control . . . . . . . . . . . . . . . . . . . . . 68318 Using Encrypting File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74719 Implementing TCP/IP Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80320 Implementing Security for Mobile Computers. . . . . . . . . . . . . . . . . . . . 83921 Wireless Networking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85522 Implementing Windows Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873

 2021-07-25 07:36:12 |  152 | Naser

Roberto Ulloa photo
 2021-07-25 07:36:10 |  158 | Naser

Tod Golding photo

آموزش Generics
Author: Tod Golding
Pages: 410
کتاب آموزش NET 2.0 Generics.
کتاب آموزش جنریک

مطالب در یک نگاه:
درباره نویسنده
مقدمه
جنریک
چرا جنریک
Generics را وارد کنید
مشاهده مفهومی تر
اصطلاحات
انواع ساخت
نوع آرگومانها
روشهای Generic
انواع Generic
ارزش نهادن به نوع ایمنی
یک مثال ساده
استفاده از جنریک
قالبهای Generics
Run-Time vs. Compile-Time
Code Bloat
The Brouhaha
آموزش مجامع و نوع تعادل
آموزش کلاس های عمومی
زمینه های استاتیک
آرایه از نوع پارامترها
Generic Delegates
افزودن جنریک به معادله
Delegates in the Framework
Action
Comparison
Generic Constraints
انواع محدودیت
استفاده از جنریک با C + +
کلاس های تو در تو
مواد و روش ها در کلاس های عمومی
استفاده از جنریک با J #
مجموعه Power
و...

 2021-08-05 13:36:27 |  174 | Naser

Francesco Trucchia photo

دانلود رایگان کتاب Pro PHP Refactoring
Author: Francesco Trucchia
Pages: 359

دوره های مرتبط با این کتاب

 2021-07-30 10:23:08 |  161 | Naser

Bill Evjen photo

REAL WORLD .NET 4 C# AND SILVERLIGHT®
Author: Bill Evjen
Pages: 650
CONTENTS
INTRODUCTION xxix
CHAPTER 1: ASP.NET AND JQUERY 1
Understanding Web Forms 2
View State 3
web.confi g Transformations 4
Simplifi ed web.confi g 5
New ASP.NET Web Forms Templates 5
ASP.NET MVC 8
Versions of MVC 8
The Pieces of MVC 9
Model 9
View 10
Controller 11
Action Methods 11
Model Binding 12
URL Routing 12
Accessing a Database 14
MVC Tooling 14
Creating a New Project 14
Referenced Assemblies 16
Site Structure 17
Adding a Controller 18
Adding a View 19
Sample Application 20
Sample Application Database 20
Departments 20
ASP.NET MVC Framework Summary 27
jQuery 28
Manipulating DOM Elements with jQuery 30
Calling Server Code with jQuery 31
jQuery 32
Summary 32
About the Author 32
xvi
CONTENTS
CHAPTER 2: ASP.NET PERFORMANCE 33
Looking at How ASP.NET Handles Page Requests 33
State Management and Caching 35
Understanding State in .NET 36
Working with Sessions 37
Running Sessions In-Process 38
Running Sessions Out of Process 39
Maintaining Sessions on SQL Server 40
Deciding on the State of Sessions 41
Working with Output Caching 42
VaryByParam 43
VaryByHeader 43
VaryByControl 44
VaryByCustom 44
Extending <outputCache> 45
Partial Page (UserControl) Caching 46
Looking at .NET 4’s New Object Caching Option 47
Caching Web Services 50
Hardware Considerations 51
Using Performance Counters 52
Viewing Performance Counters Through an Administration Tool 52
Tips and Tricks 55
Keep Requests Down to a Minimum 55
Make Use of Content Delivery Networks 56
Enable the Browser to Cache Items Longer 57
Enabling Content Compression 59
Location of Content in Your Pages 60
Make JavaScript and CSS External 60
Summary 61
About the Author 61
CHAPTER 3: ETHICAL HACKING OF ASP.NET 63
Ethical Hacking — Is That an Oxymoron? 64
Filling Your Toolbox 65
Fiddler 65
Firebug 67
Internet Explorer 9 Developer Toolbar 68
Lens 69
xvii
CONTENTS
Understanding Session Management 70
Session Management in HTTP 71
Session Management in ASP.NET 72
Attacking the ASP.NET Authentication 72
Deep Dive into ASP.NET Authentication 72
Stealing the Ticket 73
Tampering with the Ticket 75
Hijacking the Login Session 75
Protecting Your Application Against Login Session Hijacking 77
Cross-Site Request Forgery 80
Protecting Against CSRF Attacks 81
Additional Protection Against CSRF 82
Attacking the ASP.NET Session 83
ASP.NET Session Under the Covers 83
Guessing the Session ID 83
Stealing the Session Cookie 84
Testing Your Application Against Session Hijacking 84
Protecting Your Website Against Session Hijacking 85
Session Fixation 88
Protecting Your Application Against Session Fixation Attacks 89
Hacking the View State 90
Peeking into the View State 90
Testing Your View State Against Information Disclosure 91
Encrypting Your View State 92
Tampering with the View State 93
Reposting the View State 94
Tricking Event Handlers 95
Event Validation Internals 96
Hacking Event Validation 96
Pushing the Disabled Button 97
Pushing the Invisible Button 97
Protecting Your Site Against POST Attacks 98
Summary 99
About the Author 99
CHAPTER 4: HOW TO BUILD A REAL WORLD
SILVERLIGHT 5 APPLICATION 101
Setting the Scene for the Application 102
Prototype First Code Later — Using SketchFlow 103
Introducing SketchFlow 104
xviii
CONTENTS
Finding Your Way Around SketchFlow 105
Creating the Application’s Prototype 105
The Map of the Application 106
Screen Mockup 106
Testing the Prototype and Gathering Feedback 108
Data-Binding Primer 110
Hello Data Binding 110
Binding Syntax 110
Binding Modes 112
INotifyPropertyChanged Interface 112
Converters 113
Creating a Data Bound Screen 113
WCF RIA Services in Action 115
Choosing the Service-Layer Technology 116
Hello to You WCF RIA Services 117
Why WCF RIA Services? 118
Architecture and Concepts of RIA Services 118
Creating the Server-Side 119
Setting Up the Solution 119
Data Access Using Entity Framework 121
Creating the Actual Services 122
Convention Is the Rule 125
Meanwhile in the Silverlight Project 126
Loading Data in the MovieSelection Screen 126
Polishing the Screen 128
Applying the MVVM Pattern 129
Diff erent Parts Diff erent Roles 131
The View 131
The ViewModel 131
The Model 131
Choosing the MVVM Approach 131
Picking a Little Helper — MVVM Light 132
Refactoring to MVVM 132
The Model 132
The ViewModel 133
The View 135
At Your Command 137
Messaging 139
Creating Customized Controls 140
Control Templates 140
Summary 143
About the Author 143
xix
CONTENTS
CHAPTER 5: SILVERLIGHT — THE SILVER LINING FOR
LINE-OF-BUSINESS APPLICATIONS 145
Getting Started 146
Hello Business World! 146
The Application Class 147
The UserControl Class 148
Project Templates 149
Silverlight Application 149
Silverlight Class Library 150
Silverlight Business Application 150
Silverlight Navigation Application 150
Other Application Templates 150
XAML Is Object XML 151
Hosting Silverlight Applications 152
Providing Excellent IApplicationService 153
Choosing the Right Silverlight Framework 155
Getting SOLID: MVC MVP and MVVM 155
Dependency Injection and Inversion of Control 157
The Managed Extensibility Framework 158
MVVM Frameworks 161
Prism 161
MVVM Light 162
nRoute 162
Caliburn.Micro 162
Jounce 163
Taking Silverlight Out-of-the-Box 164
Dynamic Loading 164
Out-of-Browser Applications 165
Isolated Storage 165
Communication 166
The Future of Silverlight 167
Summary 167
About the Author 168
CHAPTER 6: TIPS AND TRICKS FOR
DESIGNERS AND DEVELOPERS 169
Understanding the Diff erences Between
Silverlight and WPF 170
Choosing XAML over Other Markups 170
Understanding the Separation of Concerns 170
xx
CONTENTS
Tips and Tricks for Designers 170
Naming Your Objects 170
Designing in Photoshop 171
Importing Assets from Photoshop 172
Using Sample Data for a Better Design Experience 172
Tips and Tricks for Developers 174
Showing Sample Data in Design Mode 174
Using Behaviors to Make Things Easier 175
Summary 177
About the Author 177
CHAPTER 7: MVVM PATTERNS IN SILVERLIGHT 4 179
Developing Your Own Framework 180
Getting to Know MVVM 180
Creating an MVVM Framework 182
Framework Goals 182
Framework Technologies 184
Getting Started 185
Defi ning ViewModels 186
Creating New Views and View Models 195
Registering Views and View Models 197
Displaying Views 202
Building Composite Screens 208
Displaying Dialogs 214
Communicating Between Views 216
Putting the MVVM Framework to Use 217
Existing MVVM Frameworks 217
Prism 218
MVVM Light 218
Caliburn.Micro 219
Other Frameworks 219
Additional Considerations 220
Data Binding 220
Commands 220
Data Access 221
Summary 221
About the Author 222
xxi
CONTENTS
CHAPTER 8: WINDOWS PHONE “MANGO”
FOR SILVERLIGHT DEVELOPERS 223
Hardware Foundation 223
Camera API 223
Camera Best Practices 227
Sensors API 227
Gyroscope 227
Compass 228
Motion 229
Sensors Best Practices 230
Software Foundation 230
Runtime Improvements 230
Tools Enhancements 230
Network Sockets 231
Silverlight/XNA Hybrid Applications 233
Local Database 234
Application Model 235
Fast Application Switching (FAS) 235
Multitasking 237
Background Agents 237
Notifi cations 239
Background Transfer Service 240
Integration Service 241
Secondary Tiles 241
Push Notifi cations 242
Contacts/Appointments Data Access 243
Summary 244
About the Author 245
CHAPTER 9: PRAGMATIC SERVICES
COMMUNICATION WITH WCF 247
Sample Project 248
Service Orientation Revisited 249
Distributed Means Communication 249
Service Orientation 251
WCF Basics 101 252
Basic Toolset 252
xxii
CONTENTS
The Power of the B 254
Less Is More 256
Application Scenario 256
Requirements 256
Application Architecture 256
Application Structure 258
Modeling Services 259
Contracts 260
Service Contracts 260
Operation Contracts 261
Messages 265
Message Contracts 265
Data Contracts 266
Fault Contracts 268
Paging Data 269
Metadata 270
Flat WSDL 271
Metadata URLs 273
Implementing Services 276
Validation 277
Mapping 277
Tracing 280
Hosting Services 283
Customizing Hosting 283
Testing with Console Hosts 284
Self-Hosting with a Windows Service 284
Web-Hosting with WAS 287
Bootstrapping 289
Consuming Services 291
Shared Contracts 292
Asynchronous Calls 293
Service Agent Pattern 293
Complementing Service Approach 297
Web Programming Model 298
Hosting and Consuming 300
Optimization Strategies 302
Tweaking 302
Streaming 306
Summary 308
About the Author 309
xxiii
CONTENTS
CHAPTER 10: SECURING WCF SERVICES USING
THE WINDOWS IDENTITY FOUNDATION (WIF) 311
Identity in .NET Applications 311
Identity in the Base Class Library 312
Identity in WCF 313
Windows Identity Foundation 314
Security Token Handlers 315
Claims Transformation 316
Claims-Based Authorization 317
Recapping the Building Blocks 319
WCF and WIF 319
Prerequisites 319
Confi guring and Enabling WIF 320
Windows Authentication 321
Username/Password Authentication 322
X.509 Certifi cate Authentication 324
SAML Token Authentication 325
Sessions 326
Recapping Confi guring and Enabling 329
Transforming and Accessing Claims 329
Authorization 330
Tracing 333
Possible Solutions for Securing the
Movie Database SOAP Service 333
Internal Users 334
Adding Windows Authentication 334
Claims Transformation 336
Authorization 337
Adding an External Content Provider 340
Adding the Service Endpoint for External Users 341
Adjusting Claims Transformation 342
The Client 343
Assessing the Solution 344
Possible Solutions for Securing the
Movie Database REST Service 345
Internal Users 345
Token-Based Authentication 345
Summary 347
About the Author 348
xxiv
CONTENTS
CHAPTER 11: APPLIED .NET TASK PARALLEL LIBRARY 349
Problems and Solutions 350
Using Tasks 352
Task Class 353
Closures 355
Applying Tasks 359
Understanding TPL-Style Exception Handling 363
Understanding AggregateException 363
Implementing Exception Handling 363
Understanding Cancellations 365
Applying Cancellations — Basics 365
Applying Cancellations — Register Action Interlocked 368
Using Concurrent Collections — ConcurrentQueue 370
Understanding Continuations 372
TaskCompletionSource 374
Implementing Continuations 375
AsyncState 379
Using the BlockingCollection Class 380
Working with a BlockingCollection 382
Understanding SpinWait.SpinUntil 385
Summary 387
About the Author 387
CHAPTER 12: THE WF PROGRAMMING LANGUAGE 389
Getting Started 390
Declarative Workfl ow Syntax 392
Variables and Arguments 393
Expressions 394
Properties 394
“Dynamic” Properties 395
Controlling the Flow of Execution 396
Procedural Style 396
Exception Handling 398
Transaction and Compensation 399
Parallel Execution 402
Flowchart Style 403
Messaging 405
Building Custom Activities 410
Activity 410
xxv
CONTENTS
CodeActivity 412
AsyncCodeActivity 413
NativeActivity 416
Understanding When to Use Custom Activities 418
Composite Activity 418
Life Cycle of an Activity 419
Using Persistence 422
Hosting Workfl ows Inside Windows AppFabric 423
Further Reading 424
Summary 425
About the Author 425
CHAPTER 13: PRACTICAL WPF DATA BINDING 427
Sample Application 427
Using MVVM 428
Understanding the Sample Application Structure 429
Understanding the Model 429
Understanding the ViewModel 430
Understanding the View 432
Using a Locator Class 433
Data Binding Overview 436
Understanding Data Context 437
Understanding Element-to-Element Binding 438
Understanding Binding Modes 438
Binding Based on Interfaces 438
Using Binding Commands 439
Using MVVM and DelegateCommand 440
Creating a ViewModel 441
Defi ning Commands with ViewModels 442
Binding Commands from XAML Code 443
Using Simple Data Binding 444
Value Conversion 445
Binding Multiple Properties 447
Binding to Lists 449
Filtering with CollectionViewSource 454
Displaying Item Details of Lists 456
Using Data Templates 458
Grouping 459
Using Hierarchical Data Binding 461
Binding Long Lists 466
xxvi
CONTENTS
Editing Data 469
Updating Data 469
Validation 476
Displaying Errors 477
Editing with a Grid 478
Summary 488
About the Author 488
CHAPTER 14: DRIVING DEVELOPMENT
WITH USER STORIES AND BDD 489
Capturing Requirements as Features with User Stories 489
Problems with Formal Requirements Documentation 490
Using User Stories to Focus on Business Value and
Promote Communication 490
Feature Scenarios and Story Acceptance Criteria 491
The Shortcomings of TDD 492
Focusing on Behavior with BDD 492
Outside-In Development 493
Turning Features into Code Using BDD Frameworks 494
Using NUnit in a BDD Style 494
MSpec 495
Ruby Cucumber and the Gherkin Domain
Specifi c Language (DSL) 496
SpecFlow 496
The Tic-Tac-Toe BDD Kata 497
Capturing the Tic-Tac-Toe Features with User Stories 498
Getting Started with the Project 501
Scenario: Starting a Game 503
Integrating the Starting a Game Scenario 514
Scenario: Alternating Players 515
Behavior 1: Ask for the Next Player 519
Behavior 2: Place the Token 523
Behavior 3: Display the Game 528
Behavior 4: Display the Next Player 533
Integrating the Alternate a Player Scenario 538
Scenario: Displaying the Game 539
Behavior 1: Placing the Token on the Grid 540
Behavior 2: Confi rming Placement of a Token 544
Behavior 3: Obtaining a Read-only View for Rendering 546
xxvii
CONTENTS
Integrating the Displaying a Game Scenario 551
Scenario: Winning the Game with Three in a Row 551
Behavior 1: End the Game if There Is a Winner 552
Behavior 2: Check for a Winning Line 554
Behavior 3: Displaying the Winner to the View 557
Behavior 4: Check the Grid for a Winner 559
Integrating the Winning a Game with Three in a Row Scenario 566
Completing the Game 567
Moving Forward 567
Summary 568
About the Author 568
CHAPTER 15: AUTOMATED UNIT TESTING 569
Understanding Unit Tests 569
Scope LEGOs and Connected Parts 569
Understanding Test-Driven Development 570
Understanding the Benefi ts of a Test-First Approach 571
Testable Code 571
Self-Documenting Code 571
Defensive Code 571
Maintainable Code 571
Code Smell Detector 572
Getting Oriented with a Basic Example 572
Assign Act Assert 573
Assign 573
Act 573
Assert 573
Code Tests Frameworks and Runners 573
Code 574
Tests 574
Testing Framework 574
Test Runner 575
Using CI Servers and Source Control 577
Solution/Project Structure 578
Using NuGet to Blend nUnit and VS 2010 579
Methods with Fakes and Mocks 580
Faking with Dependency Injection 580
Mocking Frameworks 582
Class Attributes Test Attributes and Special Methods 583
xxviii
CONTENTS
Testing the Hard to Test — Pushing the Edges 584
Model View Controller (MVC) 586
Model View Presenter (MVP) 586
Model View ViewModel (MVVM) 587
Using Sensing Variables to Refactor Nontestable Code 587
Using Automated Unit Testing with Other Practices 588
Summary 590
About the Author 590

 2021-08-01 19:38:08 |  149 | Naser

David Hill photo

Microsoft Application Architecture Guide
Author: David Hill
Pages: 560
Forewords and PrefaceForeword by S. Somasegar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiForeword by Scott Guthrie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiiPreface by David Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiiiIntroducing the Guide xxviiAudience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviiiHow to Use This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviiiFeedback and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxixTechnical Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxixCommunity and Newsgroup Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxixThe Team Who Brought You This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxContributors and Reviewers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxTell Us About Your Success. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiSoftware Architecture and Design 1Chapter 1: What Is Software Architecture? 3Why Is Architecture Important?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4The Goals of Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5The Architectural Landscape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6The Principles of Architecture Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Key Architecture Principles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Chapter 2: Key Principles of Software Architecture 9Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Key Design Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Key Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Determine the Application Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Determine the Deployment Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Determine the Appropriate Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Determine the Quality Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Determine the Crosscutting Concerns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 3: Architectural Patterns and Styles 19Overview. 19What Is an Architectural Style?. 19Summary of Key Architectural Styles . 20Combining Architectural Styles. 21Client/Server Architectural Style. 21Component-Based Architectural Style . 23Domain Driven Design Architectural Style. 25Layered Architectural Style. 26Message Bus Architectural Style. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29N-Tier / 3-Tier Architectural Style . 30Object-Oriented Architectural Style. 32Service-Oriented Architectural Style. 33Additional Resources. 35Chapter 4: A Technique for Architecture and Design 37Overview. 37Inputs Outputs and Design Steps. 37Identify Architecture Objectives . 39Scope and Time. 40Key Scenarios. 41Architecturally Significant Use Cases. 41Application Overview. 42Relevant Technologies . 43Whiteboard Your Architecture. 44Key Issues . 45Quality Attributes . 45Crosscutting Concerns . 46Designing for Issue Mitigation. 46Candidate Solutions. 48Baseline and Candidate Architectures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Architectural Spikes . 49What to Do Next. 50Reviewing Your Architecture . 50Scenario-Based Evaluations. 50Representing and Communicating Your Architecture Design. 51Additional Resources . 52
Design Fundamentals 53Chapter 5: Layered Application Guidelines 55Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Logical Layered Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Presentation Business and Data Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Services and Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Services Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  58Design Steps for a Layered Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Step 1 – Choose Your Layering Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Step 2 – Determine the Layers You Require. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Step 3 – Decide How to Distribute Layers and Components. . . . . . . . . . . . . . . . . . . . . . . . . 62Step 4 – Determine If You Need to Collapse Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Step 5 – Determine Rules for Interaction Between Layers . . . . . . . . . . . . . . . . . . . . . . . . . . 63Step 6 – Identify Cross Cutting Concerns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Step 7 – Define the Interfaces between Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Step 8 – Choose Your Deployment Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Step 9 – Choose Communication Protocols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Chapter 6: Presentation Layer Guidelines 67Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 71Composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . 71Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73User Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 74Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Mobile Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Rich Client Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Rich Internet Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Web Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Performance Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Design Steps for the Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80patterns & practices Offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Chapter 7: Business Layer Guidelines 83Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . 88Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Coupling and Cohesion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Logging Auditing and Instrumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Design Steps for the Business Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93patterns & practices Offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Chapter 8: Data Layer Guidelines 95Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Batching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Binary Large Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 100Data Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Object Relational Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Queries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 103Stored Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Stored Procedures vs. Dynamic SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Performance Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Design Steps for the Data Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Chapter 9: Service Layer Guidelines 115Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 119Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 120Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Messaging Channels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Message Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Message Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Message Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Message Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Message Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Service Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124REST and SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Design Considerations for REST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Design Considerations for SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Design Steps for the Service Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Chapter 10: Component Guidelines 135Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135General Guidelines for Component Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Layered Component Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Presentation Layer Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Services Layer Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Business Layer Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Data Layer Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Crosscutting Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142patterns & practices Offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Chapter 11: Designing Presentation Components 145Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Step 1 – Understand the UI Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Step 2 – Determine the UI Type Required. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Step 3 – Choose the UI Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Step 4 – Design the Presentation Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150User Interface Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Presentation Logic Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Presentation Model Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Step 5 – Determine the Binding Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Step 6 – Determine the Error Handling Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Step 7 – Determine the Validation Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157patterns & practices Offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Chapter 12: Designing Business Components 159Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Step 1 – Identify Business Components Your ApplicationWill Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Step 2 – Make Key Decisions for Business Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Step 3 – Choose Appropriate Transaction Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Step 4 – Identify How Business Rules Are Handled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Step 5 – Identify Patterns That Fit the Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Chapter 13: Designing Business Entities 167Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Step 1 – Choose the Representation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Step 2 – Choose a Design for Business Entities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Step 3 – Determine Serialization Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170Domain Driven Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Chapter 14: Designing Workflow Components 173Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Step 1 – Identify the Workflow Style Using Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Step 2 – Choose an Authoring Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Step 3 – Determine How Rules Will Be Handled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Step 4 – Choose a Workflow Solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Step 5 – Design Business Components to Support Workflow . . . . . . . . . . . . . . . . . . . . . . . . . 176Windows Workflow Foundation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177BizTalk Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177BizTalk with ESB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Using Windows Workflow Foundation and BizTalk Together. . . . . . . . . . . . . . . . . . . . . . . . . 180Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Chapter 15: Designing Data Components 181Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181Step 1 – Choose a Data Access Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Step 2 – Choose How to Retrieve and Persist Business Objects from the Data Store. . . . . . 183Step 3 –Determine How to Connect to the Data Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 184Connection Pooling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Transactions and Concurrency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Step 4 – Determine Strategies for Handling Data Source Errors. . . . . . . . . . . . . . . . . . . . . . . 187Exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Retry Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 188Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Step 5 – Design Service Agent Objects (Optional). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Chapter 16: Quality Attributes 191Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Common Quality Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Availability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Conceptual Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Maintainability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 196Manageability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 198Reliability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 199Reusability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . 200Scalability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Supportability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Testability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 202User Experience / Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Chapter 17: Crosscutting Concerns 205Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 208Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 210Configuration Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Logging and Instrumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
State Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Design Steps for Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Step 1 – Determine the Data to Cache. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Step 2 – Determine Where to Cache Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Step 3 – Determine the Format of Your Data to Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Step 4 – Determine a Suitable Cache Management Strategy . . . . . . . . . . . . . . . . . . . . . . 216Step 5 – Determine How to Load the Cache Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217Design Steps for Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Step 1 – Identify Exceptions That You Want to Handle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Step 2 – Determine Your Exception Detection Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Step 3 – Determine Your Exception Propagation Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . 219Step 4 – Determine Your Custom Exception Strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Step 5 – Determine Appropriate Information to Gather. . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Step 6 – Determine Your Exception Logging Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Step 7 – Determine Your Exception Notification Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . 221Step 8 – Determine How to Handle Unhandled Exceptions. . . . . . . . . . . . . . . . . . . . . . . . . 222Design Steps for Validating Input and Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222Step 1 – Identify your Trust Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222Step 2 – Identify Key Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Step 3 – Determine Where to Validate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Step 4 – Identify Validation Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224patterns & practices Solution Assets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Chapter 18: Communication and Messaging 227Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227General Design Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Message-Based Communication Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Asynchronous vs. Synchronous Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Coupling and Cohesion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Data Formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 231Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 233State Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Contract First Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Transport Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Message Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Technology Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23WCF Technology Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236ASMX Technology Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Chapter 19: Physical Tiers and Deployment 239Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Distributed and Nondistributed Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Nondistributed Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Distributed Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Performance and Design Considerations for Distributed Environments. . . . . . . . . . . . . . . 241Recommendations for Locating Components within a DistributedDeployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Distributed Deployment Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Client-Server Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243n-Tier Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242-Tier Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243-Tier Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244-Tier Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Web Application Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Rich Internet Application Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Rich Client Application Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Performance Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Load-balanced Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Affinity and User Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Application Farms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Reliability Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Failover Cluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Security Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Impersonation/Delegation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Trusted Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Multiple Trusted Service Identities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254Scale Up and Scale Out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Considerations for Scaling Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Designing to Support Scale Out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Design Implications and Tradeoffs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Network Infrastructure Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Manageability Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Application Archetypes 263Chapter 20: Choosing an Application Type 265Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Application Archetypes Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Application Type Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Mobile Application Archetype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Rich Client Application Archetype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Rich Internet Application Archetype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Service Archetype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Web Application Archetype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Chapter 21: Designing Web Applications 277Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Application Request Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 282Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Logging and Instrumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Page Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Page Rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  286Session Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Design Considerations for Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Business Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Data Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 288Service Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  288Testing and Testability Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290NonDistributed Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290Distributed Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Load Balancing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  292Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Chapter 22: Designing Rich Client Applications 297Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300Business Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 301Composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 302Configuration Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Data Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304Maintainability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 305Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306State Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Data Handling Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Caching Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Data Concurrency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Data Binding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 310Offline/Occasionally Connected Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Stand-alone Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Client/Server Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313N-Tier Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Deployment Technologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Chapter 23: Designing Rich Internet Applications 319Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Business Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 324Composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 325Data Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 327Media and Graphics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328Portability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 328Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329State Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Security Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Data Handling Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334Installation of the RIA Plug-In. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334Distributed Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Load Balancing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  336Web Farm Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Chapter 24: Designing Mobile Applications 339Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Authentication and Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 344Configuration Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345Data Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345Device Specifics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 347Porting Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 349Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . 350User Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 350Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352Microsoft Silverlight for Mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.NET Compact Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352Windows Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Windows Embedded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Chapter 25: Designing Service Applications 359Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359General Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361Specific Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363Authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . 364Business Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . 365Data Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366Message Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367Message Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367Message Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368Message Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Message Exchange Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369Representational State Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370Service Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  371SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373Technology Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373Deployment Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Chapter 26: Designing Hosted and Cloud Services 379Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Cloud Computing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Common Vocabulary for Hosted and Cloud Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381Benefits of Cloud Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382Benefits for ISVs and Service Hosts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382Benefits for Enterprise Service Consumers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383Design Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Data Isolation and Sharing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Data Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386Data Storage and Extensibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387Identity Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389Multi-tenancy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 392On-premises or Off-premises Build or Buy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 394Service Composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395Service Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397Service Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399Relevant Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400Additional Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Chapter 27: Designing Office Business Applications 403Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403Components of an Office Business Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404Key Scenarios for Office Business Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405Enterprise Content Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406Business Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407Unified Messaging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Common OBA Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408Extended Reach Channel. . . . . . . . . .

 2021-07-23 20:47:21 |  172 | Naser

Roland Hess photo

Tradigital Blender A CG Animator’s Guide to Applying the Classic Principles of Animation
Author: Roland Hess
Pages: 313
Chapter 1: An Introduction to Character Animation in Blender . . . . . . 1Character Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2The Twelve Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Squash and Stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Anticipation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Staging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Overlap and Follow Through. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Slow In and Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Secondary Action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Exaggeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Solid Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Appeal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Straight Ahead Action and Pose to Pose . . . . . . . . . . . . . . . . . . . . . 16Blender’s Approach to Character Animation . . . . . . . . . . . . . . . . . . . . . .17What We Won’t Be Doing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21Chapter 2: Your Tool Kit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23Optimizing the Screen for Animation . . . . . . . . . . . . . . . . . . . . . . . . . . .23Controlling the Sample Character . . . . . . . . . . . . . . . . . . . . . . . . . . . 26The F-Curve Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37The Dope Sheet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Chapter 3: How to Not Waste Your Time . . . . . . . . . . . . . . . . . . . . . .61Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62Character Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63A Brief Interlude on the Subject of Composition . . . . . . . . . . . . . . . . . .66Contrast and Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Long Shots Medium Shots and Close-Ups. . . . . . . . . . . . . . . . . . . . 69The Rule of Thirds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Framing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Object Location and Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Storyboarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Compiling a Story Reel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Aspect Ratios and Resolution or “Mommy Why is that Manso Skinny?”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Preparing a File for Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92On Acting and Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Chapter 4: Basic Posing and Key Framing . . . . . . . . . . . . . . . . . . . . . 99First Pose: Walking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Pose-to-Pose and Straight Ahead Animation . . . . . . . . . . . . . . . . . . . . 122Continued Posing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Keeping a Static Shot Alive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Reviewing the Poses with an Eye to the Principles . . . . . . . . . . . . . . . 137Staging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137Exaggeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138Solid Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138Playback and Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Chapter 5: Anticipation Follow-Through and OtherInteresting Poses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Analyzing Your Poses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Walking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Putting the Walk into Practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Chapter 6: Interpolation Timing Breakdowns and Velocity . . . . . . 173Pose Timing and Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Techniques for Moving Holds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Fixing Velocity in the Shot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178Breakdowns for Guiding Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184Slow In/Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Chapter 7: Fine Tuning Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Overlapping Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Breaking Simultaneous Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Sequential Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Chapter 8: A Second Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Deliberate Secondary Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221What Not To Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Another Example of Deliberate Secondary Action . . . . . . . . . . . . . . . .226Involuntary Secondary Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229Automating Secondary Action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233Real Hair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246Chapter 9: Straight Ahead Animation. . . . . . . . . . . . . . . . . . . . . . . .247Animating the Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248A Final Note On Pose-to-Pose and Straight Ahead Animation . . . . . . .263Chapter 10: Animation Extras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265IK/FK Switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265Picking Up and Dropping Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269The Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271The Grab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272The Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274NLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275Repeating and Blending Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Examining Different Takes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282Animating the Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289Appendix: Animation Playback and Rendering . . . . . . . . . . . . . . . . .291Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297

 2021-07-31 17:06:09 |  152 | Naser

Andrew Troelsen photo

Pro VB 2008 and the .NET 3.5 Platform
Author: Andrew Troelsen
Pages: 1409
Contents at a GlanceAbout the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixAbout the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixAcknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxIntroduction and Welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiPART 1 n n n Introducing Visual Basic 2008 and the.NET PlatformnCHAPTER 1 The Philosophy of .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3nCHAPTER 2 Building Visual Basic 2008 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35PART 2 n n n Core VB Programming ConstructsnCHAPTER 3 VB 2008 Programming Constructs Part I . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65nCHAPTER 4 VB 2008 Programming Constructs Part II. . . . . . . . . . . . . . . . . . . . . . . . . . . 103nCHAPTER 5 Designing Encapsulated Class Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129nCHAPTER 6 Understanding Inheritance and Polymorphism . . . . . . . . . . . . . . . . . . . . . . 173nCHAPTER 7 Understanding Structured Exception Handling . . . . . . . . . . . . . . . . . . . . . . 207nCHAPTER 8 Understanding Object Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233PART 3 n n n Advanced VB Programming ConstructsnCHAPTER 9 Working with Interface Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255nCHAPTER 10 Collections Generics and Nullable Data Types . . . . . . . . . . . . . . . . . . . . . 291nCHAPTER 11 Delegates Events and Lambdas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327nCHAPTER 12 Operator Overloading and Custom Conversion Routines . . . . . . . . . . . . . 359nCHAPTER 13 VB 2008–Specific Language Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383nCHAPTER 14 An Introduction to LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
PART 4 n n n Programming with .NET AssembliesnCHAPTER 15 Introducing .NET Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437nCHAPTER 16 Type Reflection Late Binding and Attribute-Based Programming . . . . 483nCHAPTER 17 Processes AppDomains and Object Contexts. . . . . . . . . . . . . . . . . . . . . . . 517nCHAPTER 18 Building Multithreaded Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537nCHAPTER 19 .NET Interoperability Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571PART 5 n n n Introducing the .NET Base Class LibrariesnCHAPTER 20 File and Directory Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607nCHAPTER 21 Introducing Object Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633nCHAPTER 22 ADO.NET Part I: The Connected Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653nCHAPTER 23 ADO.NET Part II: The Disconnected Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . 705nCHAPTER 24 Programming with the LINQ APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759nCHAPTER 25 Introducing Windows Communication Foundation . . . . . . . . . . . . . . . . . . . 795nCHAPTER 26 Introducing Windows Workflow Foundation . . . . . . . . . . . . . . . . . . . . . . . . . 843PART 6 n n n Desktop Applications with Windows FormsnCHAPTER 27 Introducing Windows Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883nCHAPTER 28 Rendering Graphical Data with GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929nCHAPTER 29 Programming with Windows Forms Controls. . . . . . . . . . . . . . . . . . . . . . . . 983PART 7 n n n Desktop Applications with WPFnCHAPTER 30 Introducing Windows Presentation Foundation and XAML. . . . . . . . . . . 1047nCHAPTER 31 Programming with WPF Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103nCHAPTER 32 WPF 2D Graphical Rendering Resources and Themes . . . . . . . . . . . . . 1167PART 8 n n n Building Web Applications with ASP.NETnCHAPTER 33 Building ASP.NET Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215nCHAPTER 34 ASP.NET Web Controls Themes and Master Pages . . . . . . . . . . . . . . . . 1261nCHAPTER 35 ASP.NET State Management Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . 1297INDEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1331

 2021-07-25 10:40:50 |  162 | Naser


LARRY ULLMAN photo

دانلود کتاب Effortless E-Commerce with PHP and MySQL
Author: LARRY ULLMAN
Pages: 411

دوره های مرتبط با این کتاب

 2021-07-30 12:55:13 |  168 | Naser

Fourth Edition photo
 2019-04-04 11:35:04 |  1 | Naser


Michel Anders photo
 2021-07-30 07:15:16 |  166 | Naser

Alexei photo

JavaScript® Programmer’s Reference
Author: Alexei
Pages: 1035
دوره آموزش Javascript
JavaScript® Programmer’s ReferenceIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvChapter 1: Introduction to JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Chapter 2: JavaScript in the Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23Chapter 3: JavaScript Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39Chapter 4: Expressions Operators and Statements . . . . . . . . . . . . . . . . . . . . . .61Chapter 5: Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103Chapter 6: The Global and Object Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . .129Chapter 7: The String and RegExp Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . .149Chapter 8: The Boolean Number and Math Objects . . . . . . . . . . . . . . . . . . . . .199Chapter 9: The Array and Date Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217Chapter 10: Object Oriented Development . . . . . . . . . . . . . . . . . . . . . . . . . . . .251Chapter 11: Windows and Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271Chapter 12: Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305Chapter 13: The Document Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341Chapter 14: Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375Chapter 15: Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403Chapter 16: Dynamic HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431Chapter 17: JavaScript Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475Chapter 18: Client-Side Data and Persistence . . . . . . . . . . . . . . . . . . . . . . . . . .487Chapter 19: Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511Chapter 20: Working with XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .533Chapter 21: Working with JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555Chapter 22: Unique Browser Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .573Chapter 23: Scripting Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .591Chapter 24: Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .613Chapter 25: Performance Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .631Appendix A: Core JavaScript Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .649Appendix B: JavaScript Global Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .723Appendix C: JavaScript Global Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . .895Appendix D: JavaScript Global Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .899Appendix E: Reserved and Special Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . .909Appendix F: Document Object Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . .911Appendix G: Resources on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .973Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .975

 2021-07-31 15:18:47 |  165 | Naser

Ed Burnette photo

Hello Android
Author: Ed Burnette
Pages: 302
Acknowledgments 9Preface 10What Makes Android Special? . . . . . . . . . . . . . . . . . . 10Who Should Read This Book? . . . . . . . . . . . . . . . . . . . 11What’s in This Book? . . . . . . . . . . . . . . . . . . . . . . . . 12What’s New in the Third Edition? . . . . . . . . . . . . . . . . . 12Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . 14Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . . . . 14I Introducing Android 161 Quick Start 171.1 Installing the Tools . . . . . . . . . . . . . . . . . . . . . 171.2 Creating Your First Program . . . . . . . . . . . . . . . . 231.3 Running on the Emulator . . . . . . . . . . . . . . . . . 231.4 Running on a Real Phone . . . . . . . . . . . . . . . . . 281.5 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 292 Key Concepts 302.1 The Big Picture . . . . . . . . . . . . . . . . . . . . . . . 302.2 It’s Alive! . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.3 Building Blocks . . . . . . . . . . . . . . . . . . . . . . . 392.4 Using Resources . . . . . . . . . . . . . . . . . . . . . . 402.5 Safe and Secure . . . . . . . . . . . . . . . . . . . . . . . 402.6 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 41II Android Basics 423 Designing the User Interface 433.1 Introducing the Sudoku Example . . . . . . . . . . . . . 433.2 Designing by Declaration . . . . . . . . . . . . . . . . . 443.3 Creating the Opening Screen . . . . . . . . . . . . . . . 453.4 Using Alternate Resources . . . . . . . . . . . . . . . . . 553.5 Implementing an About Box . . . . . . . . . . . . . . . . 573.6 Applying a Theme . . . . . . . . . . . . . . . . . . . . . . 613.7 Adding a Menu . . . . . . . . . . . . . . . . . . . . . . . 643.8 Adding Settings . . . . . . . . . . . . . . . . . . . . . . . 653.9 Starting a New Game . . . . . . . . . . . . . . . . . . . . 663.10 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . 693.11 Exiting the Game . . . . . . . . . . . . . . . . . . . . . . 713.12 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 714 Exploring 2D Graphics 734.1 Learning the Basics . . . . . . . . . . . . . . . . . . . . . 734.2 Adding Graphics to Sudoku . . . . . . . . . . . . . . . . 784.3 Handling Input . . . . . . . . . . . . . . . . . . . . . . . 874.4 The Rest of the Story . . . . . . . . . . . . . . . . . . . . 934.5 Making More Improvements . . . . . . . . . . . . . . . . 1034.6 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 1035 Multimedia 1055.1 Playing Audio . . . . . . . . . . . . . . . . . . . . . . . . 1055.2 Playing Video . . . . . . . . . . . . . . . . . . . . . . . . 1125.3 Adding Sounds to Sudoku . . . . . . . . . . . . . . . . . 1155.4 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 1196 Storing Local Data 1206.1 Adding Options to Sudoku . . . . . . . . . . . . . . . . . 1206.2 Continuing an Old Game . . . . . . . . . . . . . . . . . 1226.3 Remembering the Current Position . . . . . . . . . . . . 1246.4 Accessing the Internal File System . . . . . . . . . . . . 1266.5 Accessing SD Cards . . . . . . . . . . . . . . . . . . . . 1276.6 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 128III Beyond the Basics 1297 The Connected World 1307.1 Browsing by Intent . . . . . . . . . . . . . . . . . . . . . 1317.2 Web with a View . . . . . . . . . . . . . . . . . . . . . . . 1357.3 From JavaScript to Java and Back . . . . . . . . . . . . 1407.4 Using Web Services . . . . . . . . . . . . . . . . . . . . . 1477.5 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 1608 Locating and Sensing 1618.1 Location Location Location . . . . . . . . . . . . . . . . 1618.2 Set Sensors to Maximum . . . . . . . . . . . . . . . . . 1688.3 Bird’s-Eye View . . . . . . . . . . . . . . . . . . . . . . . 1728.4 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 1779 Putting SQL to Work 1789.1 Introducing SQLite . . . . . . . . . . . . . . . . . . . . . 1789.2 SQL 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799.3 Hello Database . . . . . . . . . . . . . . . . . . . . . . . 1819.4 Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . 1899.5 Using a ContentProvider . . . . . . . . . . . . . . . . . . 1929.6 Implementing a ContentProvider . . . . . . . . . . . . . 1959.7 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 19610 3D Graphics in OpenGL 19810.1 Understanding 3D Graphics . . . . . . . . . . . . . . . . 19810.2 Introducing OpenGL . . . . . . . . . . . . . . . . . . . . 19910.3 Building an OpenGL Program . . . . . . . . . . . . . . . 20010.4 Rendering the Scene . . . . . . . . . . . . . . . . . . . . 20210.5 Building a Model . . . . . . . . . . . . . . . . . . . . . . 20610.6 Lights Camera ... . . . . . . . . . . . . . . . . . . . . . 20910.7 Action! . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21210.8 Applying Texture . . . . . . . . . . . . . . . . . . . . . . 21210.9 Peekaboo . . . . . . . . . . . . . . . . . . . . . . . . . . . 21610.10 Measuring Smoothness . . . . . . . . . . . . . . . . . . 21710.11 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 218IV The Next Generation 21911 Multi-Touch 22011.1 Introducing Multi-Touch . . . . . . . . . . . . . . . . . . 22011.2 Building the Touch Example . . . . . . . . . . . . . . . 22211.3 Understanding Touch Events . . . . . . . . . . . . . . . 22511.4 Setting Up for Image Transformation . . . . . . . . . . 22811.5 Implementing the Drag Gesture . . . . . . . . . . . . . . 22911.6 Implementing the Pinch Zoom Gesture . . . . . . . . . 23011.7 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 23212 There’s No Place Like Home 23312.1 Hello Widget . . . . . . . . . . . . . . . . . . . . . . . . . 23312.2 Live Wallpaper . . . . . . . . . . . . . . . . . . . . . . . . 24212.3 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 25413 Write Once Test Everywhere 25613.1 Gentlemen Start Your Emulators . . . . . . . . . . . . 25713.2 Building for Multiple Versions . . . . . . . . . . . . . . . 25713.3 Evolving with Android APIs . . . . . . . . . . . . . . . . 25913.4 Bug on Parade . . . . . . . . . . . . . . . . . . . . . . . . 26513.5 All Screens Great and Small . . . . . . . . . . . . . . . . 26713.6 Installing on the SD Card . . . . . . . . . . . . . . . . . 26813.7 Fast-Forward >> . . . . . . . . . . . . . . . . . . . . . . . 27014 Publishing to the Android Market 27114.1 Preparing . . . . . . . . . . . . . . . . . . . . . . . . . . . 27114.2 Signing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27214.3 Publishing . . . . . . . . . . . . . . . . . . . . . . . . . . 27314.4 Updating . . . . . . . . . . . . . . . . . . . . . . . . . . . 27514.5 Closing Thoughts . . . . . . . . . . . . . . . . . . . . . . 276V Appendixes 277A Java vs. the Android Language and APIs 278A.1 Language Subset . . . . . . . . . . . . . . . . . . . . . . 278A.2 Standard Library Subset . . . . . . . . . . . . . . . . . . 280A.3 Third-Party Libraries . . . . . . . . . . . . . . . . . . . . 281B Bibliography 282Index 283

 2021-07-31 14:12:48 |  159 | Naser

Klaus Aschenbrenner photo

کتاب آموزش SQL SERVER پیشرفته
Author: Klaus Aschenbrenner
Pages: 587
کتاب آموزش SQL SERVER پیشرفته
کتاب آموزش SQL SERVER پیشرفته Service Broker

مطالب در یک نگاه:
درباره نویسنده
مقدمه
اصول مبتنی بر پردازش پیام
معرفی Service Broker
خدمات بروکر در عمل
سرویس فعال سازی کارگزار
خدمات کارگزار با کد مدیریت شده
قفل کردن و مدیریت تراکنش
توزیع برنامه های سرویس بروکر
پیشرفته توزیع خدمات Progamming بروکر
سرویس گرا معماری پایگاه داده
دنیای واقعی و حالات برنامه
در دسترس بودن و مقیاس پذیری
Administration

 2021-07-18 08:52:26 |  137 | Naser

Lauren Darcey Shane Conder photo
 2021-07-18 08:52:24 |  152 | Naser

Joel Comm photo

Google Adsense Secrets 4
Author: Joel Comm
Pages: 235

آموزش سئو

سرفصل های این کتاب آموزشی سئو که یکی دیگر از بهترین کتابهای مرتبط با بهینه سازی سایت برای موتورهای جستجو و همچنین مسائل مربوط به google adsence است به شرح زیر می باشد:

INDEX
INTRODUCTION ................................................................................................11
PART 1. GETTING STARTED WITH GOOGLE ADSENSE..........................................15
1.1 THE BASICS: BUILDING YOUR SITE.........................................................15
1.2 NAMING YOUR SITE............................................................................16
1.3 CHOOSING A HOSTING SERVICE ............................................................16
1.4 DESIGNING THE SITE.........................................................................17
1.5 CREATING CONTENT ..........................................................................17
1.6 GETTING STARTED WITH BLOGGER.COM....................................................18
1.7 ... OR GOOGLE’S PAGE CREATOR ............................................................19
1.8 SEARCH ENGINE OPTIMIZATION .............................................................20
1.9 LINKS ...........................................................................................20
2. ADSENSE — MAKING THE MONEY! .....................................................................20
2.1 WHAT IS ADSENSE?...........................................................................21
2.2 SIGNING UP MADE EASY ......................................................................23
2.3 GOOGLE POLICIES.............................................................................25
2.4 AS EASY AS 1-2-3!...........................................................................26
3. HOW TO ´TWEAK´ YOUR ADS TO MAKE THEM ´CLICK´! .............................................27
3.1 AD FORMATS: “DRESS” YOUR ADS FOR SUCCESS! ........................................27
3.2 DONT ´LOOK´ LIKE AN AD ..................................................................27
3.3 MEET THE ADSENSE FAMILY .................................................................28
3.4 TEXT ADS — GOOGLE’S FINEST .............................................................28
3.5 IMAGE ADS — BUILT TO BE IGNORED ......................................................35
3.6 VIDEO ADS .....................................................................................36
3.7 GADGET ADS — CLEVER BUT ARE THEY EFFECTIVE?......................................39
3.8 LINK UNITS — GREAT LITTLE STOCKING FILLERS .........................................40
3.9 EXPANDED TEXT ADS — SHRINKING CONTROL OR EXPANDED INCOME?...............43
3.10 SEASONS GREETING WITH THEMED UNITS ...............................................46
4. USING COLORS TO INCREASE YOUR CLICKS ...........................................................47
4.1 DESIGN YOUR WEBSITE TO HIGHLIGHT ADSENSE ........................................47
4.2 MAKE THE BORDER GO!......................................................................48
4.3 TEXT IS DESIGN TOO! ........................................................................49
4.4 BLUE IS BEST..................................................................................50
4.5 WHERE DID MY URL GO? ...................................................................51
4.6 DELIBERATE MISMATCHING ..................................................................52
4.7 CHANGING THE LOOK OF YOUR ADS .......................................................53Copyright © 2008 Joel Comm and InfoMedia Inc. – All Rights Reserved 2
5. HOW TO MAXIMIZE VISIBILITY AND RESPONSE .......................................................53
5.1 AD PLACEMENT: WHERE TO PUT YOUR ADS?..............................................53
5.2 GO WITH THE FLOW ........................................................................54
5.3 ABOVE THE FOLD..............................................................................55
5.4 USING TABLES..................................................................................57
5.5 COMPLEMENTING YOUR ADS ..................................................................59
6. CONTROLLING YOUR ADS.................................................................................61
6.1 ATTRACTING RELEVANT ADS..................................................................61
6.2 KEEP THE TITLE DIRECTORY AND HEADLINES RELEVANT...............................61
6.3 FINDING KEYWORDS ..........................................................................62
6.4 KEYWORD DENSITY ...........................................................................63
6.5 KEYWORD PLACEMENT ........................................................................63
6.6 KEYWORD FRAMES ............................................................................64
6.7 SECTION TARGETING..........................................................................64
6.8 NO BAITING! .................................................................................65
6.9 CHANGING METATAGS ........................................................................66
6.10 INVITING THE ROBOT .......................................................................66
6.11 GOOGLE ADS PREVIEW ......................................................................67
6.12 PUBLIC SERVICE ADS .......................................................................68
6.13 BLOCKING ADS ..............................................................................69
6.14 “ADVERTISE ON THIS SITE” ...............................................................70
6.15 DOES LOCATION MATTER FOR CPM ADS? ...............................................74
7. QUICKSTART ADSENSE: A STEP-BY-STEP GUIDE ....................................................75
ADSENSE QUICKSTART GUIDE #1: BUILDING A BLOG ........................................76
ADSENSE QUICKSTART GUIDE #2: BUILDING AN AD-SUPPORTED COMMERCIAL SITE WITH ZLIO ..................................................................................................77
ADSENSE QUICKSTART GUIDE #3: BUILDING A SITE FROM SCRATCH......................78
PART 2: BEYOND BASIC ADS...........................................................................79
8. CATCH FICKLE VISITORS WITH THE GOOGLE SEARCH BOX ..........................................79
8.1 FINDING MONEY WITH SEARCH .............................................................79
8.2 LEARN HOW TO ADD GOOGLE SEARCH TO YOUR WEB PAGE ............................80
8.3 SHOWING YOUR RESULTS ON YOUR SITE...................................................82
8.4 FLAVORING YOUR SEARCH RESULTS .........................................................83
8.5 TO SEARCH OR NOT TO SEARCH............................................................83
8.6 HOME PAGE SEARCHING......................................................................83
8.7 CUSTOMIZING YOUR SEARCH ................................................................84
8.8 GOOGLE’S CUSTOM SEARCH ENGINE ........................................................84
9. GOOGLE’S REFERRAL PROGRAMS ........................................................................85Copyright © 2008 Joel Comm and InfoMedia Inc. – All Rights Reserved 3
9.1 WHAT ARE REFERRALS AND HOW DO THEY DIFFER FROM ADSENSE? ..................86
9.2 SIGNING UP FOR GOOGLE’S REFERRAL PROGRAM .........................................87
9.3 CHOOSING YOUR REFERRAL ADS.............................................................88
9.4 GETTING THE MOST OUT OF YOUR REFERRAL ADS........................................90
9.5 CREATING CONTENT FOR REFERRAL ADS ...................................................91
10. USING MULTIPLE AD BLOCKS ..........................................................................92
10.1 HOW MANY ADS IS TOO MANY?...........................................................92
10.2 WHAT TO DO WITH THREE AD UNITS .....................................................93
10.3 WHERE TO PUT THE SEARCH BOXES......................................................93
10.4 GOOGLE IS MEAN WITH THE LINK UNITS ................................................94
10.5 PUT REFERRAL ADS NEAR AD UNITS......................................................94
10.6 PUTTING IT ALL TOGETHER.................................................................94
10.7 PUTTING MULTIPLE ADS IN ARTICLES.....................................................95
10.8 PUTTING MULTIPLE ADS IN BLOGS ........................................................96
10.9 PUTTING MULTIPLE ADS IN MERCHANT SITES ...........................................97
10.10 ORDERING YOUR ADS......................................................................98
11. BUILDING CONTENT ................................................................. 99
11.1 WRITING CONTENT ..........................................................................99
11.2 MAKING BUCKS WITH BLOGS............................................................100
11.3 ADDING ADSENSE TO YOUR BLOG ......................................................101
11.4 OLD CONTENT..............................................................................102
11.5 VOLUNTEER WRITERS .....................................................................105
11.6 BUILD THOUSANDS OF PAGES WITH OTHER PEOPLE’S CONTENT.....................106
11.7 ADD PUBLIC DOMAIN WORKS TO YOUR SITE ..........................................108
11.8 ADSENSE IN RSS FEEDS.................................................................110
11.9 ADSENSE ON MOBILE PHONES ...........................................................111
11.10 GOOGLE’S VIDEO CONTENT ............................................................112
11.11 USE YOUR NEWSLETTER TO DRIVE TRAFFIC!.........................................114
11.12 BUYING CONTENT/ HIRING WRITERS .................................................115
11.13 AUTOMATED CONTENT...................................................................115
PART 3: FOLLOWING THE FIGURES ............................................... 117
12. RESPONSE TRACKING: YOUR HIDDEN POT OF ADSENSE GOLD! ...................................................................................................... 117
12.1 HOW TO TRACK WITH CHANNELS .......................................................119
12.2 HOW TO CREATE A URL CHANNEL ......................................................120
12.3 HOW TO CREATE A CUSTOM CHANNEL ..................................................122
12.4 WHAT CUSTOM CHANNELS SHOULD YOU CREATE?.....................................125
12.5 CREATING MULTIPLE CHANNELS ..........................................................126
12.6 YOUR CHANNEL NAMES — HOW TO KEEP YOUR CHANNELS SECRET AND WIN CHANNEL TARGETED ADS ........................................................................127Copyright © 2008 Joel Comm and InfoMedia Inc. – All Rights Reserved 4
12.7 HOW TO READ YOUR SERVER LOGS.....................................................128
12.8 FAST DECISION-MAKING WITH A/B TESTING..........................................132
12.9 TRACKING TOOLS...........................................................................133
13. SMART PRICING... AND WHAT IT MEANS FOR YOUR INCOME. 138
13.1 WHAT GOOGLE HAS SAID ABOUT SMART PRICING....................................139
13.2 WHAT ELSE DO WE KNOW ABOUT SMART PRICING? .................................139
13.3 STRATEGIES TO BENEFIT FROM SMART PRICING ......................................141
14. HOW TO MAKE ADSENSE WORK WITH INTERNET COMMUNITIES AND COMMERCIAL SITES............................................................... 142
14.1 GOOGLE’S FORUM HEAT MAP ............................................................143
15. HOW TO READ YOUR VISITORS LIKE A BOOK.......................... 147
15.1 MAKING SENSE OF STATS LOGS AND REPORTS….....................................147
15.2 THE MOST IMPORTANT STAT OF ALL....................................................147
15.3 OPTIMUM CTR .............................................................................147
15.4 ADSENSE ARBITRAGE .....................................................................148
15.5 WORDTRACKER ............................................................................149
16. WHAT TO DO BEFORE YOU APPLY TO GOOGLE ADSENSE ........ 151
16.1 DONT BUILD A WEBSITE THAT SPECIFICALLY TARGETS SEARCH SPIDERS WITH NOTHING UNIQUE TO OFFER HUMAN VISITORS. ..............................................152
16.2 DONT BUILD A WEBSITE JUST TO MAKE MONEY FROM ADSENSE ..................152
16.3 PROVIDE TARGETED CONTENT THAT WILL HELP GOOGLE ADVERTISERS TO CAPITALIZE YOUR TRAFFIC .......................................................................152
16.4 DONT BUILD A WEBSITE SPECIFICALLY TO TARGET HIGH-VALUE KEYWORDS UNLESS YOU PLAN ON DEVELOPING QUALITY CONTENT! ....................................153
16.5 WEBSITES THAT RANK HIGHER IN A GOOGLE SEARCH (SERPS) WILL GET A BETTER PER-CLICK PAYOUT THAN WEBSITES WHICH RANK LOWER FOR THE SAME SEARCH TERM ......................................................................................................153
16.6 INCREASE ‘READINESS TO BUY’ ..........................................................154
16.7 DONT CUT CORNERS! ....................................................................155
PART 4: ADVANCED TOOLS AND TECHNIQUES............................... 156
17. RECOMMENDED RESOURCES: TRY THESE TOOLS AND ADSENSE UTILITIES (SOME ARE FREE!)........................................................ 156
17.1 TEST YOUR METTLE WITH THE ADSENSE SANDBOX! ..................................156
17.2 GOOGLE ADSENSE PREVIEW TOOL ......................................................157Copyright © 2008 Joel Comm and InfoMedia Inc. – All Rights Reserved 5
17.3 OVERTURE BIDTOOL ......................................................................157
17.4 OVERTURE KEYWORD SUGGESTION TOOL ..............................................157
17.5 ULTIMATE SEO TOOL .....................................................................158
17.6 GOOGLE ADWORDS TRAFFIC ESTIMATOR AND BID TOOL ............................158
17.7 KEYWORD RANKINGS TOOL ..............................................................158
17.8 MASS KEYWORDS SEARCH ...............................................................158
17.9 GUIDE TO GOOGLE-FRIENDLY DESIGN ..................................................158
18. KEEPING TRACK OF WHAT WORKS — AND WHAT DOESNT WORK — FOR YOU! ................................................................................... 159
18.1 A SAMPLE ADSENSE JOURNAL ...........................................................160
19. OTHER CONTEXTUAL ADVERTISING PROGRAMS AND HOW TO USE THEM WITH ADSENSE............................................................. 164
19.1 KONTERA — MAKING YOUR WORDS PAY ...............................................164
19.2 INTELLITXT’S EYE-CATCHING ADS .......................................................167
19.3 CONTEXTCASH — AFFILIATE REVENUE THE EASY WAY..............................168
19.4 CHITIKA — ALL MALLS MORE MONEY..................................................170
19.5 YAHOO! PUBLISHER NETWORK ...........................................................172
19.6 ADBRITE.....................................................................................173
19.7 KANOODLE – BRIGHT ADS ................................................................174
19.8 SEARCHFEED ...............................................................................174
19.9 THE BIG BOYS: EBAY AND MICROSOFT .................................................175
20. GETTING TRAFFIC TO YOUR WEB SITE ................................... 177
20.1 ADVERTISING ..............................................................................177
20.2 RECIPROCAL LINKING .....................................................................178
20.3 SEND A FRIEND............................................................................178
20.4 RSS FEEDS .................................................................................179
20.5 OFFLINE MARKETING ......................................................................179
20.6 PROMOTING YOUR BLOG..................................................................180
20.7 PUBLIC RELATIONS AND PUBLICITY .....................................................180
20.8 LEARN FROM A PRO ................................ERROR! BOOKMARK NOT DEFINED.
21. SEARCH ENGINE OPTIMIZATION............................................ 182
21.1 ROBOT.TXT .................................................................................182
21.2 TITLES AND URLS.........................................................................183
21.3 LINKS ........................................................................................183
21.4 CREATE GATEWAYS........................................................................186
21.5 AUTOMATIC SUBMISSIONS ...............................................................186
21.6 SEO TOOLS ................................................................................187
21.7 A WORD ABOUT CLOAKING ...............................................................189
21.8 TRAFFICANDCONVERSION.COM...........................................................190Copyright © 2008 Joel Comm and InfoMedia Inc. – All Rights Reserved 6
PART 5: QUICK TIPS...................................................................... 190
22. ADSENSE PROHIBITIONS MISTAKES AND PROBLEMS ........... 190
22.1 THE BIGGEST MISTAKES THAT ADSENSE PUBLISHERS MAKE... AND HOW TO AVOID THEM................................................................................................193
22.2 WHAT TO DO IF YOUR ADSENSE ACCOUNT GETS CLOSED ...........................197
23. TROUBLESHOOTING — WHAT TO DO IF YOU’RE NOT GETTING THE RESULTS YOU WANT...................................................................... 200
23.1 LOW REVENUES.............................................................................200
23.2 LOW TRAFFIC LEVELS ......................................................................201
23.3 LOW CLICKTHROUGH RATES ..............................................................201
23.4 LOW CLICK PRICE ..........................................................................202
23.5 LOW AD RELEVANCE .......................................................................203
23.6 TOO MANY PUBLIC SERVICE ADS.........................................................203
23.7 MY ADS HAVE DISAPPEARED! ............................................................204
23.8 TOO FEW ADS IN A UNIT .................................................................204
24. STAYING UP TO DATE AND LEARNING THE LATEST ADSENSE TIPS .............................................................................................. 204
24.1 TALKING ADSENSE AT ADSENSECHAT...................................................205
25. CASE STUDIES ........................................................................ 208
25.1 JOURNEYAUSTRALIA.COM — UNMISSABLE ADS DOWN UNDER .......................208
25.2 GREAT IDEAS FOR INTEGRATION FROM FREEAFTERREBATE.COM.....................209
25.3 GIFTS-911.COM GETS EMERGENCY TREATMENT WITH MULTIPLE AD UNITS ......210
25.4 FIREFOX PLUGIN REVIEWS — GETTING YOUR CLICKS FASTER .......................211
25.5 OFFSHOREBANKINGCENTRAL.COM BRINGS HOME THE BACON .......................212
25.6 SUBTLE AD LINKING AT SUDOKU LINKS.................................................214
25.7 GO4TH.ORG TAKES ADSENSE FORWARD................................................215
25.8 SMART AD PLACEMENT AT DOGTOYSMART.COM .......................................217
25.9 MATCHING ARTICLES TO ADS... AND CELL PHONES...................................219
25.10 BREWING UP PROFITS WITH HERBAL TEA.............................................220
25.11 WHISPY MAKES AD UNITS DISAPPEAR!................................................222
25.11 MIXING ADSENSE WITH KONTERA ON DEALOFDAY.COM ...........................223
25.12 GOOGLE ADS AND EMINIMALLS AT GPSREVIEW.NET ...............................224
CONCLUSION................................................................................. 226
GLOSSARY ..................................................................................... 228

 2021-08-02 08:41:27 |  214 | Naser

Michael Schrenk photo

Webbots Spiders and Screen Scrapers
Author: Michael Schrenk
Pages: 493
Table of Contents | IndexDedicationACKNOWLEDGMENTSIntroductionFUNDAMENTAL CONCEPTS AND TECHNIQUESWHATS IN IT FOR YOU?Uncovering the Internets True PotentialWhats in It for Developers?Whats in It for Business Leaders?Final ThoughtsIDEAS FOR WEBBOT PROJECTSInspiration from Browser LimitationsA Few Crazy Ideas to Get You StartedFinal ThoughtsDOWNLOADING WEB PAGESThink About Files Not Web PagesDownloading Files with PHPs Built-in FunctionsIntroducing PHP/CURLInstalling PHP/CURLLIB_httpFinal ThoughtsPARSING TECHNIQUESParsing Poorly Written HTMLStandard Parse RoutinesUsing LIB_parseUseful PHP FunctionsFinal ThoughtsAUTOMATING FORM SUBMISSIONReverse Engineering Form InterfacesForm Handlers Data Fields Methods and Event TriggersUnpredictable FormsAnalyzing a FormFinal ThoughtsMANAGING LARGE AMOUNTS OF DATAOrganizing DataMaking Data SmallerThumbnailing ImagesFinal ThoughtsPROJECTSPRICE-MONITORING WEBBOTSThe Target
Designing the Parsing ScriptInitialization and Downloading the TargetFurther ExplorationIMAGE-CAPTURING WEBBOTSExample Image-Capturing WebbotCreating the Image-Capturing WebbotFurther ExplorationFinal ThoughtsLINK-VERIFICATION WEBBOTSCreating the Link-Verification WebbotRunning the WebbotFurther ExplorationANONYMOUS BROWSING WEBBOTSAnonymity with ProxiesThe Anonymizer ProjectFinal ThoughtsSEARCH-RANKING WEBBOTSDescription of a Search Result PageWhat the Search-Ranking Webbot DoesRunning the Search-Ranking WebbotHow the Search-Ranking Webbot WorksThe Search-Ranking Webbot ScriptFinal ThoughtsFurther ExplorationAGGREGATION WEBBOTSChoosing Data Sources for WebbotsExample Aggregation WebbotAdding Filtering to Your Aggregation WebbotFurther ExplorationFTP WEBBOTSExample FTP WebbotPHP and FTPFurther ExplorationNNTP NEWS WEBBOTSNNTP Use and HistoryWebbots and NewsgroupsFurther ExplorationWEBBOTS THAT READ EMAILThe POP3 ProtocolExecuting POP3 Commands with a WebbotFurther ExplorationWEBBOTS THAT SEND EMAILEmail Webbots and SpamSending Mail with SMTP and PHPWriting a Webbot That Sends Email NotificationsFurther ExplorationCONVERTING A WEBSITE INTO A FUNCTIONWriting a Function InterfaceFinal ThoughtsADVANCED TECHNICAL CONSIDERATIONSSPIDERS
How Spiders WorkExample SpiderLIB_simple_spiderExperimenting with the SpiderAdding the PayloadFurther ExplorationPROCUREMENT WEBBOTS AND SNIPERSProcurement Webbot TheorySniper TheoryTesting Your Own Webbots and SnipersFurther ExplorationFinal ThoughtsWEBBOTS AND CRYPTOGRAPHYDesigning Webbots That Use EncryptionA Quick Overview of Web EncryptionLocal CertificatesFinal ThoughtsAUTHENTICATIONWhat Is Authentication?Example Scripts and Practice PagesBasic AuthenticationSession AuthenticationFinal ThoughtsADVANCED COOKIE MANAGEMENTHow Cookies WorkPHP/CURL and CookiesHow Cookies Challenge Webbot DesignFurther ExplorationSCHEDULING WEBBOTS AND SPIDERSThe Windows Task SchedulerComplex SchedulesNon-Calendar-Based TriggersFinal ThoughtsLARGER CONSIDERATIONSDESIGNING STEALTHY WEBBOTS AND SPIDERSWhy Design a Stealthy Webbot?Stealth Means Simulating Human PatternsFinal ThoughtsWRITING FAULT-TOLERANT WEBBOTSTypes of Webbot Fault ToleranceError HandlersDESIGNING WEBBOT-FRIENDLY WEBSITESOptimizing Web Pages for Search Engine SpidersWeb Design Techniques That Hinder Search Engine SpidersDesigning Data-Only InterfacesKILLING SPIDERSAsking NicelyBuilding Speed BumpsSetting TrapsFinal ThoughtsKEEPING WEBBOTS OUT OF TROUBLE
Its All About RespectCopyrightTrespass to ChattelsInternet LawFinal ThoughtsPHP/CURL REFERENCECreating a Minimal PHP/CURL SessionInitiating PHP/CURL SessionsSetting PHP/CURL OptionsExecuting the PHP/CURL CommandClosing PHP/CURL SessionsSTATUS CODESHTTP CodesNNTP CodesSMS EMAIL ADDRESSESColophonIndex

 2021-07-28 17:01:56 |  153 | Naser

Alex Shaw photo

Android 3.0 Animations
Author: Alex Shaw
Pages: 304
Preface 1Chapter 1: Animation Techniques on Android 7An animated application: counting calculator 8Time for action – learning to count with the counting calculator 8Frame animation 10Time for action – playing with the frames 11Fancy frame animations 13Simple fades using transition animations 14Tweening 14Time for action – finding tweens 15The tween jazz band 15Interpolations—meet the drummer 16Animation sets—meet the conductor 16Tweening elements in XML 16What are tweens good at? 17Animators – new in Android 3.0! 17Beyond views: high-speed animating in 2 dimensions 19Drawing loops 19Doing your own housekeeping is hard 20Where to use surfaces 21What do views do anyway? 21Time for action – lets draw views 21Animating awesome 3D 27Want to go faster? 28Making a better application 30Always be helpful 30Small and powered by batteries 30Summary 32
Chapter 2: Frame Animations 33Making a frame animation 34Time for action – the funky stick man 34The anatomy of a frame animation 38XML elements 38<animation-list> 39<item> 39Timing 40Images and Drawables 40Screen size 41Sometimes you run out of memory 41Making frame animations in Java 43Time for action – making the stick man interactive 43Controlling frame animations 48start() and stop() 48AnimationDrawable.setVisible(true true) 48Creating new animations 48Time for action – programmatically defined animation 48More neat methods on AnimationDrawable 52Working properly in the GUI thread 53Animating a transition between frames 55Time for action – make the transition 55Writing XML for a transitionDrawable 59<transition> 59<item> 59Working with other useful methods 60startTransition(int duration) 60reverseTransition(int duration) 60resetTransition() 60Summary 62Chapter 3: Tweening and Using Animators 63Greeting the tween 63Time for action – making a tower of Hanoi puzzle 64Defining starts and ends 67Assembling the building blocks of a tween 68Time for action – composing a tween animation 68Taking a look at the different types of tween animation 74<translate> 74<rotate> 74<alpha> 75<scale> 75Common attributes 76Declaring tweens in the correct order 76
Making tweens that last for ever 77Time for action – creating an everlasting tween 77Animating layouts 81Time for action – laying out blocks 81Receiving animation events 83Time for action – receiving animation events 84Interpolating animations 86Time for action – changing the rhythm with interpolators 86Using the interpolators provided by Android 88Linear interpolator 88Accelerate interpolator 88Decelerate interpolator 88Accelerate-decelerate interpolator 88Bounce interpolator 89Anticipate interpolator 89Overshoot interpolator 89Anticipate overshoot interpolator 89Cycle interpolator 89Sharing interpolators 89android:sharedInterpolator=´true´ 90android:sharedInterpolator=´false´ 90Creating and parameterizing interpolators 90Finding out more 91Summary 92Chapter 4: Animating Properties and Tweening Pages 93Note for developers using versions of Android before 3.0 94Turning pages with a ViewFlipper 94Time for action – making an interactive book 94Creating tween animations in Java 103Time for action – creating a tween in Java 104Writing the SlideAndScale animation in Java 107Writing the SlideAndScale animation In XML 107Animating with ObjectAnimator 108Time for action – animating the rolling ball 109Constructing ObjectAnimators 111Breaking down the construction of ballRoller 111Getting and setting with ObjectAnimators 112Animating values with ValueAnimator 113Time for action – making a ball bounce 113Updating the frame rate 117Changing the interpolator 117Time for action – improving our bouncing ball 117Comparing animators and tweens 119
Advantages of animators 119Advantages of tweens 119Things that are common between animators and tweens 119Summary 119Chapter 5: Creating Classes for Tween Animation 121Creating multi-variable Animators 121Time for action – making an animated Orrery 122The structure of the Orrery 129Animating LayerDrawables 129PropertyValuesHolder 130Helpful ValueAnimator parameters 130Using objects as parameters for value animations 130Time for action – animating between objects 131Using a TypeEvaluator 135Setting Keyframes 135Time for action – defining fixed points with Keyframes 136Using the Keyframe 137Keyframe timing 138Combining Fragments and XML Animators 139Time for action – adding a Description Pane 140Declaring ObjectAnimator attributes 143Customizing the interpolator classes 144What do interpolators do? 144Time for action – making a teleport interpolator 145Interpolator value ranges 148Summary 149Chapter 6: Using 3D Visual Techniques 151Understanding 3D graphics 151Showing depth with 3D effects 153Raising elements 153Time for action – making a jigsaw with lifting pieces 153Laying out the jigsaw 161Special classes we created to help animation 162Scaling the image with ScalableImageView.SetDepth 162Moving pieces with PieceSwapper 162Completing the animation with PieceSwapper.onAnimationEnd 163Adding drop shadows 163Time for action – using shadows with our jigsaw 163Conjuring up a change in focus 167
Time for action – changing the focus of the jigsaw 167Setting the image focus on a RaisableImageView 170Applying image focus to the whole jigsaw 170Creating 3D rotations 171Time for action – spinning jigsaws 172Examining Rotate3DAnimation.java 174Extending a tween animation 176initialize (int width int height int parentWidth int parentHeight) 176applyTransformation (float interpolatedTime Transformation t) 176Describing transformations with a Matrix (android.graphics.Matrix) 176Doing 3D transformations with a Camera (android.graphics.Camera) 177rotateX (float) rotateY (float) rotateZ (float) 177translate (float x float y float z) 177save() and restore() 177Summary 179Chapter 7: 2D Graphics with Surfaces 181Introducing game loops 182Drawing a surface on the screen 182Time for action – animating bubbles on a surface 183The design of the Bubbles application 193Investigating Bubble.java 193Investigating BubblesView.java 194Seeing the game loop in action 195Using a SurfaceView 196Using a SurfaceHolder 196lockCanvas 196unlockCanvasAndPost 196Using a SurfaceHolder.Callback 197surfaceCreated (SurfaceHolder holder) 197surfaceDestroyed(SurfaceHolder holder) 198surfaceChanged(SurfaceHolder holder int format int width int height) 198Using the Canvas as an animation tool 199Time for action – making more realistic bubbles 199Getting to know the drawing tools in Canvas 204drawBitmap and drawPicture 205drawCircle 205drawColor and drawPaint 205drawLine and drawLines 205drawOval and drawArc 205drawPath 205drawRect and drawRoundRect 205drawText and drawTextOnPath 205
Using Paint effects 206setAlpha 206setAntiAlias 206setColor 206setStrokeCap 206setStrokeWidth 206setStyle 206setTextAlign 207setTextScaleX 207setTextSize 207setTypeface 207Frame scheduling 207Time for action – creating smooth game loops 207Adjusting the frame duration 210Taking the wait out of the game loop 210Summary 212Chapter 8: Live Wallpapers 213Creating a live wallpaper 213Time for action – making our first live wallpaper 214Declaring a live wallpaper 219How live wallpapers appear 219Understanding services 220WallpaperService 220Adding interactivity to live wallpaper 223Time for action – making soapy fingers 223Enabling WallpaperService.Engine interaction 228Registering live wallpaper interaction 228Using live wallpaper preferences 230Time for action – configuring a live wallpaper 231Updating preferences as soon as they are set 237Time for action – updating live wallpaper configuration 237Connecting our wallpaper to our prefereces 239Disconnecting our preferences when our wallpaper exits 239How the user will see preferences 239Storing preferences with SharedPreferences 240Reading from SharedPreferences 240Writing to SharedPreferences 240OnSharedPreferenceChangedListener 241Composing preference XML 241Defining preferences in XML 241Setting attributes on XML preferences 242Summary 244
Chapter 9: Practicing Good Practice and Style 245Using focus and metaphor 246Looking at focus 247Time for action – dont confuse me with animation! 247Getting to grips with metaphors 250Time for action – getting messages from houses 251Focus redux 254Maintaining consistency within an application 254Reducing power usage 255Time for action – measuring battery usage with PowerTutor 256Precise estimation 258Changing the Application Viewer Timespan 258PowerTutor-supported devices 258Optimizing an animation for power 259Looking for problems 259Time for action – identifying a problem 259Finding the power hogs 260Time for action – tracing to find optimizations 261Removing the gremlin 264Time for action – squashing gremlins that use too much power 264Optimizing using an easy recipe 267Summary 270Appendix: Pop Quiz Answers 271Chapter 1: Animation Techniques on Android 271View animations and Drawable animations 271Putting it all together 271Chapter 2: Frame Animations 272Making frame animations 272Controlling frame animations 272Transition Drawables 272Chapter 3: Tweening and Using Animators 272All those tweens! 272AnimationListeners 273Interpolators 273Chapter 4: Animating Properties and Tweening Pages 273ViewFlippers 273Java tweens 273ObjectAnimators 273Value Animators 273
Chapter 5: Creating Classes for Tween Animation 274PropertyValueHolders ObjectAnimators and TypeEvaluators 274Fragment Animation and XML Animators 274Custom interpolators 274Chapter 6: Using 3D Visual Techniques 274Depth effects 2743D rotations 274Chapter 7: 2D Graphics with Surfaces 275Surface animations 275Chapter 8: Live Wallpapers 275Live wallpapers 275Interactivity 275Preferences for live wallpapers 275Chapter 9: Practicing Good Practice and Style 276Usability 276Power usage 276Index 277

 2021-07-26 23:52:34 |  151 | Naser

Divya Manian photo

HTML5 Boilerplate Web Development
Author: Divya Manian
Pages: 174
Features of HTML5 Boilerplate 7Cross-browser compatibility 8Doctype 8Normalize.css 8Clearfix 8Search box styling 8Conditional classes 9Modernizr 9No console.log errors 9Helper classes 9Performance optimizations 9Progressive enhancement 10Accessible focus styles 10Print styles 10Tools to start with 10Beware 11Where to get files 11An overview of H5BP files 12Asking for help 13Summary 14Chapter 2: Starting Your Project 15Creating your initial project folder 15Downloading the latest version of HTML5 Boilerplate 15Using the shell script 16Creating our project 17House-keeping 18Setting the tags 18
[ ii ]Editing favicons 19Adding third-party libraries 22Using a Content Delivery Network 22Adding Google Analytics ID 25Updating humans.txt 25Summary 26Chapter 3: Creating Your Site 27Working on the markup 27Creating the markup 28Deciding which element to use 30Writing valid markup 30Creating the styles 30Helpful style classes we can use 32Image replacement 33Hiding elements 33Hiding elements visually 35Hiding elements without impacting layout 36Clearing floats 39Writing valid stylesheets 42Style languages to write productive stylesheets 42Advantages 43Disadvantages 43Where to learn? 44Using HTML5 Boilerplate with style languages 44Summary 45Chapter 4: Adding Interactivity and Completing Your Site 47Using jQuery 47Using other libraries 47Adding smooth-scroll plugin and interaction 48Adding HTML5 features safely with Modernizr 52When to use Modernizr.load 55Using Modernizr to load CSS features 55Testing our site 56Testing on non-desktop browsers 64Summary 66Chapter 5: Customizing the Apache Server 67Server-side configurations 67Setting up the Apache server 67Installing Apache 68Mac 68Windows 68Linux 69Configuring Apache 70

 2021-07-23 13:00:39 |  173 | Naser

Adam Jorgensen photo

Professional Microsoft SQL Server 2012 Administration
Author: Adam Jorgensen
Pages: 931
 
CHAPTER 1: SQL SERVER 2012 ARCHITECTURE 1

 2021-07-31 15:29:58 |  204 | Naser