+ All Categories
Home > Documents > Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti...

Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti...

Date post: 01-May-2015
Category:
Upload: carlotta-forti
View: 222 times
Download: 0 times
Share this document with a friend
71
Migrare da Oracle a SQL Server con SSMA
Transcript
Page 1: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrare da Oracle a SQL Server con SSMA

Page 2: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una

migrazione manuale Migrare usando SSMA - benefici Processo di migrazione

Page 3: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

La migrazione di database

OracleOracle SQL ServerSQL Server

MigrazioneMigrazione::SchemaSchemaDatiDati

TRASFORMAZIONETRASFORMAZIONE::SQL statements SQL statements Stored proceduresStored proceduresTriggers Triggers VisteVisteRecord Record Cursori Cursori SequenzeSequenzeUser-defined User-defined functionsfunctionsPackaged functions Packaged functions TabelleTabelleIndiciIndiciConstraintsConstraintsDefaultsDefaults

Re-host di un database da un RDBMS a un altro

Page 4: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

La migrazione di database

OracleOracle SQL ServerSQL Server

ApplicazioneApplicazione

PL/SQL T-SQL

Page 5: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Oracle e SQL Server

Alcune differenze Diverso modello di gestione delle

transazioni Data types diversi Gestione eccezioni (solo SQL Server 2000) Packages e package objects Sequenze (Oracle) vs. identities (MSSQL)

Page 6: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Perchè migrare Total cost of ownership (TCO) Tempi e costi di produzione ridotti Standardizzazione e consolidamento Feature più robuste Manuntenzione facilitata Upgrade da un sistema “legacy”

Page 7: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Le parti coinvolte in una migrazione SQL Statements Stored Procedures Triggers Functions Views Constraints, indici e defaults Data types Gestione delle eccezioni Data migration

Page 8: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Sfide Implementazioni basate su cursori Oracle system packages Gestione delle eccezioni Mostrare result set Concatenare stringhe Gestire SQL dinamico Implementare trigger

Page 9: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Rischi di una migrazione manuale Con una migrazione manuale si va incontro ai

seguenti rischi da mettere in conto: Mesi di lavoro Può spesso costare più di 100K $

Test: L’applicazione convertita alla fine funziona veramente ? Le logiche di business e l’integrazione delle applicazioni

sono spesso difficoltose da migrare

E le performance ? Le operazioni critiche da un punto di vista del core

business sono intaccate ?

Page 10: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Installazione SSMA-V2-Setup

Page 11: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Installazione Installazione delle estensioni per:

Oracle SQL Server

Page 12: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Estensioni Installing system database scripts... Creating database with default parameters and server... Changing null password for 'ssma' to inputted ... Registering extended stored procedures... Creating of all objects in database SYSDB for

CONTEXT_INFO... Creating package variables procedures... Creating of all objects in database SYSDB for exception

handling support... Creating of all objects in database SYSDB for support of NULL

statement... Creating of all objects in database SYSDB for sequence

handling support... Installing scripts to emulate Oracle date/time manipulation

functions... Installing scripts to emulate Oracle mathematical functions...

Page 13: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Estensioni Installing scripts to emulate Oracle miscellaneous functions... Installing scripts to emulate Oracle string manipulation

functions... Creating of all objects in database SYSDB for implementation

of package UTL_FILE... Creating of all objects in database SYSDB for implementation

utility routines... Creating test platform database with default parameters and

server... Changing null password for 'dbtest' to inputted ... Creating test platform database objects... Installing MS SQL Server Server-Side Components ... Setting Globalization Registry Key for server NBDIMAURO ... Installing Extensions Library file for x86 architecture Extract: SQLServerConverterExtensions.dll... 100% Installation was successful.

Page 14: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Microsoft SSMA

Suite completa di strumenti di migrazione Valutazione Migrazione Test

Riduce clamorosamente i tempi di porting/conversione/migrazione

É prodotto da Microsoft Download gatuito

Page 15: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Microsoft SSMA Compatibilità

Oracle 8, Oracle 8i, Oracle 9i, Oracle 10g SQL Server 2000, SQL Server 2005

Prerequisiti Windows 2000, XP, 2003 Java runtime environment 1.4.2

Page 16: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Obiettivi Ridurre i rischi di migrazione

Assicurare una migrazione corretta Assicurare che i database migrati siano

