DataSnap 2009 Overview

Size: px
Start display at page:

Download "DataSnap 2009 Overview"

Transcription

1 1 z :01 DataSnap 2009 Overview By: Steven Shaughnessy Abstract: This is an introduction to the new component based DataSnap technology included in Delphi In This Article Creating a DataSnap 2009 server Creating Server methods. Exposing server methods to clients Calling server methods using TSQLServerMethod component Calling Server methods using generated client classes Accessing IAppServer providers from a client Hosting existing remote data modules Using server connections Delphi 2009 includes a new component based DataSnap server technology. With some minor modifications, applications can host their existing TRemoteDataModules inside the new DataSnap 2009 server. The DataSnap 2009 server provides light weight remote method invocation support for ordinary Delphi classes as a replacement for COM based custom methods employed by earlier versions of DataSnap. The DataSnap 2009 server does not directly support COM. If an application still needs a COM based solution, the older component set for DataSnap is also included in the product. For new applications that do not need to use COM, the new TDSServerModule can be used instead of TRemoteDataModule. TDSServerModule indirectly inherits from TDataModule and includes the same IAppServer synchronization capability using providers that TRemoteDataModule provides. TDSServerModule is different from TRemotedataModule in that it does not include the COM support that TRemoteDataModule provides. Object Pascal methods that are called from remote clients are called server methods. There are several ways that server methods can be invoked. Server methods can be invoked from dbexpress or ADO.NET clients in the same way that stored procedures are called using these drivers. Statically typed client side proxies classes can also be generated for server methods if needed. A server connection is a feature of DataSnap 2009 that allows a client and server application to share a server side dbexpress database connection and transactional context. Only the DataSnap dbexpress driver is needed on the client to share any dbexpress driver installed on the server. The DataSnap driver is 100% Object Pascal making for a simple client side deployment. An interesting application of server connections is to allow the client to perform select queries to read data, and to call server methods that use the same server connection to perform all insert, update and delete

2 2 z :01 operations on the data. The new DataSnap 2009 includes a component set implemented in Object Pascal. We currently support win32 based server side applications. On the client we currently support both win32 and.net applications. Server methods and server connections can both be accessed through our dbexpress and ADO.NET connectivity solutions. Creating a DataSnap 2009 server The first thing you will need is a server container. You can use a TDataModule or a TForm as your container. The container must include at least a TDSServer component and a transport component. A TDSTCPServerTransport transport component is included in the product. A TDSServerClass component is used to register a server class that contains providers or server methods that they need to be accessed by a client. Typically you will have one or more TDSServerClass components in the container. A separate TDSServerClass component is needed for each server class you want to expose to clients. Each transport and TDSServerClass component has a server property that is used to register them with a TDSServer component. When the TDSServer component start and stop methods are called all registered transports and server classes are notified so they can perform any necessary initialization when the server starts and deinitialization when the server stops. The transport component takes advantage of this notification to know when to start and stop listening for new connections and to initialize and shutdown its thread pool. The TDSServer component has an autostart property that causes the TDSServer component start method to be called when its TDataModule or TForm container is loaded. Although we currently only provide one server side transport implementation, DataSnap 2009 can simultaneously support multiple transports. This will allow an HTTP and TCP/IP based transports to provide access to the same DataSnap 2009 server context. Creating Server methods. Delphi developers will most likely want to add their server methods to a TDSServerModule class. Delphi classes that contain server methods must be compiled with METHOD_INFO enabled because Delphi s RTTI is needed for the dynamic invocation of server methods. If TDSServerModule is used, METHOD_INFO does not have to be specified because TDSServerModule already has METHOD_INFO enabled. METHOD_INFO has been enabled for TRemoteDataModule as well. As mentioned earlier, TDSServerModule also supports the IAppServer interface, so the traditional IAppServer data synchronization protocol can also be used with TDSServerModules. All server methods must be made public. Note that with DataSnap 2009, multiple TDSServerModules and TRemoteDataModules can exist in the same process. You do not need a separate server for each TDSServerModule or TRemoteDataModule. Here is a simple example of a TDSServerModule with server methods using a variety of parameter types and parameter directions: TParametersServerModule1 = class(tdsservermodule) SQLConnection1: TSQLConnection; ReturnSqlQuery: TSQLQuery; OutSqlQuery: TSQLQuery; VarSqlQuery: TSQLQuery; procedure DSServerModuleCreate(Sender: TObject); procedure DSServerModuleDestroy(Sender: TObject); private { Private declarations } FDataSnapTestData: TDataSnapTestData;

