Il presente articolo è stato tradotto automaticamente.

Casella degli strumenti

Database e strumenti OR/M, Oren Eini e schede Visual Studio personalizzate

Scott Mitchell

Miglioramento di LINQ to SQL e ADO.NET Entity Framework Designer

LINQ to SQL e ADO.NET Entity Framework sono due mapping relazionale a oggetti (OR / M) implementazioni da Microsoft. Utilizzando questi OR / concretamente MS creando un file .dbml o .edmx che contiene un mapping tra il modello relazionale e il modello a oggetti. Dietro le quinte, questo mapping è definito mediante XML, ma la finestra di progettazione di Visual Studio rende la creazione di tali mapping semplice come trascinare e rilasciare.

Se si utilizza LINQ to SQL o Entity Framework nelle applicazioni e sono incaricati di mantenere i file di mapping, estrarre Huagati DBML/EDMX strumenti (versione 1.76), che consente di aggiungere numerose funzionalità a Visual Studio LINQ to SQL ed Entity Framework nelle finestre di progettazione.

Osservando prescritti convenzioni di denominazione nel modello a oggetti è una sfida comune con trascinamento della selezione OR / M strumenti. I nomi degli oggetti di database spesso includono i prefissi quali “ tabella ” o “ usp_ ” o potrebbe essere interamente in lettere maiuscole o minuscole. Quando si aggiunge un oggetto di database nella finestra di progettazione, Visual Studio crea la classe corrispondente utilizzando i prefissi stessi e utilizzo di maiuscole e minuscole, che potrebbe eseguire contatore al proprio team di convenzioni di denominazione. Con gli strumenti di DBML/EDMX Huagati si è solo un paio di clic lontano dalla ridenominazione di tutte le classi e membri nel modello a oggetti. È possibile aggiungere o rimuovere i prefissi o suffissi, forzare la corretta combinazione di maiuscole e minuscole, rimuovere caratteri di sottolineatura e altro ancora.

Un difetto di Visual Studio LINQ to SQL finestra di progettazione è che non è disponibile alcun meccanismo per aggiornare il modello a oggetti in modo che rifletta le modifiche più recenti del database. Ad esempio, quando si trascina innanzitutto una tabella di database nella finestra di progettazione, viene creato un oggetto con proprietà che corrispondono a colonne della tabella. Se tre nuove colonne vengono aggiunte alla stessa tabella poche settimane in un secondo momento, è necessario tornare a LINQ to SQL finestra di progettazione e la rimozione di entrambi e quindi aggiungere nuovamente la tabella nella finestra di progettazione o manualmente aggiungere tre nuove proprietà alla classe corrispondente. Questo difetto è un problema non con gli strumenti di DBML/EDMX Huagati che possono segnalare le differenze tra il modello relazionale e il modello di oggetti e sincronizzare automaticamente il modello a oggetti con modello relazionale. Gli strumenti di DBML/EDMX Huagati inoltre possibile generare le istruzioni SQL necessarie per modificare il modello relazionale in modo che essa rispecchi il modello a oggetti.

Un'altra funzionalità utile è lo strumento di documentazione, che recupera le descrizioni di tabella e di colonna dal database e li include nel documentazione XML del modello a oggetti.

Gli strumenti di DBML/EDMX Huagati include una giorno 45 versione di valutazione gratuita, insieme alle versioni standard e Professional. La versione standard costa € 50 per la licenza per utente e supporta fino a 80 tabelle per ogni modello. La versione Professional costa € 120 per la licenza per utente e non impone alcun limite.

Prezzo: $ 50 per € 120 per la licenza per utente
huagati.com/dbmltools

Blog di rilievo

Uno dei miei blogger preferiti di .NET è Oren Eini, un blogger numerosi e sviluppatore Schneier software che registra in pseudonimo Ayende Rahien. Forse è conosciuto per il suo contributo ai progetti .NET open source Eini. Egli è un collaboratore per NHibernate, un diffuso OR / M framework rivisto nel numero di ottobre 2006 di MSDN Magazine ( msdn.microsoft.com/magazine/cc163540 ) ed è il creatore del Rhino Mocks un .NET framework di simulazioni trattato nel numero di gennaio 2008 ( msdn.microsoft.com/magazine/cc135981 ).

Oren Eini’s blog

