6. Creating Cloud Application using Azure



 TOPIC: Creating Cloud Application  using Azure: Creating simple cloud application, configuring an application, creating virtual machine, deployment of application to Windows Azure Cloud, using Azure Storage Services, using Azure Table Service, deployment of application to the production environment.


6.1 CREATING SIMPLE CLOUD APPLICATION

Creating a Simple Windows Azure Application

Here is an introduction to the Microsoft Windows Azure platform.. You’ll start off with a very simple cloud application.

Getting the Cloud Computing Tools Ready

To develop applications on the Azure platform, you will need to get the necessary toolset downloaded and installed. This includes Visual Studio 2010 and the Azure tool kit.
Fire up Visual Studio 2010. Click to create a new project and select the Cloud node from under Visual C# templates as shown in Figure 1.

 Figure 1: Selecting a Cloud Project Template

Click OK to proceed. As soon as you click OK, you are prompted to select the type of roles for the Azure application as shown in Figure 2.

Figure 2: Selecting Roles

Select The ASP.NET Web Role. When you hover your mouse over the selected role, you are prompted to determine if you would like to delete it or rename it. Click the pencil icon to rename the role as shown in Figure 3.

Figure 3: Renaming the Web Role

In this case, rename it to “MyASPNETWebRole”. Click OK for the project to be created.
Once you do this, Visual Studio 2010 does its code-behind and generates the item shown in Figure 4 within Solution Explorer.

Figure 4: The Role added to Solution Explorer

You can toggle to the design view of default.aspx to see if you like the layout and make any change you deem fit. Figure 5 shows how the page looks currently.

Figure 5: The start of your Cloud Computing application

You are now ready to run the cloud application. One thing to note is that the Azure emulator needs to be run elevated. Hence you will have to restart Visual Studio as elevated in case you did not do so in the first place.
Once you Ctrl+F5, Visual Studio readies the project to deploy to the emulator as shown in Figure 6.

Figure 6: Deploying the cloud emulator

Once it is done, you can see the following screen (Figure 7):

Figure 7: The loaded Cloud emulator

Click OK to dismiss the dialog and launch the emulator. The emulator sits in your system tray (the blue windows icon as shown in figure 8.)

Figure 8: The Cloud emulator in the System Tray.

Once the emulator launches, it will go ahead and launch the default.aspx page.

Figure 9: Your Cloud Application running in the emulator

There, you now have your first cloud application running in the emulator. You can them proceed to deploy the application to the cloud. You’ll learn how to do that deployment in the next article!

6.2 CONFIGURING AN APPLICATION
Covered in 6.1

6.3 CREATING VIRTUAL MACHINE
CREATING VIRTUAL MACHINE 
In computing, a virtual machine (VM) is an emulation of a particular computer system. Virtual machines operate based on the computer architecture and functions of a real or hypothetical computer, and their implementations may involve specialized hardware, software, or a combination of both.
Various different kinds of virtual machines exist, each with different functions. System virtual machines (also known as full virtualization VMs) provide a complete substitute for the targeted real machine and a level of functionality required for the execution of a complete operating system. A hypervisor uses native execution to share and manage hardware, allowing multiple different environments, isolated from each other, to be executed on the same physical machine. Modern hypervisors use hardware-assisted virtualization, which provides efficient and full virtualization by using virtualization-specific hardware capabilities, primarily from the host CPUs. Process virtual machines are designed to execute a single computer program by providing an abstracted and platform-independent program execution environment. Some virtual machines, such as QEMU, are designed to also emulate different architectures and allow execution of software applications and operating systems written for another CPU or architecture. Operating-system-level virtualization allows the resources of a computer to be partitioned via the kernel's support for multiple isolated user space instances, which are usually called containers and may look and feel like real machines to the end users.

A virtual machine (VM) is a software implementation of a machine (for example, a computer) that executes programs like a physical machine. Virtual machines are separated into two major classes, based on their use and degree of correspondence to any real machine:
  • A system virtual machine provides a complete system platform which supports the execution of a complete OS. These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use (for example, executing on otherwise obsolete platforms), or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness (known as hardware virtualization, the key to a cloud computing environment), or both.
  • A process virtual machine (also, language virtual machine) is designed to run a single program, which means that it supports a single process. Such virtual machines are usually closely suited to one or more programming languages and built with the purpose of providing program portability and flexibility (amongst other things). An essential characteristic of a virtual machine is that the software running inside is limited to the resources and abstractions provided by the virtual machine—it cannot break out of its virtual environment.
