Vanguarsoft Developers blog

Ing. Javier Leal – Coordinador de Requerimientos en Traetelo.com / Traiter Lourted – VENEZUELA


Deja un comentario

Convertir DataTable en List<Dictionary>

Hola de nuevo en esta ocasión quisiera compartir otra funcionalidad que me gusta mucho en arios proyectos el los que eh trabajado me he visto en la necesidad de utilizar Diccionarios debido a que brindan mucha escalabilidad sobre el desarrollo, a pesar de que reconozco que usando datos fuertemente tipados brinda un mejor performance para la aplicación, a veces dependiendo de las necesidades podemos sacrificar un poco de memoria por flexibilidad y escalabilidad todo dependiendo de el enfoque que vaya a tener la aplicación que se esta desarrollando.

Esta funcionalidad es bastante sencilla basta con utilizar esta simple linea de código que aprovecha las capacidades de LINQ.

DataTable table = dataSet.Tables[0];
List<Dictionary<string, object>> Result = table.AsEnumerable().Select(dr =>
{
    var dic = new Dictionary<string, object>();
    dr.ItemArray.Aggregate(-1, (int i, object v) =>
   {
        i += 1; dic.Add(table.Columns[i].ColumnName, v);
        return i;
    });
    return dic;
}).ToList();

Espero que les sea de mucha utilidad y no se olviden de agregar el namespace:

using System.Linq; 

Hasta las proxima.

Anuncios


Deja un comentario

Uso de los Objetos Dictionary

dictionary-locals

Buenos Días tecnólogos hoy les traigo como usar los Diccionarios que son una herramienta muy útil para crear Código dinámico en tus aplicaciones, mucho de nosotros desarrolladores estamos acostumbrados a crear Entidades con sus propiedades para luego a estas entidades utilizarlas para Insertar, Mostrar Valores, Obtener Listas de dicho Objeto a partir de una consulta SQL y creamos tantas entidades como tablas tengamos para crear nuestro sistema lo que no permite que nuestro sistema sea Dinámico, no podemos reutilizar consultas ni adicionar campos por que implicaría una entidad nueva o una modificación fuerte de código.

Estas practicas ya muchos desarrolladores las han mejorado con herramientas de distintas formas y una de ellas muy útil es crear Diccionarios donde nuestras entidades estáticas pasan a ser Dinámicas ya todo depende de lo que incluye el diccionario de datos pero como podemos aplicar esta lógica?

Concepto por MSDN

Representa una colección de claves y valores.

Namespace: System.Collections.Generic

Primero que nada vamos a declarar una Variable de tipo Diccionario:

Se debe declarar de esta manera:

Dictionary<TKey, TValue> Nombre

Donde:

TKEY: Es el tipo de dato que utilizaras para el KEY puede ser un Entero, Una Cadena String que es lo mas Habitual pero en si esto puede ser lo que quieras.

TVALUE: es el tipo de datos del valor que va a estar ligado al Key Anterior puede ser de cualquier tipo normalmente es un Object así permitirá almacenar en este cualquier tipo de Objeto.

Nombre: Nombre de la variable para utilizarla en código.

Ejemplos:

Dictionary<string, Object>

Dictionary<int, string>

Dictionary<Object, Object>

Dictionary<string, string>

En nuestro caso Utilizaremos el mas habitual y que nos permita crear una Entidad Dinámica.

Dictionary<string, Object> DinamyObj = new Dictionary<string, Object>();

En esta modalidad puedes almacenar lo que sea en este objeto y sabrás donde esta cada cosa que adiciones dentro de ella a través de su Key.

Para Adicionar utiliza el Método Add que permite agrega la clave y el valor especificados al diccionario.

Ejemplo Adicionar la Fecha Actual,un valor Booleano Un string o entero:

DinamyObj.Add(“FechaActual”,DateTime.Now());

DinamyObj.Add(“Nombre”,”Javier Leal”);

DinamyObj.Add(“Edad”,25);

DinamyObj.Add(“Activo”,true);

Si puedes Adicionar Obviamente puede Eliminar Valores para ello en el Método Remove

DinamyObj.Remove(“Edad”);

O el Método Clear en caso de querer Eliminar todos los valores.

DinamyObj.Clear();

 

Además de esto hay Métodos donde puedes buscar verificar si un valor en especifico tales son los casos de los Métodos ContainsKey Determina si la colección Dictionary contiene la clave especificada y el ContainsValue Determina si la colección Dictionary contiene un valor específico.

Ejemplo:

