Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998

    [VISUAL STUDIO 2019] - Percorsi controllo utente

    Ciao a tutti...continuano le vicissitudini con VS2019...(che sto seriamente pensando di disinstallare per tornare alla versione precedente perchè comincio a pensare che questa sia buggata...)

    Cerco di spiegarmi in modo sintetico.
    • Ho un app chiama laMiaApp.
    • Ho creato un controllo utente (txtComuni)
    • Quando trascino il C.U. nei miei forms va tutto bene e me lo piazza.
    • Quando vado a compilare l'eseguibile viene fuori questo errore:
      • Il tipo 'laMiaApp.txtComuni' non è definito

    • Ok, penso, ci sara stato un errore nel designer del form così ci entro nello stesso e nella sub InitializeComponent cambio
      • codice:
        Me.mioTxtComune = New laMiaApp.txtComuni()
      • in
      • codice:
        Me.mioTxtComune = New txtComuni()

    • Tutto funziona bene ed il degub/compilazione partono.
    • Il problema però fa si che questa cosa succeda ogni volta che compilo ed a parte la rottura di correggere ogni volta tutti i forms con quel C.U. devo anche reimpostarne tutte le proprietà (che vengono resettate a quelle di default)


    Ho provato di tutto...a importare laMiaApp con gli Imports ma nulla...

    Una cosa strana che ho notato (e che non ho fatto io...) è un modello EntityFrameworks che uso nell'applicazione si trova invece in:

    laMiaApp.laMiaApp.mioModello

    insomma un casino coi percorsi dello spazio dei nomi...ma io non ho toccatu nulla...fa tutto da solo.

    Il problema è che sta cosa tende a farmela su vari progetti che ho in corso....

    a voi è capitato? Io sto diventando matta con questa versione di VS.

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998
    Ragazzi ho frugato un po ed il problema nasce da un namespace annidato che VS mi crea in automatico quando creo un modello EntityFramework.

    In sostanza tutte le entità di questo modello vengono inserite in un namespace membro di quello radice ma uguale allo stesso!

    Mi spiego meglio:

    il namespace radice dell'applicazione è: Booking
    tutte le entità vengono messe in: Booking.Booking

    Quando io vado a fare l'imports di Booking.Booking (per non dover riscrivere tutto ogni volta) inizia questo problema nel designer quando compilo...

    La soluzione sarebbe editare il namespace...ma non so come fare...VS non mi pare mi dia l'opportunità di farlo...

    Come posso rinominare un namespace?!?

    O in alternativa crearne uno nuovo dove spostare IN MASSA tutti gli oggetti che ne devono essere membri (non uno a uno che sono tantissimi)


    Grazie 1000!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,881
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    La soluzione sarebbe editare il namespace...ma non so come fare...VS non mi pare mi dia l'opportunità di farlo...
    Credo che il passo più breve sia quello di ricostruire il modello di Entity Framework usando un namespace corretto.

    Rinominare un namespace è possibile usando le funzioni di refactoring di VS2019 oppure un tool come ReSharper.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998
    Grazie Alka ma QUALSIASI EF crei col designer finisce in un namespace uguale a quello radice (in qualsiasi progetto)...credo che dipenda dal generatore di classi di EF... (sto usando il pacchetto nuget per EF 6.4).

    Le funzioni di refactoring sono molto difficili da usare? Non ne so molto di questo tipo di cose...

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,881
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Grazie Alka ma QUALSIASI EF crei col designer finisce in un namespace uguale a quello radice (in qualsiasi progetto)...credo che dipenda dal generatore di classi di EF... (sto usando il pacchetto nuget per EF 6.4).
    Quando generi il modello, di solito hai la possibilità di definire il namespace tra le opzioni.
    Comunque sia, potresti provare a generare il modello all'interno di una cartella, in modo che il nome della cartella stessa venga presa come parte del namespace, come indicato dalle convenzioni.

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Le funzioni di refactoring sono molto difficili da usare? Non ne so molto di questo tipo di cose...
    Assolutamente no. Se hai una versione aggiornata di Visual Studio, è sufficiente posizionarsi sul namespace - ad esempio - per vedere apparire la "lampadina" che offre generalmente diverse opzioni possibili, fra cui quella di modificare il namespace (credo).

    Io uso abitualmente ReSharper, che svolge queste funzioni egregiamente in sostituzione a quelle di VS, quindi non conosco precisamente la procedura da seguire, anche se con una semplice ricerca qualcosa si trova.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998
    Mi ha postato 2 volte il messaggio...Eliminatelo

  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998
    Ok ok ho provato resharper ed effetivamente funziona bene (anche se mi incasina un po il controllo del codice!) E modifcando i namespace il problema è risolto!

    Ora...siccome Resharper è a pagamento credo che imparerò il metodo di VS2019

    In sostanza non avevo ben capito come funzionassero i namespace (e sinceramente temo che sia ancora così!!)

    ...a sto punto basta scriverli a mano prima della classe no?! E dichiarare la classe al loro interno (perchè in automatico non me li dava...ecco perchè avevo problemi a trovare la funzione di refactoring)

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,881
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    In sostanza non avevo ben capito come funzionassero i namespace (e sinceramente temo che sia ancora così!!)
    Sono il meccanismo fondamentale per raggruppare le classi in base alle loro funzionalità/ambito ed evitare collisione sui nomi dei tipi: si tratta di un concetto fondamentale che devi assolutamente approfondire per poter programmare in .NET.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  9. #9
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    1,998
    Si cosa sono lo so! Ed infatti mi piacerebbe raggruppare tutte le classi! Quello che non ho capito è cosa siano a livello "materiale".

    E' una lista? Dove la trovo per poterla editare? Questo intendevo!

    Basta dichiararla prima della classe per poterla creare?

    Insomma diciamo che da VS mi aspettavo una gestione dei namespace come fosse un normale percorso (quello che in sostanza fa resharper no?).

    Invece sembrano blindati...per crearne o modificarne uno (o modificare i suoi membri) devi diventare matta!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,881
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Quello che non ho capito è cosa siano a livello "materiale".
    A livello "materiale" non sono altro che un prefisso da anteporre al nome delle classi per qualificarle in modo univoco, quando vengono utilizzate, ad esempio per accedere a un metodo o per crearne una istanza.

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    E' una lista? Dove la trovo per poterla editare? Questo intendevo!
    Se parli di classi che non appartengono al framework, ossia quelle create da te, il namespace viene indicato usando la parola chiave Namespace.

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Basta dichiararla prima della classe per poterla creare?
    Sì, esatto.

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Insomma diciamo che da VS mi aspettavo una gestione dei namespace come fosse un normale percorso (quello che in sostanza fa resharper no?).
    Non c'è nulla di particolare da "gestire": si tratta di un nome come quello che dai alla classe e che semplicemente la inserisce in un insieme.

    Per convenzione, se il progetto ha un namespace "generale", le sottocartelle aggiungono una parte al nome separandola con un punto.

    Se si parla di funzionalità di refactoring o del fatto che certi tool "forzano" l'uso di namespace senza consentire di configurarli, questo dipende dalle caratteristiche specifiche del tool che si sta usando.

    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Invece sembrano blindati...per crearne o modificarne uno (o modificare i suoi membri) devi diventare matta!
    Certo, perché cambiarli a posteriori vuol dire riverificare (a mano o in modo automatico) tutti i riferimenti alle classi che si trovano all'interno del namespace modificato, in modo che il codice continui a compilare.

    Se vuoi leggere approfondimenti e soprattutto esempi per chiarire meglio, vedi questa pagina.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Delphi Succinctly (e-book)

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