effettivamente funzionanti con le applicazioni Assicurare che il nuovo database funzioni allo

stesso modo o meglio del DB originale

Ridurre tempi e costi Automatizzare parzialmente o completamente

ampie porzioni di un progetto di conversione con SSMA

Page 17: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 18: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Installazione e configurazione

Connessione source

Caricamento oggetti DB

Generazione assessment reports

Stima tempi

Conversione oggetti

Salvataggio script

Migrazione dati

Connessione target

Esecuzione script salvati

Test

Redirect applicazione su DB target

J2SE 1.4.2

Microsoft SSMA

Extension Pack Extension Pack

Page 19: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Uno sguardo a SSMA

Source

panel

Target panel

Source DB - Object panel

Source DB - Code panel

Target DB - Object panel

Target DB - Code panel

Page 20: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Menu File e Tools:

Page 21: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni

Page 22: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni Generate ROWID column

Genera nello schema di uscita una colonna rowid. Riduce notevolmente la percentuale di conversione di Trigger e Sp

Allow sequence-to-identity conversion Trasforma sequence in colonne identity.

Rappresenta la strada da preferire laddove percorribile

Allow insertion to IDENTITY columns Se selezionato permette l’inserimento in colonne

di tipo identity. Verificare compatibilità con la logica business

Page 23: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni Show system sequences

Mostra le dialog per accedere alle sequenze di sistema. Abilitato soltanto se “Insert into identity” è attivo

Convert transaction processing statements Abilita/disabilita la conversione di comandi SQL

per le transazioni Convert exceptions

Abilita o disabilita la conversione per la gestione di eccezioni

Page 24: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni – mapping dei dati

Page 25: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

View Menu

Page 26: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

View – Synchronized Mode

Page 27: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

View – Zebra mode Evidenzia con colori entità correlate

Page 28: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

View – Show Diff Mode

Page 29: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 30: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Comprendere il tool di assessment

Page 31: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Assessment di migrazione Benefici

Integrato in SSMA Valutazione della complessita della migrazione Valutazione dei tempi di migrazione Mostra la percentuale di oggetti

immediatamente convertibili I report possono essere salvati

Comprendere il tool di assessment Creazione di report

Page 32: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Assessment di migrazione Permette di valutare:

Numero totale di righe di codice. Numero totale di statement SELECT, INSERT,

DELETE e UPDATE Numero totale di CURSORI, RECORD, e

ECCEZIONI. Numero totale e percentuale di componenti

convertibili automaticamente. Stima complessità migrazione. Stima dei tempi necessari per migrare

manualmente.

Page 33: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Assessment di migrazione Comprendere il report di assessment

Total Objects Numero totale di oggetti nel database.

Person Hours (tot) Stima in ore per una conversione manuale

Complexity Complessità del lavoro di traduzione

All (tot) Numero complessivo di oggetti statement SELECT, INSERT,

DELETE e UPDATE SELECT (Conv%)

Percentuale di comandi SELECT che verranno convertiti automaticamente

Page 34: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Assessment di migrazione Comprendere il report di assessment

Record Type Decl (Tot) Numero complessivo di tipologie di dichiarazioni di

record Record Type Decl (Conv%)

Numero complessivo di dichiarazioni record convertibili automaticamente

Record Var Decl (Tot) Numero complessivo di variabili record dichiarate

Record Var Decl (Conv%) Numero complessivo di variabili record convertibili

automaticamente

Page 35: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Assessment di migrazione Comprendere il report di assessment

Record Var Uses (Tot) Numero di variabili record dichiarate ed utilizzate

Record Var Uses Conv%) Numero di variabili record convertibili automaticamente

Pragma Numero di statment pragma

Rownum Numero di statement rownum

Exception Handler Numero di exception handlers

Unparsed (Tot)

Page 36: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Salvare il report

Page 37: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Salvare il report ... In formato csv

Page 38: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Extended HTML Report

Page 39: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni Generate expanded HTML database

report È il default. Genera il report in formato

HTML esaustivo

Report directory La cartella di output del report

Queries list Informazioni statistiche ed altro

Page 40: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Demo. Generazione report

Page 41: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 42: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrazione di schemi È un processo suddiviso in due fasi:

Generazione degli script di creazione degli oggetti dello schema Gli script creano tabelle e oggetti correlati I tipi di dati corrispondenti vengono individuati