DinamyObj.Containskey(“Apellido”); Devuelve: False

DinamyObj.ContainsValue(25); Devuelve: True

DinamyObj.Containskey(“Nombre”); Devuelve: True

DinamyObj.ContainsValue(False); Devuelve: False

 

A este tipo de objetos podemos hacerle un recorrido para conocer o listar todas sus claves o sus valores para acceder a esos valores

Ejemplo:

DinamyObj.Keys Devuelve: Un diccionario con los valores de las claves

DinamyObj.Values Devuelve: Un diccionario con los valores

 

Luego de que estos objetos ya están creados se puede editar y asignar de esta manera por ejemplo para cambiar el valor de edad seria:

DinamyObj[“Edad”] = 27;

y para escribirlo en un control por ejemplo en un texto seria

TXTEdad.Text = DinamyObj[“Edad”].ToString();

Cabe destacar que hacemos conversión de String debido a que el devuelve es un Object entonces si estamos por ejemplo devolviendo un valor Bool como es caso del valor Clave Activo a un control CheckBox seria

Check.IsChecked = Convert.ToBoolean(DinamyObj[“Edad”]);

A su vez también es importante para cuando estamos aplicando en Patrón MVVM en nuestros proyectos saben enlazar estos Objetos a través de enlaces Binding, Ejemplo asignando un valor a un Textbox y un check

<TextBox> Text="{Binding DinamyObj[Nombre], Mode=TwoWay}"/>

<CheckBox> IsChecked ="{Binding DinamyObj[Activo], Mode=TwoWay}"/>

Por ultimo estos objetos como todos podemos agregarlos a colecciones para tener listas de diccionarios que pueden ser enlazados de igual manera que que cualquier colección

List<Dictionary<string, Object>> ListDictionary

Espero que le saquen provecho a la información pueden buscar mas información por la Documentación Original.

http://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.95).aspx


Deja un comentario

Truco: Manejar Scroll mediando código en Silverlight

IC505349Muchas veces necesitamos agregar un valor a un ListBox pero resulta que este el muy largo y queremos que de manera automática se vaya al ultimo valor para que se agrego.

Esto es un sencillo truco que les permitirá lograr esto en Sus aplicaciones Silverlight.

Primera que nada les mostrase dos casos que hasta el momento se me han podido presentar en mis desarrollos:

1. – El primer caso es cuando queremos hacer un aumento o Disminución progresivo del LixtBox.

Simplemente usamos la propiedad SelectIndex para la misma.

Para ir al ultimo:

listBox1.SelectedIndex++;

Para Regresar o subir:

listBox1.SelectedIndex--;

Cuando estos valores progresivos se para de sus valores máximos, es decir, si nuevo listBox el de 5 valores y nuestra sumatoria de Index lleva mas alto que ella este te dará un erro por lo tanto hay que tomarlo muy en cuenta controlando la cantidad de Item que tiene el control o simplemente con un Try controlas este error:

try
{
  listBox1.SelectedIndex++;
}
catch (ArgumentOutOfRangeException)
{
  // si ocurre el erro llévame a primer valor
  listBox1.SelectedIndex = 0;
}

2. – El segundo caso es cuando queremos ir a un valor especifico de ese ListBox.

Cuando se quiere hacer esta función necesitamos primero saber cual es el valor del Index del Item al cual quieres que el Scroll, es típico cuando queremos hacer esto en un chat que estemos desarrollando o al cargar una pagina y querer ir inmediatamente al ultimo valor.

Podemos colocar entonces este código al cargar la pantalla o en un botón o luego de enviar o guardar un valor.

    miListBox.SelectedIndex = 14; //Seleccionamos el elemento 14 por ejemplo           
    miListBox.ScrollIntoView(miListBox.SelectedItem);

Espero que les sea útil y hasta la próxima.


2 comentarios

Navegar entre pantallas en proyectos de Expression

A veces muchos desarrolladores nos encontramos con el problema de que tenemos tiempo desarrollando en visual basic.net, hay un momento que conocen Expression y se animan a trabajar en el debido a sus sorprendentes diseños, (soy uno de los que lo vi y lo uso al momento) pero resulta que luego de hacer algunas pantallas en Expression es necesario navegar entre las diferentes pantallas que hicimos y solo eso se puede hacer en VISUAL STUDIO or tanto no colocamos en el proyecto, exactamente en el achivo de la solucion en expression blend y presionar click derecho luego seleccionando Editar en Visual Studio.