3 3 z :01 FReturnCommand: TDBXCommand; FOutCommand: TDBXCommand; FVarCommand: TDBXCommand; public { Public declarations } function DataSetMethod(InDataSet: TDataSet; out OutDataSet: TDataSet; var VarDataSet: TDataSet): TDataSet; function ParamsMethod(InParams: TParams; out OutParams: TParams; var VarParams: TParams): TParams; function StreamMethod(InStream: TStream; out OutStream: TStream; var VarStream: TStream): TStream; function DBXReaderMethod(InDBXReader: TDBXReader; out OutDBXReader: TDBXReader; var VarDBXReader: TDBXReader): TDBXReader; function VariantMethod(InVariant: OleVariant; out OutVariant: OleVariant; var VarVariant: OleVariant): OleVariant; function StringMethod(InString: String; out OutString: OleVariant; var VarString: OleVariant): String; function Int64Method(InInt64: Int64; out OutInt64: Int64; var VarInt64: Int64): Int64; procedure NoparametersMethod; Server method parameters directions can be specified as input, input/output (var), output (out), and return. Parameter types supported include the scalar values supported by dbexpress/ado.net drivers such as integer, string, date, time, floating point, etc. Very large binary parameters can be passed as a TStream. A TParams object can be used to pass an array of values or to return a single row result to the client. Table shaped objects such as a TDataSet or a TDBXReader can be used as parameters and return values. On the.net platform, a DataReader, DataView or DataTable can be used as parameters by the client. Note that for table parameters the object type used on the client does not have to match the object type used in the signature of the server method. This is because the messaging layer maps all table objects to a TDBXReader. Custom TDBXReaders are fairly simple to implement. It should not be too difficult to map a collection of object for an OR mapping technology into a TDBXReader inside a server method and return it to a client which reads it into a TDataSet. Here is the implementation of a subset of the methods from the class interface section listed above: function TParametersServerModule1.DataSetMethod(InDataSet: TDataSet; out OutDataSet: TDataSet; var VarDataSet: TDataSet): TDataSet; Validate the contents of the incoming DataSets Incoming DataSets are automatically freed. FDataSnapTestData.ValidateDataSet(InDataSet); FDataSnapTestData.ValidateDataSet(VarDataSet); None of the outgoing TDataSets will be automatically freed because their component owner is not nil. OutSqlQuery.Open; OutSqlQuery.Refresh; OutDataSet := OutSqlQuery;

4 4 z :01 VarSqlQuery.Open; VarSqlQuery.Refresh; VarDataSet := VarSqlQuery; ReturnSqlQuery.Open; ReturnSqlQuery.Refresh; Result := ReturnSqlQuery; function TParametersServerModule1.ParamsMethod(InParams: TParams; out OutParams: TParams; var VarParams: TParams): TParams; Validate the contents of the incoming TParams. FDataSnapTestData.ValidateParams(InParams); FDataSnapTestData.ValidateParams(VarParams); All of these outgoing return values will be automatically freed. OutParams := FDataSnapTestData.CreateTestParams; VarParams := FDataSnapTestData.CreateTestParams; Result := FDataSnapTestData.CreateTestParams; function TParametersServerModule1.StreamMethod(InStream: TStream; out OutStream: TStream; var VarStream: TStream): TStream; Validate the contents of the incoming Streams. FDataSnapTestData.ValidateStream(InStream); FDataSnapTestData.ValidateStream(VarStream); All of these outgoing values will be automatically freed. OutStream := FDataSnapTestData.CreateTestStream; VarStream := FDataSnapTestData.CreateTestStream; Result := FDataSnapTestData.CreateTestStream; Exposing server methods to clients Once you have implemented your server methods, they must be exposed by a DataSnap server. This is easy. Its best to create a separate container TDataModule (or TForm) for your DataSnap server. Create a new TDataModule TForm container and drop three components into it from the new DataSnap Server component category: TDSServer, TDSTCPServerTransport, and TDSServerClass. Set the TDSTCPServerTransport.Server property and the TDSServerClass.Server property to the TDSServer. The TDSServerClass.OnGetClass event must be set to your server class like this:

5 5 z :01 procedure TForm8.DSServerClass2GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); PersistentClass := TParametersServerModule1; Now execute the application and the server will be started automatically. There is a TDSServer.AutoStart property that defaults to true which causes the server to start when it is notified that the component is being loaded. Calling server methods using TSQLServerMethod component From the client s perspective, server methods look a lot like stored procedures when using the TSQLServerMethod component. There are some notable exceptions though. Server methods can send multiple table shaped objects from the server to the client and from the client to the server. Here is a simple example of a client calling one of the server methods above: procedure TForm13.TestComponentDataSet; SqlServerMethod1.CommandText := 'TParametersServerModule1.DataSetMethod'; SqlServerMethod1.Params[0].AsDataSet := FDataSnapTestData.CreateTestDataSet; This has the same affect as the line above. Ownership of the parameter instance is implicit. Second boolean parameter indicates the TParam to free the TDataSets object when it is no longer needed. SqlServerMethod1.Params[2].SetDataSet(FDataSnapTestData.CreateTestDataSet, True); SqlServerMethod1.Open; Return value is in the SQLServerMethod1 component. outgoing instances will be automatically freed the next time the command is executed, closed or freed. FDataSnapTestData.ValidateDataSet(SqlServerMethod1); FDataSnapTestData.ValidateDataSet(SqlServerMethod1.Params[1].AsDataSet); FDataSnapTestData.ValidateDataSet(SqlServerMethod1.Params[2].AsDataSet); SqlServerMethod1.Close; Calling Server methods using generated client classes As discussed earlier, client proxy classes can be generated by using the DSProxyGen.exe command line tool or by using the right click menu off of the TSQLConnection component that is connected to a running DataSnap server. Currently this menu item is labeled Generate DataSnap client classes. This provides a statically typed access to server methods. Here is an example of how to call the DataSetMethod above using a generated client class:

