Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VS2010 WCF] Query a database da server web tramite WCF

    Salve,
    sono uno sviluppatore PHP con una domanda riguardo l'interfacciamento con WCF. Cerco di descrivere la situazione: ho la necessità di poter leggere/scrivere (da un server web remoto non Windows che interpreta PHP) il database di un gestionale. Lo sviluppatore del gestionale mi ha segnalato che il database è accessibile tramite interfaccia WCF, raggiungibile anche da internet tramite autenticazione.

    Non conoscendo WCF mi sono documentato in rete. Ho scoperto così che è possibile utilizzare SOAP per richiamare dei metodi, passare i parametri relativi e ottenere i valori di risposta, tutto con una sintassi di tipo XML. Benissimo.

    Non mi è chiaro però come in genere possa avvenire l'interrogazione (select e insert) del database. É possibile utilizzare una sintassi SQL? In quale formato andrebbe inviata a WCF, dal server web?

    Mi scuso fin da subito per la probabile banalità della domanda (e forse per numerose imprecisioni), anche la segnalazione di articoli che possano chiarire questi miei dubbi sarà molto gradita.
    Grazie mille.

  2. #2
    L'interfaccia WCF viene creata proprio per evitare che gli utilizzatori esterni possano agire direttamente sul database tramite SQL. Il tutto avviene mediante l'invio e/o la ricezione di oggetti XML, mentre è la funzione WCF stessa che valida le richieste e effettua fisicamente la query nel database.

    Bisogna vedere se nell'elenco delle funzioni messe a disposizione dal gestionale oltre a leggere i dati c'è anche la possibilità di inserirne di nuovi.
    Chi non cerca trova.

  3. #3
    Grazie per la risposta, tas. Da parte dello sviluppatore del gestionale c'è disponibilità ad implementare quanto mi possa essere utile, quindi quello che eventualmente non c'è mi è possibile richiederlo.
    Tuttavia, vorrei evitare richieste gravose se possibile "arrangiarmi" con strumenti già sviluppati.

    Il mio problema, come avrai capito, è la mia conoscenza praticamente nulla di WCF. Lo sviluppatore del gestionale ha fatto riferimento alla possibilità di interrogare il database con SQL/LINQ.

    Solitamente si preferisce invece predisporre dei metodi per la lettura/scrittura dei dati? Cioè dei metodi che ad esempio restituiscano in XML l'anagrafica di un cliente fornendo il suo identificativo tramite SOAP? É questo l'approccio più corretto?
    Quindi lo sviluppatore del gestionale dovrebbe fornire specifici metodi per accedere in lettura/scrittura per gli specifici dati di mio interesse?

  4. #4
    Originariamente inviato da apusoft
    Solitamente si preferisce invece predisporre dei metodi per la lettura/scrittura dei dati? Cioè dei metodi che ad esempio restituiscano in XML l'anagrafica di un cliente fornendo il suo identificativo tramite SOAP? É questo l'approccio più corretto?
    Quindi lo sviluppatore del gestionale dovrebbe fornire specifici metodi per accedere in lettura/scrittura per gli specifici dati di mio interesse?
    Si, è proprio questo l'approccio migliore e più sicuro. In questo modo è responsabilità del lato server determinare se la richiesta effettuata dal client è lecita o meno, se i dati corrispondono alle regole di validazione, eccetera.
    Nessuno ti vieta di passare una stringa SQL sul metodo di una funzione WCF, ma sarebbe veramente pericoloso se qualcuno riuscisse ad intercettare la chiamata e ad inserire un altro SQL malizioso, come un DELETE * FROM Customers piuttosto che un DROP TABLE Customers...
    Chi non cerca trova.

  5. #5
    Certo hai ragione, capisco la rischiosità.

    Ma, tanto per capire, WCF prevederebbe comunque la possibilità di interloquire con un web server remoto (non Windows) tramite SQL/LINQ? E se sì, in che modo? Mi è abbastanza chiaro il meccanismo SOAP o REST, ma non capisco come questo possa adattarsi a query SQL/LINQ...

    Ti ringrazio ancora per la disponibilità e i chiarimenti che mi stai dando.

  6. #6
    Non credo proprio. Tra l'altro non capisco come tu possa utilizzare LINQ in PHP, stai usando una libreria specifica?
    Chi non cerca trova.

  7. #7
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,287
    Banalmente per sapere cosa può fare il webservice basta che inserisci l'indirizzo nella barra del browser e dovrebbe restituirti una pagina con tutti i metodi disponibili.
    Tipo:
    http://nomedelserver/servizio.svc?wsdl

    Probabilmente avrà una funzione eseguiquery(query) as qualcosa
    Lo richiami passandogli una query di tipo linq.
    TUTTO sta se il webservice è stato concepito per essere utilizzato da altre applicazioni (anche non .NET)
    Banalmente se restituiscono un datatable tene fai poco.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.