Mi proyecto de llama  siscom empresas mixtas occidente ya una vez que seleccionamos la acción nos vamos a visual Studio Recomendado para trabajar estas aplicaciones VISUAL STUDIO 2008

Los que ya han trabajado con expression blend sabemos que el nos permite colocar textbox, botones a los diseños de pantallas, dichos botones sean manejados igualmente como botones en visual studio

Una vez que ya estamos en Visual Studio de abre la pantalla del boton que desemos sea el encargado de asar de una pantalla a otra para este ejemplo tomaremos como ejemplo 2 pantallas llamadas:

WINDOWS1

WINDOWS2

Cabe destacar que en el caso del proyecto que realice fue una imagen que luego de tranformo en boton para que haga las funciones respectivas, para proseguir en el boton de la pantalla windows 1 que quieras que se pase a la windows 2 le vas a dar dos veces click y aparecera el cogido visual basic (Ojo el proyecto en expression se puede hacer en Visual Basic o en C# al crear el proyecto este te pregunta cual vas a usar) En este caso manejandolo con visual basic.

el codigo en el siguiente utilizando dos variable que se puede llamar como ustedes quieran les colocare en este caso “var”:

dim  var as new windows2()

var.show()

Explicacion: se declara una variable que hara una instancia a una clase que es el formulario a donde vamos Porque? Bueno trabajando desde la misma clase no nos lo permite mientras que haciendo una instancia se hace un cast a la clase la cual trae todas las propiedades propias de un formulario windows. y hay es donde podemos jugar con los codigos para mostar, ocultar o cerrar:

var.show() (mostrar)

var.hide() (ocultar)

var.close (cerrar)

Y aqui hice algo a proposito por si les llega a ocurrir agrege una imagen en expression si nostros vamos a visual studio y presionamos dos veces click sobre un boton, el automaticamente va hasta el evento MOUSECLICK cuando presionamos click sobre el boton. en mi caso agrege una imagen y no la converti en boton como pueden ver en la imagen tengo una flecha para avanzar y otra para retroceder.

al presiona dos veces click aparecera otro evento llamado: ImageFailed pero este que en un metodo de esa imageen se puede cambie justo arriba del codigo este se puede cambiar a MOUSEDOW este si es cuando rpesionamos click derecjo (ojo en imagne no hay mouseclick) lo podemos ver en la siguiente imagen:

En la imagen pueden ver el resultado del codigo muy simple


2 comentarios

Visual Studio 2010 Beta 1

Hola amigos internautas ahora les presento lo que sera la nueva IDE de muchos desarrolladores especializados en tecnologia .NET que desde hace años ha ofrecido una completa gana de herramientas necesaria para desallorar aplicaciones y soluciones para empresas.

451z7gm

Las versiones como la 2003, 2005, 2008 se fueron afamando poco a poco debido a su gran integridad con nuevas tecnologias y por eso tan consecutivo el cambio de estas versiones tener una suite bien preparado con todo lo necesario para desarrollar aplicacione y no tener que instalas componentes adicionales, es decir , si ya usaste el anterior no dudes en usar este ya que todo loq ue aprendiste en las versiones anteriore aun te seguiran sirviendo para la version 2010.

VS10_01Aqui ya pueden tener vista previa de lo que sera la pantalla principal de la gran suite de desarrollo que conjunto al .Net frameword que tambien lleva muy bien su historia esta muy de la mano ya que es la maquina virtual que perdite a la aplicaciones correr donde sea no importando la plataforma lo puedes descargar la version gratuita desde aca:

http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx

hero_2010_v5(Presionando la imagen puedes aceder a la descargar..)

No hay que olvidarse del componente que hace la magia que hace que las aplicaciones puedan correr sin ningun problema sin depender de la plataforma:

microsoft-net-has-a-new-logo.NET FRAMEWORK 4.0 es la version que utilizara y estara de la mano con visual studio 2010.

Aqui les dejo dos imagenes que muestran los componentes que estan presentes en esta nueva version del framework que va creciendo cada dia mas llena de componentes mas ricos para nuesttras aplicaciones todo un mundo

image_240228fig1

Como pueden observar esta nuea version sigue apoyando temas de interoperabilidad con otros lenguajes de programacion, es decir, poco a poco se va reforzando y haciendo compatibles las aplicaciones.

A continuacion les coloco algunas de las mejoras mas notables en la nueva version Visual Studio 2010:

Mejora la experiencia del usuario

img_sec01_plus_sign
Microsoft Visual Studio 2010 ofrece una moderna, la experiencia de usuario mejorada que permite comprender el contexto actual más natural.

  • Organización clara interfaz de usuario
  • Reducción de la complejidad y el desorden
  • Editor mejorado
  • Mejor soporte para documentos y ventanas flotantes
  • Documento de orientación mejorada
  • Enfocado animaciones para la retroalimentación de acción
Programación paralela
Programación en paralelo se ha simplificado, por lo tanto nativos y los desarrolladores de código administrado de forma productiva puede crear aplicaciones innovadoras.

  • Soporte IDE para la programación paralela
  • Nativo C + + que las funciones lambda uso y se alinean bien con STL
  • Paralelamente a las extensiones de. NET Framework ofrece soporte para datos imperativo y el paralelismo de tareas, declarativa de datos paralelismo, y más
  • La gestión de los recursos del hardware de varios núcleos y la programación de tareas habilitada por la concurrencia Tiempo de ejecución
  • Ventanas de depuración y perfilado de visitas en paralelo
Inspirador de Desarrollo Delight
Visual Studio ha realizado el desarrollo de aplicaciones más productivo, eficiente y flexible tanto para los desarrolladores y empresas. Visual Studio 2010 continúa este legado.

  • El apoyo contextual ayuda a los desarrolladores a entender mejor el código existente – y escribir el nuevo código de manera más eficiente
  • Primera clase C + + experiencia de desarrollo que ayuda a los desarrolladores navegar y entender complejo C + + fuente de bases de
  • Windows ® 7 Creación de nuevas aplicaciones o mejorar las aplicaciones existentes
  • Habilitar herramientas de Office para hacer sus soluciones más flexibles y productivas para las necesidades específicas

Desarrollo Web
img_sec06_plus_sign

Con Visual Studio 2010, continuamos nuestra inversión en grandes herramientas de desarrollo web.

  • Un alto rendimiento y compatible con los estándares JavaScript IntelliSense ® Engine
  • “One Click de implementación” que rápidamente se publica los archivos y ajustes de configuración de las máquinas de desarrollo para el sitio desplegado final
  • Soporte completo para Silverlight ™ para el corte, el borde aplicaciones ricas de Internet

Nube de Desarrollo
Con Windows Azure ™ Tools para Visual Studio, es fácil para los desarrolladores crear, depurar y desplegar servicios y aplicaciones para la nueva plataforma en la nube de Microsoft.

  • De C # y VB plantillas de proyecto para la creación de servicios de la nube
  • Herramientas para cambiar la configuración del servicio de función
  • De desarrollo local integrado a través de la tela para el Desarrollo y Desarrollo de Servicios de almacenamiento
  • Depuración Cloud Servicio funciones se ejecutan en la tela para el Desarrollo
  • Construcción y el embalaje de los paquetes de servicio Cloud
  • Buscando a los desarrolladores del portal de Servicios Azure

Más bases de datos
img_sec08Con el ecosistema de partners de Visual Studio, los desarrolladores podrán trabajar con bases de datos IBM DB2 y Oracle, además de bases de datos de Microsoft SQL Server ™.

IBM se ha comprometido a desarrollar, vender y dar soporte a un Proveedor de esquema de base de datos (DSP) para permitir a los desarrolladores que trabajan con DB2 en Windows, Linux o Unix hacen fuera de línea de diseño, desarrollo, pruebas y gestión del cambio utilizando Visual Studio Team System 2010 Development Edition.

Quest Software han hecho un compromiso similar de desarrollar, vender y apoyar un DSP, que permitirá a los desarrolladores de Oracle para trabajar con sus bases de datos con la misma facilidad.


Deja un comentario

Programacion Orientada a Objetos

Hola de nuevo como puderon observar en el post anterior en lo que eran los paradigmas de programacion el paradigma Orientado a Objetos es el mas usado y el que por mas lenguajes es apoyado un paradigma que describe la vida real o mejor dicho una adstraccion de ella, para muchos que estudian sistemas o informatica es de suma importancia conocer este paradigmas sobre todo si se van a enfocar en el mundo de la programacion y como material investigativo es muy pedido en clases vamos a describir un a poco acerca de este famoso paradigma tambien descrito como (POO).

poo

Los objetos son entidades que combinan estado, comportamiento e identidad:

  • El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
  • El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
  • La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).

