Foro Oficial de C#

2. Los hilos de ejecución no son obligatorios para entender patrones de diseño. Lo más sano es primero entender un patrón en su forma básica y luego, una vez entendido el concepto de los hilos, aplicarle el patrón de diseño.
yo creo que si son muy obligatorios, en lo personal no le enseñaría patrones de diseño a nadie que no sepa que es un hilo y sus implicaciones, pues no imagino a alguien tratando de entender que es un singleton si ni siquiera sabe de hilos...
y no es el único caso.

3. Para entender los patrones de diseño no hay que ser un duro programando, alquien que lleve un año aprendiendo a programar puede ir aprendiendo patrones de diseño. Pongo unos ejemplos:
-Alguien que haya aprendido herencia y polimorfismo, podrá aprender sin problemas patrones como Decorator o Facade
-Alguien que haya aprendido qué son métodos y atributos de instancia y métodos y atributos de clase, y sepa en qué diferencian, podrá aprender singleton

Este aprendizaje debería ser gradual y no todo de una, o el programador novel se saturará de información. Además esto mejorará sus habilidades de programación y le enseñarán buenos hábitos y prácticas en este arte.

Estoy de acuerdo en que no hay que ser un duro, pero tampoco es un tema para noobs, eso seria como dejar una semilla en tierra estéril.

Creo que enseñarle patrones a alguien poco experimentado es contraproducente, de ahí que uno llega a proyectos donde se encuentra un monton de patrones no solo mal implementados sino utilizados de manera innecesaria e inutil.... y lo peor es que sacan pecho: he usado los patrones abcd en 'mi arquitectura'

Un patrón necesariamente inyecta complejidad, y su uso debe ser justo cuando se necesite, como siempre he dicho no se hacen aplicaciones para usar patrones, sino al revés.

Es ahí donde un martillo deja de servir para construir...

4. Los patrones de diseño bien aplicados harán tu código más sencillo y fácil de mantener, además de ser más elegante.

Más fácil de mantener si, pero más sencillo jamás... problemas que puedes resolver en 5 líneas de código utilizando un patrón pueden ser 200 líneas... por eso no se deben usar solo por usarlos, solo cuando la situación lo ameríte... y un noob la verdad dificilmente sabrá cuando la situación lo amerita.


Añadiendo, a lo mejor, nunca necesitaré esos patrones de diseño de los que ud habla para hacer aplicaciones escalables, rapidas y bien documentadas.

Tratándose de ti, Me late que ya los has necesitado y ni siquiera te has dado por enterado... y de seguro hasta ya habrás hecho algunos sin saber su nombre.

Usualmente aplicaciones altamente escalables manejan varios tipos de patrones, ahora que el uso de patrones suele ser inversamente proporcional a la rapidez del sistema, así que en secciones de misión crítica, sobre todo a nivel de procesamiento y memoria, es mejor abstenerse.

No acabas de entender, mientras no se tenga experiencia laboralemente o no se haya trabajado en un proyecto serio, se es un principiante, un inexperto en programación. Las personas deberían aprender patrones de diseño durante este periodo, DURANTE SU FORMACIÓN, mientras todavia se es un principiante y aún se está iniciando en la programación, obviamente se necesitan conocimientos previos para poder aprenderlos, pero tampoco hay que esperar a saber programar mucho, ya que a estas alturas ya se habrán cogido "mañas" y anti-patrones. Si un novato pide guia para aprender a programar, debe al menos mencionarsele que existen patrones de diseño y que pueden beneficiarle, pero que también es importante aprender otras cosas necesarias, que el aprendizaje es un todo un proceso.

No estoy de acuerdo, hay muchas cosas más importantes por aprender antes de meterse con los patrones, como dije anteriormente enseñar patrones a principiantes es una pérdida de tiempo. Incluso un principiante es altamente dependiente del lenguaje, y los patrones de diseño suelen rebasar esas fronteras.

Lo más importante de los patrones no es nisiquiera su definición, sino el proceso mental necesario para poderlos identificar y utilizar apropiadamente, y esto es mucho más importante cuando la experiencia te permite variar los patrones o incluso crear nuevos.

En las universidades enseñan patrones de diseño, es necesario , pero enseñarlo a las personas de primeros semestres es un desperdicio y a la final lo que se enseña es apenas un brochazo usualmente enfocado a enumerar patrones pero no a la transformación del modo de pensamiento... precisamente porque para ello se requiere haber tenido 'un triz' de experiencia desarrollando sw .
 
  • Me gusta
Reacciones: 4 personas
buenas.