STEPS
To Create new Virtual Machines, you need to click on New


 It will open a new dialog for you. There are two options to create the Virutal Machines Quick Create and From Gallery. I will go with Quick Create option. When I choose Quick Create then it will open a form in right side where you can fill all the details of Virtual Machines. 


  It will open a new dialog for you. There are two options to create the Virutal Machines Quick Create and From Gallery. I will go with Quick Create option. When I choose Quick Create then it will open a form in right side where you can fill all the details of Virtual Machines. 


Another option is Size. It provides you functionality to add different types of VM configuration like here you can define the core of system and also memory.


Provide the name of your VM and create user name and password for this. Here a  very important option is Region. You need to specify the Region as per your local and create virtual machines.


It will be creating your Virtual Machines, It will take few minutes to configure it.


Now, your Virtual Machine is ready for you. Click to connect option to connect with your Virtual Machine.


When you click on CONNECT, it will download a .rdp file for you. which contains all the configuration for your VM.


Run this "DotnetTutorial.rdp", it will open a dialog which will ask for credetial of your Virtual Machines.


When you provide correct credetials for this VM. It will open and it will look like as below.


Note: Don't forget to shutdown your VM after complete your work. You can shutdown it from shutdown option as below.






6.4 DEPLOYMENT OF APPLICATION TO WINDOWS AZURE CLOUD
` PUBLISHING A WEB APPLICATION TO WINDOWS AZURE WITH VISUAL STUDIO

Creating a Windows Azure Web Site
Navigate to http://manage.windowsazure.com/ and either log into your account or sign up for a trial account.

Once you’ve logged into Windows Azure, you’ll see a variety of options on the left hand navigation. Select WEB SITES from the list:


Select +NEW at the bottom left hand corner:


Select COMPUTE -> WEB SITE -> QUICK CREATE, add a name under URL and finally check CREATE WEB SITE:


Verify the site is created and running and flip over to your Visual Studio development environment:


Create a web application or open an existing web application using Visual Studio. When you’re ready to publish the web application follow the steps below:
PUBLISHING PROCESS
Remember that web site you created at the beginning? On the Profile Page you’ll want to utilize a publishing profile from your Windows Azure account. I’ll describe how to do that next.

DOWNLOAD PUBLISHING FILE
Let’s take a moment to download the publishing file…
Navigate to http://manage.windowsazure.com/ and either log into your account or sign up for a trial account.
Once you’ve logged into Windows Azure, you’ll see a variety of options on the left hand navigation. Select WEB SITES from the list:

Select the web site you created in the previous steps:


Select DASHBOARD and then select “Download the publish profile”:


Save the publish profile to the machine Visual Studio is installed on.

OK, back to the Publish Web process in Visual Studio
Open up Visual Studio, load your completed web application, and select BUILD from the menu and then “Publish Selection”:


Select “Import…” and navigate to the publish file you saved and select “Next >


 The Connection page will pull information from the publish file and populate the fields for you. Verify the details and select “Next >
The Connection page will pull information from the publish file and populate the fields for you. Verify the details and select “Next >


 The Settings page provides you an option to deploy as a Release or Debug as well as a place to define a database. Configure to suit your needs and select “Next >



Finally the Preview page provides a view of all the files to be uploaded to your Windows Azure Web Site:

Visual Studio will give you a log of information as it deploys to Windows Azure:


Once the web application is deployed, navigate to the site URL (in my case I used a self-signed certificate for SSO):


Here is my site:


Congratulations, you’ve deployed a web application to Windows Azure!



6.5 USING AZURE STORAGE SERVICES
Windows Azure BLOB storage service can be used to store and retrieve Binary Large Objects (BLOBs), or what are more commonly known as files. In this introduction to the Windows Azure BLOB Storage service we will cover the difference between the types of BLOBs you can store, how to get files into and out of the service, how you can add metadata to your files and more.
There are many reasons why you should consider using BLOB storage. Perhaps you want to share files with clients, or off-load some of the static content from your web servers to reduce the load on them. However, if you are using Azure’s Platform as a Service (PaaS), also known as Cloud Services, you’ll most likely be very interested in BLOB storage because it provides persistent data storage. With Cloud Services you get dedicated virtual machines to run your code on without having to worry about managing those virtual machines. Unlike the hard drives found in Windows Azure Virtual Machines (the Infrastructure as a Service –IaaS- offering from Microsoft), the hard drives used in Cloud Services instances are not persistent. Because of this, any files you want to have around long term should be put into a persistent store, and this is where BLOB storage is so useful.
Where Do We Start?
BLOB Storage, along with Windows Azure Tables and Windows Azure Queues make up the three Windows Azure Storage services. Azure tables are a non-relational, key-value-pair storage mechanism and the Queue service provides basic message-queuing capabilities. All three of these services store their data within a Windows Azure Storage Account which we will need to get started.
What Kind of BLOB is that?
Any file type can be stored in the Windows Azure BLOB Storage service, such as Image files, database files, text files, or virtual hard drive files. However, when they are uploaded to the service they are stored as either a Page BLOB or a Block BLOB depending on how you plan on using that file or the size of the file you need to work with.
Page BLOBs are optimized for random reads and writes so they are most commonly used when storing virtual hard drive files for virtual machines: In fact, the Page BLOB was introduced when the first virtual drive for Windows Azure was announced: the Windows Azure Cloud Drive (at the time they were known as Windows Azure X-Drives). Nowadays, the persisted disks used by Windows Azure Virtual Machine (Microsoft’s IaaS offering) also use the Page BLOB to store their data and Operating System drives. Each Page BLOB is made up of one or more 512-byte pages of data, up to a total size limit of 1 TB per fil

6.6 USING AZURE TABLE SERVICE
Windows Azure Tables are a non-relational, key-value-pair, storage system suitable for storing massive amounts of unstructured data.  Whereas relational stores such as SQL Server, with highly normalized designs, are optimized for storing data so that queries are easy to produce, the non-relational stores like Table Storage are optimized for simple retrieval and fast inserts.  This article will cover the very basics of Windows Azure Table storage and provide you with resources and suggested topics to continue your learning.
Some people, when first learning about the Windows Azure platform, find it hard to understand the purpose of the Table Storage feature.  This is especially true of those who are familiar with developing applications using highly relational data.  To get a good understanding of how a Key-Value Pair system differs from a traditional relational database you can read Buck Woody’s article on the topic in his continuing series: Data Science Laboratory System - Key/Value Pair Systems
The code examples provided in this article are written using the Windows Azure .NET SDK 2.2 with Visual Studio 2013; however, like most services on Windows Azure this SDK simply calls a REST based API in the background for you.  This underlying REST API allows for a variety of program languages and platforms to use Windows Azure services and the Table Storage service is no different.  You can find documentation on using the Table Storage service from node.js, Java, PHP, Python and Ruby at http://windowsazure.com.

Getting Started

To get started using the Table service, we’ll first need to have a Windows Azure account and create a Storage Account.  You can get a free trial account or, if you have a MSDN Subscription, you can sign up for your Windows Azure benefits in order to try out the examples included in this article.  Once you have an Azure account you can then create a storage account that can then be used to store Tables.
What are Tables and Entities?
In Windows Azure Table Storage, the term ‘Table’ is used to describe a grouping of entities. You can loosely think of an entity as a row of data, but it’s more like a collection of properties and values that were stored together within a table.  Unlike relational databases, the entities inside of a table do not need to have the same structure or schema.  This means that we might have an entity that stores properties about a product in the same table as an entity that stores properties about the product options. 
There are some rules about entities: each entity can have up to 252 properties but the size of an entity with all of the properties and values cannot exceed 1 MB.  Table storage entities support the following data types: Byte array, Boolean, DateTime, Double, GUID, Int32, Int64 and String (up to 64KB in size).  There are an additional three required system properties that must exist on every entity: PartitionKey, RowKey and TimeStamp.  The partition key is way to group entities within a table and control the scalability of the table which we will touch on in a bit.  The row key is a unique identifier for an entity within a given partition.  The combination of partition key and row key is the unique identifier for an entity within a table, comparable to a primary key in a relational database.  The Timestamp property represents the last time the entity was modified and is managed by the Storage sub-system.  Any change you make to Timestamp will be ignored.


6.7 DEPLOYMENT OF APPLICATION TO THE PRODUCTION ENVIRONMENT.
The User Acceptance Test Environment
The User Acceptance Test (UAT) environment tests the deployment of the production-ready application in an environment that closely resembles the production environment. In older guidance, the UAT environment is named the staging environment. The name was changed to UAT because, in SharePoint, a staging server deploys content that still requires a final review to the production environment. The purpose of the UAT environment is to identify any potential deployment issues and to allow content to be reviewed by business owners. If the application passes these tests, the business owners sign off on the application. Although the UAT environment is optional for smaller applications where deployment failures are not critical, it is still recommended.

The Production Environment

After the UAT tests are complete, the application can be deployed to the production environment. Because the UAT phase emulates the production deployment, the deployment steps are identical, aside from any required name changes. For an example of how to deploy an application to a production environment, see An Example of Deploying a New Application. For publishing scenarios, there will often be an authoring farm for creating and approving content. This environment is also considered a production environment. Typically, solutions are applied to the authoring environment before or at the same time as the production environment. You may need to stagger the deployment if the changes impact the content in the production environment. In this case, you may need to perform the following steps:
  1. Apply the solution to the authoring farm.
  2. Make relevant updates to the production content in the authoring farm.
  3. Apply the solution to the production farm.
  4. Deploy the content to the production farm.




5. Application Development using C#



TOPICS: Application Development using C#: Understand object oriented concepts in C#.NET, Creation of UI and event handling, web page creation using ASP.NET, ADO.NET architecture, implementation of data seta, using ADO.NET in console application, using ADO.NET in web application.

5.1 UNDERSTAND OBJECT ORIENTED CONCEPTS IN C#.NET

  • A class is a collection of objects and represents description of objects that share same attributes and actions. It contains characteristics of the objects such as objects attributes, actions or behaviors.
  • An object is a real-world entity that keeps together property states and behaviors.
For example, A “Bike” usually has common elements such as bike color, engine, mileage etc. In OOP terminology these would be called as a Class Properties or Attributes of a Bike object.

  • Encapsulation is the process of keeping or enclosing one or more items within a single physical or logical package. In object oriented programming methodology it prevents access to implementation details.
  • Encapsulation is implemented by using access specifiers. An access specifier defines the scope and visibility of a class member. Available access specifiers are public, private, protected, internal etc.
  • Abstraction is the process of providing only essential information to the outside real world and hiding overall background details to present an object. It relies on the separation of interface and implementation.

For example, we continue with “Bike” as an example, we have no access to the piston directly, we can use start button to run the piston. Just imagine if a bike manufacturer allows direct access to piston, it would be very difficult to control actions on the piston. That’s the reason why a bike provider separates its internal implementation from its external interface.
  • Inheritance in OOP allows us to create a new class using an existing one meaning extending one class to another.
  • This concept can also be related with the real world example. Let’s take a Bike example again. A Bike manufacturer uses same mechanism of existing version of the bike while launching a new version with some additional added functionality. This allows manufacturer to save their time and efforts both.
  • The main advantage of extending classes is that it provides a convenient way to reuse existing fully tested code in different context thereby saving lots of time with existing coding and its model style.


5.2 CREATION OF UI AND EVENT HANDLING

C# has all the features of any powerful, modern language. In C#, the most rapid and convenient way to create your user interface is to do so visually, using the Windows Forms Designer and Toolbox. Windows Forms controls are reusable components that encapsulate user interface functionality and are used in client side Windows based applications.
Open your Visual Studio Environment and Click File->New Project


Then you will get a New Project Dialogue Box asking in which language you want to create a new project.



 Select Visual C# from the list, then you will get the followinug screen.



Now you can add controls in your Form Control.

How to add controls to Form ?          
               
In the left side of the Visual Studio Environment you can see the Tool Box. There are lots of controls grouping there in the Tool Box according to their functionalities. Just click the + sign before each group then you can see the controls inside the group. You can select basic controls from Common Controls group. You can place the control in your Form by drag and drop the control from your toolbox to Form control.


How to drag and drop controls ?
In the above picture we drag and drop the Button control from Toolbox - Common control to Form control.
Now you can start write codes on each control to create your programs.

Event Handling :
No GUI application is complete without enabling actions. Even though arranging components is a significant issue, applying actions is also equally important. These actions are what instructs the program to act when something happens.  For example, Mouse clicks, Keyboard presses, etc. Before beginning our discussion let's review how different API’s handle events.
Microsoft Foundation Classes (MFC): These classes are based upon Microsoft's Win32 API. Normally development work is done through Visual C++.  
Java API: Here, the majority of work is done by employing AWT and Swing packages. Actions are enabled by applying Interfaces. The main difficulty is that you should learn and remember all methods in the corresponding interfaces.  Otherwise, you receive compile time errors.
As compared to the above, Event handling in C# is much more simplified. It's possible to handle various Mouse and Key related events quickly and in a more efficient manner. Learning will be easier, if you understand the basic principles behind handling events, which are elaborated below 
  1. Invoke the related event by supplying a custom method or event handler using the += operator as shown here:
b1.Click += new EventHandler(OnClick);
  1. Apply the event handler as described below. It must be in conformance with a delegate of the class System.EventHandler:
          public delegate void EventHandler(object sender, Event args)
The first argument indicates the object sending the event and the second argument contains information for the current event. You can use this argument object to handle functions associated with the related event.

5.3 WEB PAGE CREATION USING ASP.NET
  1. Open Visual Studio or Microsoft Visual Web Developer Express.
  2. On the File menu, click New Web Site.
The New Web Site dialog box appears, as shown in the following illustration:


  1. Under Installed Templates, click Visual Basic or C# and then select ASP.NET Web Site.
When you create a Web site project, you specify a template. Each template creates a Web project that contains different files and folders. In this walkthrough, you are creating a Web site based on the ASP.NET Web Site template, which creates files and folders that are typically used in ASP.NET Web sites.
  1. In the Web Location box, select File System, and then enter the name of the folder where you want to keep the pages of your Web site.
For example, type the folder name C:\BasicWebSite.
  1. Click OK.
Visual Studio creates a Web project that includes prebuilt functionality for layout (a master page, the Default.aspx and About.aspx content pages, and a cascading style sheet), for Ajax (client script files), and for authentication (ASP.NET membership). When a new page is created, by default Visual Studio displays the page in Source view, where you can see the page's HTML elements. The following illustration shows 


5.4 ADO.NET ARCHITECTURE


ADO.NET consist of a set of Objects that expose data access services to the .NET environment. It is a data access technology from Microsoft .Net Framework , which provides communication between relational and non relational systems through a common set of components .
System.Data namespace is the core of ADO.NET and it contains classes used by all data providers. ADO.NET is designed to be easy to use, and Visual Studio provides several wizards and other features that you can use to generate ADO.NET data access code.


Data Providers and DataSet




The two key components of ADO.NET are Data Providers and DataSet . The Data Provider classes are meant to work with different kinds of data sources. They are used to perform all data-management operations on specific databases. DataSet class provides mechanisms for managing data when it is disconnected from the data source.

Data Providers
The .Net Framework includes mainly three Data Providers for ADO.NET. They are the Microsoft SQL Server Data Provider , OLEDB Data Provider and ODBC Data Provider . SQL Server uses the SqlConnectionobject , OLEDB uses the OleDbConnection Object and ODBC uses OdbcConnection Object respectively.
ASP.NET ODBC Connection


A data provider contains Connection, Command, DataAdapter, and DataReader objects. These four objects provides the functionality of Data Providers in the ADO.NET.

Connection
The Connection Object provides physical connection to the Data Source. Connection object needs the necessary information to recognize the data source and to log on to it properly, this information is provided through a connection string.

Command
The Command Object uses to perform SQL statement or stored procedure to be executed at the Data Source. The command object provides a number of Execute methods that can be used to perform the SQL queries in a variety of fashions.

DataReader
The DataReader Object is a stream-based , forward-only, read-only retrieval of query results from the Data Source, which do not update the data. DataReader requires a live connection with the databse and provides a very intelligent way of consuming all or part of the result set.

DataAdapter
DataAdapter Object populate a Dataset Object with results from a Data Source . It is a special class whose purpose is to bridge the gap between the disconnected Dataset objects and the physical data source.

DataSet


DataSet provides a disconnected representation of result sets from the Data Source, and it is completely independent from the Data Source. DataSet provides much greater flexibility when dealing with related Result Sets.

DataSet contains rows, columns,primary keys, constraints, and relations with other DataTable objects. It consists of a collection of DataTable objects that you can relate to each other with DataRelation objects. The DataAdapter Object provides a bridge between the DataSet and the Data Source.


5.5 IMPLEMENTATION OF DATA SETS

The DataSet object is central to supporting disconnected, distributed data scenarios with ADO.NET. The DataSet is a memory-resident representation of data that provides a consistent relational programming model regardless of the data source. It can be used with multiple and differing data sources, with XML data, or to manage data local to the application. The DataSet represents a complete set of data, including related tables, constraints, and relationships among the tables. The following illustration shows the DataSet object model. 


DataSet Object Model
The methods and objects in a DataSet are consistent with those in the relational database model.
The DataSet can also persist and reload its contents as XML, and its schema as XML schema definition language (XSD) schema. For more information, see Using XML in a DataSet.

An ADO.NET DataSet contains a collection of zero or more tables represented by DataTable objects. The DataTableCollection contains all the DataTable objects in a DataSet.
A DataTable is defined in the System.Data namespace and represents a single table of memory-resident data. It contains a collection of columns represented by a DataColumnCollection, and constraints represented by a ConstraintCollection, which together define the schema of the table. A DataTable also contains a collection of rows represented by the DataRowCollection, which contains the data in the table. Along with its current state, a DataRow retains both its current and original versions to identify changes to the values stored in the row.

A DataView enables you to create different views of the data stored in a DataTable, a capability that is often used in data-binding applications. Using a DataView, you can expose the data in a table with different sort orders, and you can filter the data by row state or based on a filter expression. For more information, see DataViews.

A DataSet contains relationships in its DataRelationCollection object. A relationship, represented by the DataRelation object, associates rows in one DataTable with rows in another DataTable. A relationship is analogous to a join path that might exist between primary and foreign key columns in a relational database. A DataRelation identifies matching columns in two tables of a DataSet.
Relationships enable navigation from one table to another in a DataSet. The essential elements of a DataRelation are the name of the relationship, the name of the tables being related, and the related columns in each table. Relationships can be built with more than one column per table by specifying an array of DataColumn objects as the key columns. When you add a relationship to the DataRelationCollection, you can optionally add a UniqueKeyConstraint and a ForeignKeyConstraint to enforce integrity constraints when changes are made to related column values.

5.7 USING ADO.NET IN WEB APPLICATIONS

  • You use the ADO.NET Connection object to create a connection between your program and a database engine. You will normally keep this connection open just long enough to retrieve or update data. By quickly opening, then closing a connection, you use server resources for as little time as possible. This helps you develop scalable, fast applications that are resource-friendly. The fewer resources you use, the more users you can support on your applications at one time.
  • If you are creating a database application, you will eventually need to open a connection to that database. An ADO.NET Connection object allows you to create that connection. You will also need to retrieve and modify data in the database, and that is where you will need to use the ADO.NET Command object.
  • When connecting to SQL Server 7.0 or greater, you use the SqlConnection and SqlCommand objects in the System.Data.SqlClient namespace. When connecting to other OLE DB datasources, use the OleDbConnection and OleDbCommand in the System.Data.OleDb namespace. The rest of the examples in this document show examples using the objects from the System.Data.SqlClient namespace.

To modify data within a database
  1. Create a SqlConnection or an OleDbConnection object and give it a connection string.
  2. Open the connection to the database.
  3. Create a SqlCommand or an OleDbCommand object and assign to it the connection object you opened.
  4. Place an SQL statement into the Command object.
  5. Execute the SQL statement by invoking the ExecuteNonQuery method on the Command object.
Connection and Command Objects
In this document, you will learn to create and open a connection to a SQL Server database using a SqlConnection class. In addition, you will learn to submit an INSERT statement to the same SQL Server database using the SqlCommand object.
To create the sample form
  1. Open Microsoft Visual Studio® .NET.
  2. Click New Project.
  3. From the tree view on the left, select Visual Basic Projects.
  4. From the project templates window, select Windows Application.
  5. Set the Name to DataConnect.
  6. Click OK.
  7. Rename the form called Form1.vb to frmConnect.vb.
  8. Set the Text property on this form to SQL Tester.
  9. Create the controls for your form