6 6 z :01 procedure TForm13.TestClassDataSet; var InDataSet: TDataSet; VarDataSet: TDataSet; OutDataSet: TDataSet; ReturnDataSet: TDataSet; InDataset := FDataSnapTestData.CreateTestDataSet; VarDataSet := FDataSnapTestData.CreateTestDataSet; By default, the command used inside the implementation of DataSetMethod will maintain ownership of all parameters. They will be freed when the method is called again or when FParametersTest instance is freed. ReturnDataSet := FParametersTest.DataSetMethod(InDataSet, OutDataSet, VarDataSet); FDataSnapTestData.ValidateDataSet(OutDataSet); FDataSnapTestData.ValidateDataSet(VarDataSet); FDataSnapTestData.ValidateDataSet(ReturnDataSet); Accessing IAppServer providers from a client This works the same as prior versions of IAppServer except that the new TDSProviderConnection component must be used instead of components like TDCOMConnection and TSocketConnection. TDSProviderConnection has a SQLConnection property. This allows multiple TDSProviderConnection components to share the same physical TSQLConnection component. Note that multiple TDSServerModules or TRemoteDataModules can be included in a single server. By sharing a single TSQLConnection instance, multiple TDSProviderConnections can access there respective TDSServerModule or TRemoteDataModule. Hosting existing remote data modules RemoteDataModules are configured similar to any other server class. As with other server classes, you will need to use a TDSServerClass component and wire the OnGetClass event to return your RemoteDataModule class. Here are some notes from Dan Miser on how to migrate an existing TRemoteDataModule to a DataSnap 2009 server: Unregister the COM-based app server (e.g. MyAppServer /unregserver) Delete initialization section from the RDM unit Delete the tlb and ridl files from the project Remove the UpdateRegistry declaration and implementation from the RDM unit. Move any interface methods that you will want to call from the client (by default, these were added to the protected section of the RDM) to the public section. NOTE: If you have a suite of COM-based server applications, you may want to take this opportunity to start moving all of them into one process. Since we are no longer reliant upon COM for application segregation, we can add the converted RDMs into one project and just add one TDSServerClass component for each RDM that we want to access.

7 7 z :01 Using server connections The DataSnap dbexpress connection can be used by a client application to access a server side dbexpress connection. By default, a DataSnap dbexpress connection is only able to execute server methods on the DataSnap server it is connected to. If the TDBXPropertyNames.ServerConnection property is set to a server method that returns an instance of TDBXConnection, then the client side DataSnap connection will also be able to execute sql commands against the returned TDBXConnection. Here is an example of a server method that returns an instance of TDBXConnection: function TDSServerModule1.GetConnection: TDBXConnection; SQLConnection1.Open; Result := SQLConnection1.DBXConnection; A client side connection can establish associate itself with this connection by setting its ServerConnection connection property to: ServerConnection=ServerMethodsDataModule.GetServerConnection Note that there is a built-in Server method called DSAdmin.GetConnection that can be used to establish server connections using the dbxconnections.ini on the server. This server method has a string input parameter which is used to specify what connection to use. This example shows how to set the server connection to an ibconnection item in the dbxconnections.ini file: ServerConnection=DSAdmin.GetConnection("ibconnection") Published on: 9/6/2008 6:07:40 PM Server Response from: SC1 Copyright Embarcadero Technologies, Inc. All rights reserved.

OUTLINE DELPHI 2005 FOR.NET JUMP START

OUTLINE DELPHI 2005 FOR.NET JUMP START JENSEN DATA SYSTEMS, INC. pg 1 OUTLINE DELPHI 2005 FOR.NET JUMP START CARY JENSEN, PH.D. COPYRIGHT 2003-2005. CARY JENSEN. JENSEN DATA SYSTEMS, INC. ALL RIGHTS RESERVED. JENSEN DATA SYSTEMS, INC. HTTP://WWW.JENSENDATASYSTEMS.COM

More information

RAD Studio XE Datasheet

RAD Studio XE Datasheet RAD Studio XE Datasheet DATASHEET Embarcadero RAD Studio XE Complete solution for Windows,.NET, PHP and Web application development Embarcadero RAD Studio XE is a comprehensive rapid application development

More information

Combining kbmmw and kbmwabd for kbmwabd v and kbmmw v

Combining kbmmw and kbmwabd for kbmwabd v and kbmmw v Combining kbmmw and kbmwabd for kbmwabd v. 2.44+ and kbmmw v. 1.00+ The combination of kbmwabd and kbmmw gives a very powerful web application setup with advanced database handling and separation of business

More information

Database Development with dbexpress

Database Development with dbexpress Database Development with dbexpress CHAPTER 8 IN THIS CHAPTER Using dbexpress 350 dbexpress Components 351 Designing Editable dbexpress Applications 359 Deploying dbexpress Applications 360 350 Database