La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener, reutilizar y volver a utilizar.

CONCEPTOS FUNDAMENTALES DE LA POO

La programación orientada a objetos es una nueva forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

  • Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
  • Herencia: (por ejemplo, herencia de la clase D a la clase C) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como “privados” (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP.
  • Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
  • Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un “mensaje”. Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un “evento” con un nuevo mensaje para otro objeto del sistema.
  • Evento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
  • Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
  • Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
  • Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
  • Componentes de un objeto:atributos, identidad, relaciones y métodos.
  • Representación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.

En comparación con un lenguaje imperativo, una “variable”, no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la “función” es un procedimiento interno del método del objeto.

pilares

CARACTERISTICAS DE LA POO

Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como “orientado a objetos”, pero hay un consenso general en que las características siguientes son las más importantes:

  • Abstracción: Denota las características esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un “agente” abstracto que puede realizar trabajo, informar y cambiar su estado, y “comunicarse” con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.
  • Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
  • Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
  • Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en “tiempo de ejecución”, esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en “tiempo de compilación”) de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
  • Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.
  • Recolección de basura: la Recolección de basura o Garbage Collection es la técnica por la cual el ambiente de Objetos se encarga de destruir automáticamente, y por tanto desasignar de la memoria, los Objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo Objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse manualmente.

ESPERO QUE LES GUSTE Y QUE PORTAMENTE ESTEMOS TRABAJANDO ESTOS CONCEPTOS A NIVEL DE CODIGO PORSUPUES MI ESPECIALIDAD ES EN VISUAL BASIC PERO EL PARADIGMA EN OTROS LENGUAJES COMO EN JAVA SE PUEDE DECIR QUE ES LO MISMO PERO CON OTRA SINTAXIS


