martedì 27 dicembre 2011

Strumenti di SQL Server dati: un set di strumenti Modello

Per quasi 13 anni, Microsoft ha cercato di fare di Visual Studio un luogo dove gli sviluppatori possono fare il loro lavoro di database. Ripetutamente, Redmond ha cercato di rendere la necessità di passare a strumenti specializzati, come strumenti di SQL Server, obsoleto. Il successo è stato miscelato al meglio, ma Microsoft sta cercando di nuovo. Quando SQL Server 2012 esce, così, anche, di SQL Server Data Tools (SSDT), nome in codice "Juneau", che fornirà piena fedeltà progettazione di database e di esperienza di sviluppo in grado di lavorare offline o su database dal vivo. Inoltre, sarà - Microsoft spera - una volta per tutte lo rendono inutile Alt + Tab oltre a Management Studio.
SSDT può essere più efficace rispetto ai precedenti tentativi del genere? Il SSDT stabilire un nuovo tema, o fornire un'altra variante di quello vecchio? Si scopre le cose potrebbe essere diverso questa volta. Per capire perché, passiamo in rassegna la storia della lavorazione del database in Visual Studio, e confrontare SSDT ai suoi predecessori.
È tutta visiva
Ben prima SSDT, c'era VDT: Visual Database Tools. VDT consisteva di accesso-come, basato su GUI tabella, query e designer diagramma di database. E 'stato originariamente fornito con Visual Studio 6 nel 1998. I progettisti VDT sono stati ospitati nella shell di Visual InterDev e ha introdotto un nuovo tipo di progetto di database che fungeva da contenitore per Transact SQL (T-SQL) script generati dagli strumenti. Prima di VDT, la maggior parte delle interazioni con SQL Server sono stati fatti attraverso comandi T-SQL, e lavorare con i database visual nel mondo Microsoft è stato relegato ad Access e FoxPro. VDT cambiato, che era buona.
Ma aveva bisogno di stare meglio. Microsoft ha cercato:. Nell'era NET Framework di Microsoft, le cose nel reparto attrezzeria del database è cresciuto, ma serpeggiava anche un po ':
  • Il semplice script-contenitore di progetti di database sono stati portati avanti in anticipo. Versioni NET di Visual Studio
  • Progetti CLR SQL arrivato in Visual Studio 2005, in tandem con l'introduzione di SQL Server 2005
  • Visual Studio Team Edition for Database Professionals ("Dati Dude") è stato introdotto nel 2006, portando un nuovo tipo di progetto di database, refactoring, test di unità e di più
  • SQL Server 2008 R2 ci ha fornito dati applicazioni di livello ("DAC") e ancora un altro tipo di progetto visivo Studio
Tutti questi tipi di progetto di database possono ottenere abbastanza confuso. E la parte divertente è che si sta ancora usando lo stesso schema di database, tabelle e progettazione query che hai avuto dal 1990, quando uscì VDT. Avete bisogno di qualcosa di meglio, certo hai avuto la pazienza.
Qualcosa di completamente diverso
Sembra SSDT è che il modo migliore. Sì, esso introduce un altro tipo di progetto, ma le cose sono davvero diverso questa volta. Per cominciare, Visual Studio fornisce ormai quasi la stessa interfaccia utente e la potenza di Esplora oggetti di Management Studio. Inoltre, è finalmente avere un designer nuova tabella. Questo fornisce una interfaccia grafica contemporanea e T-SQL interfaccia; fare un cambiamento in una vista e l'altro viene aggiornato di conseguenza.Usarlo è un po 'come aprire la finestra di progettazione Web Form ASP.NET e guardando il sorgente HTML e punti di vista di design reso side-by-side. L'idea stessa che T-SQL può essere trattata come un linguaggio di markup che descrive gli oggetti, piuttosto che una grammatica comando che crea imperativamente, altera o le query di loro, è intelligente e potente.
E questo piccolo gioco di prestigio di mano, dove ci spostiamo da imperativo dichiarativa, è emblematico il motivo più grande che SSDT non è solo un altro set di strumenti di interfaccia grafica per la costruzione di basi di dati. Invece che solo dandoci designer che generare script, SSDT mantiene invece un intero modello del database, e la mantiene in memoria. Questo approccio model-based è sottoprodotti di meraviglioso: È possibile ottenere il supporto di IntelliSense in profondità, perché il modello di database funziona esattamente come un modello a oggetti quando si tratta di completamento della sintassi. Vedrete anche supporto in tempo reale il controllo degli errori che non richiede l'esecuzione di uno script. E si può snapshot qualsiasi progettazione del database dato, perché il modello può essere facilmente serializzati.
Il modello basato SSDT cambia l'approccio delle versioni, l'implementazione di più versioni di SQL Server (inclusi SQL Azure) e la gestione delle dipendenze da carico stressante alle imbarcazioni riflessivo. Utilizzando SSDT significa che non solo urlare ordini al database, invece si prevede quello che stai per dire. Ricorda di Microsoft è grande (e ormai defunto) l'iniziativa "Oslo"? Si trattava di modellazione, ma la sua portata è stata in ultima analisi, troppo ampio per produrre il successo. Nel frattempo, spettacoli SSDT, in ambito più ristretto di SQL Server, che un approccio di modellazione può avere effetti trasformativi.