More information

Microsoft MB Microsoft CRM Extending MS CRM 1.2 with.net.

Microsoft MB Microsoft CRM Extending MS CRM 1.2 with.net. Microsoft MB2-228 Microsoft CRM Extending MS CRM 1.2 with.net http://killexams.com/exam-detail/mb2-228 Answer: A, C QUESTION: 140 Which of the following statements are true for Microsoft CRM object dependencies?

More information

ADO.NET Overview. Connected Architecture. SqlConnection, SqlCommand, DataReader class. Disconnected Architecture

ADO.NET Overview. Connected Architecture. SqlConnection, SqlCommand, DataReader class. Disconnected Architecture Topics Data is Everywhere ADO.NET Overview Connected Architecture EEE-474 DATABASE PROGRAMMİNG FOR İNTERNET INTRODUCTION TO ADO.NET Mustafa Öztoprak-2013514055 ASSOC.PROF.DR. TURGAY İBRİKÇİ ÇUKUROVA UNİVERSTY

More information

Architecting C++ apps

Architecting C++ apps Architecting C++ apps with a multi-device application platform John JT Thomas Director of Product Management jt@embarcadero.com @FireMonkeyPM blogs.embarcadero.com/jtembarcadero/ What is a multi-device

More information

BUILDING APPLICATIONS USING C# AND.NET FRAMEWORK (OBJECT-ORIENTED PROGRAMMING, X428.6)

BUILDING APPLICATIONS USING C# AND.NET FRAMEWORK (OBJECT-ORIENTED PROGRAMMING, X428.6) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 7 Professional Program: Data Administration and Management BUILDING APPLICATIONS USING C# AND.NET FRAMEWORK (OBJECT-ORIENTED

More information

C# Syllabus. MS.NET Framework Introduction

C# Syllabus. MS.NET Framework Introduction C# Syllabus MS.NET Framework Introduction The.NET Framework - an Overview Framework Components Framework Versions Types of Applications which can be developed using MS.NET MS.NET Base Class Library MS.NET

More information