Blog di Eini di Oren

Post di blog di Eini esplorare una gamma di argomenti. Alcune voci esaminare una funzionalità o un problema di un framework particolare, ad esempio NHibernate o Microsoft Entity Framework. La maggior parte sono più generale, imparting consigli dalle trincee relative a Progettazione database OR / M utilizzo, test e software architettura e progettazione. Post includono spesso le schermate, diagrammi e frammenti di codice.

Potrai trovare, ad esempio, una serie di post OR via / M implementazione sfide quali il mapping tra relazionale e modelli di oggetti, hydrating entità, quindi su. E assicurarsi di leggere risoluzione seleziona N + 1 problema di , dove viene descritto come scorrere i dati di tipo padre-figlio possono involontariamente condurre a problemi di prestazioni gravi.

Blog di Eini contiene inoltre i tipi di post in genere non si trova nel blog destinati agli sviluppatori. Ad esempio, sono un numero di voci che sono solo alcune frasi lunghe ancora comunque gestire per trasmettere un concetto importante e ottenere il lettore pensando. Altri post contengono un frammento di codice di lunga durata con una singola istruzione come, “ trova il bug. ” Con questi tipi di inserimenti, con il suo output impressionanti, non è raro che per tale posizione essere tre o più post per giorno.  Blog di Oren è must-read per progettisti e sviluppatori. NET.

ayende.com/Blog

Eseguire query simultanee Against più database

Nel corso della mia carriera, ho aiutato alcuni generare un numero di applicazioni multi-tenant, ovvero applicazioni che dispongono di una singola istanza in esecuzione su un server web ospitato ma vengono utilizzate da più organizzazioni. Un'applicazione multi-tenant deve garantire che un utente può visualizzare e gestire solo i dati che appartiene alla propria organizzazione. A tal fine, le applicazioni multi-tenant che funzionano con spesso informazioni riservate memorizzano i dati di ogni organizzazione in un database separato per isolare completamente i dati (tra altri motivi).

Visualizzazione di dati aggregati tra più organizzazioni può essere una vera sfida quando i dati di ogni organizzazione sono memorizzati in un database separato. Si supponga che uno sviluppatore rileva un errore che ha danneggiato i dati per una particolare organizzazione. Per determinare se è danneggiato simile per altri clienti, lo sviluppatore deve eseguire una query su ogni singolo database, creazione di un gruppo di risultati separato per ciascuno. Come è facile immaginare, che ottiene noioso. In teoria, i risultati di ogni database dovrebbe essere aggregati in un output singolo e unificato, che può quindi essere ordinati, filtrati e così via.

Nel corso degli anni, ho una query più database mediante un'ampia gamma di tecniche, tra cui la procedura di memorizzati sp_MsForEachDb non documentate , la scrittura di file batch e la creazione di strumenti personalizzati. Recentemente, introdotto SQL Multi Script (versione 1.1) di Red Gate Software di un collega e sono stati in discussione. SQL Multi Script funziona in maniera molto come prevedibile, ovvero immettere istruzioni SQL per eseguire e selezionare i database per eseguire una query a fronte. SQL Multi Script quindi generato disattivare le istruzioni SQL per le aggregazioni e i database specificati e visualizza i risultati.

SQL Multi Script

Script SQL multivalore

Per impostazione predefinita, SQL Multi Script invia istruzioni SQL per i database in parallelo. Ciò può ridurre notevolmente il tempo che necessario per ottenere i risultati, soprattutto quando si trovano i database su server diversi. In alternativa, è possibile indicare script SQL Multi per emettere le istruzioni in modo seriale, a cui è utile se si desidera interrompere l'esecuzione dello script a fronte di un errore.

Se si ottengono un errore, SQL Multi Script sono disponibili quattro opzioni di gestione degli errori: continuare l'esecuzione dello script (comportamento predefinito); interrompere l'esecuzione dell'istruzione corrente sul database, ma continuare con altre istruzioni SQL; interrompere l'esecuzione di tutte le istruzioni in questo database e spostare database successivo nell'elenco; o interrompere l'esecuzione di tutte le istruzioni in tutti i database.

