Autor Arquivo
MVC Arquitectura
por Jose Jorge Marquez Gomez en Nov.17, 2011, baixo Xeral
Deixo-vos que fixen unha presentación sobre arquitectura MVC é unha explicación moi conceptual e por riba, pero o suficiente na miña opinión
debe ser entendido que a arquitectura.
Divirtam-se!
Sen sentido
por Jose Jorge Marquez Gomez en Dez.06, 2010, baixo Persoal
Ben, eu non estou afeito a ter as cousas acontecen suelan min, pero ultimamente é que eu vivo só para a facultade. Eu non fago máis que entregar un traballo alí, facer unha entrega alí, foda-se ... iso é máis. Bo, espero que todo isto froito no futuro, porque en realidade eu non podo ver o futuro no presente.
Mirando ben no mundo da computación aqueles que teñen éxito son aqueles con un documento que nin sequera sabe o que é ou facer unha presentación PowerPoint que é o repera (e eu non os teño feito) .... Eu non creo que esta é a primeira vez que isto ocorre en calquera empresa, isto ocorre en todo.
Eu decidir que facer a carreira é só porque este país ten titulitis se TITULITIS. A través de que eu traballei (non moito, pero o suficiente para ver cousas que vin) Eu teño notado que a xente non saben o que eles estudaron, coidados sencillamentente pasar o que aprenderon en seu ensino ... onde estaban os ideais de curiosidade e intriga? é dicir, por que a xente non me importa agora para descubrir por que tal cousa acontece. Máquinas parecen aplicar-se teoremas, algoritmos, ideais aprendidas.
Como dixo Einstein:
Nunca considere o estudo como unha obriga, senón como unha oportunidade para entrar no mundo fermoso e marabilloso do coñecemento.
Isto non é así, porque a xente se interesaren en estudar a atopar un traballo (que non é malo, do outro lado), pero perdemos moito. Perdemos os ideais polos que os nosos antepasados estaban en terra, Albert Einstein, Max Planck, Isaac Newton, Aristóteles ... etc .. se iso fose pensadores certo e non o que temos hoxe.
Cando está na empresa entende isto, sendo un analista está consciente dos moitos detalles deste tipo, os xefes que non teñen idea do que din, non atopalo reunións produtos finais nuncan están concluídas para definir (e digo que definir o seu!). Finalmente, e cando se pon un pouco de orde e sanidade no caso de darse conta de que non é bo, porque o que é a man envía "divino".
Pero todo isto é parte da vida ... a vida que vivimos ...
Blog novo
por Jose Jorge Marquez Gomez para nov.27, 2010, baixo Xeral
Eu se fundiron o blog dojava DONet e tamén para ampliar o tema e para axudar máis no blog. Espero alimentación tanto.
Fábrica de modelos (de fábrica)
por Jose Jorge Marquez Gomez para ago.27, 2010, baixo DoNet
Un nivel de fábrica serve para canalizar todas as creacións de obxectos nun único punto. Isto é útil para deseño robusto do noso sistema e receptivo a cambios.
O nivel de fábrica pode combinarse co estándar Singleton, pois é máis cómodo de usar e de forma útil para usar. Neste exemplo, imos poñer unha fábrica sen Singleton.
Dicir que o nivel de fábrica é un dos patróns de creación, este tipo de estándar que abstrai o xeito de crear obxectos concretos, dando así soporte para crear obxectos no abstracto.
Para ter un nivel de fábrica é a realización de:
- A función ou método que é responsable da creación de obxectos dun determinado tipo.
- Non é obrigatorio, pero é recomendable que a función ou método retorna unha abstracción (interface ou clase abstracta).
Imaxina unha tenda de pizza require un software ten que ter un número de produtos (pizzas variadas). Como deseñadores que somos bos, a creación do obxecto de pizza pódese facer dende calquera lugar do proxecto, pero o problema é que hai moitos tipos de pizzas. Para crear cada pizza para cada tipo en distintas partes do programa sería o primeiro que podería pensar, pero ... en cambio, usa o sentido común e aplicar a fábrica?, Isto permite-nos como un novo produto ou modificación en calquera deles que o cambio en só un lugar, máis controlada este código. Mesmo se percibir a velocidade do cambio é moito máis que ir cambiando todas as aparencias posibles das nosas pizzas polo código.
Así, a fábrica sería responsable de crear todo tipo de pizzas e ofrecer todos os puntos posibles do programa.
O noso exemplo sería:
- O IPizza interface:
IPizza interface de
{
WhoAmI void ();
}
- As pizzas individuais:
public class PizzaBarbacoa: IPizza
{
# Membros Rexión IPizza
public void WhoAmI ()
{
Console.WriteLine ("Eu son unha pizza churrasco");
}
# Endregion
}
public class PizzaMargarita: IPizza
{
# Membros Rexión IPizza
public void WhoAmI ()
{
Console.WriteLine ("Eu son un Margarita pizza");
}
# Endregion
}
public class PizzaPepperoni: IPizza
{
# Membros Rexión IPizza
public void WhoAmI ()
{
Console.WriteLine ("Eu son un Pepperoni pizza");
}
# Endregion
}
- A planta en cuestión:
public class PizzaFactory
{
public enum tipoPizza
{
Pepperoni, Margherita, Barbeque
}
IPizza público getPizza (tipo tipoPizza)
{
rede (tipo)
{
caso tipoPizza.Barbacoa:
return new PizzaBarbacoa ();
romper;
caso tipoPizza.Margarita:
return new PizzaMargarita ();
romper;
caso tipoPizza.Pepperoni:
return new PizzaPepperoni ();
romper;
default:
return new PizzaBarbacoa ();
}
}
}
- Un pequeno test:
public class Test
{
public void testPizza ()
{
/ Non / Exemplo usando fábrica
IPizza pizza1 = new PizzaBarbacoa ();
pizza1.quienSoy ();
IPizza pizza2 = new PizzaMargarita ();
pizza2.quienSoy ();
IPizza pizza3 = new PizzaPepperoni ();
pizza3.quienSoy ();
IPizza pizza4 = new PizzaBarbacoa ();
pizza4.quienSoy ();
IPizza pizza5 = new PizzaMargarita ();
pizza5.quienSoy ();
/ / Exemplo usando fábrica
PizzaFactory PizzaFactory fábrica = 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 ();
}
}
Como podes ver como usar e as súas vantaxes son mellores. Espero que vós gusten!. Te vexo máis tarde!
Log4Net para C #
por Jose Jorge Marquez Gomez para ago.25, 2010, baixo DoNet
Ben, hoxe eu vou che dicir algo como configurar log4net para C #. Pero antes de lle dicir que é log4net.
Log4Net é un cadro log4java portado a biblioteca, que ofrece todas as ferramentas posibles para facer un rexistro, tratamento de erros, que vixían os seus aplicativos para posibles aplicacións. Na miña opinión, o rexistro é tan bo que eu tente ata agora e é moi fácil de configurar. Ofrece varios modos de seguimento, e mesmo crear-lle o seu propio. Isto libraría pode obter http://logging.apache.org/log4net/index.html .
Explicar algúns conceptos relacionados coa log4net.
Log4Net ofrece varios niveis de seguimento pre-definida como:
1. Depuración: Isto xeralmente se usa para liñas de depuración.
2. Info: El é frecuentemente usado para dar información relativa á súa aplicación.
3. Avisar: puntos de interrupción son posibles do seu software, quero dicir, todos os avisos importantes.
4. Erro: Usado para detectar erros no seu programa.
5. Fatal é usado para detectar erros significativos no programa, é dicir, para evitar o seu funcionamento, por exemplo.
Estes niveis son predefinidos trae log4net, pero pode crear niveis personalizados.
Outro destaque é o appenders, este é o quão diferentes niveis de log4net será monitor / logueado log4net alí estes inclúen:
1. FileAppender: rexistros no nivel se define no arquivo de configuración.
2. RollingFileAppender: rexistros sobre o nivel definido na configuración nun ficheiro que xira en función do seu peso.
3. SmtpAppender: rexistros sobre o nivel definido na configuración e é enviado a un destinatario de correo electrónico.
Máis tarde vai ver un exemplo da fixación destes niveis configurados. Para máis información de todas as propiedades que se pode ver os appenders web ten a continuación.
Todo o que podes ver detallado na web http://logging.apache.org/log4net/release/config-examples.html .
Begin.
O primeiro paso é descargaros biblioteca do web anterior, unha vez descargado, ten que engadir esta biblioteca para as súas referencias de proxecto. Entón imos establecer os log4net no ficheiro de configuración da súa aplicación, se unha aplicación web é o web.config, se a aplicación de consola app.config, etc ...
Na etiqueta "configuración" -> "configSection" -> agregad a seguinte liña:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> A continuación, unha nova marca que chamamos "<log4net>" os appenders son configurados alí. Cada un ten as súas propias opcións na web anterior pode ver todo. Vice- log4net Exemplo
Así que temos isto, xa usa nosos log4net na súa aplicación. Un requisito a cumprir é que cada clase debe arrincar log4net no seu constructor de xeito que é como ilustrado no seguinte código:
clase de proba { Ilog rexistro privado; pública de proba () { log4net.Config.XmlConfigurator.Configure (); log = LogManager.GetLogger (this.GetType ()) / / Aquí proceder a iniciar o obxecto de rexistro. }
Para facer uso do noso rexistro é sinxelo, basta con conectar para os distintos niveis de alerta que ten por obxecto o rexistro.
Espero que sirva como unha semente con log4net.
Saúdos!
Únicos patróns de deseño (Singleton) e decorado (Abstract ou Decorator). Net
por Jose Jorge Marquez Gomez para nov.24, 2009, baixo DoNet
Ben, despois da miña letargo (non me arrepinto mensaxe anterior, pero a universidade eu tenia ten resaltado), vou falar sobre algúns patróns de deseño. Net.
Pero, primeiro, unha "historia" pouco:
Patróns de deseño son usados para moitas cousas, (retirado do wikipedia):
* Subministración de catálogos de elementos reutilizables no proxecto de sistemas de software.
* Para evitar a repetición na busca de solucións a problemas coñecidos e resoltos antes.
* Formalizar un vocabulario común entre os deseñadores.
* O modo estandarizar se realiza deseño.
* Facilitar a aprendizaxe de novas xeracións de deseñadores de condensación do coñecemento existente.
E como dicimos na wikipedia non pretende impor nada e abusar delas pode ser un erro.
Ben, imos ver algúns patróns. Net.
Patrón Singular (Singleton):
Este patrón asegura que hai só unha instancia por clase evitando o consumo excesivo de recursos ou de acceso inconsistente. Seus usos poden ser varios, incluíndo o acceso ás opcións globais, rexistro, etc ..
O esquema xeral é:
PatronSingular Public Class Private Shared Como instanciaUnica PatronSingular Private Sub New () 'Constructor privado para crear clase da instancia End Sub Public Función Shared getInstance () As PatronSingular "Controlar a creación de obxectos a partir da propia clase. Entón non é nada se instanciaUnica Nova PatronSingular instanciaUnica = () End If Volver instanciaUnica End Función End Class
Un estándar Singleton seu constructor debe ser privado á clase é para controlar a súa propia creación e é responsable por ela. Temos que crear un método, que é normalmente chamado "getInstance ()" que retorna esta instancia de clase para usar.
Estándar Decorator (Decorador):
Fai "wrapper" obxectos, nunha definición formal do que fai é establecer unha función a obxectos que herdan del e, polo tanto, recoñecer a responsabilidade. En suma, nos dá a capacidade para xerar clases con funcións que se xeran dinámicamente. Hai moitos exemplos deste tipo. Net, incluíndo a xestión de arquivos (FileStream seu decorado é Stream). Comparado co Java, que correspondería a clases abstractas. Exemplo:
Public class MustInherit PatronDecorador "El ofrece unha funcionalidade básica para todos os nenos, pero "Isto funciona de forma distinta: "Por exemplo: 'Chocolate terá prezo diferente e descrición "Manteiga, pero ambos poden derreter!. Prezo MustOverride Public Función () As Double Descrición da Función Pública MustOverride () As Double Melt Función Pública () As Boolean "Derreter Voltar True End Función "Ela obriga os fillos a ser instanciado dun xeito particular Public Sub New (ByVal ModificadorAcceso As String) End Sub End Class Chocolate Public Class Herda PatronDecorador Descrición da Función Pública substitucións () As Double Return "Chocolate" End Función Prezo Función Pública substitucións () As Double 10,2 Retorno End Función Public Sub New (ByVal As cadea paran) MyBase.New (paran) End Sub End Class Manteiga Public Class Herda PatronDecorador Descrición da Función Pública substitucións () As Double Return "Manteiga" End Función Prezo Función Pública substitucións () As Double 3,6 retorno End Función Public Sub New (ByVal As cadea paran) MyBase.New (paran) End Sub End Class
Ben, espero escribir con máis frecuencia, pero o tempo me afogou!, Noutro artigo, vou describir o nivel de estratexia, adaptadores e observadores. Saúdos!
Cambio forzoso da lingua en ASP.NET
por Jose Jorge Marquez Gomez para abr.28, 2009, baixo DoNet
Ben, para comezar, podemos dicir que os patróns soportados polo. Net para os idiomas que aparecen na MSDN http://msdn.microsoft.com/es-es/library/system.globalization.cultureinfo (VS.80). aspx , tamén dicir que a cultura nun WebForm automaticamente definido para cada sesión do usuario é INICE web, dependendo do idioma que está configurado no navegador do cliente.
Agora vén o problema que force o idioma que escolle, ou porque a nosa lingua permite necesidade intrínseca ou por outra operación do noso sitio web. Considerando as normas anteriormente mencionadas, podemos cambiar a nosa cultura como segue:
= Thread.CurrentThread.CurrentCulture CultureInfo Novo ("en-GB") = Thread.CurrentThread.CurrentUICulture CultureInfo Novo ("en-GB")
Ben, explicar isto un pouco, nas liñas, podemos ver que imos cambiar a cultura actual interface do sitio web e cultura, que é feito con CurrentCulture e CurrentUICulture, ante todo, establecer a cultura principal do programa a través de o fío principal de execución, isto está feito tomando o Thread.currentThread segmento principal e constitutivo da cultura da época.
Outro problema que atopei é que á hora de cambiar a cultura, se pode establecer esta cultura no segmento no momento en que queremos, pero acontece que a páxina xa estableceu Webform cambio de cultura antes de nós, como non hai un procedemento a un nivel superior da xerarquía de clases Webform fixo ese traballo e xa seleccionou a linguaxe. Ben, para solucionar este problema e cambiar o idioma vemos reflectido na nosa web no momento do cambio, non hai outra solución, sobrecarregando o método "InitializeCulture" pai clase "System.Web.UI.Page" do noso WebForm, e logo poñer o código de cambio de cultura, como este procedemento é o responsable da inicio a nosa cultura antes de ser exhibido no cliente. Este sería:
Protexido InitializeCulture overrides Sub () = Thread.CurrentThread.CurrentCulture CultureInfo Novo ("en-GB") = Thread.CurrentThread.CurrentUICulture CultureInfo Novo ("en-GB") End Sub
Ben, iso abre a imaxinación, tanto como quere, por suposto, o valor "en-" pode pór todos os valores aceptados polo método descrito anteriormente na web. Así, pode cambiar o idioma do sitio ", cando se sentir como"
.
Saúdos!
CLR (Common Language Runtime)
por Jose Jorge Marquez Gomez para abr.13, 2009, baixo DoNet
Ben, neste post vou tentar explicar o que é a Net Framework CLR, para min, e eu persoalmente creo que o CLR é unha máquina virtual mesmo estilo que a JVM Java Virtual Machine está a executar o bytecode do montadores xerados. Net. Compiladores de linguaxe Net. É responsable da organización do código bytecode para MSIL (Microsoft Intermediate Language), que é interpretado polo CLR.
O CLR compila o bloque de código MSIL en tempo real, é dicir, como está a usar a funcionalidade do conxunto, o CLR pode xerar o código nativo que é finalmente aplicado na mecánica e intento de código abstracto creado no máquina en calquera das linguas utilizadas. código de máquina Net.
CLR divídese en capas no núcleo, para proporcionar unha maior interoperabilidade co sistema e desenvolvedores. Estes son:
- Niveis de seguridade.
- Tratamento de excepción.
- Administración de threads.
- Xestión de Memoria.
- Colector de lixo (GAC)
Teña en conta que, aínda que é unha "máquina virtual" do CLR só roda en Windows.
Anexada é unha pequena imaxe CLR explicativo (Autor: Leif Arne Storset Orixe: Wikipedia):

É un pequeno post, pero creo que pequenas características explicativas. Saúdos!
Usando uso nomenclatura
por Jose Jorge Marquez Gomez para abr.01, 2009, baixo DoNet
Diga-lles que o uso da nomenclatura é moi útil cando se utiliza a utilización de recursos debe ser necesariamente libre (acceso ao arquivo, abrindo o rexistro de BD, manipulación de imaxes ... etc) para evitar problemas máis tarde.
Como visual studio nomenclatura é usada para acceso aos arquivos, pero pode ser usado con calquera clase que implementa a interface IDisposable, garantindo que o tipo utilizado no establecemento usando lanzou "Si ou Si" (di o presidente dun club fútbol
) Os recursos que está a usar, o fallo no bloque de código ou non, xa que é o colector de lixo visual studio que se encarga de chamar ao método dispose da clase que implementa a interface.
Para este exemplo imos empregar para acceder a un arquivo.
O exemplo é simple, porque todo o que tes que facer é utilizar a nomenclatura do seguinte xeito:
Usando Fich As New FileStream ("C: \ pruebas.txt", FileMode.Open) "Código de escribir para controlar o FICHEIRO End using
Así, estamos garantindo que o arquivo será liberado cando rematar pruebas.txt o bloque usando, sen causar problemas nos accesos posteriores ao arquivo.
Hai casos, por exemplo, o acceso aos datos a través da declaración do bloque nos obriga a abrir a conexión no bloque non, quero dicir, para crear o bloque usando e asumimos que a acción abre e pecha só (isto é certo). O que asumimos que no exemplo anterior, se abrir o ficheiro porque a clase FileStream no seu construtor e abre o recurso, pero no caso dunha conexión de datos do constructor conectores non conexión de datos aberto no seu construtor, que debe abrir unha vez asignado o recurso.
Exemplo:
"Esta declaración non implica a apertura do inicio só unha conexión obxecto Usando Conn As New SqlConnection ("CadenaConexion") conn.Open () 'Iso disséssemos que abriu, e usando o bloque é responsable de liberalo lo (pechar a conexión) 'Código para escribir End using
En suma,
E se fixemos certo cun bloque usando é a liberación de recursos, pero a apertura destes recursos, iso vai depender do tipo utilizado en uso.
Crear blibliotecas de clases que están rexistrados na CON Windows
por Jose Jorge Marquez Gomez para mar.30, 2009, baixo DoNet
Pasei moito tempo mirando para rexistrar unha DLL no CON a interoperabilidade con ASP 3.0, PHP, etc .. ben despois de buscar e buscar, buscar, romper os meus ollos ... etc ... era máis simple do que eu pensaba. Para rexistrar unha dll CON en Windows, debemos primeiro axustar a clase como visible do CO e establecer unha chave ou sinatura da asemblea. Faise deste xeito:
A. - Nós indicar o proxecto que é visible dende CON.

2 -. Crear a clave do proxecto.

Teña presente que cando facemos compilar as funcións de montaxe (procedementos) que son "comprensibles" para calquera linguaxe de programación non líquido., É dicir, se pode usar, funcións, procesos, propiedades, etc .. para volver tipos de datos nativos, e ser máis doado de entender ASP3.0 por exemplo, PHP ou calquera outra cousa. Se unha vez máis o seu conxunto ten recursos non soportados polo CON CON rexistro aviso-lo cando se cadastra na máquina (só se é necesario para a non-inscrición. Net). . Se estes conxuntos están sendo utilizados Net só tes que engadir a montaxe de fiestras, iso está feito:
A. - Abra unha aplicación de consola do camiño Visual Studio.
. 2 - Escribe na liña de comandos: gacutil-I RUTAENSAMBLADO (por exemplo, gacutil-I c: midll.dll \)
Se requirir de interoperabilidade con CON debe rexistrar a montaxe de fiestras. É: regasm / TLB / codebase RUTAENSAMBLADO (por exemplo, regasm / TLB / codebase c: rutadll.dll \)
Que debe amosar-lle unha mensaxe de conclusión en inglés e que xa foi rexistrado correctamente, se había algunha incompatibilidade (como mencionado antes) os tipos de datos soportados polo CON, será semellante a este paso, a aplicación regasm exhibida.
Ben, despois de escribir este boleto "como o meu primr Ola Mundo"
blog. Espero velo útil e facer este post dun blog para axudar moito .... Saúdos!