(C#) - Pro: Designing and Developing Windows Applications Using the Microsoft.NET Framework 3.5

(C#) - Pro: Designing and Developing Windows Applications Using the Microsoft.NET Framework 3.5 70-563 (C#) - Pro: Designing and Developing Windows Applications Using the Microsoft.NET Framework 3.5 Course Length: 5 Day Course Candidates for exam 70-563 work on a team in a development environment

More information

maxbox Starter 9 Start with Data Base Programming 1.1 Creating a Query 1.2 Code with SQL

maxbox Starter 9 Start with Data Base Programming 1.1 Creating a Query 1.2 Code with SQL maxbox Starter 9 Start with Data Base Programming 1.1 Creating a Query Today we spend time in programming with Databases and some queries. So a database query is a piece of code (a query) that is sent

More information

M4.1-R4: APPLICATION OF.NET TECHNOLOGY

M4.1-R4: APPLICATION OF.NET TECHNOLOGY M4.1-R4: APPLICATION OF.NET TECHNOLOGY NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the OMR

More information

Remobjects for Webservices

Remobjects for Webservices Remobjects for Webservices Michaël Van Canneyt December 6, 2008 Abstract The RemObjects SDK is a versatile tool which is likely to provide a solution for all your remoting needs: it implements a complete

More information

Delphi XE. Delphi XE Datasheet

Delphi XE. Delphi XE Datasheet Delphi XE Datasheet DATASHEET Delphi XE Embarcadero Delphi XE is the fastest way to deliver ultrarich, ultra-fast Windows applications. Used by millions of developers, Delphi combines a leading-edge object-oriented

More information

Novedades en Delphi XE

Novedades en Delphi XE Novedades en Delphi E Danysoft Representante exclusivo en la península ibérica The 2011 release of Delphi is here and it is called Delphi E. With hundreds of new features and enhancements, Delphi E will

More information

Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented

More information

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In-

More information

Upgrade: Transition Your MCPD Windows Developer Skills to MCPD Windows Developer 3.5 Instructor: Peter Thorsteinson (VB)

Upgrade: Transition Your MCPD Windows Developer Skills to MCPD Windows Developer 3.5 Instructor: Peter Thorsteinson (VB) 70-566 - Upgrade: Transition Your MCPD Windows Developer Skills to MCPD Windows Developer 3.5 Instructor: Peter Thorsteinson (VB) Course Introduction Course Introduction Chapter 01 - Windows Forms and

More information

Delphi Generics.Collections

Delphi Generics.Collections Delphi Generics.Collections Copyright(C) 2008 Embarcadero Technologies, Inc. All Rights Reserved. Delphi Generics.Collections Table of Contents Generics.Collections.TCollectionNotification 1 Generics.Collections.TCollectionNotifyEvent

More information

DOT NET Syllabus (6 Months)

DOT NET Syllabus (6 Months) DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL

More information

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Summary Each day there will be a combination of presentations, code walk-throughs, and handson projects. The final project

More information

Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון 22 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented

More information

B.E /B.TECH DEGREE EXAMINATIONS,

B.E /B.TECH DEGREE EXAMINATIONS, B.E /B.TECH DEGREE EXAMINATIONS, November / December 2012 Seventh Semester Computer Science and Engineering CS2041 C# AND.NET FRAMEWORK (Common to Information Technology) (Regulation 2008) Time : Three

More information

.NET-6Weeks Project Based Training

.NET-6Weeks Project Based Training .NET-6Weeks Project Based Training Core Topics 1. C# 2. MS.Net 3. ASP.NET 4. 1 Project MS.NET MS.NET Framework The.NET Framework - an Overview Architecture of.net Framework Types of Applications which

More information

What's new in Delphi XE7

What's new in Delphi XE7 Delphi Whats New http://www.embarcadero.com/products/delphi/whats-new What's new in Delphi XE7 Delphi XE7 is a must-have upgrade for all Delphi developers and is the newest version of the award winning,

More information

Having fun with Delphi and AMQP starter

Having fun with Delphi and AMQP starter Having fun with Delphi and AMQP starter expert Delphi In last issue of Blaise Pascal there was a great article by Fikret Hasovic, about AMQP (Advanced Message Queue Protocol), explaining its structure

More information

Delphi 2009 Reviewer s Guide

Delphi 2009 Reviewer s Guide Delphi 2009 Reviewer s Guide November 2009 Corporate Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California Street, 12th Floor San Francisco, California 94111 York House 18 York Road Maidenhead,

More information

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static,

More information

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days 2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days Certification Exam This course will help you prepare for the following Microsoft Certified

More information

Embedded databases. Michaël Van Canneyt. September 23, 2005

Embedded databases. Michaël Van Canneyt. September 23, 2005 Embedded databases Michaël Van Canneyt September 23, 2005 Abstract There isn t almost any program out there which doesn t use a database, be it implicit or explicit. For those that explicitly need a database,

More information

Embedded Databases: NexusDB

Embedded Databases: NexusDB Embedded Databases: NexusDB Michaël Van Canneyt July 28, 2006 Abstract NexusDB is a database engine from NexusDB, specifically designed for use in Delphi. It runs as an embedded database server, but can

More information

ADO.NET for Beginners

ADO.NET for Beginners Accessing Database ADO.NET for Beginners Accessing database using ADO.NET in C# or VB.NET This tutorial will teach you Database concepts and ADO.NET in a very simple and easy-to-understand manner with

More information

JBoss Remoting. Version alpha. November 15, 2004

JBoss Remoting. Version alpha. November 15, 2004 JBoss Remoting Version 1.0.1 alpha November 15, 2004 What is JBoss Remoting? The purpose of JBoss Remoting is to provide a single API for most network based invocations and related service that uses pluggable

More information

B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA

B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE

More information

CMPT 354 Database Systems I

CMPT 354 Database Systems I CMPT 354 Database Systems I Chapter 8 Database Application Programming Introduction Executing SQL queries: Interactive SQL interface uncommon. Application written in a host language with SQL abstraction

More information

PROGRAMMING WITH THE MICROSOFT.NET FRAMEWORK USING MICROSOFT VISUAL STUDIO 2005 Course No. MS4995A 5 Day PREREQUISITES COURSE OUTLINE

PROGRAMMING WITH THE MICROSOFT.NET FRAMEWORK USING MICROSOFT VISUAL STUDIO 2005 Course No. MS4995A 5 Day PREREQUISITES COURSE OUTLINE COURSE OVERVIEW This five-day instructor-led course enables developers who are migrating from a different development language, an earlier version of Visual Basic.NET or Visual C#, or who have completed

More information

Review: Object Diagrams for Inheritance. Type Conformance. Inheritance Structures. Car. Vehicle. Truck. Vehicle. conforms to Object

Review: Object Diagrams for Inheritance. Type Conformance. Inheritance Structures. Car. Vehicle. Truck. Vehicle. conforms to Object Review: Diagrams for Inheritance - String makemodel - int mileage + (String, int) Class #3: Inheritance & Polymorphism Software Design II (CS 220): M. Allen, 25 Jan. 18 + (String, int) + void

More information

Pro ODP.NET for Oracle. Database 11 g. Edmund Zehoo. Apress

Pro ODP.NET for Oracle. Database 11 g. Edmund Zehoo. Apress Pro ODP.NET for Oracle Database 11 g Edmund Zehoo Apress Contents Contents at a Glance iv Contents....v About the Author About the Technical Reviewer Acknowledgments xvii xviii xix Chapter 1: Introduction

More information

C++Builder - Frequently Asked Questions

C++Builder - Frequently Asked Questions C++Builder 2010 FAQ C++Builder - Frequently Asked Questions GENERAL QUESTIONS What is Embarcadero C++Builder? C++Builder is the only true RAD C++ environment and framework designed for ultra-fast development

More information

Elevate Web Builder Modules Manual

Elevate Web Builder Modules Manual Table of Contents Elevate Web Builder Modules Manual Table Of Contents Chapter 1 - Getting Started 1 1.1 Creating a Module 1 1.2 Handling Requests 3 1.3 Custom DataSet Modules 8 Chapter 2 - Component Reference

More information

CSE 307: Principles of Programming Languages

CSE 307: Principles of Programming Languages 1 / 26 CSE 307: Principles of Programming Languages Names, Scopes, and Bindings R. Sekar 2 / 26 Topics Bindings 1. Bindings Bindings: Names and Attributes Names are a fundamental abstraction in languages

More information

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems Prof. Agostino Poggi What is CORBA? CORBA (Common Object Request

More information

Saikat Banerjee Page 1

Saikat Banerjee Page 1 1. What s the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each

More information

16th Embarcadero Developers Camp. Opening Session. Jason Vokes. Senior Director Technologies & Marketing International

16th Embarcadero Developers Camp. Opening Session. Jason Vokes. Senior Director Technologies & Marketing International 16th Embarcadero Developers Camp Opening Session Jason Vokes Senior Director Technologies & Marketing International Agenda Introduction Product Update Launches and activities Summary 1 Introduction Tools

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

Smart Client Offline Data Caching and Synchronization

Smart Client Offline Data Caching and Synchronization Smart Client Offline Data Caching and Synchronization Brian Noyes Principal Software Architect IDesign,, Inc. www.idesign.net Offline Operations Challenges 1 What is a Smart Client Rich user interface

More information

Program Contents: DOTNET TRAINING IN CHENNAI

Program Contents: DOTNET TRAINING IN CHENNAI DOTNET TRAINING IN CHENNAI NET Framework - In today s world of enterprise application development either desktop or Web, one of leaders and visionary is Microsoft.NET technology. The.NET platform also

More information

.Net Interview Questions

.Net Interview Questions .Net Interview Questions 1.What is.net? NET is an integral part of many applications running on Windows and provides common functionality for those applications to run. This download is for people who

More information

SQL User Defined Code. Kathleen Durant CS 3200

SQL User Defined Code. Kathleen Durant CS 3200 SQL User Defined Code Kathleen Durant CS 3200 1 User Session Objects Literals Text single quoted strings Numbers Database objects: databases, tables, fields, procedures and functions Can set a default

More information

Saikat Banerjee Page 1

Saikat Banerjee Page 1 1.What is.net? NET is an integral part of many applications running on Windows and provides common functionality for those applications to run. This download is for people who need.net to run an application

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Messages, Instances and Initialization

Messages, Instances and Initialization Messages, Instances and Initialization עזאם מרעי מבוסס על השקפים של הקורס תיכון תוכנה מונחה עצמים http://www.cs.bgu.ac.il/~oosd132/ http://www.cs.bgu.ac.il/~oosd142/ 2 Dynamic Aspects of Classes In the

More information

OVERVIEW ENVIRONMENT PROGRAM STRUCTURE BASIC SYNTAX DATA TYPES TYPE CONVERSION

OVERVIEW ENVIRONMENT PROGRAM STRUCTURE BASIC SYNTAX DATA TYPES TYPE CONVERSION Program: C#.Net (Basic with advance) Duration: 50hrs. C#.Net OVERVIEW Strong Programming Features of C# ENVIRONMENT The.Net Framework Integrated Development Environment (IDE) for C# PROGRAM STRUCTURE Creating

More information

Debugging. Thus the typical developer, develop according to what is defined as a waterfall model:

Debugging. Thus the typical developer, develop according to what is defined as a waterfall model: Debugging It happens that even the best developer makes errors. It happens that the best developer of some reason do not get the code right first time. It actually happens often for most developers. Thus

More information

How to Make the Client IP Address Available to the Back-end Server

How to Make the Client IP Address Available to the Back-end Server How to Make the Client IP Address Available to the Back-end Server For Layer 4 - UDP and Layer 4 - TCP services, the actual client IP address is passed to the server in the TCP header. No further configuration

More information

COURSE OUTLINE: OD10267A Introduction to Web Development with Microsoft Visual Studio 2010

COURSE OUTLINE: OD10267A Introduction to Web Development with Microsoft Visual Studio 2010 Course Name OD10267A Introduction to Web Development with Microsoft Visual Studio 2010 Course Duration 2 Days Course Structure Online Course Overview This course provides knowledge and skills on developing

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Scott Meder Senior Regional Sales Manager

Scott Meder Senior Regional Sales Manager www.raima.com Scott Meder Senior Regional Sales Manager scott.meder@raima.com Short Introduction to Raima What is Data Management What are your requirements? How do I make the right decision? - Architecture

More information

Communication. Outline

Communication. Outline COP 6611 Advanced Operating System Communication Chi Zhang czhang@cs.fiu.edu Outline Layered Protocols Remote Procedure Call (RPC) Remote Object Invocation Message-Oriented Communication 2 1 Layered Protocols

More information

Call-back API. Polyhedra Ltd

Call-back API. Polyhedra Ltd Call-back API Polyhedra Ltd Copyright notice This document is copyright 1994-2006 by Polyhedra Ltd. All Rights Reserved. This document contains information proprietary to Polyhedra Ltd. It is supplied

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

IMPLEMENTING THE LINQ QUERY LANGUAGE INTO THE C++ PROGRAMMING LANGUAGE USING A PREPROCESSOR

IMPLEMENTING THE LINQ QUERY LANGUAGE INTO THE C++ PROGRAMMING LANGUAGE USING A PREPROCESSOR IMPLEMENTING THE LINQ QUERY LANGUAGE INTO THE C++ PROGRAMMING LANGUAGE USING A PREPROCESSOR Jakub Judas, Miroslav Virius FJFI ČVUT ABSTRACT: LINQ is a query language similar to SQL that enables to retrieve

More information

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Technologies - overview & GIPSY Communication Procedure DEPARTMENT OF COMPUTER SCIENCE CONCORDIA UNIVERSITY Distributed Technologies - overview & GIPSY Communication Procedure by Emil Vassev June 09, 2003 Index 1. Distributed Applications 2. Distributed Component

More information

Contents. Chapter 1 Introducing ADO.NET...1. Acknowledgments...xiii. About the Authors...xv. Introduction...xix

Contents. Chapter 1 Introducing ADO.NET...1. Acknowledgments...xiii. About the Authors...xv. Introduction...xix Acknowledgments...xiii About the Authors...xv Introduction...xix Chapter 1 Introducing ADO.NET...1 How We Got Here...2 What Do These Changes Mean?...5 ADO.NET A New Beginning...7 Comparing ADOc and ADO.NET...8

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

10267 Introduction to Web Development with Microsoft Visual Studio 2010

10267 Introduction to Web Development with Microsoft Visual Studio 2010 10267 Introduction to Web Development with Microsoft Visual Studio 2010 Course Number: 10267A Category: Visual Studio 2010 Duration: 5 days Course Description This five-day instructor-led course provides

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss18/netlab 1. Practical Training: Network planning and installation of a file server 2. Practical

More information

PROGRAMMING DELPHI DATABASE APPLICATIONS by Francisco Charte. (C) 2017 Danysoft

PROGRAMMING DELPHI DATABASE APPLICATIONS by Francisco Charte. (C) 2017 Danysoft PROGRAMMING DELPHI DATABASE APPLICATIONS by Francisco Charte (C) 2017 Danysoft www.danysoft.com LIST OF FIGURES 1.1 ARCHITECTURE OF A BDE-BASED SOLUTION. 43 1.2 ARCHITECTURE OF A SOLUTION BASED ON IBX.

More information

ADO.NET from 3,048 meters

ADO.NET from 3,048 meters C H A P T E R 2 ADO.NET from 3,048 meters 2.1 The goals of ADO.NET 12 2.2 Zooming in on ADO.NET 14 2.3 Summary 19 It is a rare opportunity to get to build something from scratch. When Microsoft chose the

More information

IndySoap Demonstration Tutorial

IndySoap Demonstration Tutorial IndySoap Demonstration Tutorial Introduction This tutorial shows how to use IndySoap for client/server RPC model using a unique number server as an example. As well as providing a demonstration of how

More information

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro Contents: Introduction SocketPro ways for resilient, responsive and scalable web applications Vertical scalability o

More information

Interface evolution via public defender methods

Interface evolution via public defender methods Interface evolution via public defender methods Brian Goetz Second draft, May 2010 1. Problem statement Once published, it is impossible to add methods to an interface without breaking existing implementations.

More information

Developing Microsoft.NET Applications for Windows (Visual Basic.NET)

Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Course Number: 2565 Length: 5 Day(s) Certification Exam This course will help you prepare for the following Microsoft Certified Professional

More information

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio Introduction XXV Part I: C# Fundamentals 1 Chapter 1: The.NET Framework 3 What s the.net Framework? 3 Common Language Runtime 3.NET Framework Class Library 4 Assemblies and the Microsoft Intermediate Language

More information

Language Features. 1. The primitive types int, double, and boolean are part of the AP

Language Features. 1. The primitive types int, double, and boolean are part of the AP Language Features 1. The primitive types int, double, and boolean are part of the AP short, long, byte, char, and float are not in the subset. In particular, students need not be aware that strings are

More information

Migrating Mappings and Mapplets from a PowerCenter Repository to a Model Repository

Migrating Mappings and Mapplets from a PowerCenter Repository to a Model Repository Migrating Mappings and Mapplets from a PowerCenter Repository to a Model Repository 2016 Informatica LLC. No part of this document may be reproduced or transmitted in any form, by any means (electronic,

More information

Report Exec Dispatch System Specifications

Report Exec Dispatch System Specifications Report Exec Dispatch System Specifications Contents Overview... 2 Technical Support... 2 At a Glance... 2 Report Exec Systems Diagram... 3 Server Specifications... 4 Server OS... 4 Microsoft SQL Server...

More information

DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE

DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE 70-487 DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE ACCESSING DATA(20 TO 25%) 1) Choose data access technologies a) Choose a technology (ADO.NET, Entity Framework, WCF Data Services, Azure

More information

Thrift specification - Remote Procedure Call

Thrift specification - Remote Procedure Call Erik van Oosten Revision History Revision 1.0 2016-09-27 EVO Initial version v1.1, 2016-10-05: Corrected integer type names. Small changes to section headers. Table of Contents 1.

More information

Internet Application Developer

Internet Application Developer Internet Application Developer SUN-Java Programmer Certification Building a Web Presence with XHTML & XML 5 days or 12 evenings $2,199 CBIT 081 J A V A P R O G R A M M E R Fundamentals of Java and Object

More information

Object Oriented Programming Using Visual C# 2012-Level 2

Object Oriented Programming Using Visual C# 2012-Level 2 Object Oriented Programming Using Visual C# 2012-Level 2 Course ISI-1340 - Five Days - Instructor-led - Hands on Introduction This course is the second in a series of two courses, which are appropriate

More information

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT

More information

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java Page 1 Peers Techno log ies Pv t. L td. Course Brochure Core Java & Core Java &Adv Adv Java Java Overview Core Java training course is intended for students without an extensive programming background.

More information

Stream Computing using Brook+

Stream Computing using Brook+ Stream Computing using Brook+ School of Electrical Engineering and Computer Science University of Central Florida Slides courtesy of P. Bhaniramka Outline Overview of Brook+ Brook+ Software Architecture

More information

Course Outline. Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led

Course Outline. Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led Developing Data Access Solutions with Microsoft Visual Studio 2010 Course 10265A: 5 days Instructor Led About this Course In this course, experienced developers who know the basics of data access (CRUD)

More information

This document is intended for Multilizer users that have been localizing software using component localization.

This document is intended for Multilizer users that have been localizing software using component localization. Migration Tutorial Tutorial for migration of Delphi/C++Builder localization projects to Multilizer 6.0. Background This document is intended for Multilizer users that have been localizing software using

More information

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object

More information

Developing Data Access Solutions with Microsoft Visual Studio 2010

Developing Data Access Solutions with Microsoft Visual Studio 2010 Developing Data Access Solutions with Microsoft Visual Studio 2010 Course Code: 10265A; Five days; Instructor-Led About this Course In this course, experienced developers who know the basics of data access

More information

B Nagaraju

B Nagaraju Agenda What to expect in this session Complete ADO.NET Support available in.net Clear Conceptual View Supported by Demos Understand 3 generations of DataAccess.NET Around 9 minutes of videos Free Stuff

More information

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 Name :. Roll No. :..... Invigilator s Signature :.. 2011 INTRODUCTION TO PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give

More information

ADO.NET Using Visual Basic 2005 Table of Contents

ADO.NET Using Visual Basic 2005 Table of Contents Table of Contents INTRODUCTION...INTRO-1 Prerequisites...INTRO-2 Installing the Practice Files...INTRO-3 Software Requirements...INTRO-3 The Chapter Files...INTRO-3 About the Authors...INTRO-4 ACCESSING

More information

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial.

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Reduces cost by allowing a single resource for a number of users, rather than a identical resource for each

More information

A201 Object Oriented Programming with Visual Basic.Net

A201 Object Oriented Programming with Visual Basic.Net A201 Object Oriented Programming with Visual Basic.Net By: Dr. Hossein Computer Science and Informatics IU South Bend 1 What do we need to learn in order to write computer programs? Fundamental programming

More information

Getting started with Lazarus

Getting started with Lazarus Getting started with Lazarus Michaël Van Canneyt March 4, 2006 Abstract Lazarus is a cross-platform 2-way RAD tool which can be used to develop almost any kind of program for Windows, Linux, Solaris or

More information

Erlangen API Documentation

Erlangen API Documentation Erlangen API Documentation Max Rottenkolber Monday, 20 November 2017 Table of Contents 1 erlangen (Package) 1 1.1 *agent-debug* (Variable).................... 1 1.2 *default-mailbox-size* (Variable)...............

More information

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question) CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers

More information

SOCKETLIB. Requirements

SOCKETLIB. Requirements SOCKETLIB SocketLib is an event based, semi-asynchronous socket stream. It derives from standard C++ sockets, therefore, all extractors (>>) and inserters (

More information

C# Programming: From Problem Analysis to Program Design. Fourth Edition

C# Programming: From Problem Analysis to Program Design. Fourth Edition C# Programming: From Problem Analysis to Program Design Fourth Edition Preface xxi INTRODUCTION TO COMPUTING AND PROGRAMMING 1 History of Computers 2 System and Application Software 4 System Software 4

More information

Distributed Environments. CORBA, JavaRMI and DCOM

Distributed Environments. CORBA, JavaRMI and DCOM Distributed Environments CORBA, JavaRMI and DCOM Introduction to CORBA Distributed objects A mechanism allowing programs to invoke methods on remote objects Common Object Request Broker middleware - works

More information

1.1 Observer Pattern for Web Services

1.1 Observer Pattern for Web Services A pre-release (version 2004-07-26) of a section from a masters thesis by Tomas Johansson, tojo@kth.se 1/5 1.1 Observer Pattern for Web Services 1.1.1 Name and Source Observer pattern ( for Web Services

More information