Riquadro risultati di script SQL Multi fornisce una visualizzazione aggregata dei dati restituiti dal database, insieme a una cronologia di script eseguiti a fronte del database durante la sessione corrente e i messaggi. Nel riquadro risultati inoltre include un elenco della casella di controllo dei database sono stati interrogati; selezionare o deselezionare un database per visualizzare o rimuovere i relativi risultati dalla funzione di aggregazione. È inoltre possibile fare clic sul pulsante Salva per salvare i risultati aggregati in un file con estensione csv o txt.

Prezzo: $195
rosso gate.com

Migliorare Visual Tabs di Studio

Quando si lavora su un progetto di grandi dimensioni, non è raro che dispone di decine di file aperti all'interno di Visual Studio. Sfortunatamente, l'interfaccia utente di Visual Studio lascia un po' per essere desiderato quando esistono molti documenti aperti. Per impostazione predefinita, Visual Studio utilizza un SDI (Single Document Interface) con una serie di schede che mostrano i documenti sono aperti. Tuttavia, queste schede vengono disposte in senso orizzontale, che limita quanti possono essere visualizzati sullo schermo. Visual Studio Multi Document Interface (MDI) non Mostra schede ma richiede invece l'utente passare dal menu finestra per visualizzare e spostarsi tra i documenti aperti.

Schede Studio (versione 1.6) per Vlasov Sergey è un componente aggiuntivo che sostituisce le schede incorporate di Visual Studio con un set di schede migliorato e personalizzabile. A differenza di Visual Studio, tabulazioni Studio consente di visualizzare la scheda per ogni documento aperto in configurazioni SDI e MDI. Se non è disponibile spazio sufficiente orizzontale per visualizzare ogni scheda, schede Studio li stacks verticalmente.

Tabs Studio

Schede Studio

Molti tipi di componenti creati in Visual Studio vengono implementati utilizzando più file. Ad esempio, la creazione di una pagina ASP.NET denominata default.aspx effettivamente crea due file default.aspx e default.aspx.cs (o default.aspx.vb). Schede Studio aggiunge funzionalità che rendono più facile da utilizzare con questo tipo di file.

Ad esempio si lavora con default.aspx ed è necessario aprire Default.aspx.cs. Fare clic con il pulsante destro del mouse sulla scheda default.aspx e il menu di scelta rapida include un'opzione Apri Default.aspx.cs. Cosa succede ’s più tabulazioni Studio Raggruppa i documenti correlati in un'unica scheda. Quando vengono aperti default.aspx e default.aspx.cs, Tabs Studio visualizzerà un'unica scheda che elenca il nome del file senza estensione (predefinito) con due estensioni (con estensione aspx e. aspx.cs). Fare clic sull'estensione aspx nella scheda per visualizzare default.aspx oppure fare clic su. aspx.cs visualizzare default.aspx.cs.

Schede Studio dispone anche di una vasta gamma di opzioni di configurazione. Tabs Studio consente ad esempio, gli stili di ’ schede essere personalizzato tramite XAML. È possibile configurare i tipi di carattere ’ schede, i colori, forme e così più. E poiché le impostazioni vengono definite utilizzando XAML, è possibile includere istruzioni condizionali e altra logica a livello di programmazione, rendendo possibile eseguire operazioni come specificare lo stile per la scheda attualmente selezionata o rendere la scheda selezionata in precedenza un colore diverso da altre schede non selezionate. Studio di schede può essere ulteriormente personalizzato tramite i componenti aggiuntivi. È possibile scrivere le proprie o scaricare qualsiasi i liberi aggiuntivi disponibili dal sito Web Studio tabulazioni.

Schede Studio è disponibile per il non-Express delle edizioni di Visual Studio 2005, 2008 e 2010.

Prezzo: $34
tabsstudio.com

Scott Mitchell, autore di numerosi libri e fondatore di 4GuysFromRolla.com, è un MVP che lavora con tecnologie Web di Microsoft dal 1998. Mitchell è un consulente indipendente, istruttore e writer. Contattarlo in di Mitchell@4guysfromrolla.com o sul suo blog all'indirizzo di indirizzo ScottOnWriting.NET.

Tutti i prezzi confermati al premere volta e sono soggetti a modifiche. Le opinioni espresse in questo articolo rappresentano unicamente parere dell'autore e non riflettono necessariamente le opinioni presso Microsoft.

Per inviare domande e commenti a Scott toolsmm@microsoft.com.