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

    [ASP.NET 2.0 Visual Studio] Librerie condivise

    Buongiorno a tutti,
    Ho l'esigenza di rendere disponibili delle classi/moduli a più progetti, in maniera tale che siano fruibili da tutti ma modificabili da una posizione soltanto.

    Un'idea sul come fare ce l'ho, ma vorrei sapere il vostro parere.

    Ho pensato di creare una solution contenente i miei progetti, intesi come websites, e un progetto libreria (project Classi)
    codice:
    Solution
      Project A
      Project B
      Project C
      Project Classi
    Per includere le classi nei progetti A,B,C immagino di dover puntare alle classi utilizzando il nome del progetto come namespace (ClassiProject.Classe), giusto?

    In fase di compilazione, ci pensa lui a mettermi nella bin le DLL relative alle classi esterne?

    Grazie a tutti,

    b.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Credo che bastino i riferimenti in A,B,C al progetto classi.
    Con una using (c#) in testa al code-behind poi accedi a tutte le classi del progetto in comune.
    (si, ci pensa Visual Studio a mettere le DLL)

  3. #3
    Bene,
    Grazie per la risposta.

    Ciao,
    b.

  4. #4
    esempio:

    /mioSitoWeb (progetto web o Applicazione Web)
    /myDAL (progetto libreria di classi)

    tasto destro su mioSitoWeb -> aggiungi riferimento
    apapre una finestra dove puoi scegliere la libreria da referenziare

    Bene, avvene una scelta:
    se la libreria che hai referenziato è installata nella GAC
    viene aggiuinta nel webconfig una riga del tipo:
    codice:
    <system.web>
        <compilation debug="false">
            <assemblies>
                <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>
    </system.web>
    se la libreria non è presente nella GAC, viene copiata nella BIN del sito web.

  5. #5
    Ciao,
    la mia libreria dovrà avere il sorgente sempre disponibile, quindi non sarà installata nella GAC.
    Mi va bene che venga copiata nella BIN, ma solo quando eseguo il Deploy , giusto?

    La libreria sarà una DAL con in aggiunta una serie di automatismi per la gestione degli oggetti e delle comunicazioni (ftp, sms, webservices) che verranno utilizzati in tutti i progetti nella solutions. Attualmente i progetti sono tutti sotto un unico Project, ma le cose si stanno ingarbugliando parecchio, quindi a breve dovremo separarli per gestirli meglio. Il problema, appunto, sono quella trentina di classi che vengono usate un pò ovunque...

    Immagino che prima di applicare la referenziazione la libreria debba essere compilata, o sbaglio?

    Grazie,

    b.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Tasto destro sulla Solution ed "Ordine compilazione progetto".
    Ci sono le dipendenze di ciascun Item della Solution ed appunto la sequenza di compilazione.

    No, non soltanto nel Deploy viene generata la DLL nelle cartelle Bin, ma anche in sviluppo.
    Almeno dalla mia ultima esperienza con una Solution mista.

    Ti allego una printscreen (scusa è sbiadita per ragioni di dimensioni).

    Il progetto "Patrimonit" ha come riferimenti "DataObject" (che è, come da vostra intenzione, appunto un DAL con una serie di Classi .cs) e DataSet, che viene usato per altro (tipizzazione).

    Come vedi, in locale (debug mode) vengono generate le DLL nella Bin.
    Immagini allegate Immagini allegate

  7. #7
    il tuo caso appunto non è di una libreria nella nella GAC, ma di una libreria che fa parte di un progetto nella stessa soluzion.

    Quando fai "aggiungi riferimento, dalla finestra puoi scegliere "progetto", e verrà referenziata la libreria creata da quel progetto.
    Ciò significa che quando compili il sito web, verrà verificata la presenza della libreria nella cartella "myDal\bin\debug" (o "myDal\bin\release" dipende), e copiata nella cartella bin del sito web


    Immagino che prima di applicare la referenziazione la libreria debba essere compilata, o sbaglio?
    quindi no, non è necessario averla già creata. quello che viene referenziato è il progetto in questo caso (su visual studio, e ci pensa lui a gestire la dll).

  8. #8
    Grazie a tutti, ragazzi.
    Ora è tutto molto più chiaro

    Ciao,
    b.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.