CodeProject Newsletter (8 Sep 2008)

New articles added Last week

Button Controls

  • WinForm ImageButton - Vartan Simonian
    WinForm .NET class for an image button allowing for regular, hover, and depressed images, and allows for text. (Unedited)
    C# (C# 2.0, C# 3.0, C#), Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 3.5, .NET 3.0, .NET 2.0), Visual Studio (VS2005, VS2008, Visual Studio), GDI+, Dev, Design, Beginner, Intermediate

Dialogs and Windows

  • C# command line parsing - Keith Fletcher
    A simple base class to extract command line options.
    C# (C# 2.0, C# 3.0, C#), Windows, .NET (.NET, .NET 2.0, .NET 3.5, .NET 3.0), DBA, Dev, SysAdmin, Intermediate, Advanced

  • .Notifier - syntaxed
    Notifier: an Outlook-like notification window
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 2.0), Win32, Visual Studio (VS2005, Visual Studio), Dev, Design, Intermediate

  • Retain the size and position of forms and dialogs - Mycroft Holmes
    Store and retreives the last position and size of a form using an XML file.
    C#, Windows, .NET, Visual Studio, Dev, Intermediate

  • TabKeyIntercept - Intercept and process the Tab key in a Windows.Forms form - Ilíon
    This article describes a method to intercept the Tab key in a .NET application's form and thereby allow the use of the Tab key in a customized or application-specific meaning.
    C# (C# 1.0, C# 2.0, C# 3.0, C#), VB, Windows, Visual Studio, Dev, Intermediate

List Controls

  • The Boero ListView: Part I - John Boero
    An extended owner draw ListView that is completely rendered using OpenGL. (Unedited)
    C# (C# 2.0, C# 3.0, C#), XML, Windows, .NET (.NET, .NET 3.5, .NET 3.0, .NET 2.0, Mono), OpenGL, Dev, Design, Marketing, Intermediate, Advanced

  • CGridListCtrlEx - Grid Control Based on CListCtrl - Snakefoot
    A custom draw CListCtrl with subitem editing and formatting
    C++, Windows, MFC, Dev, Intermediate

Miscellaneous

Printing