quisiera que me ayudaran con videotutoriales no importan que sean en ingles de c# , hace rato que no programo debido a que me fui mas por el lado de las redes, pero por mejores propuestas de trabajo decidí comenzar otra ves desde cero en la programacion.

que tal es la mva de microsoft? comencé hacerlo pero me gustaría su opinión al respecto.

gracias de antemano.

Puede comenzar por aquí.

Aunque los manuales que hay son basicos, los webcast estan bien orientados y hay hasta de arquitectura ;).

Ps gracias pero nomas no. Me marca horrores cuando cambio a SelectedValue o SelectedItem...

Pues, que le digo.... yo lo probe en una APP WPF y me funciono :s, fijese bien si le esta poniendo el SelectedValuePath donde vá.

Mire el codigo

PHP:
namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        List<Persona> l = new List<Persona>();
        public MainWindow()
        {
            InitializeComponent();           
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //Lista de prueba
            l.Add(new Persona { ID = 10, Nombre = "Alan" });
            l.Add(new Persona { ID = 11, Nombre = "Michael" });
            l.Add(new Persona { ID = 12, Nombre = "Fortuna" });

            //Asignacion al ComboBox
            cbTest.ItemsSource = l;
            cbTest.SelectedValuePath = "ID";
            cbTest.DisplayMemberPath="Nombre";            
        }

        private void cbTest_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MessageBox.Show(cbTest.SelectedValue.ToString());
        }        
    }

    public class Persona
    {
        public Persona()
        { 
        }

        public Persona(int id, string nombre)
        {
            this.Nombre = nombre;
            this.ID = id;
        }
        public int ID { get; set; }
        public string Nombre { get; set; }
    }
}


Por si se pregunta que tengo en mi codigo XAML
PHP:
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <ComboBox Height="23" HorizontalAlignment="Left" Margin="117,91,0,0" Name="cbTest" VerticalAlignment="Top" Width="274" SelectionChanged="cbTest_SelectionChanged" />
    </Grid>
</Window>

SuerteX :)
 
Puede comenzar por aquí.

Aunque los manuales que hay son basicos, los webcast estan bien orientados y hay hasta de arquitectura ;).



Pues, que le digo.... yo lo probe en una APP WPF y me funciono :s, fijese bien si le esta poniendo el SelectedValuePath donde vá.

Mire el codigo

PHP:
namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        List<Persona> l = new List<Persona>();
        public MainWindow()
        {
            InitializeComponent();           
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //Lista de prueba
            l.Add(new Persona { ID = 10, Nombre = "Alan" });
            l.Add(new Persona { ID = 11, Nombre = "Michael" });
            l.Add(new Persona { ID = 12, Nombre = "Fortuna" });
 
            //Asignacion al ComboBox
            cbTest.ItemsSource = l;
            cbTest.SelectedValuePath = "ID";
            cbTest.DisplayMemberPath="Nombre";            
        }
 
        private void cbTest_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MessageBox.Show(cbTest.SelectedValue.ToString());
        }        
    }
 
    public class Persona
    {
        public Persona()
        { 
        }
 
        public Persona(int id, string nombre)
        {
            this.Nombre = nombre;
            this.ID = id;
        }
        public int ID { get; set; }
        public string Nombre { get; set; }
    }
}


Por si se pregunta que tengo en mi codigo XAML
PHP:
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <ComboBox Height="23" HorizontalAlignment="Left" Margin="117,91,0,0" Name="cbTest" VerticalAlignment="Top" Width="274" SelectionChanged="cbTest_SelectionChanged" />
    </Grid>
</Window>

SuerteX :)


Ia quedo master !!! Efectivamente era esa propiedad del SelectedValuePath junto con el DisplayMemberPath, este ultimo io no lo usaba, XD.

Men... extraño el Java. Gracias !!!
 
Ia quedo master !!! Efectivamente era esa propiedad del SelectedValuePath junto con el DisplayMemberPath, este ultimo io no lo usaba, XD.

Men... extraño el Java. Gracias !!!

Para esoteric estamos ;)

Yo en winforms me manejo bien y ahora que estoy conociendo wpf y claro de su potencial y flexibilidad... por eso estoy practicando en el ya que por su flexibilidad en el diseño y como se enlaza con los datos sera bastante facil de mantener:cool:


Si va a seguir utilizando XAML le recomiendo que vaya a windowsclient y vea unos cuantos tutoriales,
Y tambien se lea unoslibros para comprenderlo mejor..... subire a skydrive un webcast que tengo hace un tiempo que se llama wpf para desarrolladores (para los que les interese)