6 comentarios

Paradigmas de programacion

Hola Chicos aqui les dedicare un articulo a aquellos que se comienzan en el mundo de la programaion y son los paradigmas todo estudiante de Sistemas, del area de computacion y se enfoque hacia el area de programacion bueno para empezar a aclarar que es esto de los paradigmas, primero que nada a quienes han hecho trabajos de investigacion se pueden dar cuenta de que siempre siguen una metodología siguen como un patron o un lineamiento para que el trabajo lleve un buen seguimiento.

Inicio

Siempre hay metodologias unas mas usadas que otras en este caso los paradigmas tambien son uno mas usados que otros cada uno son metodos diferentes de programar o como se dice hoy en dia desarrollar para empezar nombrere los paradigmas de programacion que son mas usados hoy en dia

Vamos a comenzar hablando un poco de cada uno de ellos y losLenguajes de programacion que representan comenzando con:

PARADIGMA IMPERACTIVO O POR PROCEDIMIENTO:

CodigooEn contraposición a la programación declarativa es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

La implementación de hardware de la mayoría de computadores es imperativa; prácticamente todo el hardware de los computadores está diseñado para ejecutar código de máquina, que es nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los computadores implementa el paradigma de las Máquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).

Algunos lenguajes imperativos

EL PARADIGMA FUNCIONAL

languagesEs un paradigma de programación declarativa basado en la utilización de funciones matemáticas.

El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitando el concepto de estado del cómputo. La secuencia de computaciones llevadas a cabo por el programa se regiría única y exclusivamente por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas, usando lo que se denominan “definiciones dirigidas“.

Lenguajes funcionales

Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los lenguajes funcionales híbridos más conocidos son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos últimos, descendientes del lenguaje ML). Erlang es otro lenguaje funcional de programación concurrente. R también es un lenguaje funcional dedicado a la estadística.[1] Recientemente Microsoft Research está trabajando en el lenguaje F# (Functional#).

Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a Perl, pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario. Así como Python, como lenguaje que incorpora el paradigma funcional.

EL PARADIGMA LOGICO:

Consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional.

La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

Lenguajes

El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas variantes. La más importante es la programación lógica con restricciones (véase artículo sobre programación con restricciones), que posibilita la resolución de ecuaciones lineales además de la demostración de hipótesis.

EL PARADIGMA ORIENTADO A OBJETOS

POOLa Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

Lenguajes orientados a objetos

Entre los lenguajes orientados a objetos se destacan los siguientes:

Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.

Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.

Un nuevo paso en la abstracción de paradigmas de programación es la Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.

Como pueden observar muy claramente el paradigma Orientado a objetos es el mas usado hoy en día donde existen mas lenguajes de programación que en función con otros paradigmas forman funciones para lograr una excelente combinación de funciones la cual ayuda hoy en dia a muchos programadores a lograr facilmente sus objetivos espero que sirva esta informacion para saber donde estan parados y elegir un buen lenguaje pronto mas detalles sobre la programacion orientada a objetos