martedì 20 dicembre 2011

Supporto integrato Schema.org Dynamic Webnodes CMS v3.7

Webnodes CMS ha annunciato di avere il supporto dinamico per Schema.org. La nuova funzionalità ha una mappatura intuitiva interfaccia utente vocabolario così come un codice API e controlli Asp.Net a razionalizzare i lavori per gli sviluppatori del sito. L'ontologia Webnodes CMS interfaccia di gestione utente fornisce una separazione tra i dati, il modello dati e il layout di presentazione. Schema.org che vi permette di rendere i motori di ricerca capiscono il significato del contenuto è una naturale estensione di core engine thesemantic.


Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla

lunedì 19 dicembre 2011

EBook gratuito: OWASP Top 10 per gli sviluppatori di NET

Scrivendo questa serie è stata un'avventura epica in tutti i sensi della parola:
Durata - 19 mesi per completare una serie di blog, per gridare ad alta voce!
Contenuto - si avvicina 50.000 parole, non compresi tutti la discussione nei commenti.
Sforzo - alcuni dei posti, come la sicurezza livello di trasporto, probabilmente affrontato 100 ore di lettura, la sperimentazione, la sperimentazione e, infine, la scrittura e prove di stampa.È per questo che c'è stata una quattro mesi "iato" prima che dopo!
Ma soprattutto, è stata un'avventura epica di apprendimento per me. Scrivere la serie mi ha costretto a conoscere questo contenuto in profondità, non solo la profondità che facilita conversazione casuale e mi permette di mandare la gente fuori per capire come risolvere i loro difetti, ma la profondità per ottenere davvero i conti con questi rischi, ho garantire potevano sfruttare e quindi assicurarsi che potevo risolverli nuovo.
Per esempio, ho conosciuto - e molti di noi sanno - che gli hash non salato sono vulnerabili a un attacco di arcobaleno, ma non avevo mai effettivamente eseguiti uno di questi attacchi me stesso. Così ho fatto. Altrettanti sulla sniffing dei pacchetti, sapendo che la mancanza di protezione per il trasporto lascia il traffico di rete vulnerabili è una cosa, seduto in macchina al di fuori McDonald ed effettivamente l'acquisizione del traffico wifi e dirottamento della sessione (la mia, che è!) È un'altra cosa.
Guardando al passato, sono davvero contento di quello che ho prodotto. E 'stata una grande esperienza per me e da tutti i conti, è stato accolto molto bene dai. NET e le comunità OWASP pure. Si scopre avrei potuto effettivamente prodotto qualcosa di molto utile!
Così ho deciso di trasformarla in un eBook. Oh - e dare via gratis. No Strings Attached. Così qui è, di 255 pagine. NET bontà di sicurezza lo sviluppo del web. Si prega di condividerlo generosamente, si chuck sul tuo lettore di eBook, e-mail ai tuoi compagni, citando me, la tua forza agli sviluppatori di stampare e leggere tutte le pagine - qualunque sia - è tutto tuo:
OWASP Top 10 di. NET eBook sviluppatori


Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla

venerdì 16 dicembre 2011

FCOE E GAL - A LIVELLO DI SETTORE VIOLAZIONE DI FC-BB-5

Chiunque sia seriamente interessato ad alta disponibilità collega i server alla rete con più di un uplink, a maggior ragione quando si utilizzano schede di rete convergente (CNA) con FCoE. Perdere tutta la connettività di server dopo un errore di collegamento singolo semplicemente non ha senso.
Se possibile, è necessario utilizzare l'aggregazione a collegamento dinamico con LACP a fascio parallelo server-to-switch link in un singolo collegamento aggregato (chiamato anche all'interfaccia collegata in Linux). In teoria, dovrebbe essere semplice da abbinare FCoE con LAG - dopo tutto, FCoE corre sulla cima di Ethernet MAC senza perdita di servizio. In pratica, c'è una grande differenza tra teoria e pratica.
Assumere lo scenario più semplice possibile, dove due link 10GE connettere un server a un singolo switch adiacenti:
In teoria, il collegamento aggregato dovrebbe apparire come una singola interfaccia per il sistema operativo host e stack FCoE e IP dovrebbe usare la stessa interfaccia:
In realtà, l'hardware schede di interfaccia di rete (NIC) raramente implementare link aggregation (inoltre non ha senso collegare i due uplink per lo stesso hardware), e il collegamento aggregato appare come una interfaccia logica incollato (per confondere gli sprovveduti, il fisico interfaccia a volte rimangono direttamente raggiungibile). Ancora nessun problema, stack software FCoE potrebbe utilizzare l'interfaccia incollati.
La maggior parte dello stack FCoE CNA implementare in hardware e presenti due interfacce fisiche (Ethernet NIC e l'adattatore host bus FC - HBA) al sistema operativo.Due CNA appaiono così come quattro interfacce indipendenti dal sistema operativo, con la parte HBA di CNA emulare interfaccia host FC e l'esecuzione dello stack FCoE sul CNA.E 'ovviamente impossibile eseguire FCoE sul collegamento aggregato, perché l'aggregazione collegamento avviene via più tardi, al di sopra del fisico driver di periferica Ethernet. I due CNA dunque bisogno di due sessioni FCoE con l'interruttore a monte.
Questo comportamento ha perfettamente senso, tanto più in ambiente multi-chassis GAL in cui CNA stabilire sessioni FCoE con diverse opzioni, mantenendo così la separazione SAN-A/SAN-B.
Tuttavia, non è così che FC-BB-5, la FCoE standard che descrive, è scritto.

FC-BB-5 nitpicking

FC-BB-5 non è molto specifico circa gli strati sottostanti, si riferisce principalmente a MAC e senza perdita di dati Ethernet MAC (esempio: Figura 26 nella Sezione 7.2).Aggregazione di link standard (802.1AX) è più specifico - nella parte Panoramica (paragrafo 5.1) si dice:
Link Aggregation consente uno o più link ad essere aggregati tra loro per formare un gruppo di aggregazione dei link, in modo che un client Mac in grado di trattare il Gruppo Link Aggregation come se fosse un singolo collegamento.
E più tardi, nei Principi di Link Aggregation (5.2.1):
Un client Mac comunica con una serie di porte attraverso un aggregatore, che presenta uno standard IEEE 802.3 interfaccia di servizio al Cliente MAC.
Abbastanza chiaro? E 'per me.

Qual è il settore facendo

Ogni singolo produttore interruttore FCoE che io sappia di (Cisco, Brocade, Juniper) è "interpretare" FC-BB-5 esattamente nello stesso modo. Tutti gli interruttori così si comportano in circa allo stesso modo (come descritto sopra) e lavorare con la CNA di accoglienza ... mantenendo l'interoperabilità (cosa buona) e l'impostazione della fase di viaggio di un insospettabile ingegnere che pensa di lettura standard può aiutare a capire come realmente funzionano i dispositivi di rete.
Si potrebbe capire la discrepanza tra FC-BB-5 standard e una implementazione del settore tipico se FC-BB-5 sono stati scritti da un gruppo di teorici, ma è stato (come altri standard FC) progettato da un ente del settore con la rappresentazione della maggior parte dei i fornitori menzionati nel paragrafo precedente. Dimostra ancora una volta che un enorme divario che c'è tra teoria e pratica.

martedì 13 dicembre 2011

Roslyn CTP analisi del codice

In ultima rata di C # corner , ho dimostrato come utilizzare le API di scripting con il recentemente rilasciato Roslyn CTP. In questa edizione mi dimostrano come utilizzare la Roslyn Compiler API per analizzare la sintassi e la semantica del codice così come compilarlo.
Tradizionalmente, il compilatore C # è stato un po 'una scatola nera: va in codice come testo, e un eseguibile o una libreria viene fuori. La riflessione si può prendere molto lontano a scoprire la struttura di un'applicazione in esecuzione o di montaggio, ma ha i suoi limiti. Con Roslyn si può letteralmente leggere un file C # o soluzione di Visual Studio, analizzare il codice, modificarlo e compilare una nuova assemblea.
L'analisi sintattica
Un albero di sintassi è la rappresentazione completa di un pezzo di codice analizzato. Esso contiene i nodi sintassi, gettoni e curiosità.
  • Nodi sintassi rappresentano espressioni, affermazioni e dichiarazioni
  • Gettoni sintassi rappresentano le parole chiave, identificatori, e gli operatori
  • Trivia sintassi rappresentano spazi, caratteri di fine linea, commenti e altri dati irrilevanti dell'albero di analisi
Per analizzare un semplice programma come testo in un albero di sintassi che è possibile utilizzare il metodo ParseCompilationUnit fabbrica in classe SyntaxTree.
SyntaxTree albero = SyntaxTree
  . ParseCompilationUnit (@ "using System;
                                         utilizzando System.Collections.Generic;
                                         using System.Linq;
                                         utilizzando System.Text;
                                         
                                         namespace VSMRoslynDemo
                                         {
                                             classe Program
                                             {
                                                 static void Main (string [] args)
                                                 {
                                                     Console.WriteLine ("" Ciao !"");
                                                                        }
                                                                    }
                                                                } ");
Con l'albero di sintassi è ora possibile iniziare l'analisi della struttura completa del programma. Per esempio, per trovare tutte le istruzioni utilizzare il programma è possibile eseguire il seguente frammento:


 IEnumerable <UsingDirectiveSyntax> using = 
tree.Root.DescendentNodes () OfType <UsingDirectiveSyntax> ().;
Una volta che hai il utilizzando le istruzioni, è possibile recuperare gli spazi dei nomi facilmente utilizzando LINQ.
 Namespace <string> IEnumerable = 
(da u in using selezionare u.Name.GetFullText ());
Allo stesso modo, per recuperare tutte le dichiarazioni di metodo sarebbe:
IEnumerable <MethodDeclarationSyntax> metodi = 
tree.Root.DescendentNodes () OfType <MethodDeclarationSyntax> ().;
Le strutture UsingDirectiveSyntax e MethodDeclarationSyntax sono ogni derivati ​​del SyntaxNode e contenere tutte le informazioni necessarie a descrivere pienamente l'utilizzo e l'espressione metodo rispettivamente.
Analisi semantica
Mentre attraversa un SyntaxNode è un esercizio interessante in sé, ci sono altri mezzi per determinare la semantica del codice. La classe Compilation viene utilizzato per analizzare e compilare alberi di sintassi di uno o molti.
Per creare un oggetto di compilazione, il metodo factory Create sulla classe Compilation viene utilizzato. Per esempio, per creare una nuova compilation chiamata "TestProgram.exe" utilizzando l'albero di sintassi creato in precedenza, si dovrebbe eseguire:
Compilazione compilazione = Compilation.Create ("TestProgram.exe",
syntaxTrees: new [] {} albero,
Opzioni: CompilationOptions nuovo (assemblyKind: AssemblyKind.ConsoleApplication),
Riferimenti: new [] {
                AssemblyFileReference nuovo (typeof (oggetto). Assembly.Location),
                AssemblyFileReference nuovo (typeof (IQueryable <>). Assembly.Location)
});
Una raccolta contiene tutte le informazioni necessarie per compilare un programma. Questo include tutti i file sorgenti necessari, i riferimenti di montaggio e le opzioni di compilazione. I riferimenti utilizzati per la compilazione sono memorizzati nella proprietà riferimenti e le opzioni del compilatore vengono memorizzate nella proprietà Opzioni. Ho dichiarato la compilazione TestProgram.exe come un'applicazione console con riferimenti a entrambi mscorlib.dll e System.Core.dll.
Un oggetto di compilazione consente anche per il recupero di un SemanticModel di un SyntaxTree dato attraverso il metodo GetSemanticModel:
SemanticModel semanticModel = compilation.GetSemanticModel (albero);
Con un oggetto SemanticModel, si può facilmente recuperare simboli in tutto il progetto. Un simbolo rappresenta sia un tipo, namespace, variabile o metodo. I simboli possono essere recuperati da una struttura SyntaxNode dato.
Ad esempio, per recuperare tutti i tipi definiti nello spazio dei nomi System.Collections.Generic, devi prima scaricare il SemanticInfo per il nodo NameSyntax che rappresenta lo spazio dei nomi e quindi recuperare il NamespaceSymbol attraverso il SemanticModel:
 CompilationUnitSyntax root = (CompilationUnitSyntax) tree.Root;
            NameSyntax SystemName = root.Usings [1] Nome.;
            SystemNameSemantics SemanticInfo = semanticModel.GetSemanticInfo (SystemName);
            NamespaceSymbol = systemNameSymbol (NamespaceSymbol) systemNameSemantics.Symbol;
 IEnumerable <NamedTypeSymbol> typeSymbols = systemNameSymbol.GetTypeMembers ();
È quindi possibile utilizzare la raccolta NamedTypeSmbol per recuperare tutti i metodi accessibile all'utente per tipo, per esempio:
Console.WriteLine (String.Format ("Tipi definiti in {0}", systemNameSymbol.ToDisplayString ()));
            foreach (var typeSymbol in typeSymbols)
            {
                Console.WriteLine (typeSymbol.Name);
 
                foreach (var membro in typeSymbol.GetMembers ())
                {
                    if (member.CanBeReferencedByName)
                    {
                        Console.WriteLine ("\ t" + member.ToDisplayString ());

[Clicca sull'immagine per ingrandirla.]
Figura 1. Estratto della produzione di tipi e membri System.Collection.Generic utilizzando Rosyln.
Compilazione Un esempio di compilazione può anche essere usato per emettere un assembly compilato o eseguibile in un flusso o file. Il programma di prova di cui l'albero della sintassi può essere compilato in un eseguibile utilizzando il metodo Emit sull'oggetto Compilation, come segue:
utilizzando (var file = nuovo FileStream ("TestProgram.exe", FileMode.Create))
            {
                var result = compilation.Emit (file);
            }
[Clicca sull'immagine per ingrandirla.]
Figura 2. Esecuzione TestProgram.exe compilati dall'applicazione host.
Strumento utile
Ho appena dimostrato come Rosyln può essere utilizzato per analizzare e compilare il codice. Queste due caratteristiche, insieme alla sua capacità di script di hosting, dovrebbe risultare molto utile agli sviluppatori di strumenti e sviluppatori di applicazioni simili. Se vuoi saperne di più su Roslyn, come ad esempio come creare un refactoring personalizzati, si prega di lasciare un commento qui sotto.