SuerteX :)
 
JuanKRuiz, Dios del codigo, escucha mi oracion ahhaha

¿Que disque el "Desarrollador Cinco Estrellas" ahora es gratis? ¿siempre lo fue? ¿como asi?
 
JuanKRuiz, Dios del codigo, escucha mi oracion ahhaha

¿Que disque el "Desarrollador Cinco Estrellas" ahora es gratis? ¿siempre lo fue? ¿como asi?

ahora es MVA

http://www.microsoftvirtualacademy.com

yo lo estoy haciendo, en cuanto a documentacion es buena pero tampoco es lo ultimo en guaracha, las explicaciones de los mismos a veces son muy complejas para personas que apenas inician en la programacion pero igual es muy recomendable hacerlo.

yo ya voy casi terminando el nivel basico de c# :p:p
 
buenas otra ves molestándolos :p

bueno ya casi termino el nivel básico de mva pero antes de seguir con el nivel intermedio, quisiera saber si ustedes tienen información o vídeos donde expliquen el funcionamiento de wpf y mvvm.

muchas gracias de antemano
 
buenas otra ves molestándolos :p

bueno ya casi termino el nivel básico de mva pero antes de seguir con el nivel intermedio, quisiera saber si ustedes tienen información o vídeos donde expliquen el funcionamiento de wpf y mvvm.

muchas gracias de antemano

Yo ya hice el basico :p... de WPF puede encontrar en www.windowsclient.net tambien tengo en el SkyDrive un video tutorial de WPF, es del 2006 pero los conceptos se aplican igual hoy en dia (al menos, la mayoria) ;).

https://skydrive.live.com/?cid=84ec702dcb1f0425#cid=84EC702DCB1F0425&id=84EC702DCB1F0425!555


SuerteX :)
 
  • Me gusta
Reacciones: 2 personas
ahora es MVA

http://www.microsoftvirtualacademy.com

yo lo estoy haciendo, en cuanto a documentacion es buena pero tampoco es lo ultimo en guaracha, las explicaciones de los mismos a veces son muy complejas para personas que apenas inician en la programacion pero igual es muy recomendable hacerlo.

yo ya voy casi terminando el nivel basico de c# :p:p

Pregunta... ya cambiaron lo de Desarrollador 5 estrellas?

La certificacion es gratis? no tocaba pagar el examen de certificacion a caso?

Certificacion de examenes estilo 70-515 ??? eso siempre ha sido de pago.. hasta donde se..


y mi pregunta.. Ya Prometic no esta haciendo examenes de certificaciones en Barranquilla; ustedes saben de alguna entidad que los haga aca en la costa??
 
Pregunta... ya cambiaron lo de Desarrollador 5 estrellas?



Certificacion de examenes estilo 70-515 ??? eso siempre ha sido de pago.. hasta donde se..


y mi pregunta.. Ya Prometic no esta haciendo examenes de certificaciones en Barranquilla; ustedes saben de alguna entidad que los haga aca en la costa??

Pues, yo acabo de hacer la 4ta estrella :p.... por cierto, los examenes del Desarrollador 5 Estrellas no se pagan... pero hay que dedicarle mucho tiempo... nada mas la quita estrella para el primer modulo tiene casi 4 horas de videos solo de AJAX .Net :S.

PD: Me mudo de WinForms a ASP.NET.... :p.... las empresas de hoy en dia solo buscan Web Developers :S


SuerteX :)
 
Pues, yo acabo de hacer la 4ta estrella :p.... por cierto, los examenes del Desarrollador 5 Estrellas no se pagan... pero hay que dedicarle mucho tiempo... nada mas la quita estrella para el primer modulo tiene casi 4 horas de videos solo de AJAX .Net :S.

PD: Me mudo de WinForms a ASP.NET.... :p.... las empresas de hoy en dia solo buscan Web Developers :S
SuerteX :)

Yo pienso pasar de asp.net y asmx a mvc y wcf.. toca empezar de cero otra vez... :muerto::muerto:
 
A ver esos que ia tienen estrellitas !!! XD A mi me rige la estrella celestial de la violencia, necesito que me iluminen con lo siguiente, disculpen si es una soberana estupidez... ahi les va:

Dibujé lineas, necesito "unir" dos cosas con estas lineas, so, como le hago ???, es exactamente lo que hace Power Point, XD. Ia ven que si mueves algún objeto que tenga una linea o flecha, ésta se alarga, se acorta, etc.

Gracias totales !!!
 

Los últimos temas