cercando di evitare errori di troncamento delle informazioni

Deployment delle script Sincronizzazione del database con SSMA Gli script possono essere utilizzati direttamente con i

tool di SQL Server

Page 43: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrazione di schemi Conversione da PL/SQL a T-SQL

Tipi di dati diversi Operatori diversi Sintassi diverse Oggetti diversi

Microsoft SSMA può: Convertire Emulare Segnalare con dei warning

Page 44: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Code Panels View SQL View

Page 45: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Code Panels View Columns View

Page 46: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Code Panels View Parsed SQL View

Con formattazione / indentazione

Page 47: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Code Panels View Zebra Parsed SQL View

Relazioni tra src e dst evidenziate con colori !

Page 48: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Parameters View Interfaccia dei parametri

Page 49: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Demo. Migrazione oggetti schema

Page 50: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 51: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrazione dei dati Operazione “single click” Le colonne sono mappate

automaticamente Dopo la conversione viene creato un

report di migrazione

Page 52: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrazione dei dati I due server vengono configurati come

linked server Possibile scegliere fra due provider:

Oracle OLEDB Provider Microsoft OLEDB Provider for Oracle

SSMA suggerisce Oracle Provider (supporta anche la migrazione di tipi binary)

Page 53: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Demo. Migrazione dei dati

Page 54: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 55: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Conversione del codice Criticità

Trigger Cursori System packages Differenze sintattiche

Page 56: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Conversione del codice SSMA converte

automaticamente Codice contenente logica

business Dynamic SQL Oracle System packages

Conversione di funzioni e trigger Funzioni PL/SQL vengono

convertite in funzioni T-SQL

Trigger PL/SQL vengono convertite in trigger T-SQL

PL/SQL T-SQL

Before trigger Instead of trigger

After trigger After trigger

:new and :old Tabelle Inserted e deleted

Page 57: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni Menu Tools – Project Options [F12]

Page 58: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Project Options

Page 59: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni avanzate Type mapping al volo (piccola demo)

Page 60: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Opzioni avanzate Schema mapping

Un “map” per volta Oggetti di sistema non possono essere

mappati

Page 61: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Esempio di migrazionecreate or replace FUNCTION

"ITEM_OWNER".FTest1(x in integer, y in integer) return integer is

  Result integer;begin  Result := x + y + 0;   return(Result);end FTest1;

CREATE  FUNCTION u2.FTEST1  ( @x numeric(38),  @y numeric(38) )

RETURNS numeric(38)ASBEGIN        DECLARE           @Result numeric(38)                BEGIN          SET @Result = (@x + @y + 0)          RETURN @Result        END        RETURN nullEND

Page 62: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Convertire sequence in identity

da INSERT INTO TABLE1(ID,A,B) VALUES

(SEQUENCE1.nextval,1,2);

a INSERT INTO TABLE1(A,B) VALUES (1,2)

Page 63: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Demo. Migrazione logica di business

Page 64: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Altre opzioni Mostrare le differenze

SHOW DIFF

Salvare le script Oracle e SQL

Page 65: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Processo di migrazioneAssessment

progettoMigrazione

schemaMigrazione

dati

Migrazione logica business

Test codice migrato

Migrazione applicazione

Test e integrazione

Performance tuning

Page 66: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Testing SSMA è in grado di testare automaticamente:

View Funzioni Stored procedure SQL statements

Prepara test per: SQL Server e driver JDBC Linked Server ad Oracle

Page 67: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Testing Prerequisito SSMA Option Pack

TEST_PLATFORM user in Oracle Test_Platform_DB database in SQL Server

Suggerimento Effettuare il backup dei dati prima di

testare

Page 68: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migration tester workflow Reporting dei test

Numero di oggetti testati Numero di test effettuati Successi e fallimenti

Page 69: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Demo. Test codice migrato

Page 70: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Risorse

http://www.microsoft.it

http://www.microsoft.com/sql

http://www.microsoft.com/sql/solutions/ssm/default.mspx

http://msdn.microsoft.com

Page 71: Migrare da Oracle a SQL Server con SSMA Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una migrazione.

Migrare da Oracle a SQL Server con SSMA

Giuseppe DimauroCTO Code Architects srl

Microsoft MSDN Regional [email protected]

www.codearchitects.comwww.dotnet2themax.itwww.ugisharepoint.it


Recommended