Architettura MVC
da Jose Jorge Marquez Gomez su Nov.17, 2011, in generale
Vi lascio ho fatto una presentazione su architettura MVC è una spiegazione molto concettuale e, soprattutto, ma abbastanza a mio parere
deve comprendere che l'architettura.
Buon divertimento!
Senza senso
da Jose Jorge Marquez Gomez sul Dec.06, 2010, under Personal
Beh, io non sono abituato ad avere le cose accadono suelan me, ma ultimamente è che io vivo solo per il college. Non faccio altro che fornire un lavoro lì, effettuare una consegna lì, cazzo ... questo è troppo. Beh, spero che tutto questo frutto in futuro, perché in verità non riesco a vedere il futuro nel presente.
Guardando bene nel mondo del calcolo coloro che hanno successo sono quelli con un documento che non sa nemmeno cosa sia o fare una presentazione powerpoint che è il repera (e non li ho fatto) .... Non credo che questa è la prima volta che questo accade in qualsiasi azienda, succede a tutti.
Ho ho deciso di fare la gara è solo perché questo paese ha titulitis se TITULITIS. Attraverso quali ho lavorato (non molto, ma abbastanza per vedere le cose che ho visto) ho notato che le persone non sanno quello che hanno studiato, la cura sencillamentente di trasmettere ciò che hanno imparato in il suo insegnamento ... dove erano gli ideali di curiosità e di intrighi? vale a dire, perché la gente non mi importa ora di trovare il motivo per cui nulla di simile accade. Le macchine sembrano applicare teoremi, algoritmi, ideali apprese.
Come disse Einstein:
Non considerare lo studio come un obbligo, ma come un'opportunità per entrare nel mondo bello e meraviglioso della conoscenza.
Non è così, perché la gente voglia di studiare per trovare un lavoro (che non è male sul lato opposto), ma perdiamo molto. Abbiamo perso gli ideali per cui i nostri antenati erano in terra, Albert Einstein, Max Planck, Isaac Newton, Aristotele ... ecc .. se si trattasse di pensatori veri e non quello che abbiamo oggi.
Quando sei in compagnia realizza queste cose, essendo un analista è a conoscenza di molti dettagli di questo tipo, le teste che non hanno idea di ciò che dicono, non incontri trovarlo prodotti finali nuncan sono stati completati per definire (e vi dico che definiresti il tuo!). Infine, e quando mettere ordine e la sanità mentale nel caso in cui ti accorgi che non va bene, perché ciò che è la mano invia "divino".
Ma tutto questo è parte della vita ... la vita che viviamo ...
Nuovo Blog
da Jose Jorge Marquez Gomez a nov.27, 2010, under Generale
Ho fuso il blog dojava DONet e anche di ampliare l'argomento e ad aiutare di più nel blog. Spero di alimentazione così tanto.
Pattern Factory (Factory)
da Jose Jorge Marquez Gomez al ago.27, 2010, under DoNet
Un modello di fabbrica serve a incanalare tutte le creazioni di oggetti in un unico punto. Questo è utile per la progettazione robusta del nostro sistema e reagire al cambiamento.
Il modello fabbrica può essere combinato con il pattern singleton come è più comodo da usare e forma utile utilizzare. In questo esempio, metteremo una fabbrica senza singleton.
A dire il modello di fabbrica è dei modelli creativi, questo tipo di modello che astrae il modo per creare oggetti concreti, dando così sostegno alla creazione di oggetti in astratto.
Per avviare un modello di fabbrica è da eseguire:
- Una funzione o metodo, che è responsabile della creazione di oggetti di un determinato tipo.
- Non è obbligatorio ma consigliato che la funzione o il metodo restituisce un astrazione (interfaccia o classe astratta).
Immaginate un negozio di pizza richiede un software è necessario disporre di una serie di prodotti (pizze varia). Come designer siamo buoni, la creazione di oggetti pizza può essere fatto da qualsiasi punto del progetto, ma il problema è che ci sono molti tipi di pizze. Per creare ogni pizza per ogni tipo in diverse parti del programma sarebbe la prima cosa che si potrebbe pensare, ma ... se invece usiamo il buon senso e applicare la fabbrica?, Questo ci permetterebbe, come un nuovo prodotto o un cambiamento in nessuno di essi che il cambiamento in un solo luogo, prendendo più controllato questo codice. Anche se vi rendete conto la velocità del cambiamento è molto più di andare cambiare tutte le possibili aspetti delle nostre pizze dal codice.
Beh, la fabbrica sarebbe responsabile della creazione di tutti i tipi di pizze e di offrire tutti i possibili punti del programma.
Il nostro esempio potrebbe essere:
- Il IPizza interfaccia:
IPizza interfaccia
{
Whoami void ();
}
- Le pizze individuali:
public class PizzaBarbacoa: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Sono una pizza barbecue");
}
# Endregion
}
public class PizzaMargarita: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Io sono un Margarita pizza");
}
# Endregion
}
public class PizzaPepperoni: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Io sono un pepperoni pizza");
}
# Endregion
}
- L'impianto in questione:
public class PizzaFactory
{
public enum tipoPizza
{
Pepperoni, Margherita, Barbeque
}
IPizza pubblico getPizza (tipo tipoPizza)
{
switch (tipo)
{
tipoPizza.Barbacoa caso:
restituire nuova PizzaBarbacoa ();
break;
tipoPizza.Margarita caso:
restituire nuova PizzaMargarita ();
break;
tipoPizza.Pepperoni caso:
restituire nuova PizzaPepperoni ();
break;
default:
restituire nuova PizzaBarbacoa ();
}
}
}
- Un piccolo test:
classe Test pubblico
{
public void testPizza ()
{
/ Non / Esempio di utilizzo di factory
IPizza pizza1 PizzaBarbacoa = new ();
pizza1.quienSoy ();
IPizza pizza2 PizzaMargarita = new ();
pizza2.quienSoy ();
IPizza pizza3 PizzaPepperoni = new ();
pizza3.quienSoy ();
IPizza pizza4 PizzaBarbacoa = new ();
pizza4.quienSoy ();
IPizza pizza5 PizzaMargarita = new ();
pizza5.quienSoy ();
/ / Esempio di utilizzo di fabbrica
PizzaFactory PizzaFactory factory = new ();
IPizza pizza6 = factory.getPizza (PizzaFactory.tipoPizza.Barbacoa);
pizza6.quienSoy ();
IPizza pizza7 = factory.getPizza (PizzaFactory.tipoPizza.Margarita);
pizza7.quienSoy ();
IPizza pizza8 = factory.getPizza (PizzaFactory.tipoPizza.Pepperoni);
pizza8.quienSoy ();
}
}
Come si può vedere come utilizzare e dei suoi vantaggi sono migliori. Spero che vi piaccia!. Ci vediamo più tardi!
Log4Net per C #
da Jose Jorge Marquez Gomez al ago.25, 2010, under DoNet
Ebbene oggi vi dirò un po 'come configurare log4net per C #. Ma prima vi dico che è log4net.
Log4Net log4java è un framework portato la biblioteca, che fornisce tutti gli strumenti possibili per fare una registrazione, la gestione degli errori, controllo di tutte le applicazioni per le applicazioni possibili. A mio avviso, il log è buono come ho provato finora ed è abbastanza facile da configurare. Offre diverse modalità di monitoraggio e perfino di creare il proprio. Questa libreria è possibile ottenere http://logging.apache.org/log4net/index.html .
Spiega alcuni concetti relativi alla log4net.
Log4Net offre livelli multipli di controllo predefiniti come:
1. Debug: Questo è di solito utilizzato per le linee di debug.
2. Info: E 'spesso usato per dare informazioni relative alla vostra applicazione.
3. Avvisa: sono possibili punti di interruzione del software, voglio dire, eventuali avvisi importanti.
4. Errore: Utilizzato per rilevare gli errori nel vostro software.
5. Irreversibile viene utilizzato per rilevare errori significativi nel software, cioè per impedire il suo funzionamento per esempio.
Questi livelli sono predefiniti porta log4net, ma è possibile creare livelli personalizzati.
Interessante è anche il appenders, è proprio così diversi livelli di log4net saranno monitorati / login log4net lì tra essi vi sono:
1. FileAppender: tronchi sul livello definito nel file di configurazione.
2. RollingFileAppender: registri sul livello definito nella configurazione in un file che ruota a seconda del loro peso.
3. SmtpAppender: registri sul livello definito nella configurazione e viene inviato ad un destinatario di posta.
Più avanti si vedrà un esempio di definizione di tali livelli configurati. Per i dettagli di tutte le proprietà si possono vedere le appenders web che hai qui di seguito.
Tutto quello che potete vedere dettagliate su questo sito http://logging.apache.org/log4net/release/config-examples.html .
Begin.
Il primo passo è descargaros biblioteca del sito precedente, una volta scaricato, è necessario aggiungere questa libreria per i riferimenti del progetto. Poi ci metteremo i log4net nel file di configurazione dell'applicazione, se un'applicazione Web è il web.config, se l'applicazione console app.config, etc ...
Nella "configurazione" tag -> "ConfigSection" -> agregad la seguente riga:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> Poi un nuovo tag che abbiamo chiamato "<log4net>" i appenders sono configurati lì. Ognuno ha le proprie impostazioni nel sito precedente, si può vedere tutto. Vice log4net Esempio
Una volta che abbiamo questo, si utilizza già i nostri log4net nell'applicazione. Un requisito da soddisfare è che ogni classe deve inizializzare log4net nel suo costruttore in modo che sia come illustrato nel codice seguente:
classe di test { Log Ilog privato; test pubblico () { log4net.Config.XmlConfigurator.Configure (); log = LogManager.GetLogger (this.GetType ()) / / qui si procede per inizializzare il registro oggetto. }
Per fare uso del nostro registro è semplice, basta chiamare i diversi livelli di allerta che ha attraverso il registro oggetto.
Spero che servire come un seme con log4net.
Saluti!
Design pattern Singleton (Unique) e decoratore (Abstract o Decorator). NET
da Jose Jorge Marquez Gomez a nov.24, 2009, sotto DoNet
Beh, dopo la mia letargia (non dispiace distacco prima, ma l'ho universitaria tenia ha travolto), parlerò di alcuni design pattern. NET.
Ma prima un po 'di "storia":
Modelli di progettazione vengono utilizzati per varie cose, (tratto da wikipedia):
* Fornire cataloghi di elementi riutilizzabili nella progettazione di sistemi software.
* Per evitare il ripetersi nella ricerca di soluzioni ai problemi noti e risolti prima.
* Formalizzare un vocabolario comune tra i progettisti.
* Standardizzare modalità viene eseguita progettazione.
* Agevolare l'apprendimento delle nuove generazioni di designer a condensazione conoscenze esistenti.
E come si dice in wikipedia non intende imporre nulla e abusare di loro può essere un errore.
Beh vediamo alcuni modelli. NET.
Patron Singular (Singleton):
Questo modello assicura che ci sia una sola istanza per ogni classe di evitare un consumo eccessivo di risorse o l'accesso incoerente. I suoi usi possono essere molteplici, compreso l'accesso alle impostazioni globali, logging, ecc ..
Lo schema generale è:
Public Class PatronSingular Shared Private instanciaUnica PatronSingular Private Sub New () 'Costruttore privato per creare classe dell'istanza End Sub Public Shared Function getInstance () As PatronSingular 'Controllare la creazione di oggetti della classe stessa. Is Nothing Then Se instanciaUnica New PatronSingular instanciaUnica = () End If Torna instanciaUnica End Function End Class
Un pattern Singleton il costruttore dovrebbe essere privata alla classe è quello di controllare la propria creazione e ne è responsabile. Dobbiamo creare un metodo, che di solito è chiamato "getInstance ()" che restituisce l'istanza della classe da utilizzare.
Decorator modello (Decorator):
Rende "wrapper" gli oggetti, in una definizione formale di ciò che si è impostata una funzionalità agli oggetti che ereditano da essa e quindi assegnare le responsabilità. In breve, ci dà la capacità di generare le classi con le funzioni che vengono generate in modo dinamico. Ci sono molti esempi di questo tipo. NET, compresa la gestione dei file (FileStream il decoratore è Stream). Rispetto a Java, ciò corrisponderebbe a classi astratte. Esempio:
Public Class MustInherit PatronDecorador 'Esso offre una funzionalità di base per tutti i bambini, ma 'Che funzionano in modo diverso: 'Per esempio: 'Cioccolato avrà un prezzo diverso e la descrizione 'Burro, ma entrambi possono sciogliersi!. Public MustOverride Prezzo Function () As Double Public Function Description MustOverride () As Double Melt Public Function () As Boolean 'Melt Restituisce True End Function 'E costringe i propri figli a essere istanziati in un modo particolare Public Sub New (ByVal ModificadorAcceso As String) End Sub End Class Public Class Chocolate Inherits PatronDecorador Public Overrides Funzione Descrizione () As Double Torna "Chocolate" End Function Public Overrides Prezzo Function () As Double 10,2 Return End Function Public Sub New (ByVal param As String) MyBase.New (param) End Sub End Class Public Class Butter Inherits PatronDecorador Public Overrides Funzione Descrizione () As Double Torna "Butter" End Function Public Overrides Prezzo Function () As Double 3,6 Ritorno End Function Public Sub New (ByVal param As String) MyBase.New (param) End Sub End Class
Beh, spero di scrivere più spesso, ma il tempo mi ha annegato!, In un altro articolo mi limiterò a descrivere il modello di strategia, gli adattatori e gli osservatori. Saluti!
Cambiamento forzato della lingua in ASP.NET
da Jose Jorge Marquez Gomez al abr.28, 2009, sotto DoNet
Beh, per cominciare possiamo dire che gli standard supportati da. NET per le lingue che vedi nell'immagine MSDN http://msdn.microsoft.com/es-es/library/system.globalization.cultureinfo (VS.80). aspx , anche dire che la cultura in un WebForm viene impostata automaticamente per ogni sessione utente è INICE sul web, a seconda della lingua che viene configurato nel browser client.
Ora arriva il problema che forzare la lingua scelta, o perché la nostra lingua permette altre necessità intrinseca o dal funzionamento del nostro sito. Considerando gli standard di cui sopra, possiamo cambiare la nostra cultura come segue:
Thread.CurrentThread.CurrentCulture = New CultureInfo ("en-GB") Thread.CurrentThread.CurrentUICulture = New CultureInfo ("en-GB")
Bene, spiegare questo un po ', nelle linee possiamo vedere che ci cambierà la cultura corrente e il sito web di interfaccia cultura, questo viene fatto con CurrentCulture e CurrentUICulture, prima di tutto stabilire la coltura principale del programma attraverso il thread principale di esecuzione, questo viene fatto prendendo il Thread.currentThread principale filo e che istituisce la cultura in quel momento.
Un altro problema che abbiamo incontrato è che al momento di cambiare la cultura, abbiamo potuto stabilire questa cultura nel thread al momento che vogliamo, ma succede che la pagina ha già stabilito cambiamento culturale Webform prima di noi, in quanto vi è una procedura a un livello superiore della gerarchia delle classi Webform ha fatto questo lavoro e ha già scelto la lingua. Ebbene, per risolvere questo problema e cambiare la lingua che vediamo riflessa sul nostro sito al momento del cambiamento, c'è un'altra soluzione, sovraccaricando il metodo della classe "InitializeCulture" genitore "System.Web.UI.Page" della nostra WebForm, e poi inserire il codice del cambiamento culturale, in quanto questa procedura è l'unico responsabile dell'inizializzazione della nostra cultura prima che venga visualizzato sul client. Questo sarebbe il seguente:
Protetto Overrides InitializeCulture Sub () Thread.CurrentThread.CurrentCulture = New CultureInfo ("en-GB") Thread.CurrentThread.CurrentUICulture = New CultureInfo ("en-GB") End Sub
Bene, questo apre l'immaginazione tanto quanto si vuole, certamente il valore "en-" si possono mettere tutti i valori accettati con il metodo sopra descritto sul web. Così si può cambiare la lingua del sito web "quando ci si sente come"
.
Saluti!
CLR (Common Language Runtime)
da Jose Jorge Marquez Gomez al abr.13, 2009, sotto DoNet
Ebbene, in questo post cercherò di spiegare qual è il NET Framework CLR, per me, e io personalmente credo che il CLR è una macchina virtuale con lo stesso stile JVM Java Virtual Machine è in esecuzione il bytecode del assemblatori generati. NET. I compilatori di linguaggio. NET è responsabile per la compilazione del codice bytecode in MSIL (Microsoft Intermediate Language), che viene interpretata dal CLR.
Il CLR compila il blocco di codice MSIL in tempo reale, vale a dire, in quanto si utilizza la funzionalità del montaggio, il CLR genera codice nativo che è finalmente implementato nella meccanica e tentativo di astrarre il codice creato nella macchina in una delle lingue utilizzate. NET macchina.
CLR è diviso in strati di base, per fornire una maggiore interoperabilità con il sistema e sviluppatori. Questi sono:
- Livelli di sicurezza.
- Gestione delle eccezioni.
- Amministrazione di fili.
- Gestione della memoria.
- Garbage collector (GAC)
Si noti che anche se è una "macchina virtuale" il CLR gira solo su Windows.
In allegato è una piccola immagine esplicativa CLR (Autore: Leif Arne Storset , Fonte: Wikipedia):

E 'un posto piccolo, ma penso che le piccole caratteristiche esplicative. Saluti!
Utilizzando l'uso della nomenclatura
da Jose Jorge Marquez Gomez al abr.01, 2009, sotto DoNet
Dite loro che secondo la nomenclatura è molto utile quando si utilizza l'uso delle risorse deve necessariamente gratuito (l'accesso ai file, l'apertura di registrazione bd, la manipolazione delle immagini, ecc ...) per evitare problemi in seguito.
Come visual studio nomenclatura è utilizzata per l'accesso ai file, ma può essere utilizzato con qualsiasi classe che implementa l'interfaccia IDisposable, assicurando che il tipo utilizzato nello stabilimento utilizzando pubblicato "Sì o Yes" (dice il presidente di un club calcio
) Le risorse che si sta utilizzando, a fallire nel blocco di codice o no, dato che è il Garbage Collector da Visual Studio che è responsabile per chiamare il metodo dispose della classe che implementa l'interfaccia.
Per questo esempio useremo per accedere a un file.
L'esempio è semplice, perché tutto ciò che dovete fare è usare la nomenclatura come segue:
Utilizzando Fich As New FileStream ("C: \ pruebas.txt", FileMode.Open) 'Codice da scrivere FAR FUNZIONARE IL FILE Fine Utilizzo
Così stiamo facendo in modo che il file verrà rilasciato al termine pruebas.txt il blocco utilizzando, senza causare problemi in successivi accessi al file.
Ci sono casi, ad esempio, l'accesso ai dati dichiarando il blocco ci impone di aprire il collegamento nel blocco, non voglio dire, per creare il blocco utilizzando e si suppone che l'azione si apre e si chiude solo (questo è vero). Ciò che si assume è che nell'esempio di cui sopra se si apre il file perché la classe FileStream nel suo costruttore e apre la risorsa, ma nel caso di una connessione dati del costruttore connettore non connessione dati aperta nel suo costruttore, che dovrebbe aprire, una volta assegnata la risorsa.
Esempio:
'QUESTA DICHIARAZIONE NON IMPLICA L'APERTURA DEL inizializzazione SOLO oggetto Connection Utilizzo conn As New SqlConnection ("CadenaConexion") conn.Open () 'Questo se si è detto aperto, e il blocco usando è responsabile per rilasciarlo (chiudere la connessione) 'Codice da scrivere Fine Utilizzo
Riassumendo,
Che cosa succede se abbiamo fatto in modo con un blocco utilizzando è il rilascio di risorse, ma l'apertura di tali risorse, questo dipenderà dal tipo utilizzato in uso.
Creare blibliotecas di classi che sono registrati nel COM di Windows
da Jose Jorge Marquez Gomez al mar.30, 2009, sotto DoNet
Ho trascorso del tempo cercando di registrare una DLL in COM per l'interoperabilità con ASP 3.0, PHP, ecc .. ben dopo la ricerca e la ricerca, ricerca, rompere i miei occhi ... ecc ... era più semplice di quanto pensassi. Per registrare una dll COM in windows dobbiamo prima definire la classe come visibile da COM e definire una chiave o la firma del gruppo. È fatto come segue:
A. - Indichiamo il progetto che è visibile da COM.

2 -. Creare la chiave del progetto.

Tenete a mente che quando facciamo compilare le funzioni di montaggio (procedure) che sono "comprensibili" per qualsiasi linguaggio di programmazione non è così. Net, cioè, se è possibile utilizzare, funzioni, procedure, proprietà, ecc .. per restituire tipi di dati nativi, e sarà più facile capire ASP3.0 ad esempio php o quant'altro. Se una volta che il montaggio è non supportate da COM COM registrazione ti avvisa quando si registra sulla macchina (solo se necessario per mancata registrazione. NET). . Se queste assemblee devono essere usati NET basta aggiungere l'assembly di Windows, questo è fatto:
A. - Aprire un programma di console dal percorso di Visual Studio.
. 2 - Scrivere nella riga di comando: gacutil-I RUTAENSAMBLADO (ad esempio gacutil-I c: \ midll.dll)
Se abbiamo bisogno di interoperabilità con COM necessario registrare l'assembly in Windows. Si tratta di: regasm / tlb / codebase RUTAENSAMBLADO (ad esempio regasm / tlb / codebase c: \ rutadll.dll)
Questo dovrebbe mostrare un messaggio di completamento in inglese e che poi è stato registrato correttamente, se ci fosse alcuna incompatibilità (come accennato prima) i tipi di dati supportati da COM, sarà simile in questa fase l'applicazione regasm visualizzato.
Beh, dopo aver scritto questo biglietto "come il mio primr CIAO MONDO"
blog. Spero che sia utile vedere e rendere questo blog un post per aiutare un sacco .... saluti!






