Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1

    domanda mooooolto generica...

    La domanda, che spero gli utenti del forum mi perdoneranno, è questa:

    come si fa a scrivere un web service? e soprattutto a che cosa serve?

    In particolare:
    ho sviluppato delle librerie, cioè delle classi, che riutilizzo per i miei siti... che so... la classe images per trattare le immagini.

    Il fatto è che ogni volta che voglio usare questa classe non trovo di meglio che includerne tutto il codice nella mia pagina con un semplice <!-- #include...

    Poco mi piace. Mi sembra di non sfruttare al meglio le potenzialità della nuova piattaforma .net e del c#.
    Non solo... ma se qualcuno volesse indietro i suoi file per metterli su di un altro server, sarei costretto a consegnargli anche le mie librerie che tanto sudore e moccoli mi son costate.

    Allora io mi chiedo: posso trasformare le mie librerie in classi? Cioè una "roba" da installare sul server e da richiamare all'interno delle pagine col namespace (ad esempio using images) ?

    Non lo so... ma sento che si può fare!
    E' troppo tempo che questo pensiero mi ronza per la testa, e voglio assolutamente migliorare il mio modo di scrivere e gestire il codice (che già col c# e le nuove componenti .net, rispetto al vecchio VB di ASP si è rivoluzionato parecchio).

    Allora chiedo al Forum: posso avere un esempio di codice, scemo scemo, tipo "hello word" che implementa una classe come serve a me (con allegato poche istruzioni su come installarla, una volta compilata, sul server)?

    Grazie di vero cuore a tutti!

    Lupo.
    Lupo
    ----

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    Una volta che crei le classi, puoi raggrupparle all'interno di una dll; questa comunque deve trovarsi nella cartella /bin della web application, per cui se l'utente ti chiede di cambiare server, devi consegnargliela.

    Il vantaggio è che il codice sorgente non è visibile (a meno di decompilazione ).

    Un web service è una funzionalità, un "metodo remoto", messa a disposizione da un web server. Se hai un tuo spazio web che supporta asp.net, potresti effettivamente concentrare tutto il tuo codice in un unico punto, accedibile dall'esterno tramite web services. Il sito del cliente deve comunque contenere la dll con il codice che "wrappa" il web service remoto.

    Credo che per funzioni di utility generiche i web services non siano una scelta ottimale, inoltre sarebbero accessibili da chiunque conoscesse l'url con il quale li pubblichi. In piu', se per qualche motivo cambi il server dei WS, quindi ne cambi l'endpoint, devi modificare tutti i client !!

    ciao,
    rob

  3. #3
    sei stato molto gentile, oltre che chiaro.
    In realtà consegnare al cliente una dll, piuttosto che i miei sudati codici, sarebbe per me una scelta ottimale (decompilazione a parte).

    Approfitto ancora della tua gentilezza:

    sto facendo alcune prove: vorrei scrivere una classe assolutamente generica. Ecco il codice:

    Codice PHP:

    namespace CustomerPhoneBook {
        
    using System;

        
    /// <summary>
        /// classe di prova
        /// </summary>

        
    public struct subscriber {
            public 
    long CustomerID;
            public 
    String FirstName;
            public 
    String MiddleName;
            public 
    String LastName;
            public 
    Decimal Balance;
        }

    quando provo a compilare
    csc cumstomers.cs

    viene restituito il seguente errore:
    error cs5001: per il "customer.exe" del programma non è stato definito alcun punto di ingresso.

    due domande? Perche ".exe"? Come faccio a far capire al compilatore che mi serve una dll e non un eseguibile? Perchè quell'errore?

    Grazie di cuore,
    Lupo.
    Lupo
    ----

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    Devi usare:

    csc /target:library cumstomers.cs

    o:

    csc /target:library /out:MyCumstomers.dll cumstomers.cs

    Se non scrivi /target:library di default ti crea un .exe
    il quale richiede che venga definito un metodo del tipo (viene invocato se fai un doppio click sull'eseguibile):

    public static void Main(){}
    o:
    public static void Main(String[] args){}
    se vuoi passare dei parametri.

    Se ti serve qualche libro, per iniziare, vai su http://forum.html.it/forum/showthrea...hreadid=442266

    Ciao,
    rob

  5. #5
    sei veramente gentilissimo.
    Grazie
    Lupo
    ----

  6. #6
    ....ehm...
    la dll l'ho generata...

    ...non è che per caso hai idea di dove la devo copiare??!

    poi non ti chiedo più niente, giuro (per oggi )
    Lupo
    ----

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    Se stai creando una web application, devi copiare la dll in una cartella chiamata 'bin'.

  8. #8
    cioè debbo fare una cartella bin all'interno della root del sito internet?
    Lupo
    ----

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    si'; supponiamo che il tuo sito si chiami 'mioSito'

    allora in
    c:\inetpub\mioSito

    crei la cartella bin;

    quindi in
    c:\inetpub\mioSito\bin

    copi la DLL

    Ciao
    rob

  10. #10
    non mantengo la mia promessa: tanto non lo faccio mai.
    1. E se volessi che la dll funzionasse, in generale per TUTTI i siti del mio server (senza dover fare una directory bin per ogni sito)?

    2. nella cartella bin del mio sito ho piazzato customers.dll ottenuto dalla compilazione di questo:

    Codice PHP:

    // Customers.cs
    //

    namespace CustomerPhoneBook {
        
    using System;

        
    /// <summary>
        /// Summary description for subscriber.
        /// </summary>

        
    public struct subscriber {
            public 
    long CustomerID;
            public 
    String FirstName;
            public 
    String MiddleName;
            public 
    String LastName;
            public 
    Decimal Balance;
        }

    ho riavviato il server ed ho messo in testa alla mia pagina la seguente istruzione:

    <%@ Import Namespace="CustomerPhoneBook" %>

    mi restituisce il seguente errore:

    CS0246: Impossibile trovare il tipo o il nome dello spazio dei nomi 'CustomerPhoneBook'. Probabilmente manca una direttiva using o un riferimento a un assembly

    dove sbaglio?

    se rispondi anche a questo ti sei guadagnato una birra virtuale!!
    Lupo
    ----

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.