Tree Controls

  • Tree circle draw control - eng. Plamen Kovandjiev
    This control draws circles include text and link them with a line (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#)

Ajax and Atlas

Applications & Tools

  • Babel Obfuscator - Alberto Ferrazzoli
    Babel obfuscator for .NET Framework (Unedited)
    C# (C# 2.0, C#), VB (VB 8.0, VB 9.0, VB), MSIL, Windows (Windows, WinXP, Win2003, Vista), .NET (.NET, .NET 3.5, .NET 3.0, .NET 2.0), Win32, Dev, Intermediate

ASP.NET

  • Deployment Of Web Application Executing SSIS Package In Web Server. - santosh poojari
    This article describes the prerequisite needed for .Net And SSIS integrated deployment. (Unedited)
    C# (C# 2.0, C#), .NET (.NET, .NET 3.0, .NET 3.5, .NET 2.0), SQL Server (SQL 2005, SQL Server), ASP.NET, Architect, DBA, Dev, Design, Intermediate, Advanced

  • PermaLinks for Fun and Profit - Steven A. Lowe
    PermaLinks provide an easy way to redirect incoming traffic to specific pages, track hits and goals, and prevent external links from expiring. (Unedited)
    CSS, SQL, C#, VB, HTML, Windows, .NET, SQL Server, Visual Studio, ASP.NET, ADO.NET, Design, SysAdmin, Sales, Marketing, Architect, Dev, Beginner

  • Slideshow XML-Javascript - Sunasara Imdadhusen
    Dynamic Slideshow performing lotsof effects (with XML configuration) (Unedited)
    Javascript, XML, Windows, ASP.NET, Advanced

  • ASP.Net 3.5 Sample Application of LINQ, WFC, JSON and AJAX - ToddHileHoffer
    A Simple Sample of LINQ, WCF, JSON and AJAX (Unedited)
    C# (C# 3.0, C#), Javascript, HTML, XHTML, .NET (.NET, .NET 3.5), ASP.NET, WCF, Ajax, LINQ, Dev, Beginner

ASP.NET Controls

Silverlight

  • Silverlight Cairngorm - Port Cairngorm to .NET - Modesty Zhang
    Port Cairngorm 2.2.1 to Silverlight 2 Beta 2. Includes all source code and a sample application.
    C# (C#, C# 3.0), Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET 3.5, .NET), Flash, Silverlight, XAML, LINQ, Architect, Dev, Intermediate, Advanced

Web Services

  • How to Get Notifications from a .NET Web Service - Victuar
    This article describes how to use asynchronous Web Service method calls to implement callback events from a Web Service to its clients.
    C# (C# 2.0, C#), Windows, .NET (.NET, .NET 2.0), Visual Studio (VS2005, Visual Studio), ASP.NET, Dev, Intermediate

General Graphics

Database

.NET Framework

Game Development

  • Simple Linq Sudoku Solver - Mickael Magniez
    A simple way to resolve a sudoku grid, in 10 lines of code. (Unedited)
    C# (C# 3.0, C#), LINQ

Libraries

Windows Communication Foundation

  • Using WCF Callback Services Throttling - Cameron Hanchey
    When using callbacks with transient subscribers, you must leave the channel open. This is how to manage and use service throttling to open up your service to more than 10 subscribers.
    C#, WCF, Architect, Dev, Advanced

Windows Presentation Foundation

  • Group Sort Adorner ListView - mtonsager
    This is for anyone looking for a WPF sortable Listview with drag and drop grouping, drag and drop column reordering and column resizing. (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows (Windows, WinXP), Visual Studio, XAML, WPF, Design, Architect, Dev, Intermediate, Advanced

  • WPF Data Binding - Part 1 - Joel Ivory Johnson
    An introduction to data binding with WPF.
    C#, XML, Windows, .NET, ADO.NET, WPF, Dev, Beginner, Intermediate

  • Refreshing the view of grid control - Ashish Sehajpal
    How to reflect the changes made to the itemsource of grid control in wpf (Unedited)
    XHTML, XML, WPF, LINQ, Dev, Beginner, Intermediate

C / C++ Language

C#

  • Get registered file types and their associated icons in C# - kidvn
    Get registered file types and their associated icons by reading Registry in C#. (Unedited)
    C# (C# 2.0, C#), Windows (Windows, WinXP), .NET (.NET, .NET 2.0), Visual Studio (VS2005, Visual Studio), Beginner

  • Key-Value Pair as Enum-Constants - christoph braendle
    enum-like class that is support Flags (up to 8192), has additional value-type data, description and FastSerializer support (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Beginner

  • Introduction to Model Driven Development with Sculpture – Part 1 - Ahmed Negm
    This article introduces how to create and manage .NET enterprise applications using your favorite technology (Data Access Application Block, LINQ, NHibernate, ASMX, and WCF) with the Model Driven Development approach by Sculpture. (Unedited)
    C# (C# 3.0, C#), .NET (.NET, .NET 3.5, .NET 3.0), SQL Server (SQL 2005, SQL Server), Visual Studio (VS2008, Visual Studio), LINQ, WCF, WPF, Design, CEO, Architect, Dev, Beginner, Intermediate, Advanced

  • Regular expressions syntax highlighting - SSShuler
    Easy to use syntax highlighting class (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Dev, Intermediate

  • Generic Lazy Load Cache Class - Laughing.John
    Presents a base class for creating a singleton lazy load cache.
    C# (C# 2.0, C# 3.0, C#), Windows, .NET (.NET, .NET 2.0, .NET 3.5, .NET 3.0), Dev, Intermediate, Advanced

  • How to disable FlashPlayer(AxShockwaveFlash) right-click ContextMenu - IncureForce
    How to disable FlashPlayer(AxShockwaveFlash) right-click ContextMenu (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET (.NET, .NET 3.5, .NET 3.0, .NET 1.0, .NET 1.1, .NET 2.0), Flash, Intermediate

  • Complex Properties in C# - DaveyM69
    'Complex properties' and Size3D in C#.
    C#, .NET (.NET 2.0, .NET 3.0, .NET 3.5, .NET), Visual Studio (Visual Studio, VS2008), Dev, Intermediate

  • Set TextBox Height - hayes.adrian
    How to change the height of a single-line textbox (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET (.NET, .NET 2.0)

  • C# for MS-DOS: Expression trees compiled into 16-bit MS-DOS binary - Ivan Krivyakov
    C# arithmetic expressions compiled into 8086 machine code (yes, you can run it on Vista :-)) (Unedited)
    C#, .NET (.NET, .NET 3.5)

  • Lightweight Object to Object Mapper - stavinski
    An object to help map from one object to another
    C#.NET 3.5, Dev, Intermediate, Advanced

  • Bare bones SourceSafe journal monitor - Muaddubby
    A simple and straightforward tool to monitor and report SourceSafe database changes.
    C#, .NET (.NET 2.0, .NET 3.0, .NET 3.5, .NET), Visual Studio (Visual Studio, VS2008, VS2005), DBA, Dev, QA, Intermediate

  • Using Form Opacity to make splash screen for your project (Fade In & Fade Out) - Reaksmey.Rin
    Make Fade In & Fade Out animation with window form using C# (Unedited)
    C#, Windows (WinXP, Win2003, Vista, Windows), .NET (.NET 3.0, .NET 3.5, .NET), Visual Studio (Visual Studio, VS2008), Beginner

  • Windows Forms - Creating and Persisting Custom User Settings in C# - Frank Gennaro 2487219
    This article discusses the creation and persistence of .NET Framework and custom objects within the Windows User Settings.
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows, .NET (.NET, .NET 3.5, .NET 3.0, .NET 2.0), Visual Studio (VS2005, VS2008, Visual Studio), Architect, Dev, Intermediate

Algorithms & Recipes

Design and Architecture

  • Patterns in Real Life - Boby Thomas P
    Patterns in real life - Design patterns played out with people instead of objects.
    STL, Architect, Dev, Design, Intermediate

Scrapbook

  • CodeProject Forum Guidelines - Scott Dorman
    The accepted social etiquette for posting in the CodeProject discussion forums. (Unedited)
    VBScript, Javascript, XML, CSS, SQL, HTML, C++ (VC6, VC7, VC7.1, VC8.0, C++), C++/CLI, C, C# (C# 3.0, C# 1.0, C# 2.0, C#), VB (VB 7.x, VB 8.0, VB 9.0, VB 6, VB), eVC (eVC 4.0, eVC 3.0, eVC), ASM, MSIL, UML, JScript .NET, Forth.NET, XSLT, XHTML, F#, Python (Python, IronPython), Ruby (Ruby, IronRuby), Office, XBox, Mobile (Blackberry, iPhone, Android, PalmOS, Mobile), Windows (TabletPC, Windows, NT4, Win2K, WinXP, Win2003, Vista), Win Mobile (WinMobile6, Win Mobile, WinMobile5, PocketPC 2002, WinMobile2003), .NET CF, .NET (.NET, .NET 3.5, .NET 3.0, Mono, DotGNU, .NET 1.0, .NET 1.1, .NET 2.0), Win32, Win64, SQL Server (SQL 2000, SQL 2005, SQL CE, SQL Server), IIS (IIS 5, IIS 5.1, IIS 6, IIS 7, IIS), Visual Studio (VS.NET2002, VS.NET2003, VS2005, VS6, VS2008, Visual Studio), MFC, ATL, WTL, STL, GDI, GDI+, OpenGL, DirectX, Ajax, WCF, XAML, WPF, COM, COM+, ADO, ADO.NET, ASP, ASP.NET, LINQ, Flash, Silverlight, Oracle, SAP, SysAdmin, Sales, Marketing, Design, CEO, Architect, DBA, Dev, QA, Beginner, Intermediate, Advanced

Product Showcase

Articles updated added Last week

Combo & List Boxes

Edit Controls

  • Dynamic validation with ErrorProvider - ardavan Sharifi
    in this Article we following how to dynamic validation data entry with defind validation type (Unedited)
    VB (VB 7.x, VB 8.0, VB 9.0, VB 6, VB), .NET (.NET, .NET 2.0, .NET 3.0), Visual Studio (VS2008, VS2005, Visual Studio), GDI, GDI+, Intermediate

List Controls

Miscellaneous

  • XScrollBar - Scroll bar like Windows Media Player's - Hans Dietrich
    XScrollBar is a scroll bar that may be displayed with optional thumb color, thumb gripper, and channel color
    C++ (VC6, VC8.0, C++), Windows (Windows, WinXP, Vista), MFC, Dev, Intermediate

Applications & Tools

  • Address Book and Events Reminder - SHRIDHAR TL
    Allows to maintain and backup your contacts remainds the evens added by you at the time specified. (Unedited)
    C# (C# 2.0, C# 3.0, C#), SQL, Windows (Windows, TabletPC, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 3.5, .NET 3.0, .NET 2.0), Visual Studio (VS2005, VS2008, Visual Studio), ADO.NET, Design, Intermediate, Advanced

  • ToDoList 5.6.5 - A simple but effective way to keep on top of your tasks - .dan.g.
    A hierarchical task manager with native XML support for custom reporting.
    VC6, VC7, VC7.1, VC8.0Win2K, WinXP, Win2003, Vista, MFC, VS6, CEO, Architect, DBA, Dev, QA, Intermediate

  • KeePass Password Safe - Dominik Reichl
    KeePass is a free, open-source, light-weight and easy-to-use password safe.
    VC6, VC7, VC7.1NT4, Win2K, WinXP, Win2003, MFC, VS6, Dev, Intermediate

ASP.NET

Client side scripting

  • JavaScript Expandable / Collapsable Panel Control - SAMir Nigam
    This article describes how to create an Expandable / Collapsable Panel Control using JavaScript. (Unedited)
    C# (C# 2.0, C# 3.0, C#), Javascript, CSS, HTML, XHTML, JScript .NET, .NET (.NET, .NET 2.0, .NET 3.5), ASP, ASP.NET, Visual Studio (VS2008, VS.NET2003, VS2005, Visual Studio), ADO.NET, Ajax, Design, Dev, Intermediate, Advanced

  • MSAgent Style Critters for your Web Pages - Helbrax
    MSAgent Style Critters for your Web Pages (Unedited)
    Javascript, CSS, HTML, XHTML, Intermediate

Silverlight

  • Creating and Reusing Dynamic Animations in Silverlight - SteveLi-Cellbi
    Creating dynamic animations, and a simple way to reuse them to reduce the XAML code size.
    C# (C# 2.0, C# 3.0, C#), .NET (.NET, .NET 3.5, .NET 3.0), Visual Studio (VS2008, Visual Studio), Silverlight, XAML, Dev, Intermediate

SharePoint Server

Audio and Video

  • Multimedia PeakMeter control - Ernest Laurentin
    Multimedia PeakMeter control - .NET version (Unedited)
    C++ (VC8.0, C++, VC9.0), C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows, .NET CF, .NET, Win32, MFC, GDI+, Dev, Design, Beginner, Intermediate

General Graphics

.NET Framework

COM / COM+

  • Use STA COM Objects Asynchronously - CBasicNet
    How to use STA COM objects asynchronously without blocking your main thread
    C++, Windows, COM, Dev, Advanced

  • ProSysLib: Dissecting The Process - Vitaly Tomilov
    Access detailed information about the current process in the easiest way (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++, VC9.0), C++/CLI, C# (C# 1.0, C# 2.0, C# 3.0, C#), VBScript, Office, Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 3.5, .NET 3.0, .NET 1.0, .NET 1.1, .NET 2.0), Win32, Win64, ATL, STL, COM, SysAdmin, Architect, Dev, QA, Beginner, Intermediate, Advanced

Cross Platform

Win32/64 SDK & OS

  • An extendable report editor - RockmanZero
    an extendable report editor (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++), C++/CLI, C, Intermediate, Advanced

Windows Presentation Foundation

  • WPF Grouping and Sorting ListView - mtonsager
    Shows a couple of ways to create a Sortable ListView with Drag Drop Grouping (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows (Windows, WinXP), WPF, Design, Dev, Intermediate

  • Item Presentation Models for WPF - Adrian Alexander
    Make your life easier by inserting a Presentation Model layer between your domain-model collection contents and template-generated WPF objects.
    C# (C# 2.0, C#), XML, Windows (Windows, WinXP, Vista), .NET (.NET, .NET 3.0, .NET 3.5), Visual Studio (VS2005, VS2008, Visual Studio), XAML, WPF, Architect, Dev, Intermediate, Advanced

C / C++ Language

C#

VB.NET

Algorithms & Recipes

  • a Tiny Parser Generator v1.2 - Herre Kuijpers
    @TinyPG is a utility that makes it easier to write and try out your own parser/compiler. (Unedited)
    C# (C# 3.0, C#, C# 2.0), VB (VB 7.x, VB 8.0, VB 9.0, VB), Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET 3.0, .NET, .NET 3.5, .NET 2.0), Visual Studio (VS2005, VS2008, Visual Studio), Dev, Intermediate, Advanced

Internet / Network

  • MailMergeLib - A .NET Mail Client Library - Norbert Bietsch
    MailMergeLib is a mail client library. It makes use of .NET System.Net.Mail and provides comfortable mail merge capabilities. MailMergeLib corrects a number of the most annoying bugs and RFC violations that .NET 2.0 to .NET 3.5 suffer from.
    C# 2.0, C# 3.0.NET 2.0, Win2K, WinXP, Win2003, Vista, ASP.NET, VS2005, VS2008, Dev, Beginner, Intermediate

Macros and Add-ins

  • A Flexible Plugin System - jgauffin
    A generic plugin system used to load and manage plugins
    C# (C# 2.0, C#), .NET (.NET, .NET 2.0, Mono), Dev, Intermediate, Advanced

Code Generation

  • SQL Class shell generator - Paw Jershauge
    Generate Class Shells from SQL Database tables, (SQL 2005 & 2008 only) (Unedited)
    C#, VB, Windows (Win2K, WinXP, Win2003, Vista, Windows), .NET (.NET 2.0, .NET), Win32, SQL Server (SQL Server, SQL 2005), Dev, Intermediate

  • On the fly Code Generation with Evolutility - Olivier Giulieri
    A generic Web User Interface for CRUD applications generating all screens at run-time based on external metadata. It comes with sample applications for address book, memo pad, to do list, restaurants list, wine cellar, and database structure documentation that are easily customizable. (Unedited)
    Javascript, XML, CSS, SQL, HTML, VB, ASP.NET, Visual Studio, Architect, DBA, Dev, Design, Intermediate, Advanced

Design and Architecture

  • Dashboards Are For Driving - Steven A. Lowe
    Dashboards are immensely useful not only for business data but also for business applications, but only if they display metrics that can be used to "drive" (or "steer") in real-time. (Unedited)
    Javascript, CSS, SQL, HTML, C#, Windows (TabletPC, Windows, NT4, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 2.0), SQL Server, Visual Studio (VS2005, Visual Studio), GDI, GDI+, ADO, ADO.NET, ASP.NET, Design, Sales, Marketing, CEO, Architect, DBA, Dev, QA, Beginner, Intermediate, Advanced


MCTS 70-431 Exam Questions [SQL server 2005]

1. You are creating a database that will store sales order information. Orders will be entered in a client/server application and over the Internet via an ASP.NET application. Each time a new order is placed in the system, a unique order number must be assigned, and the order numbers must be in ascending sequence. It is expected that the system will generate in excess of 100,000 orders weekly. You create a new table named Orders and a related table named Order Details. How should you create the order number to provide the required functionality in the simplest manner?

A. Use a UniqueIdentifier data type.

B. Use an Integer data type and set the IDENTITY property for the column.

C. Use a TimeStamp data type and create a user-defined function that sets the order number.

D. Create a table to hold key values and assign order numbers from this table.

E. Have the front-end application assign sequential integer order numbers.


2. You are designing a query that must return related data from two tables. You must return only data that matches between the tables. One column of data allows null entries, and you are not to return data from either table in this case. Which of the following SQL items is needed? (Select two answers.)

A. JOIN

B. UNION

C. IN

D. BETWEEN

E. ISNULL


3. You are preparing a table design for a complex business database application. After data entry, it is a requirement of one of these fields that a series of complex business logic procedures must be performed to obtain the value for the field. Which of the following would you implement?

A. A user-defined type

B. A field-level constraint

C. A table-level constraint

D. A trigger

E. A computed column



4. A database that has been used in production is in need of analysis to attempt to make performance improvements. Which of the following is likely to improve performance, if correctly implemented? (Choose all that apply.)

A. Table partitioning

B. Covering indexes

C. Triggers

D. RAID 5

E. C2 security


5. You have implemented a database for an international research organization and are performing test queries against the tables within the database. You have some date fields in the database that store only date information. No time information is maintained within these columns. You would like to have a listing of the data from only the year 2005. Which of the following queries represents the best solution to the problem?

A.

SELECT * FROM RTab
WHERE RDate BETWEEN '01/01/2005' AND '01/01/2006'

B.

SELECT * FROM RTab
WHERE RDate BETWEEN '12/31/2004' AND '12/31/2004'

C.

SELECT * FROM RTab
WHERE RDate BETWEEN '12/31/2004' AND '01/01/2005'

D.

SELECT * FROM RTab
WHERE RDate BETWEEN '01/01/2005' AND '12/31/2005'

E.

SELECT * FROM RTab
WHERE RDate BETWEEN '12/31/2005' AND '01/01/2005'



6. You have entered a query using a TOP function to limit the number of records being viewed to five. When you see the results of the query, the dates being viewed are not the first five in the data. What is the most likely source of the problem?

A. The result set has not been grouped.

B. The data contains NULL values.

C. There is an incorrect ORDER BY.

D. Table aliases were used.

E. Schema binding has been applied.

7. Your accounting system works with string variables that are aligned to the left in some cases and to the right in others. Space filling is used on all fields in the interface. You need to remove excess spaces from the strings prior to accepting the value into a table. What functions would you use? (Choose all that apply.)

A. TRIM

B. LTRIM

C. RTRIM

D. REPLACE

E. STR


8. You are working on a view that was created when the database was first implemented several years ago. You believe that indexing the view would improve its performance. When you try to implement the index, you are unsuccessful because an ANSI_NULLS error occurs. What must you do to implement the index?

A. Create the index with ANSI_WARNINGS set to OFF.

B. Create the index with ANSI_WARNINGS set to ON.

C. Re-create the view without SCHEMABINDING.

D. Re-create the view with ANSI_NULLS set to OFF.

E. Re-create the view with ANSI_NULLS set to ON.


9. A production database is accepting sales orders from an online catalog order business. Inserts to the sales table occur frequently. When it was created, the table had a FillFactor setting of 75%. You want to inspect size and fragmentation of the indexes in the table. What do you need to do? (Choose two answers.)

A. Check the Extended Properties page of the table from within SQL Server Management Studio.

B. Query sys.dm_fts_indexpopulation.

C. Query sys.dm_exec_query_stats.

D. Query sys.dm_db_index_physical_stats.

E. Check the Fragmentation page of the index from within SQL Server Management Studio.



10. You need to import a large amount of data into an existing table. To speed up the process, you would like to disable all indexing and enable it once again when the process is complete. How would you implement the process?

A. Use ALTER INDEX DISABLE and ALTER INDEX ENABLE.

B. Use DISABLE INDEX and ENABLE INDEX.

C. Use DROP INDEX and CREATE INDEX.

D. Use ALTER INDEX DISABLE and ALTER INDEX REBUILD.


11. You are diagnosing performance problems with one particular table in a major production database. A large amount of data has just been imported. You would like to repair any fragmentation and integrity issues and provide query response based on the newly imported data. Which statements would you use? (Choose three answers.)

A. DBCC CHECKTABLE

B. ALTER INDEX REORGANIZE

C. UPDATE STATISTICS

D. CREATE STATISTICS

E. DBCC SHOWSTATISTICS

F. DBCC UPDATEUSAGE


12. You need to map a local server login to a remote server login. Which process should you use?

A. sp_helplogins

B. sp_addlogin

C. sp_adduser

D. sp_addlinkedsrvlogin

E. sp_grantlogin

F. SSIS transfer logins


13. A special process developed for periodic maintenance needs to run under a system administrator's account. The process will be run by individuals who lack the permissions to perform the tasks contained in the process. What would you do?

A. Have a system administrator run the task when needed.

B. Use sp_change_users_login Auto_Fix.

C. Use sp_change_users_login Update_One.

D. Have the process run using EXECUTE AS.

E. As a system administrator, schedule the task to run and set the process to run.



14. You have upgraded a database from SQL Server 2000 and are now accessing the tables and other objects within the database. You need to supply the appropriate schema to be used for procedures within the upgraded system. Which schema would you use?

A. sys

B. db

C. dbo

D. sa

E. There is no schema for upgraded databases.


15. As deletions are made from one table within the system, you would like to automatically delete detail records within another table. How would you implement this functionality?

A. Use a DDL trigger.

B. Use a DML trigger.

C. Use a stored procedure.

D. Use a user-defined function.

E. Alter options within the table definition.


16. Someone in the IT department has been creating, deleting, and modifying tables in a production database without first having them tested in the lab environment. You would like to find out who is making changes to the databases. How would you implement this process?

A. Use a DDL trigger.

B. Use a DML trigger.

C. Schedule a stored procedure.

D. Change the permissions to only allow one ID to change the production system and implement password policies.

E. Alter the permissions of the schema.


17. You are implementing a partitioning plan to improve the performance and scalability of a production database. Which command do you execute first?

A. CREATE PARTITION

B. CREATE PARTITION SCHEMA

C. CREATE PARTITION FUNCTION

D. CREATE TABLE

E. CREATE INDEX



18. You are inspecting the transaction handling for an application that updates a number of tables from the SALES database. You would like to know how many transactions are currently open and not committed. What is the easiest way to solve this?

A. Run DBCC OPENTRAN ('master').

B. Run DBCC OPENTRAN ('SALES').

C. Open the Activity Monitor and view open transactions in Process Info.

D. Execute a query against sys.sysprocesses.

E. Use sp_helptransaction.


19. You are creating a backup job and want to ensure that a new header is placed on the tape you are using. What option do you use to perform this task?

A. INIT

B. FORMAT

C. INIT with SKIP

D. INIT with NOSKIP

E. NOINIT with NOSKIP


20. You would like to assign the same schedule to two separate jobs that perform unrelated activities. Sometimes each job will be run on a different schedule, as well. How do you implement this?

A. Create one schedule and assign it to both jobs.

B. Create two schedules, one for each job.

C. Create a job that executes the other two jobs. Create one schedule for the newly created job.

D. Create a job that executes the other two jobs. Create two schedules, one for each job.


21. Someone has created 60 jobs on the server to perform a variety of functions. You need to create a backup of the jobs so that they can be easily re-created in the event of a failure. What should you do?

A. Back up the master database.

B. Back up the model database.

C. Back up all system databases.

D. Create scripts for each of the jobs.

E. Back up the entire server.



22. You have 50,000 records in a database file, and you know you want to add 25,000 records in the next month. Note that a new index is to be created, and you will change your FILLFACTOR; you also want fast input into the tables. What value should you specify for FILLFACTOR to maximize performance?

A. 0 (default setting)

B. 100

C. 70

D. 50


23. You are configuring log shipping on two servers. The source machine houses the internal accounting, human resources, and other related systems. The destination machine is in the human resources department. You want to set up the HR database at the destination so that it can be used for reporting purposes. How do you set up the procedure? (Select all that apply.)

A. Set the source to simple recovery.

B. Set the source to full recovery.

C. Perform a full backup and a log backup of the source.

D. Perform a full backup and a differential backup of the source.

E. Restore both backups at the destination. Restore the full backup with no recovery, and restore the second with recovery.

F. Restore both backups at the destination. Restore the full backup with no recovery, and restore the second with standby.


24. Last month, a database snapshot was created on the SALES database. You would now like to get a single table from the snapshot. You need to maintain the current copy of the database and not lose any data in the process. How do you access the table? (Select all that apply.)

A. Perform a full backup.

B. Create a new snapshot.

C. Restore from the backup.

D. Revert to the new snapshot.

E. Revert to the original snapshot.

F. Restore the snapshot to a different database.



25. What is true about the WITH SCHEMABINDING argument of the CREATE INDEX statement? (Choose all that apply.)

A. It must be specified to create an indexed view.

B. It allows a view's name and other properties to be changed dynamically.

C. It prevents the dropping and altering of tables participating in the view.

D. It has to be specified only when you are creating a unique clustered index on text data.


26. You would like to alter the content of a column in the SALES table that stores data in the XML type. Which method should you use?

A. exist()

B. modify()

C. nodes()

D. query()

E. value()


27. You are a database developer for a computer manufacturing company. For a limited time, the company ships free software with the purchase of any desktop computer or notebook. The software titles, descriptions, values, and other information are located in the Software table. You configure full-text indexing on the Software_Description column that contains more than 2,000 rows and is located in the Software table. After executing a search by using FREETEXT for the word Windows, you notice an empty result set in the results pane. Why is this happening?

A. The catalog is not populated.

B. FREETEXT is not a valid keyword recognized by SQL Server 2005.

C. FREETEXT is not allowed for columns that contain 2,000 or more rows.

D. You didn't create a nonclustered index.


28. You are importing a large amount of data into the Customer table. The table has a trigger that sends emails to client representatives when new customers are added to the table. You would like to prevent the emails from being sent during the import. What should you use to accommodate the import?

A. DISABLE TRIGGER and ENABLE TRIGGER

B. ALTER TABLE DISABLE TRIGGER and ALTER TABLE ENABLE TRIGGER

C. DROP TRIGGER and CREATE TRIGGER

D. ALTER TRIGGER NOT FOR REPLICATION

E. ALTER TRIGGER DISABLE and ALTER TRIGGER ENABLE


29. A database is about to be set up to be replicated to the human resources department. One of the tables contains a trigger that you do not want to fire when the data hits the destination database. How do you accommodate this?

A. Use DISABLE TRIGGER at the destination after replication setup has been completed.

B. Use DROP TRIGGER at the destination after replication setup has been completed.

C. Use sp_settriggerorder at the source before setting up replication.

D. Use sp_settriggerorder at the destination after setting up replication.

E. Use ALTER TRIGGER NOT FOR REPLICATION before setting up replication.


30. A small scientific laboratory needs a powerful database server to perform analysis of complex measures performed on scientists' regular experiments. The lab requires exact accuracy with all calculations because the results determine the fracture points of various metals. Which data type offers the most accurate results?

A. smallmoney

B. money

C. float

D. real

E. decimal


31. You want to import a large amount of data from text files. You would like to speed the operation by having the import be performed in primary key sequence. How can you do this?

A. Use an order hint with BCP.

B. Use an order element in the format file.

C. Use an order hint with BULK INSERT.

D. Use ORDER BY when creating the text files.

E. Use the SORT option with the bcp command.



32. You are designing a database that will serve as a back end for several large websites. The websites will communicate with each other and pass data back and forth by using XML. You would like to control the data displayed on the user's browser based on interactions with the user. In many cases, columns and rows need to be eliminated based on the criteria supplied. You would like to minimize round-trips to the server for data-exchange purposes. What technology should you apply?

A. Use a user-defined function with SCHEMABINDING set to the XML recordsets.

B. Create an indexed view of the XML recordset, specifying only the columns needed, and supply a WHERE condition based on the rows selected.

C. Create standard views of SQL Server data and export the requested data by using FOR XML.

D. Send data requests and updates directly from the client machine to the server by using the FOR XML and OPENXML options.

E. Use HTML and an XML schema to provide the necessary view of the data.


33. You are performing a BCP operation to import data from text files prepared on another system. The pipe (|) character has been used as a field delimiter, and a colon (:) is the record delimiter. How do you accommodate this file?

A. Reformat the file as a tab-delimited text file.

B. Reformat the file as a comma-delimited text file.

C. Use the bcp command with all defaults.

D. Use BULK INSERT with all defaults.

E. Use a format file.


34. You are creating an application in which accuracy is important. Which data type will give the greatest possible precision?

A. int

B. bigint

C. decimal

D. real

E. float



35. Users inform you that recently, they have frequently been receiving error messages as query volume has steadily increased. One of the users captured the following message:

Transaction was deadlocked on resources with another
process and has been chosen as the deadlock victim.
Rerun the transaction.



What is your next step?

A. Use a different transaction isolation level.

B. Use SQL Profiler to capture deadlock events.

C. Use System Monitor to monitor locks.

D. Add more client access licenses to the server.


36. You are creating a remote service binding for use by the Service Broker in connecting to another machine. You would like the service to run in the context of a system administrator and require authentication to be performed within the connection. What command options should you use?

A. USER = SysAdmin, ANONYMOUS = ON

B. AUTHORIZATION = sa, ANONYMOUS = ON

C. AUTHORIZATION = sa, USER = SysAdmin

D. USER = SysAdmin, ANONYMOUS = OFF

E. AUTHORIZATION = sa, ANONYMOUS = OFF


37. You are creating an index for an existing table. There is already a nonclustered index on the primary key. You would like to put the data into address sequence, which is made up of several fields. The address is not the primary key. What should you do?

A. Change the primary key index to clustered and create a nonclustered index on the address.

B. Create a nonclustered index on the address.

C. Create a clustered index on the address.

D. Change the primary key to the address and make the index clustered.

E. Change the primary key to the address and make the index nonclustered.



38. You want to create an XML index on the Customer table of the SALES database. What do you do? (Select two answers.)

A. Create a standard primary clustered index.

B. Create a standard primary nonclustered index.

C. Create an XML primary index.

D. Create an XML secondary index.

E. Create a standard extended index.


39. You are testing the database mirroring functionality. You would like to try automatic failover. Which of the following are required? (Select all that apply.)

A. Synchronous operation

B. Asynchronous operation

C. High-performance mode

D. Witness

E. Monitor


40. You have a statistical database that has scheduled snapshots being created every night. To run a series of reports, you would like to get the database back to the point where it was two weeks ago. What do you do? (Select all that apply.)

A. Restore from the appropriate snapshot.

B. Restore from backup.

C. Create an additional snapshot.

D. Delete all snapshots.

E. Delete all snapshots except the one from two weeks ago.

CodeProject Newsletter (1 Sep 2008)


Grid & Data Controls
  • A C# 2008 advanced customizable PropertyGrid control - Massimiliano Brugnerotto
    This user control is similar to the standard Microsoft .NET 2.0 PropertyGrid control with several additional features : gets/sets any property item at runtime (eg. change property's help text), new property items (Date and Time, Date, Time, File, Directory, ProgressBar, ..), multi-language support,I (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#)

List Controls

Shell and IE programming

Smart Client

  • Displaying DialogBox In SCSF - Anil Awale
    This article explain how to display dialogbox in SCSF (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET (.NET, .NET 2.0), Dev, Intermediate

ASP.NET

Client side scripting

  • JavaScript Expandable / Collapsable Panel Control - SAMir Nigam
    This article describes how to create an Expandable / Collapsable Panel Control using JavaScript. (Unedited)
    C# (C# 2.0, C# 3.0, C#), Javascript, CSS, HTML, XHTML, JScript .NET, .NET (.NET, .NET 2.0, .NET 3.5), ASP, ASP.NET, Visual Studio (VS2008, VS.NET2003, VS2005, Visual Studio), ADO.NET, Ajax, Design, Dev, Intermediate, Advanced

  • MASKiT v1.00 - Navnath R. Kale
    Textbox with mask features and freeze notations (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Javascript, HTML, Dev, Intermediate

Silverlight

  • Cards Game Library - Bishoy Labib
    A library for creating cards games with Silverlight with 2 sample Solitaire games (Unedited)
    C#, Silverlight, Intermediate

  • Silverlight 2 Database Updating - Stein Borge
    Perform database updates from Silverlight applications (Unedited)
    C#, .NET (.NET 3.0, .NET 3.5, .NET), Silverlight, LINQ, SQL Server, Architect, Dev, Design, Intermediate

Office Development

  • PowerPointCreator - Elmue
    This C# (VS 2003) project creates PowerPoint presentations based on XML templates which are filled with dynamic data.
    C#, XML, .NET (.NET 1.1, .NET), Dev, Intermediate

Database

  • How-To: Automatically rename Foreign Keys on a DB - Lino Barreca
    Use T-SQL and system views/stored procedures to give consistent name to every relation in a database. (Unedited)
    SQL, SQL Server (SQL 2005, SQL Server), DBA, Dev, Intermediate

  • SQL Server Agent Proxy - Muhammad Shujaat Siddiqi
    shujaatsiddiqi.blogspot.com (Unedited)
    SQL, SQL Server (SQL Server, SQL 2005), SysAdmin, Architect, DBA, Dev, Beginner, Intermediate, Advanced

  • SQL Server 2005 - Merge Replication Step by Step Procedure - Ahmad Eid Salim
    Replication is the process of sharing data between databases in different locations. Using replication, we can create copies of the database and share the copy with different users so that they can make changes to their local copy of database and later synchronize the changes to the source database (Unedited)
    SQL, Windows, Mobile, SQL Server

Cross Platform

Game Development

  • StarTrek - Analysis of the Good, the Bad, and the Ugly - Jason McBurney, nefar12
    A Discussion about our StarTrek implementation. (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), Windows, Design, Beginner

  • Another Star Trek Game (The Retro One) - BadKarma
    The Star Trek game reworked, using a 2D retro look.
    C++ (VC6, VC7, VC7.1, VC8.0, C++), C++/CLI, C, Dev, Intermediate

  • StarTrek Galaxy - rehopkins2
    Windows Multiple ship version of the classic StarTrek
    VB, Windows, Dev, Intermediate

  • The New, Improved Star Trek Game - djc2032
    Windows Form Implementation of the Classic Game (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET (.NET, .NET 2.0), Intermediate

  • AI Life - rahul_sindhu
    Steering Behaviours, Genetic Algorithms, and Neural Networks in games.
    C# (C# 2.0, C# 3.0, C#), Windows (Windows, WinXP, Vista), .NET, Visual Studio (VS2005, Visual Studio), GDI+, Dev, Design, Intermediate, Advanced

  • Bouncing Balls in OSG - Adrian Savage
    Simulation in OSG using discrete events, a Ternary Heap and Interpolation (Unedited)
    C++ (VC8.0, C++, VC9.0), Windows (Windows, WinXP), Visual Studio (VS2005, VS2008, Visual Studio), OpenGL, Architect, Dev, Intermediate

LINQ

  • Use LINQ to Create Music Playlists - davehamdan
    See how to utilize LINQ along with Typed-DataSets to quickly build playlists for your music collection.
    C# (C# 3.0, C#), Windows, .NET (.NET, .NET 3.0, .NET 3.5), LINQ, Dev, Intermediate

Mobile Development

  • Windows Mobile Power Management - Joel Ivory Johnson
    Collection of information on interacting with the power manager to take advantage of or disable power saving features in Windows Mobile devices (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#).NET 2.0, WinMobile6, WinMobile5, Visual Studio (VS2008, Visual Studio), Dev, Intermediate, Advanced

Windows Presentation Foundation

C / C++ Language

  • Three important operators you often need to overload - programmersmind
    A look at three important operators you often need to overload.
    C++ (VC6, VC7, VC7.1, VC8.0, C++), C, Beginner

  • 8Queen Problem - ima_c++_programmer
    Tries to solve the queen problem using backtracking. (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++), C, Windows (Windows, Win2K), Win32, Beginner, Intermediate

  • Identify the Types of SIMD Instructions - CBasicNet
    Identify the types of SIMD instructions which the Processor has
    C++, Windows, Dev, Beginner

  • HOWTO: Export C++ classes from a DLL - Alex Blekhman
    The C++ programming language and Wndows DLL can live in peace after all. (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++), C++/CLI, C, Beginner

  • 32-bit pointers in a 64-bit world - sunnyim4
    64 bit pointers are wasteful if you don't need to access TB of RAM (Unedited)
    C++, Windows, Win64, Dev, Intermediate, Advanced

C#

VB.NET

  • Extending the My Namespace - drummerboy0511
    Learn how to extend the My Namespace in Visual Basic 2005 / 2008! (Unedited)
    VB (VB 7.x, VB 8.0, VB 9.0, VB 6, VB), Windows (Windows, WinXP, Vista), Visual Studio (VS2008, VS2005, Visual Studio), Dev, Beginner, Intermediate, Advanced

VBScript

Algorithms & Recipes

  • Palindromes in C# - Philip Fitzsimons
    Algorithim for calculating if a string is a palindrome.
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET, Dev, Intermediate

Collections

  • Custom Enumerators - Jaime Olivares
    Modify the behaviour of any enumerator to make it circular, constrained or stepped. Also reversible enumerator. (Unedited)
    C#, Windows, Win Mobile, .NET CF, .NET, Mobile, Visual Studio, Architect, Dev, Design, Beginner, Intermediate, Advanced

Date and Time

Internet / Network

Macros and Add-ins

Threads, Processes & IPC

Code Generation

Design and Architecture

Work Issues

  • It is difficult - Karpov Andrey
    The article concerns the problem of excess of program creation terms as a result of a prejudice that programming is simple and even simpler. (Unedited)
    Architect, QA, Design, Beginner

Articles updated added Last week

List Controls

Miscellaneous

  • AnimatedRollupControl with C++/CLI - Steve Katic
    3dsMax style rollup control animated in C++/CLI
    C++ (VC8.0, C++), C++/CLI, Windows (Windows, Vista), .NET (.NET, .NET 2.0), Visual Studio (VS2008, Visual Studio), Dev, Intermediate

Printing

  • Printing Reports in .NET - Mike Mayer
    Using the library presented, you can print reports from C# and other .NET languages
    C#, VB.NET 1.0, .NET 1.1, Win2K, WinXP, Win2003VS.NET2002, Dev, Intermediate

ASP.NET

  • Deploying ASP. Net Websites on IIS 7.0 - Abhijit Jana
    This article describe some Features and Architecture of IIS 7.0 and Deployment of ASP.Net Sites on IIS (Unedited)
    Javascript, CSS, HTML, XHTML, Ajax, ASP, ASP.NET

  • UML Interview Questions Part 1 - Shivprasad koirala
    UML Interview Questions Part 1 (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++, VC9.0), C++/CLI, C# (C# 1.0, C# 2.0, C# 3.0, C#), VB (VB 7.x, VB 8.0, VB 9.0, VB 6, VB), UML, F#, .NET CF, .NET (.NET, .NET 3.5, .NET 3.0, Mono, DotGNU, .NET 1.0, .NET 1.1, .NET 2.0), SQL Server (SQL 2000, SQL 2005, SQL CE, SQL Server), Visual Studio (VS.NET2002, VS.NET2003, VS2005, VS6, VS2008, Visual Studio), MFC, ATL, ASP, ASP.NET, WCF, WPF, Ajax, Oracle, ADO, ADO.NET, Design, Architect, Beginner, Intermediate, Advanced

  • Building and deploying your web application the easy way - Xiangyang Liu 刘向阳
    A .NET 2.0 tool to simplify web application deployment (Unedited)
    C# (C# 2.0, C#), Windows (Windows, Win2K, WinXP, Win2003, Vista), ASP.NET, SysAdmin, CEO, Architect, DBA, Dev, QA, Design, Intermediate

Client side scripting

Silverlight

  • Creating and Reusing Dynamic Animations in Silverlight - SteveLi-Cellbi
    Creating dynamic animations and a simple way to reuse them to reduce the XAML code size. (Unedited)
    C# (C# 2.0, C# 3.0, C#), .NET (.NET, .NET 3.5, .NET 3.0), Visual Studio (VS2008, Visual Studio), Dev, Beginner, Intermediate

Web Security

  • Secure Persistent ASP.NET Forms Authentication - BrantBurnett
    An ASP.NET system for having two authentication cookies, one secure and one insecure, to have multiple tiers of security by folder.
    VB (VB 8.0, VB 9.0, VB), .NET (.NET, .NET 3.0, .NET 2.0, .NET 3.5), ASP.NET, VS2008, VS2005, Dev, Intermediate, Advanced

Microsoft Exchange

SharePoint Server

Audio and Video

.NET Framework

COM / COM+

  • ProSysLib: Dissecting The Process - Vitaly Tomilov
    Access detailed information about the current process in the easiest way (Unedited)
    C++ (VC6, VC7, VC7.1, VC8.0, C++, VC9.0), C++/CLI, C# (C# 1.0, C# 2.0, C# 3.0, C#), VBScript, Office, Windows (Windows, Win2K, WinXP, Win2003, Vista), .NET (.NET, .NET 3.5, .NET 3.0, .NET 1.0, .NET 1.1, .NET 2.0), Win32, Win64, ATL, STL, COM, SysAdmin, Architect, Dev, QA, Beginner, Intermediate, Advanced

Game Development

Libraries

Windows Presentation Foundation

  • Item Presentation Models for WPF - Adrian Alexander
    Make your life easier by inserting a Presentation Model layer between your domain-model collection contents and template-generated WPF objects.
    C# (C# 2.0, C#), XML, Windows (Windows, WinXP, Vista), .NET (.NET, .NET 3.0, .NET 3.5), Visual Studio (VS2005, VS2008, Visual Studio), XAML, WPF, Architect, Dev, Intermediate, Advanced

C / C++ Language

  • XCPClock - CodeProject Clock - Hans Dietrich
    XCPClock displays CodeProject clock with four skins.
    C++, Windows, Visual Studio, Dev, Intermediate

C#

Algorithms & Recipes

  • Octree Search - Kam
    An Octree Search Algorithm in C# (Unedited)
    C# (C# 1.0, C# 2.0, C# 3.0, C#), .NET, Architect, DBA, Dev, QA, Design, SysAdmin, Sales, Marketing, Advanced

Internet / Network

Macros and Add-ins

  • Barcode Image Generation Library - Brad Barnhill
    This library was designed to give an easy class for developers to use when they need to generate barcode images from a string of data
    C# (C# 2.0, C#), Windows (Windows, Win2K, WinXP, Win2003), .NET (.NET, .NET 2.0), Visual Studio (VS2005, Visual Studio), Dev, Intermediate

Threads, Processes & IPC

Code Generation

  • EGen � a scalable code generation and maintenance framework - Eduard Ene
    An article on EGen - a scalable code generation and maintenance framework for C/C++/C#/Java implemented in Ruby. (Unedited)
    C++, C++/CLI, C, C#, Ruby, Windows, Dev, QA, Design, Intermediate, Advanced

  • Minimalist Meta-Model for CRUD Applications - Olivier Giulieri
    A look at the minimal metadata needed (database mapping and user interface) for CRUD applications code generation using the example of a to do list. (Unedited)
    Javascript, XML, CSS, SQL, HTML, Architect, DBA, Dev, Design, Intermediate, Advanced

WS-I Test tools

The WS-I issued a test tool suite in 2004. Two tools are included :

A monitor designed to intercept live SOAP messages and the associated HTTP headers during a test session. This functionality is ensured through the use of the man in the middle principle.

An analyzer designed to analyze profile conformance of a Web Service artifacts. The profile is chosen with a Test Assertion Document (*.TAD) file. The different artifacts are :
  • The Web Service description file, actually a WSDL file
  • The Web Service discovery artifact, actually an UDDI entry
  • The messages and associated envelopes exchanged during a test session and captured with the test tools
  • These test tools are not designed to be used as a full certification tool. As stated in the user guide (WS-I Testing Tools version 1.1 User Guide) bundled with the test tools.

Web Service Standards Listings

These sites contain documents and links about the different Web Services standards identified on this page.