DB2 Developments Add-in Technical Preview - Overview
Abdul Al-azzawe DB2 Development Tool Architect IBM San Francisco LAB 2004 January
Content Brief DB2 Database Engineering DB2 Data Connection DB2 CLR Procedure DB2 Managed Provider Tool Reusable Data Adapter IBM DB2 Tool Settings Conclusion
Introduction
DB2® Development Add-in for Visual Studio .NET Technical Preview is a major achievement because it is a robust and rich product. This product is provided to improve the productivity of the .NET application programmer. The number of new features introduced and the time used to publish them is amazing!
In addition to the support of the extended server, the plugin also has four main function groups. And each function group is worth a single product release:
The Common Language Runtime (CLR) process development has introduced the DB2 Universal Database server for the CLR process to support the development capabilities of CLR. This key new feature is confirmed in many Microsoft meetings and the launch of VS.NET 2003 and Windows® 2003. The wizards for creating a server object This group of new script preparation wizards greatly simplifies the work of creating a new server object. Reusable data adapter reusable data adapter is a new and powerful availability tool that will accelerate the development of ADO.NET applications by promoting code sharing and reuse. The Web method and the Web service are automatically generated, and the support of the automatic generation of new web methods and web services allows you to deploy DB2 database logic and mode on the web without writing a line of code!
Version function
Use DB2 Development Add-in for Visual Studio .NET Technical Preview, you can do the following new jobs:
Use the server hostname / IP, port, and database name to discover and use remote DB2 data connection. Create new tables, views, indexes, and triggers using the Function Rich Scripts. Extension of SQL intelligence induction in the SQL editor to include multi-line editing controls in the Wizard and dialog box. Use the data grid in read / write mode to retrieve data for tables and views. Details of the visits and views, including columns, index, and triggers. Generate a table, view, functions, and process creation scripts. Develop and deploy the DB2 CLR process using C # and VB.NET. Manage the CLR assembly to the deployment on the local and remote DB2 for Windows servers. Create a reusable data adapter directly in the data connection and share it with other developers, other engineering and form designers. Discover or manually define the shape of the data adapter result set. Use the data grid to read / write mode, preview the result of the data adapter. Automatically generate web methods and web services for data adapters or their commands. Customize your plugin using the extension set with the DB2 tool. Add a foldable area to the DB2 database script file.
Usability
DB2 Development add-in for Visual Studio .NET Technical Preview is currently in a preview phase. It is not included in DB2 Universal Database V8.1.2 or V8.1.3.
For more information on this earlier version, please visit our http://www7b.software.ibm.com/developerWorks/db2/downloads/dotNetBeta/Web page.
Support platform
DB2 Development Add-in for Visual Studio .NET Technical Preview Extension DB2 Server Supplies:
DB2 for z / OS® and OS / 390® 6, 7 and 8 DB2 for iSeries® (AS / 400®) Version 5.1 and 5.2 DB2 for Linux, UNIX® and Windows V8.1, and its subsequent version, not all The functionality is available to various DB2 servers. Table 1 lists these limited functions:
Table 1. Limited function
Limited Function DistributedISeriesz / OS V6Z / OS V7Z / OS V8 Generate Table / View Create Scalar Function YESYESNOYESYESYES Creating a Table Function Yesnonono Generate Function Create Script Yesyesnono Generate Web Services YESNONONONOMOSYESYESS
Limited Function DistributedISeriesz / OS V6Z / OS V7Z / OS V8 Generate Table / View Create Scalar Function YESYESNOYESYESYES Creating a Table Function Yesnonono Generate Function Create Script Yesyesnono Generate Web Services YESNONONONOMOSYESYESS
DB2 database project
DB2 Database Project has been enhanced in this release. Now, the project tree contains tables, indexes, triggers, and views, and processes, functions, and script default folders. DB2 database project has added the following new features:
The new script is used to create a table, view, trigger, and index engineering script item. The new CLR process wizard is used to generate the DDL necessary for the CLR engineering method. Manage CLR engineering assemblies and their deployment on local or remote DB2 servers. Use the extensible scription xml tag of the foldable script area. Support improved multiple settings for multiple data connections using advanced z / OS options. Allow fully automatic support for DB2 database project, which uses Visual Studio.NET standard scalability.
Figure 1. DB2 database project
Like any other full-featured engineering template in Visual Studio.NET, DB2 database project also supports engineering-dependent, build order, and integration with source code control management systems such as Visual Source Safe and Rational Case.
Note that both DB2 database projects can be accessed in both the IBM Projects folder or the standard Visual Studio.NET Universal Engineering folder.
Scripting Wizard
An extremely powerful feature in the new DB2 database project is to have a set of functional scripting wizards, which greatly simplifies the new work of the DB2 server object. In addition to enhancing the new usability features to enhance the existing SQL Process and SQL Function Wizard, we also add a set of new wizards, including tables, views, indexes, and trigger wizards. The new CLR wizard will be involved in the DB2 CLR procedure section below.
Intelligent multi-line SQL editor
This new version of this DB2 Development Add-in is worthy of boasting a new multi-line SQL editor that supports colorization and intelligent induction of SQL syntax. With intelligent sensing support, you can use the mode defined in the DB2 database project and IBM Explorer, so that you can quickly find the mode object of the given mode, or find the respective columns of the given table or view, or find a given Procedure or function of the function of the function.
Another important feature of the new editor is the built-in SQL analyzer that allows the data type of the parameter to be found in a possible place. Includes positional parameter markers and arguments that take the special character of this special character.
This new editor is embedded in most DB2 Development Add-IN Wizards and dialogs. Figure 2. Creating view wizards
SQL procedure and function wizard
The SQL Process and Function Wizard are enhanced by including a multi-line SQL editor that includes intelligence, which is used to define the necessary SQL statements necessary for these routines. The enhanced features include the following: colorful display, intelligent induction, and automatic detection routine parameters and their type of SQL analyzer. Another interesting enhancement function of the wizard is that additional routine parameters can be imported from the list definitions of existing tables and views.
After getting feedback from the customer, the code segment wizard step is turned to the second dialog, thus reducing the wizard steps necessary to create a new routine.
Table guide
The Table Wizard allows you to quickly define a new DB2 table, including a table from the simplest table to include the primary key, the unique key, foreign key, and advanced check constraints. The design also allows a special value (such as default, formula-based value or identification value).
Figure 3. Creating a table wizard
Another extremely powerful feature of this wizard is to import column definitions from existing tables and views, and these tables and views are defined in each data connection of IBM Explorer. This means that you can now easily clone all or partially definitions of other table / views, and also contains the columns required to define the reference integrity of two or more tables.
Figure 4. Import column definition
The watch wizard steps include:
Identification - Specify mode, table name, table space and annotation. Primary key - define a primary key for the table. The primary key is a combination of single columns or multiple columns, and its value is only identified in the table's record. The column referred to by the primary key cannot contain a null value. Unique button - can define one or more unique keys. The only bond is constrained by any two values. The unique column refers to the column that cannot contain a null value. Foreign key - can behave one or more foreign keys. Foreign key is a collection of single columns or multiple columns, and its value must match at least one of the other tables. Script Options - Specify files that contain scripts, you need to plug the script into the generated table script. Always specify the additional SQL statement you want to generate.
View wizard
The view wizard is simple but very powerful, which allows you to define SQL queries using the smart multi-line SQL editor described above. And this query is necessary to define a new view.
Figure 5. Creating view wizards
View wizard steps include:
Identification - Specify the pattern, view name and comment for the view you are creating. Content - Specify the CREATE VIEW SQL statement. You can edit the SQL template to create your own statement. Script Options - Specify files that contain scripts, you need to insert scripts into the generated view script. Always specify the additional SQL statement you want to generate.
Index
Index Wizard allows you to define an index for existing tables. The wizard will automatically detect the definition of the table and display the appropriate column. You can create a normal index or create a unique index. Support for federal data sources also supports only a sense of index, or called alias.
Figure 6. Creating an index
The index wizard steps include:
Identification - Specify an index name, table name, comment, and index options. Column - Specify one or more columns you want to define a part of the index key. Script Options - Specify a file containing the script segment, you need to insert the script into the generated index script. Always specify the additional SQL statement you want to generate.
Trigger Wizard
The trigger is greatly simplified by the trigger that creates a table with the view with the view. It divides the trigger into some more manageable steps. The SQL condition of the trigger allows you to define conditions, the WHEN clause; the trigger operation allows you to define the operation of the trigger. Both steps are to use the smart multi-line SQL editor described above.
Figure 7. Creating a trigger wizard
The trigger wizard steps include:
Identify - Specify the source table or source view of the trigger, and the trigger name, mode, and comment. Execution Conditions - Specifies the time and events of the trigger. SQL Conditions - further specify the defined condition of the table or view before the trigger is activated. Operation - Specifies the operation performed by the trigger. Script Options - Specify files that contain the script segment, you need to plug the script into the generated trigger script. Always specify the additional SQL statement you want to generate.
Attributes and configuration
A key feature that is unique to DB2 database project is to support multiple configurations, which is not available in Visual Studio.NET Universal Database Engineering. It allows you to compile different data connections for scripts and can also add and reduce scripts for engineering in an active configuration. This feature allows you to test and get QA and production systems, and this production system can be different databases residing on different servers. For Z / OS and OS / 390 SQL processes, multiple configuration support also allows you to define a set of advanced build options for each configuration.
Figure 8. Define the Build option for the z / OS stored procedure
DB2 data connection
In this release, IBM Explorer has been greatly enhanced. You can now
Creating a new database Add Remote Server Data Connection Using full-function wizards to create a new database object to create a new database object in an Ad hoc manner to create a reusable data adapter
Figure 9. IBM Explorer
connection
IBM Explorer's data connection is now called a connection. The Add / Modify The connection dialog can be used to discover the DB2 server and DB2 server database. You don't have to prepare your directory for remote databases. Since the same physical database can add multiple data connections. This should specify a set of different filters for multiple connections, or use different user IDs and passwords to connect the same database. In addition, you can create a new local DB2 database in the data connection folder.
Figure 10. Database connection properties
Based on your feedback, we have created two separate connection settings: a default owner and a current owner. When pre-filling mode for new objects, the default owner will be used in different wizards. The plugin will use the current owner to send the SET CURRENT Schema command, or send the SQL ID before performing any scripts on the database.
Another enhanced key feature is to specify advanced z / OS build options and runtime options for each connection. The default values for these options are already specified in the userOptions.xml file, but can be customized using the IBM DB2 Tool Settings dialog box below. The SQL Process Wizard will use these options to create a new process script. You can also find these options from a centralized user table.
Scripting Wizard
A key new feature of this version is to have a set of functional scripting wizards, which greatly simplifies the creation of new database objects. This work is done in the IBM Explorer in an Ad hoc mode. In addition to the new DB2 engineering selection page, this set of wizards is the same as listed in the previous DB2 Database Engineering Section. You can now add new scripts to new or existing DB2 databases; or perform scripts directly without having a DB2 database project.
Table and view
Tables and view support have also been enhanced, and the wizard can be used to create new tables and views. In addition, you can create indexes and triggers for the table, and create triggers for views. When the trigger and the index pool are initiated to the specified table or the view, the information of the table and the view will be pre-fill in the wizard.
Figure 11. Guide for support tables
In addition to creating new objects, you can also use a new detail designer access to the details of the table and view. These details include column definition, index, and trigger information. You can also use this designer to delete and create new indexes and triggers.
Figure 12. Detail designer
The data preview function of the table and the view is also enhanced: refresh operations can now be performed, as well as inserting, updating, and deleting data lines in place to meet the conditions.
Another function added for DB2 data connections for Linux, UNIX, and Windows is to generate create DDL on the basis of directory information. This feature can generate scripts using the DB2look utility. This script can be added to new or existing DB2 database projects as a new script item, or inserting an existing DB2 script file directly. You can also drag and drop on the table and view directly in IBM Explorer, and put it in the DB2 script file.
Process and functions
The process and function support are also enhanced. These include the available wizard to create new SQL and CLR processes and SQL functions. The script generated for new objects can be executed directly or added to new or existing DB2 database projects. View the source code of the SQL procedure and functions, as well as the processes and functions of any language, which are not changed in the new version.
DB2 CLR process
One of the most exciting new features in this new version is support to the CLR (public language runtime) process. You can write C # and VB.NET methods in class program, and then deploy it as a DB2 process. The DB2 CLR process allows you to select the language in the .NET to write your own process.
Although SQL is optional in the CLR process body, you can use the DB2Context object to encode it to create a new ADO.NET command. The command has a preset context connection object. In addition to input, output, and input / output parameters, the CLR process can return zero or more result sets for the client program.
DB2 library
Although the standard class library template in the C # and VB.NET project folders can be written, you can also use the DB2 library engineering template added to this folder. With the DB2 library engineering template, there is an advantage: an engineering reference automatically performing the DB2 hosting provider (IBM.DATA.DB2), and the base class and method for creating the signature standard that meets the necessary signed standards necessary for the DB2 CLR process.
Figure 13. DB2 library engineering template
By using new DB2-based project templates for C # and VB.NET, you can add additional CLR methods and classes to the project.
Listing 1. DB2 CLR method written in C #
Using system;
Using IBM.DATA.DB2;
Namespace DB2CLASSLIBRARY1
{
///
/// Summary Description for DB2Class1.
/// this class and method can be used as the basis for a db2 clr procedure.
/// for more information on create and deploying db2 CLR Procedures Visit:
/// http://www.ibm.com/software/data/developer
///
///
Public Class DB2Class1
{
Public static void db2procedure1
String Inparm1,
Ref string inoutparm2,
Out string outparm3)
{
// Create New Command Object from Connection Context
DB2COMMAND MyCommand = db2context.getCommand ();
// Todo: INSERT YOR Code Here
Outparm3 = NULL;
// mycommand.commandtext = "SELECT Firstnme, Midinit, Lastname from Employee";
// db2dater myreader = mycommand.executeReader ();
// myReader.close ();
}
}
}
Listing 2. Example of DB2 CLR method written in vb.net
Imports system
Imports IBM.DATA.DB2
Namespace DB2CLASSLIBRARY1
'Summary Description for DB2Class1.
'This class and method can be used as the basis for a db2 clr procedure.' For more information on create and deploying db2 CLR Procedures Visit:
'http://www.ibm.com/software/data/developer
'
Public Class DB2Class1
Public Shared Sub DB2PROCEDURE1 (_
Byval inparm1 as string, _
Byref inoutparm2 as string, _
BYREF OUTPARM3 AS STRING)
'Create New Command Object from Connection Context
DIM MyCommand as db2command
myCommand = db2context.getCommand ()
'Todo: Insert Your Code Here
Outparm3 = Nothing
'mycommand.commandtext = "SELECT Firstnme, Midinit, Lastname from Employee"
'DIM MyReader as db2daterAreader
'myreader = mycommand.executeReader ()
'myReader.close ()
End Sub
END CLASS
End Namespace
DB2 CLR Process Wizard
Once you have written one or more CLR methods, you want to deploy it to the DB2 for Windows server, you can use the new DB2 CLR procedure wizard to automatically detect all CLR projects in the solution, and all in the selected project. Candidate CLR method.
Figure 14. DB2 CLR Process Wizard
The CLR wizard can start from the following location: Add a new item to the DB2 database project, the project folder of the DB2 data connection in IBM Explorer, and Tools-> IBM DB2 Tools-> DB2 CLR Procedure Wizard menu.
Although default mapping is performed on process names, parameter names, parameter data types, and process options, you can also modify these mappings through the wizard. These include the number of result sets returned from each process.
When you click Finish on the wizard, you can generate a DB2 script file based on the appropriate settings and creating statements, and each selected CLR method.
Listing 3. DDL example of the DB2 CLR process
-
@
-
@
- DROP The Procedure if One Already EXISTS
DROP Specific Procedure DB2PROCEDURE1
@
-
-
@
- Create Procedure
Create Procedure DB2PROCEDURE1 (
Inparm1 varchar (254),
INOUT INOUTPARM2 VARCHAR (254),
Out Outparm3 Varchar (254))
Specific DB2PROCEDURE1
Language Java
Parameter Style Java
No dbinfo
Fenced
Contains SQL
Dynamic Result Sets 0
Program Type Sub
External Name '"[! DB2Clrassembly db2classlibrary4.dll]: db2class1! Db2procedure1' -
@
- Grant Access Privilages to Procedure
Grant Execute ON Specific Procedure DB2PROCEDURE1 TO PUBLIC
@
note:
In Technical Preview versions, procedure language and parameter models are generated in accordance with Java. In the final version of the product, it will become DOTNET. To identify the Java process as a .NET CLR process for the DB2 engine, you must define a system-level environment variable in the DB2 for Windows server system: java_is_dotnet = 1.
DB2 database engineering assembly
To make the CLR process work, you must have your catalog on the DB2 server and send its program to the location of the DB2 server file system under the SQLLIB // Function path. In order to complete the transfer, the CLR assembly will be automatically registered in the DB2 database engineering through the DB2 CLR process wizard. You can manage the registered assembly through the DB2 Engineer Set dialog. The dialog can be started from the Assemblies ... Engineering pop-up menu.
Figure 15. CLR assembly
No matter how many CLR processes are defined, the assemblies only need to register once in the project. You can use the install operation manual installation assembly in the dialog; or when you modify the assembly (such as reconstruction), the automatic installation is performed through the DB2 database engineering build operation.
Because multiple settings are indicated in the solution, you can create an assembly in different files according to the activity set, you must use the Visual Studio .NET compiler, you must pass the DB2 Engineer Sets for the assembly Explicitly indicate the client file path.
CLR process script area
The plugin version introduces the concept of foldable script area, which can be specified by the ScriptOptions XML tag. The DB2 CLR process wizard generates an appropriate script for one or more selected CLR methods. Each CLR process CREAT DDL is packaged in a CLR script area.
Figure 16
Sometimes, the CLR method signature may be changed and the synchronization of the generated CLR procedure Create DLL is ended. Therefore, you need to update the DB2 script to match the new CLR method signature. Avoid manually modifying the generated Create DDL is very wise; thus, you must restart the DB2 CLR process wizard by pop-ups. With this brief guide, you can update DB2 mapping information and regenerate CREATE DDL for updated methods.
DB2 hosted provider tool
DB2 Development Add-in for Visual Studio .NET Technical Preview Tools for DB2 Hosting Provider Toolbox, including more intuitive connection string editors, more advanced data adapter configuration wizards (can define results and support process commands ), And enhanced command editor (including all functions of smart multi-line SQL editors with intelligent sensing support, intelligent induction support is detailed above).
DB2 connection tool
The new DB2 connection string editor allows you to choose from the existing DB2 data connection, and these connections are defined in IBM Explorer. You will notice that the connection password is no longer visible or lasting by default. This change is consistent with the security guidelines connected to the ADO.NET. Of course, you can also use the Persist Security Info = True Connection string option to make your password lasting. Figure 17. Connection string editor
DB2 data adapter tool
The new DB2 data adapter's configuration wizard is tightly integrated with the SQL analyzer to better detect columns and parameter data types. Four data adapter commands support SQL statements and procedures. The adapter automatically detects the process parameters and allows the result set of the lookup or manual definition process.
Figure 18. Data Adapter Wizard
Generating data set support has also been enhanced, which can generate data set definitions based on the shape defined by the data adapter. It also includes the function of generating a data set for the stored procedure select command.
Figure 19. Generating data set support
The new function of the data adapter preview data allows you to enter the necessary input parameter values and then display the results in the updatable data grid. On the basis of the data adapter command, you can use the Update, DELETE, and INSERT commands to dissemise the update to the DB2 server.
DB2 Command Tool
The new DB2 command editor includes support for text commands and procedure commands.
When using a text command, the editor will utilize a smart multi-line SQL editor that contains SQL analyzer and intelligent induction. The analyzer is used to detect data column names and types, and SQL statement parameter names and types; intelligent sensing supports columns for pattern objects and tables and views.
Figure 20. DB2 Command Editor
When using the process command, the editor will automatically retrieve the process defined in IBM Explorer based on the selected mode and the process parameter list.
Figure 21. Data table mapping
When using the configuration wizard of the data adapter, you can find the set shape of the command result set, or use the Import Column dialog to manually define the shape of one or more result sets. This dialog provides columns from existing tables and views.
Reusable data adapter
In the new version of DB2 Development Add-in, a best availability feature is to introduce reusable data adapter folders. This folder is located in a single data connection of IBM Explorer. These data adapters can be used across multiple Win / Web forms and across multiple projects, and can be shared between multiple users.
Figure 22. Reusable data adapter
Reusable data adapters key features include:
Drag and drop function on the WinForm and WebForm designer. A data category can be generated to include existing CLR projects. You can use the Data Form Guide to use the automatically generated data adapter data category to quickly add a functional data form. In read / write mode, you can directly access the design preview of the data adapter data. Web methods and web services can be generated for data adapters or commands. You can import / export data adapters from file systems such as XML files.
You can create a new reusable data adapter using a variety of ways, including the configuration wizard using the DB2 data adapter. The wizard can also be used to change the definition of the data adapter and its command, and the shape of the data adapter result set.
Add tables and views as reusable data adapters
You can quickly create a data adapter for tables or views listed in the Data Connection folder. This can be done by accessing the New-> Data Adapter pop-up menu operation for the table or view.
On the table or view definition, the appropriate INSERT, UPDATE, and DELETE command statements can be automatically generated.
Add procedures and functions as reusable data adapters
You can quickly create a data adapter for the procedures or functions listed in the Data Connection folder. This can be done by accessing new-> Data Adapter pop-up menu operations for process or functions.
By default, INSERT, UPDATE, and DELETE commands cannot be automatically generated. However, you can use the data adapter's Configuration Wizard or Command Editor to define these additional commands. Add component tray data adapter
As you can drag and drop the data connection data adapter and place it on the Form Designer, you can also select an existing form data adapter, and click Add to Connection operation to add data adapter definition to the appropriate IBM Explorer data connection.
Generate web methods and web services
An extremely powerful feature of reusable data adapters is to generate an IIS Web method for all data adapter commands or individual commands. That is, it means that the appropriate C # and VB.NET class files can be generated, and they add them to the selected CLR web project.
Figure 23. Generating a web method
You can also choose to generate and deploy DB2 Web services for the data adapter or its single command. DB2 Embedded Application Server will reside these web services. In order to deploy web services, automatic WSDL and test web clients will also be generated.
Import and export
Like the IBM Explorer data connected to% appdata% // ibm // vsnet // usercache.xml, the reusable data adapter is also persistent. You can use the Export menu operation to export one or more data adapter definitions (such as XML files) to the file system directly from the data adapter folder folder. You can also use the Import menu to import these exported data adapter definitions into the data connection.
An interesting usage of this import / export function is to register / log out of the definition of these data adapters in the source code control management system. Exported files can also be shared by other developers in the team.
IBM DB2 Tools Settings
You can access the IBM DB2 tool options via Tools-> Options-> IBM DB2 Tools Visual Studio .NET menu. With the Standard Visual Studio .Net Options dialog, you can customize the various features of DB2 Development Add-in.
Figure 24. DB2 Tool Settings
Alternatively, you can manually modify these options by accessing the% AppData% // IBM // VSNet // UserOptions.xml file.
The IBM DB2 tool option is divided into several categories, such as Code Generation, Data Access, Editor, Project, and z / OS options. View the Options dialog or check the userOptions.xml files to get a complete list of options and description thereof.
Conclude
DB2 Development Add-in for Visual Studio .Net Stinger Technical Preview is expected to be an exciting version of the most rich version. It shows the commitment of DB2 for the .NET platform and Visual Studio .NET IDE. This version is launched for application developers, database developers, DBA, and architects.
Now you can develop SQL and CLR processes, SQL functions, tables, views, indexes, and flip flops. You can also build these objects in the DB2 database project, or build them directly from the data connection of IBM Explorer. Using new reusable data adapters, you can quickly develop data binding Win / Web Forms, web methods, and web services. There are many new features to make your DB2 application develop happily and very efficient.
Thank you
If there is no contribution to a talented member, it is impossible to have DB2 Development Add-IN. These people come from three IBM laboratory: Special thanks to Kreg, Addi, Sonali, Eric, Kevin, Vasantha, Ajay, Kalpana, Vasantha, Ajay, Kalpana, Vera and Alex; Special Thanks to CONNIE, NANCY, TAMMI, CHENHONG and MiChael; Special Thank Toronto Lab Brent, Nancy, Kelvin, Michael, Andrew, Gustavo, Leon, Shili and Gene. Page
About author
Abdul Al-azzawe is a architect of DB2 tools on Visual Studio .NET. He joined IBM in 1990 and worked in Toronto's laboratory for ten years. During the period, he is a member of the DB2 engine development team for the Windows platform. In March 2000, Abdul joined the IBM Silicon Valley Lab, participated in the design of the SQL debugger DB2 version, DB2 development center, and DB2 Development Add-ins for Visual Studio 6.0.2002, Abdul added IBM San Francisco The development team began to build integration with Visual Studio .Net, which is one of his most proud achievements in the IBM career.
IBM, DB2 and DB2 Universal Database are trademarks or registered trademarks of IBM companies in the United States and / or other countries or regions. Windows is a registered trademark of Microsoft companies in the United States and / or other countries or regions. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems in the United States and / or other countries or regions. UNIX is the registered trademark of The Open Group in the US and other countries or regions. Other companies, products and service names may be trademarks or service tags from other companies.