Administrando Redes Con/sin Dominio Parte 3 – Yo particiono, tu paricionas, todos particionamos!!

Seria bueno que antes de leer este post hayan leído el documento ( de optimización de Windows Server) que puse en el post anterior  y sepan algo sobre el tema de Arreglos .

Otro tema que es muy controversial, y a la vez interesante, es sobre el tema de las particiones y/o Volúmenes que pueda tener un Servidor, esto por que al igual que en el tema de Arreglos, no hay regla exacta, ya que varia mucho entre situación y situación, me a pasado que cuando me toco hacer auditorias a servidores, llegue a ver Servidores de 1 sola partición, o con muchas particiones ( pero 1 solo volumen, y son varios discos físicos).

 

Esta parte se decide antes de instalar el Sistema Operativo, sobre cuantas particiones y/o volúmenes debe de tener el Servidor ( lógico viendo también que tipo de arreglo deberá tener),  se que muchos que lean este post dirán » bah eso ya lo se..» .. pero la realidad es que no muchos lo saben, así que espero me tengan paciencia…

Antes de Empezar a particionar, debemos de escoger que tipo de partición vamos a usar, si usaremos MBR o GPT , también pueden encontrar mas información sobre el tema Aqui (http://technet2.microsoft.com/windowsserver/es/library/4b35160a-4e27-4258-9e8b-e2088f8a757a3082.mspx?mfr=true )  o  en la GPT Faq de MS , es importante que lean bien sobre eso, ya que como todo tiene sus pro y sus contra … además que GPT tiene unos limitantes específicos.

 

Luego de que escogimos el tipo de partición y la cantidad de volúmenes a usar viene lo mero bueno …  ver cuantas particiones tendrá nuestro servidor…Existen algunos casos , pero OJO … cada posible solución…. varia de acuerdo al problema… aquí no intento dar una regla… solo una opinión …

  • 1 Servidor con 1 Arreglo,Disco, volumen, etc Esto suele suceder cuando por falta de dinero se tiene un solo servidor y pueda que ese tenga ( o no ) el AD, SQL Server, quizá hasta exchange e Isa Server ( podría ser o no el Windows Small Business Server  ),  podríamos en este caso… tener un mínimo de 2 particiones… aunque podrían ser mas de 2 … ( esto lo detallo en el otro punto)… pero aquí lo que si es importante  es no tener » solo 1 partición»

Antes de ver el 2do caso… quiero aclarar … que lo mejor .. la situación óptima ( en muchos casos ideal.. ya que no se puede hacer real ) es separar los roles de la aplicación en diferentes servidores ( uno para AD, otro para Web, otro para DB, otro para replicación de la Db, etc, etc… ), pero en el siguiente ejemplo se supondrá que es 1 servidor con infinitos HDD…v

  • 1 Servidor con N+1 Discos/Arreglos/Volúmenes   digo esta situación para resumir y no duplicar información.. ya que si se tuvieran varios servidores… esto se podría aplicar en ellos independientemente.. .bueno vamos a algunos de los roles….
    • Archivo de Paginación : Esto es la parte del manejo de la memoria virtual… como siempre tenemos el problema de la fragmentación…, tenerlo en una partición propia, nos podría ayudar a que este no se fragmente… pero OJO.. lo correcto es que este en otro Volumen… y no en otra partición del mismo disco donde esta el SO… en la Web hace ya algún tiempo encontré esta info que saco Fermu , seria bueno que la lean, allí habla sobre Windows xp, pero es también valido para Windows Server
    • Archivos Temporales :  En este caso en especifico.. hay que evaluar bien si conviene o no invertir un disco/arreglo, etc para mover los archivos temporales, pero lo que si es cierto es que podemos jugar con las variables de usuario y de sistema  y mover  donde se guardan los archivos temporales…
    • Volume Shadow Copy :  Definitivamente esta es una de las características que hizo que me enamore de Windows 2003  ( ya luego Vista saco file shadow copy) , esta característica es la que nos ayuda a sacar instantáneas  a una partición … o a una carpeta compartida.. ( esta opción ayuda mucho y me a librado de horas de trabajo en vano… seria muy bueno que investiguen de esto.. si no lo usan ), antes de habilitar en las recomendaciones dice que lo mejor es que los archivos de registro se guarden en otro volumen… así que seria bueno tenerlo en otro volumen 🙂 , lógicamente uno puede usar la configuración por defecto  y no ponerlo en otro volumen… pero esto tendrá un costo en el rendimiento, el cual variara dependiendo de que tanto trafico de E/S tenga el servidor.
    • IIS : El Servidor Web : por defecto la instalación es en C: ( o en la partición donde este el SO )  , eso es algo de lo cual no podremos librarnos… pero de lo que si podemos hacer es mover el directorio donde esta el Sitio Web a otra partición/volumen, etc , hace ya mucho tiempo salió una vulnerabilidad en aspnet ( pongo este de ejemplo… pero no es el único) sobre un problema de canonización  … bueno ese bug lo arreglaron… pero no significa que no puedan haber otros…  y si a eso le sumamos lo del trafico  por la carga del servidor web… podría aplicar para moverlo a otro volumen.. o al menos a otra partición. encontré esto en la Web .. .podría ayudarles : http://www.acis.org.co/memorias/JornadasSeguridad/IIJNSI/weba.ppt .
    • DB : En el caso ideal ( para el mundo MS) es Sql Server, pero podría ser algún otro motor de DB, en este caso es muy recomendable  que los Archivos de la DB, estén en su propio Volumen, aunque también podrían estar en otra partición ( si no contamos  con otro disco/arreglo ), esto también por los ataques que se podría hacer mediante el Sql Server… y OJO el archivo de «LOG’s» , este también aplica a tener su propio volumen.. ya que este tiene una carga grande…  así que en este caso podríamos aplicar a 2 volúmenes ( cada uno en su propio disco/arreglo ), acepto que el SQL no es mi fuerte, así que mas información de esto.. o correcciones podrían hacerlas a Percy , aunque tengo entendido que Jersson también fue DBA, no se si aun se acuerde de esto.
    • Archivos de Datos :   si tenemos un File Server… seria muy bueno.. tenerlo en otro volumen, ya que si tiene mucho trafico de E/S, lo mejor es que tenga su propio «cable» por donde salir … y así no atore al servidor… en el peor de los casos … tenerlo en otra partición…
    • AD : cuando Instalamos el Ad  ( que por cierto lo prefiero instalar usando el comando DCpromo .. ) allí nos avisa que es recomendable tener las carpetas SYSVOL y NTDS en volúmenes diferentes, esto para no afectar el rendimiento del Servidor.. así que allí también aplica tener  mas volúmenes ( o al menos otra partición ).

Si se fijan en varios de los casos les puse » o al menos en otra partición» .. puse esto por algo simple… si entra virus al Server ( algo que no debería de pasar..) o se daña el SO, al menos podríamos formatear » c:»   sin miedo a perder los datos.  ( una vez encontré a un compañero , que hacia que el SO no este en «C:» , sino en otra unidad  diferente)

Puse solo unos cuantos casos… son los mas usuales, en los cuales debemos de tomar decisiones sobre particiones/volúmenes y tipos de arreglos …  son simples recomendaciones que pueden ayudar a mejorar el performance de nuestro servidor y/o ayudar un poco en la seguridad, pero como en todo, hay que analizar el costo/ beneficio de cada solución… como me decía Elias , cada caso es totalmente diferente… y hay que hacer una evaluación independiente..

Se que deje muchos temas pendientes… pero si me extendía en esos temas… me iba a desviar del fin de este post. espero les sea de ayuda.

por cierto… contaron cuantas particiones/volúmenes… podrían llegar a tener en un mismo servidor… ???. Jeje

 

Salu2

 

Ddaz

OffTopic – Invasión Mundial de Dacitos!!!

Hola… lo siento no pude evitar «no escribir de esto»…

como ya muchos saben… me case el año pasado en Perú, antes de volver a México ( mas info en http://marddaz.com )  y luego de un tiempo mi esposa me siguió los pasos y también se vino a México a vivir conmigo…   

hoy en la noche .. se hizo el test del embarazo…. y salió positivo!!! … ( si ya se … los primeros 3 meses son peligrosos…. pero haremos lo posible por que no pase nada malo ).

Así que al parecer …  tendré descendencia …. si ya se que muchos pensaban que era como los Gremlins  y que solo son agua me reproduciría… pero ps al parecer no fue así ( y si que costo trabajo :P) … pero de todos modos ya se prepara la invasión mundial!!

en unos días iremos al médico para ver que pasos mas debemos seguir….

 

Hasta Luego…

 

David D.  Arroyo Zari 🙂 – Ddaz –

OffTopic – unas vacaciones … como para olvidar???

Teóricamente hace 2 semanas empezaron mis vacaciones… las cuales terminaron el día de ayer…   bueno la primera semana de vacaciones… no fue asi tal cual, ya que como hubo un desastre en un municipio del estado de Zacatecas (Tlaltenango)  hicieron que me quede de guardia y mi jefe fue al lugar del desastre para apoyar, así que la primera semana de vacaciones me la pase en la oficina…

En la segunda semana de vacaciones me la pase enfermo en cama ( hasta el jueves), así que tampoco podría decir que me la pase bien…  y este ultimo fin de semana fui a ayudar a unos amigos y me la pase trabajando el sábado y el medio día del domingo…H

Hoy de nuevo al trabajo… y para colmo.. a las 7 am tenia clases… y mas que eso era examen final de  administración de negocios…, así que me quede estudiando como hasta las 3 am y me desperté como a las 6 …   

como dirían «una buena forma de empezar la semana»….

Ahora solo me queda esperar a mis vacaciones de fin de año … y esperar que esta vez si llegue a disfrutarlas…

 

Salu2

Ddaz

Una Cortita : Cosas que uno se encuentra en la Web – I … recursos en nuestro idioma

Hi, estaba googleando, como casi todos los días, para ver que encuentro en nuestro idioma… y me tope con este sitio…, que siendo sinceros no es «nuevo».. pero la verdad yo no lo conocía.. no se ustedes.

me pareció interesante la Web, por algunos de sus artículos en español esta fue : http://www.subgurim.net

y dentro de la Web encontré el link a esta otra Web ( que andan relacionados.. ) http://www.es-asp.net , donde entre otras cosas estaba un tutorial del ajax control toolkit en nuestro idioma.

Siendo sincero, estoy en contra de usar «todo en ingles» , por eso me gusta buscar recursos en nuestro idioma y cualquier otra cosa ( aunque también leo en ingles), e platicado con varios amigos y muchos me dicen «no leo nada en español por que no existe buen material allí …» o «No uso nada en español, por que falla mas y por que los parches se demoran en salir»  no estoy de acuerdo con eso, ya que creo que en nuestro idioma cada vez se va generando material de calidad… y por mas que se demore en salir un producto, aun sigue siendo nuestro idioma; creo que soy de los pocos que usa el VS, SQL y el Windows en español…  e recibido muchas burlas por eso… pero creo que si es nuestro idioma natal, hay que quererlo 🙂 ( lógicamente cada uno es libre de escoger en que idioma usa,  tengo un amigo que aplico el paquete de lenguaje en francés). No se como sea del otro lado del charco, pero aquí en latam… suele ser así en muchos lados… ojalá y poco a poco la gente vaya queriendo mas a su idioma y se identifiquen mas con el.

Salu2

Ddaz

Una Cortita – "DownGrade" en Windows 2008 y Windows 2003

Muchas veces necesitamos usar algún producto que » ya no esta en venta», por ejemplo Windows 2000,  el Office xp, o algún otro producto… sobre motivos… no tengo la intención de crear polémica sobre si X versión es mala o no, ( como en las discusiones del downgrade del vista), ya que en cuestiones de servidores no es la misma discusión que en los SO de escritorio.

Personalmente creo que a partir de Windows 2000 hasta la fecha Microsoft si le a atinado en lo que respecta a Windows Server, ( no tengo la misma opinión a nivel Windows cliente), pero lamentablemente en las empresas lo que muchas veces nos pasa es que las aplicaciones ( si, si malditos developers!!… – ups! yo tbm soy uno- ), esas aplicaciones tan perfectas y sin errores, que nos entregan para instalar en una server, pueda  que sea una aplicación realizada en asp.net 1.0,  quizá en fox, en sql 7.0 o alguna de esas aplicaciones  que no quieren funcionar en la ultima versión de un Server ( W2k3, W2k8 ) se que parece absurdo … pero me a pasado que algunas aplicaciones no funcionan bien en el Windows 2003, pero si en Windows 2000… esto puede ser uno de los motivos.

Otro motivo es el consumo de procesador y memoria, o simplemente seamos unos «destroyer» en X version  de SO y nos sale todo perfecto, y por eso no veamos la necesidad de migrar de SO ya que con lo que tenemos trabajamos bien ( no aumentaron los requerimientos)…

Por esa y muchas posibles cosas mas … ven a mi casa en navidad... queremos hacer un «Downgrade» a ese Servidor nuevo que nos hayan traído….

(OJO no digo que justifico que en todos los casos sea necesario hacer el downgrade…, pero es lo que pasa…).

 

Recuerdo que en 2003, cuando aun  trabajaba aun en Perú,  iban a comprar un servidor ( vendían el Windows 2000, pero aun no el 2003), pero necesitábamos instalarle el Windows NT4, por cuestiones de una aplicación que no se dejaba en Windows 2000.. así que llame a los de servicio al cliente de MS y les pregunte sobre mi problema y si había algún inconveniente en poner el NT4 ( en ese tiempo – y creo aun – la Universidad estaba pagando una mucho $$, por que en una auditoria detectaron que usaba Software pirata…. si, si… no nos compraban reactivos en los laboratorios por que  tenían que pagar la multa – por eso mismo luego la Universidad se volvió propulsora del software libre- ), por eso es que llamaba para asegurarme…. Recuerdo que cuando llame el de atención, no supo responderme, algo concreto, ya que me decía que » oficialmente» no se podía, pero si venían a hacernos una auditoria dijeramos que » el que nos vendió el SO nos dijo que si se podía», ósea que diga una mentira, y todo por que ya no me vendían una licencia de NT4, cuando le dije eso a mi jefe… le dio un ataque de risa…. esa llamada no la olvidare …. ya pasaron casi 5 años y aun no la olvido… ( fue la ultima vez que llame en Perú a consultar sobre una licencia..)

 

Justo estaba googleando y me tope un una web donde muestras las opciones » formales» de Downgrade»  de Windows 2008 y de windows 2003 R2, con esto espero que a nadie mas le pase lo que me paso a mi…

 

Lógicamente no recomiendo un Downgrade a menos que sea absolutamente necesario…  si alguien me dice que Windows 2008 es malo…  lo único que le diría es que no lo a usado lo suficiente….,  quizá si me dice que el fierro que tiene no lo soporta y que por eso baja a win 2003 … quizá allí podría ser aplicable. ( si si  ya se en cuestión de gustos….. , y se respeta la opinión de los demás), pero si llegara a darse el caso que se necesita el Downgrade.. pueden ver la información de a que productos pueden hacer el downgrade  aquí:

 

Creo que intentar a estas alturas una licencia de  Windows 2003 seria en vano, pudiendo fácilmente hacer el downgrade.. y si mas adelante necesitamos la de 2008,. ya la tendríamos.

 

Pd: si si .. ya se .. no me quedo tan cortita como decía el titulo del post.

 

Salu2

 

Ddaz

Windows 2008 y las Vlan…

Hace un par de semanas conocí ( vía MSN) a Elias, por un post que hice y desaparecí al mismo tiempo… , conversamos un poco, lógicamente le hice las preguntas que siempre suelo a hacer… como parte de las estadísticas que siempre me gustan hacer…  ( si ya se … ando traumado con cifras… y estadísticas.. )…   en esa platica salió un tema .. el cual en el momento quizá no profundizamos mucho… pero ya luego me puse a leer…. el tema era sobre las VLAN..


El punto es que un tema que siempre nos traía lío a los que estábamos en IT era sobre el tema de las Vlan, ya que Isa Server no soportaba las VLAN,  ( http://blogs.technet.com/isablog/archive/2006/10/04/802.1Q-and-ISA-Server.aspx ) .. en el Internet se encuentran muchas preguntas sobre este tema ( si no sabes bien que es una VLAN puedes verlo aqui  http://www.tech-faq.com/lang/es/vlan.shtml.. o en la wikipedia ) , no muchas de las personas que conozco ( ojo que pongo … personas de mi entorno )  usan o saben lo que es una VLAN, en si en mi país natal… aun hay mucho  desconocimiento del tema ( a nivel practico… ya que en teoría se ve mucho), esto de las VLAN lo comencé a ver cuando entre a mi actual trabajo, allí comenzaron a estructurar la red ( allá en el 2005)  … el primer tropezón que tuve …  fue cuando aislaron el DC  y los File Server en una Vlan… y la red tenia unas 10 VLAN y la regla era … » todo se bloquea a menos que demuestre absoluta necesidad  de ser  permitido » y tenia problemas a la hora de autenticar usuarios  y cosas así… por cuestiones de la limitación del trafico… ya luego arreglando eso .. todo funciono en la medida bien….


Que es una VLAN..( por si no leyeron la referencia ) básicamente una vlan.. nos ayuda a segmentar nuestra red… en bloques o Redes virtuales..,  y podemos restringir el trafico de información entre VLAN y  VLAN.. podemos decir que tipo de información va a pasar ( protocolo, puerto… etc ) y en que dirección… esto nos ayuda mucho en la seguridad de redes, ya que así podemos evitar sniffers  y demás otro tipo de ataques…, aislando a unas pc de otras. , además como normalmente las Vlan se gestionan desde un  Hardware.. ( cisco, fortinet ) y estos usan en su mayoría como SO Linux, ya había distribuciones  Linux que tenían soporte para Vlan y a su vez estaban especializadas en ser firewall…. ( como por ejemplo ipcop ) , esta info me la dio DrModding( http://www.drmodding.com.mx/blog ), el administra las Vlan en la Oficina.


Recuerdo que hace mas de 2 años platicaba con Jelp , y platicábamos sobre el tema de que  los servidores de MS ( en especifico ISA Server ), no tenían «soporte nativo» para las Vlan… recuerdo que hasta hice el comentario… de que quizá cuando MS comencé a dar soporte a las VLAN quizá iba a anunciarlo como si hubiera inventado la rueda.. ( como ya lo a echo con otras tecnologías ) … pero al parecer me equivoque en algo… ( al ratito termino el por que).


En la platica que tuve con Elias salió el tema de las Vlan, y fue allí donde me contó que Windows 2008 ya tenia soporte nativo para las Vlan, junto con NAP… , y que hasta en el teched hizo demostraciones de eso



 


Algo que tengo que aceptar… es que la «predicción» , que hice cuando platicaba con Jelp, fue errónea, ya que si nos vamos al Internet, veremos que MS no a echo mucho énfasis en hacerle mucha promoción, ya que todo el enfoque de la seguridad esta en NAP , no digo que sea malo… ya que me parece algo muy interesante…, aunque quizá para una  empresa mediana les sea algo difícil poder implementarlo… ( cantidad de Server..)


Otro factor, ( a mi parecer) es que no todos los que estamos muy metidos en redes con Windows Server, usamos VLan en nuestras redes ( quizá muy pocos), estuve googleando y me puse a revisar algunas presentaciones de personas que hablan sobre Windows Server 2008,  y veo que en la parte de Vlan, algunos solo lo mencionan en 1 línea … así como si fuera una opción simple y pequeña… espero que mas adelante este tema sea mas conocido y usado.


Personalmente aun no e podido «probar» esta parte ( si les dijera que si … estaría mintiendo), pero si e leído de esta parte y me parece muy interesante, se que muchas veces soy muy critico con MS ( por mas que use sus tecnologías), pero en esta vez tengo que reconocer que es un buen avance, lógico aun se puede mejorar, pero ya es un gran avance.


Si estas metido en el mundo de IT, y no sabias sobre este tema… seria bueno que investiguen sobre esto, si usan solo Windows 2003, igual podrían implementar Vlan, logico no desde el Server… pero si podrian usar las Vlan.. como si fueran redes diferentes ( diferentes segmentos de red)


Como aun no soy muy especialista en este tema, si alguien ya tiene practica del tema, y si tienen chance, igual podrían sus experiencias sobre el tema.


PDTA: que haya dicho que antes no había soporte para las Vlan … no significaba que » no funcionaba» .. ya que con algunos trucos se podían usar redes Windows  con Vlan, pero esto con trucos… no algo «nativo».


 


Hasta Luego.


Salu2


 


Ddaz

Off Topic – Tienes una suscripción MSDN/ Technet que ya caduco .. y no respaldaste bien los key… o perdiste el respaldo???

 

hace unas semanas descubrí algo ( yo recién me di cuenta…)…. bueno la  situación es que hace un par de años tuve una suscripción MSDN… , ahora ya no tengo suscripción .. en ese tiempo  luego de que caduco la suscripción.. ya no podía ingresar a ver los números de serie de los instaladores…

hace un tiempo Microsoft Actualizo la pagina web de la suscripción MSDN…. y se me ocurrió intentar entrar…  y la novedad es que si me dejo entrar a la suscripción, lógicamente ya no podía descargar ningún programa, pero lo interesante es que pude ver los seriales que había generado en su tiempo, ( muchos de los seriales piden activación, aunque otros no ) .

 

así que tenemos una suscripción vencida.. y no tenemos los seriales, podemos entrar y recuperar estos números de serie.

 

para msdn :

http://msdn.microsoft.com/en-us/subscriptions/default.aspx

 

 

Salu2

 

Ddaz

Administrando Redes Con/sin Dominio Parte 2 – Los Arreglos y Tu

Algunas de las veces que me toco hacer revisión/optimización/ recuperación de Servidores  ( 2k y W2k3 ) , me topaba con algo que en el mundo del IT puede ser muy Discutido..  a que me refiero.???  en esta ocasión es sobre Los Arreglos y Discos, ( en el siguiente post hablaremos de las Particiones)… aclaro… no hablo de programación en .Net ( por lo de Arreglos..)

 

Lo que casi siempre me a tocado ver, es un Servidor con varios Físicos, muchos de ellos con alto trafico, otros con un trafico casi nulo, pero la mayoría tienen algo en común..»CASI TODOS … tienen a la totalidad de sus discos en 1 solo arreglo…»….

 

Esto de Los Arreglos, el donde, el cuando, y el como usarlos es algo que puede ser discutido … pero no por  si se aplica o no X o Y regla… sino por que cada situación es totalmente diferente… y por ende la organización de discos en cada arreglo es totalmente diferente.

Algo que también es discutido, es sobre si al crear un arreglo, lo mejor es hacerlo por Software o Hardware,  Ya que El S.O. nos da muchas opciones, así como nos lo da el Hardware que manejemos…

 

Personalmente, pienso que si tenemos varios discos físicos ( e visto súper mini servidores con 1 solo disco ), no todos los debemos juntar en 1 solo arreglo…. por que?  … simple … la información que tengamos en el servidor… no tiene el mismo nivel de importancia, en algunos casos necesitamos fiabilidad ( poder recuperar la información ), en otros casos necesitamos Velocidad ( alto trafico ),  y hay en los casos que no se puede detener el mundo ( replicar la información)…

Hace un par de meses sucedió que el Servidor de una Dependencia de mi trabajo … que su Db ocupaba 18 gb de espacio en disco + 820 Gb de Imágenes ( luego de una optimización se redujo a 16.3) … el jefe del área de sistemas, me dijo que esa información no se podía perder, como que su puesto dependía de que ese servidor no se caiga…  a mi me llamaban por que uno de los discos físicos… enviaba una alerta… ( se prendía una luz roja … y por mas que no supieramos de redes, informática o de películas de acción, sabemos que una luz roja intermitente significa definitivamente muchos problemas:) ) .. era tan importante la Db que NO tenia bien sus respaldos ni nada….     situaciones asi pasan muy a menudo…  

Lógicamente si necesitamos velocidad… y si ponemos la Db y el archivo de LOG en el mismo disco / arreglo … no estaríamos ayudando para nada

 

tenia al inicio la idea de explicarles para que serviría cada » Arreglo» y como usarlo…, pero mejor dejo que lo lean desde la fuente….

El documento es sobre » directrices de optimización de Windows 2003″ … lo apode » la Biblia negra del Windows 2003″ … por que tiene muchos trucos interesantes sobre como optimizar el servidor…. pero el detalles es que muy pocos lo han leído… .se que algunos dirán » no leo nada en español» ( SIIII el doc esta en español!! yuju!!)  pero no es excusa… si eres administrador de un Windows Server 2003… deberías haber leído este documento… o al menos saber ya de antemano los trucos que alli dicen…..

de los 700+ contactos que tengo en el msn.. encontré solo a 7 personas que lo han leído.. ( si .. ya se .. no todos son admin ), de ellos 4 eran personas que escucharon en alguna charla que di, sobre ese documento….

 

http://www.microsoft.com/spain/windowsserver2003/evaluation/nt4/performance/tuning.aspx

 

Leanlo y verán… ojo .. los Desarrolladores no se escapan…. ya que una de las peores cosas que un desarrollador puede hacer es NO saber como funciona el servidor… ya que cuando uno hace aplicaciones «cliente/ servidor»  gran parte se hostea en el servidor….

 

Salu2

 

Ddaz

Pato Aventura: Dacito Vs V.S. 2008 ….El Problema de Ejecución de código en UserControl, en tiempo de diseño

 

Hola :

 

Cuenta la Leyenda,  que había una vez.. un  Dacito muy travieso, un día este se encontraba jugando en el VS 2008 ( no le puedo llamar trabajo.. por que me divertía programando.. je ), estaba generando una Aplicación Windows, tenia que hacer un generador de horarios, y por usabilidad, esto tenia que ser lo mas gráfico posible, así que decidió usar botones…, pero como este formato se repetiría varias veces… decidió a su vez hacer un UserControl, y allí poner los botones, por cuestión de orden y estética, decidió agregar un TableLayoutPanel, y allí agregar los botones.. pero como Dacito era muy pero muy Vago.. pensó que seria interesante crear los Botones Dinámicamente, así en el proceso podría asignar todos los botones a un mismo manejador de eventos, así todos los eventos » clic» son enviados a un único lugar… y allí se hacia el discriminante… En tiempo de diseño el UC se vería mas o menos de este modo….

 

 

Luego Adjunto el UserControl a un formulario Windows común y silvestre…. , grata fue la sorpresa, al darse cuenta de que el UC dentro del formulario Windows se renderizaba completo, es decir ya generaba los botones  Y NO SOLO ESO!! los botones  se sombrean al pasar el mouse encima y también podían ser presionados… casi casi como si se estuviera ejecutando el control.

 

 

Hasta allí todo iba de maravilla, pero había que agregarle funcionalidad al UC, así que se decidió, que al ser presionado cualquier botón, hacia unas consultas a una DB, estas estaban  ubicadas en un componente ( dll), se hizo esto…

 

Pero entonces tuvo que pasar lo inevitable…, en una de esas sin querer.. por un azar del destino… a Dacito se le disparo sin querer un clic! encima de uno de los botones creados dinámicamente…, la aplicación mostró un gran » Visual Studio encontró un problema y debe cerrarse»  Dacito quedo pasmado…, mas aun cuando al reiniciar el visual Studio hubo un problema con el formulario y ya marcaba errores … ( cuando no se había movido líneas de código)….

 

Hubo aun mas problemas, cuando se le ocurrió agregar al UserControl un combo, que ejecute acciones al cambiar el elemento seleccionado ( supuestamente al querer cambiar de selección aparece una ventana de dialogo preguntando si estamos seguros… )… lo que genero que cada vez que quería abrir el formulario en tiempo de diseño…( no ejecutarlo..) saliera esta ventana de dialogo… y de vez en cuando salía un error de la nada que no se corregía hasta que se reiniciaba el Visual Studio; dacito se desespero al grado de dejar de programar….

en eso entro en escena Jersson, y entre platica y platica Dacito le contó el lío que tenia, y Jersson como buen incrédulo ( hasta ver pruebas), pidió imágenes, las cuales les fueron proporcionadas y además de eso también una explicación de como se podría  repetir el bug….

Jersson Prendió la VPC  ( la cual debería de cambiar por vmware), y en un primer momento agrego un botón ( desde el toolbox) al UserControl… de este modo desde el formulario… el botón no podía ser » presionado» en tiempo de diseño, y por ende tampoco se reproducía el error, así que luego se repitió los pasos iniciales… con la diferencia que en el evento clic del botón el agrego «Application.Exit()»  … con esto, en teoría la aplicación debería cerrarse al ser presionado el botón mientras es ejecutado. de nuevo nos vamos al modo de diseño del formulario…. presionamos un botón ( ojo que la aplicación no esta corriendo.. estamos en modo de diseño ), y entonces ..  por la obra y gracia del espíritu santo ( sin afán de blasfemar) El Visual Studio se cierra lógicamente, sin preguntar ni nada.

El código del UC de prueba,  es el siguiente:

 

   1: Public Class ucBotonCerrar
   2:  
   3:     Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCerrar.Click
   4:         Application.Exit()
   5:     End Sub
   6:  
   7:     Private Sub ucBotonCerrar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   8:  
   9:         CrearBotones()
  10:     End Sub
  11:  
  12:  
  13:     Sub CrearBotones()
  14:         Dim miboton As Button
  15:         For Y As Integer = 1 To 5
  16:             For X As Integer = 1 To 14
  17:                 miboton = New Button
  18:                 With miboton
  19:                     .Name = "B" & X & Y
  20:                     .Text = ""
  21:                     .Height = 70
  22:                     .Width = 70
  23:                     .ForeColor = Color.Red
  24:                 End With
  25:                 AddHandler miboton.Click, AddressOf EventoBotonPresionado
  26:                 tabla.Controls.Add(miboton, Y, X)
  27:             Next
  28:         Next
  29:     End Sub
  30:  
  31:     Public Sub EventoBotonPresionado(ByVal sender As System.Object, ByVal e As System.EventArgs)
  32:         Application.Exit()
  33:  
  34:     End Sub
  35:  
  36: End Class

como verán, no tiene gran ciencia , agregamos a un tablelayoutpanel (tabla) el control…

Luego de un análisis, Jersson me comento que el lío estaba en la tabla…

«Al Parecer El problema se da cuando Agregamos dinámicamente Controles dentro de una tabla (TablelayoutPanel), esto un User Control, ya que al ser renderizado en el formulario que contiene el UC puede ejecutar código en tiempo de diseño, y algunas veces hacer que falle el Visual Studio»

se les antoja probar este «detallito» ? , si quieren bajar el proyecto demo y probarlo ustedes mismos, el código se encuentra aquí, ese es el proyecto que hizo inicialmente Jersson para hacer pruebas :

 

si es que logran reproducir el error, agradecería que ingresen a esta pagina:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355116 , y validen el error, para que así los del TEAM de VS se animen a corregir el bug pronto.

 

bueno continuando con la historia, luego le conté de esto a Enrique, Tron.Bas ( David Garza) , Ziquilla y a Nazul,  pudieron replicarlo, además de hacerme el favor de validar el bug en Connect…. de nuevo.. si tu también lo puedes reproducir, agradecería valides del bug.

 

Si se fijan .. no especifique ..» que problemas extra» podría traer este tipo de situación…. esto se lo dejo a su imaginación… ( no quiero tener que volver a quitar un post)

 

Ojalá y el parche para esto salga antes del SP1 o 2  ( si ya se … de nuevo con sueños guajiros )..  además no termine el cuento.. ya que hoy recién envié el evento a Connect, y estoy a la espera de respuesta de MS, ojalá y no me digan que es algo » por diseño»

 

Hasta la Próxima.

 

El Dacito.