Visio for Enterprise Architects on Vista X64 (VS2008 installed)

Tagged Under : , , , , , ,

Chiunque conosca Visio for enterprise Architects sa quanto possa essere comodo uno strumento del genere quando si deve progettare lo schema ER di un database di medie dimensioni (>= 20~40 tabelle), impostando le relazioni, le azioni da compiere sugli aggiornamenti e tutto ciò che si fa durante la creazione di un DB, per non parlare di quanto tempo si possa risparmiare generando automaticamente la controparte fisica dello schema1 sfruttando il driver odbc che ne consente l’integrazione con un gran numero di database.

Purtroppo allo stato attuale pare non essere ancora disponibile alcuna versione aggiornata di questa particolare versione  di Visio, che tra i prerequisiti necessita di nientepocodimenochè di VS2005, per cui doverlo installare su una macchina di sviluppo su cui magari sono già installati altri IDE può diventare davvero esoso in termini di spazio richiesto, per non parlare del fatto che di quella istanza di VS2005 non ce ne faremmo nulla e generalmente la cosa può infastidire un po..

Fortunatamente c’è la possibilità, con un piccolo trick, come si fa per l’installazione sotto XP, di installare il tutto senza *davvero* installarsi anche Visual Studio 2005, ma semplicemente facendo credere all’installer che ciò che cerca ci sia veramente e che quindi si possa procedere oltre.

E’ bene specificare che, affinchè il tutto funzioni è necessario che sulla macchina sia installato VS2008, visto che il giochino delle chiavi si basa proprio su quelle create dopo l’installazione di questa versione2.

Quello che bisogna fare, su Vista X64, è:

  1. Esportarsi separamente le 2 chiavi di registro:
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Visual Studio\9.0
    
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Visual Studio\8.0
    

    (Se la chiave 8.0 non è presente non è importante, la importeremo noi al punto successivo)

  2. A questo punto ci si crea una copia della chiave 9.0 e la si mette da parte, perchè ci servirà come ultimo punto.
  3. Successivamente si apre il file contenente la chiave 9.0 con il notepad, e si sostituiscono tutte le istanze della stringa “9.0″ con “8.0″.
  4. Fatto questo si reimporta la chiave di registro appena modificata, e da questo momento in avanti l’installazione di Visio for Enterprise Architects procederà senza problemi fino alla fine convinto che tutti i componenti siano installati come lui si aspetta.
  5. Una volta terminata l’installazione, onde evitare inutili attacchi di panico da parte di windows dovuto a situazioni non previste nel registro, è necessario ripristinare la condizione precedente alla modifica ripristinando le chiavi furbescamente modificate.Per farlo è sufficiente reimportare le 2 chiavi esportare inizialmente, facendo chiaramente attenzione a importare la copia originale della chiave 9.0 che avevamo ci si era creati subito dopo l’esportazione.
  1. tipicamente in mssql []
  2. i più intrepidi potrebbero provare un’installazione importando delle chiavi generate da altri pc, prerequisiti per il funzionamento a parte (che potrebbero far crashare il programma in esecuzione) l’installazione potrebbe terminare con successo []

Multiple dbml with same tables

Tagged Under : , , , , , , ,

diagram dbml Probabilmente non è una di quelle operazioni che si compiono quotidianamente, ma pare non ci siano molte informazioni in giro riguardo a come includere diversi modelli dbml, contenenti le stesse tabelle, all’interno di un’unico progetto in Visual Studio, per cui ritengo valga la pena scriversi 2 appunti.

Poniamo il caso in cui sia necessario utilizzare dei database che contengono per caso 2 tabelle uguali, o in cui comunque ci siano gli stessi nomi di tabella, e includerli in un modello LINQ to SQL per riutilizzarli ad esempio con dynamic data.

Se ci limitiamo a creare i dbml e ad aggiungervi le tabelle del nostro DB, al primo CTRL + B il compilatore di Visual Studio fallirà riportando tanti errori quante ridefinizioni delle stesse tabelle troverà.

Per risolvere questo problema è sufficiente aggiungere un Context Namespace ed un Entity Namespace per ogni dbml, in modo che durante la compilazione non ci saranno conflitti nella dichiarazione delle classi (visto che le tabelle sono rappresentate da classi nel dbml).

dbml

Ovviamente sarà necessario scegliere la connessione corretta per gestire il DB relativo al dbml, dichiarata preventivamente nel web.config, e visto che probabilmente vorremo usare il dbml nel progetto, ad esempio con dynamic data, dovremo modificare il global.asax dicendogli di utilizzare il datacontext corretto ed eventualmente registrando le nuove routes.

Un buon articolo su come fare per registrare diverse routes di diversi dbml è disponibile qui.

Database diagrams MSSQL

Tagged Under : , ,

mssq_error

TITLE: Microsoft SQL Server Management Studio Express
——————————

Database diagram support objects cannot be installed because this database
does not have a valid owner. To continue, first use the Files page of the
Database Properties dialog box or the ALTER AUTHORIZATION statement to set
the database owner to a valid login, then add the database diagram support
objects.

——————————

Questo post è un promemoria per chi (come me) non si ricorda a memoria come modificare i permessi per la creazione del diagram (molto utile per la visualizzazione del DB nel suo insieme, relazioni incluse) in MSSQL Management studio e ha bisogno di una stringa da utilizzare al volo per farlo.

La query giusta da eseguire in questo caso è:


EXEC sp_dbcmptlevel '$NOMEDB', '90';

ALTER AUTHORIZATION ON DATABASE::$NOMEBD TO "$NOMEMACCHINA\$USERNAME"

ovviamente con le opportune sostituzioni sulle variabili $….cheers :-)