martes, 30 de octubre de 2018

Protocolos

Mapa conceptual de Modelo OSI



Nivel de Aplicación: Es el nivel que está en contacto directo con los programas o aplicaciones informáticas de las estaciones y contiene los servicios de comunicación más utilizados en las redes. Como ejemplos de servicios a este nivel se puede mencionar la transferencia de archivos, el correo electrónico, etc.
Nivel de presentación: a este nivel se controla el significado de la información que se transmite, lo que permite la traducción de los datos entre las estaciones. Por ejemplo, si una estación trabaja con un código concreto y la estación del otro extremo maneja uno diferente, el nivel de presentación es el encargado de realizar esta conversión. Para conversaciones confidenciales, este nivel también codifica y encripta los datos para hacerlos incomprensibles a posibles escuchas ilegales.
Nivel de sesión: a este nivel se establecen sesiones (conexiones) de comunicación entre los dos extremos para el transporte ordinario de datos. A diferencia del nivel de transporte, a este nivel se proporcionan algunos servicios mejorados, como la reanudación de la conversación después de un fallo en la red o una interrupción, etc.
Nivel de transporte: es el nivel más bajo que tiene independencia total del tipo de red utilizada y su función básica es tomar los datos procedentes del nivel de sesión y pasarlos a la capa de red, asegurando que lleguen correctamente al nivel de sesión del otro extremo. A este nivel, la conexión es realmente de extremo a extremo (véase la figura 2.3), ya que no se establece ninguna conversación con los niveles de transporte de todas las máquinas intermedias.
 Nivel de red: se ocupa de determinar cuál es la mejor ruta por la que enviar la información. Esta decisión tiene que ver con el camino más corto, el más rápido, el que tenga menor tráfico, etc. Por todo esto, la capa de red debe controlar también la congestión de la red, intentando repartir la carga lo más equilibrada posible entre las distintas rutas. También a este nivel se realiza gran parte del trabajo de convertir y adaptar los mensajes que circulan entre redes heterogéneas. La unidad mínima de información que se transfiere a este nivel se llama paquete.
Nivel de enlace: su tarea principal es detectar y corregir todos los errores que se produzcan en la línea de comunicación. También se encarga de controlar que un emisor rápido no sature a un receptor lento, ni se pierdan datos innecesariamente. Finalmente, en redes donde existe un único medio compartido por el que circula la información, este nivel se encarga de repartir su utilización entre las estaciones. La unidad mínima de datos que se transfiere entre entidades pares a este nivel se llama trama o marco.
Nivel físico: tiene que ver con la transmisión de dígitos binarios por un canal de comunicación. Las consideraciones de diseño tienen que ver con el propósito de asegurarse de que, cuando un lado envíe un “1”, se reciba en el otro lado como “1”, no como “0”. Las preguntas típicas aquí son: ¿qué voltaje deberá usarse para representar un 1 y para representar un 0?, ¿cuántos microsegundos dura cada dígito?, ¿en qué frecuencia de radio se va a transmitir?, ¿cuántas puntas tiene el conector de la red y para qué sirve cada una?, etc. Aquí las consideraciones de diseño tienen mucho que ver con las interfaces mecánica, eléctrica y de procedimientos y con el medio de transmisión físico que está bajo la capa física.
Diagrama modelo TCP/IP



Capa de aplicación: esta capa contiene, al igual que la capa de aplicación de OSI, todos los protocolos de alto nivel que utilizan los programas para comunicarse. Aquí se encuentra el protocolo de terminal virtual (TELNET), el de transferencia de archivos (FTP), el protocolo HTTP que usan los navegadores para recuperar páginas en la World Wide Web, los protocolos de gestión del correo electrónico, etc.
Capa de transporte: ésta cumple la función de establecer una conversación entre el origen y el destino, de igual forma que hace la capa de transporte en el modelo OSI. Puesto que las capas inferiores no se responsabilizan del control de errores ni de la ordenación de los mensajes, ésta debe realizar todo ese trabajo. Aquí también se han definido varios protocolos, entre los que destacan TCP (Transmisión Control Protocol o Protocolo de Control de Transmisión), orientado a la conexión y fiable, y UDP (User Datagram Protocol o Protocolo de Datagrama de Usuario), no orientado a la conexión y no fiable.
Capa de interred: esta capa es la más importante de la arquitectura y su misión consiste en permitir que las estaciones envíen información (paquetes) a la red y los hagan viajar de forma independiente hacia su destino. Durante ese viaje, los paquetes pueden atravesar redes diferentes y llegar desordenados. Esta capa no se responsabiliza de la tarea de ordenar de nuevo los mensajes en el destino. El protocolo más importante de esta capa se llama IP (Internet Protocol o Protocolo de Interred), aunque también existen otros protocolos.
Capa de subred: el modelo no da mucha información de esta capa y solamente se especifica que debe existir algún protocolo que conecte la estación con la red. La razón fundamental es que, como TCP/IP se diseñó para su funcionamiento sobre redes diferentes, esta capa depende de la tecnología utilizada y no se especifica de antemano.
    Protocolos Para TCP/IP

Modselo de 7 Capapara una pizarria

Se debe contar con los ingredientes
Las pizzas deben estar listo para una cierta hora
Las pizzas se agrupan en paquetes
Los paquetes contienen losa




sábado, 6 de octubre de 2018

Elementos de C#

Elementos de C#
C#
Para entender lo que es C# es imprescindible decir antes lo que es Microsoft .NET Framework o abreviadamente .NET. Se trata de un entorno de desarrollo multilenguaje diseñado por Microsoft para simplificar la construcción, distribución y ejecución de aplicaciones para Internet. Tiene fundamentalmente tres componentes: una máquina virtual (CLR: Common Language Runtime) que procesa código escrito en un lenguaje intermedio (MSIL: Microsoft Intermediate Language), una biblioteca de clases (biblioteca .NET) y ASP.NET que proporciona los servicios necesarios para crear aplicaciones Web. Precisamente C# es uno de los lenguajes de programación de alto nivel que pertenecen al paquete .NET (otros lenguajes son Visual Basic, C/C++, etc.). C# es una evolución de C/C++. Con él se pueden escribir tanto programas convencionales como para Internet.
Palabras reservadas

Las palabras clave de C# En sus cimientos, un lenguaje de computación es definido por sus palabras clave, y C# ofrece un conjunto rico y diverso. C# define dos tipos generales de palabras clave: reservadas y contextuales. Las reservadas no pueden ser utilizadas como nombres de variable, clases ni métodos; sólo pueden ser utilizadas como palabras clave, por eso reciben el nombre de reservadas. En ocasiones también reciben el nombre de términos reservados e identificadores reservados. Actualmente existen 77 palabras clave reservadas definidas en la versión 3.0 del lenguaje C# 3.0. Todas ellas se muestran en la tabla 1-1.





C# 3.0 define 13 palabras clave contextuales que tienen un significado especial en ciertos contextos. En tales contextos, actúan como palabras clave y fuera de ellos pueden ser utilizadas como nombres para otros elementos del programa, como las variables. Así pues, técnicamente no son palabras reservadas, pero como regla general debes considerar las palabras clave contextuales como reservadas y evitar su uso para cualquier otro propósito diferente al que le asigna el lenguaje. Utilizar palabras clave contextuales como nombre para cualquier otro elemento del programa puede causar confusión y es considerada una mala práctica por la mayoría de los programadores. Las palabras clave contextuales aparecen en la tabla 1-2.


Identificadores

En C# un identificador es un nombre asignado a un método, a una variable o a cualquier otro elemento definido por el usuario. Los identificadores pueden tener una longitud variada. Los nombres de las variables pueden comenzar con cualquier letra del alfabeto o con un guion bajo; después pueden continuar con más letras, números o guiones bajos. Los guiones bajos pueden utilizarse para incrementar la legibilidad de un nombre de variable, como cuenta_línea.
Las mayúsculas y las minúsculas son diferentes, lo cual quiere decir que para C# mivar y MiVar son dos nombres diferentes. He aquí algunos ejemplos de identificadores aceptables:



Recuerda que no puedes iniciar un identificador con un número, por lo que 12x es inválido, por ejemplo. Las buenas prácticas de programación indican que utilices nombres de indicadores que reflejen el significado o el uso del elemento al que pertenecen. Aunque no puedes utilizar ninguna palabra clave de C# como identificador, el lenguaje te permite colocar una arroba (@) antes de la palabra clave para convertirla en un identificador legal. Por ejemplo, @ for es un identificador legal; en este caso, el identificador es de hecho la palabra for y la @ es ignorada. Sinceramente, el uso de la arroba para legalizar palabras clave no es recomendable, salvo propósitos muy especiales. La arroba también puede anteceder a cualquier identificador, pero se considera una mala práctica.
Literales
En C# el término literales se refiere a valores fijos que son representados en su forma comprensible para los humanos. Por ejemplo, el número 100 es una literal. Las literales y su uso son tan intuitivos que ya las hemos utilizado de una manera u otra en todos los ejemplos anteriores. Ahora es momento de explicarlas formalmente. Las literales de C# pueden representar cualquier valor de todos los tipos de datos. La forma de representar cada literal depende del tipo de dato al que pertenece. Como se explicó con anterioridad, las literales de carácter van encerradas entre comillas simples, por ejemplo ‘a’ y ‘%’ son literales de carácter. Las literales de entero son especificadas como números sin componentes decimales. Por ejemplo, 10 y –100 son literales de entero. Las literales de punto flotante requieren el uso del punto decimal seguido por los decimales correspondientes. Por ejemplo, 11.123 es una literal de punto. Como C# es un lenguaje estrictamente tipificado, las literales también tienen un tipo. Primero, para literales de enteros, el tipo de la literal es el tipo de entero más pequeño que puede contenerla, comenzando con int. De esta manera, una literal de entero es de tipo int, uint, long o ulong, dependiendo del valor que represente. Segundo, las literales de punto flotante son del tipo double. Si el tipo asignado en automático por C# no es el que requieres en una literal, puedes especificar explícitamente un nuevo tipo incluyendo el sufijo correspondiente. Para especificar una literal tipo long añade al final una l o L. Para especificar una literal float, añade f o F. Como acabo de mencionar, las literales de punto flotante son de tipo double por defecto. Para especificar una literal decimal, añade al valor una m o M. Por ejemplo, 9.95M es una literal decimal. Aunque las literales de entero crean valores int, uint, long y ulong por defecto, también pueden ser asignadas a variables tipo byte, sbyte, short y ushort, siempre y cuando el valor asignado pueda ser representado por el tipo que lo contiene.
Literales hexadecimales
En programación, a veces es más fácil utilizar un sistema numérico base 16 en lugar de la base 10. El sistema numérico base 16 es llamado hexadecimal y utiliza los dígitos del 0 al 9, más las letras de la A a la F, que representan 10, 11, 12, 13, 14 y 15. Por ejemplo, la representación hexadecimal del número 10 es 16. Dada la frecuencia con que son utilizados los números hexadecimales, C# te permite especificar literales de entero con formato hexadecimal. Una literal hexadecimal debe comenzar con 0x (un cero seguido por una equis minúscula, x). He aquí algunos ejemplos: cuenta = 0xFF; // 255 incremento = 0x1a; // en 26 el sistema decimal en el sistema decimal
Operadores
C# proporciona un rico ambiente de operadores. Un operador es un símbolo que ordena al compilador la realización de una manipulación matemática o lógica específica. C# cuenta con cuatro clases generales de operadores: aritméticos, bitwise, relacionales y lógicos. También tiene otros varios operadores que pueden manejar ciertas situaciones especiales. En este capítulo estudiaremos los operadores aritméticos, relacionales y lógicos. También veremos el operador de asignación. Los operadores especiales, incluyendo bitwise, serán estudiados más tarde.





Operadores lógicos y de relación
 En las expresiones operador relacional y operador lógico, el término relacional hace referencia a las mutuas relaciones que pueden darse entre diferentes valores, y el término lógico se refiere a las reglas de interconexión entre los valores verdadero y falso. Como los operadores relacionales producen valores verdadero y falso, suelen trabajar en conjunto con los operadores lógicos. Por tal razón, los analizaremos juntos en esta sección. Los operadores relacionales son los siguientes:


El resultado que presentan los operadores relacionales y lógicos es un valor tipo bool. En general, los objetos pueden ser comparados por su semejanza o diferencia utilizando == y! = . Sin embargo, los operadores de comparación < , > , <= , >= , sólo pueden aplicarse a los tipos que soportan una relación ordenada. Por tanto, todos los operadores relacionales pueden aplicarse a todos los tipos numéricos. Sin embargo, los valores tipo bool sólo pueden ser comparados para obtener similitud o diferencia porque los valores true (verdadero) y false (falso) no tienen un orden predeterminado. Por ejemplo, true > false no tiene significado en C#. En lo que respecta a los operadores lógicos, los operandos deben ser de tipo bool y el resultado de una operación lógica es también de este tipo. Los operadores lógicos & , | , ^ y ! soportan las operaciones lógicas básicas dictadas por AND, OR, XOR y NOT de acuerdo con la siguiente tabla de verdad:


Operadores lógicos de circuito corto
C# proporciona versiones especiales de los operadores lógicos AND y OR, llamados circuitos cortos, que pueden ser utilizados para producir código más eficiente.
Delimitadores
El método ReadLine lee hasta encontrar el carácter ‘ \r ’, ‘ \n ’ o los caracteres ‘ \r\n ’ introducidos al pulsar la tecla Entrar ; estos caracteres son leídos pero no almacenados, simplemente son interpretados como delimitadores.
Comentario
Un comentario es un mensaje dirigido a cualquiera que lea el código fuente. Añadiendo comentarios se hace más fácil la comprensión de un programa. Tienen como finalidad explicar el código fuente. Se pueden utilizar comentarios acotados o de una sola línea. Un comentario acotado empieza con los caracteres /* y finaliza con los caracteres */. Estos comentarios pueden ocupar más de una línea, pero no pueden anidarse. Un comentario de una sola línea comienza con una doble barra (//) y se extiende hasta el final de la línea.


Mapa Conceptual de los Elementos de C#



lunes, 1 de octubre de 2018

Elementos de Asp.net


Mapa Conceptual de los Tokens de ASP.NET


Bibliografía:

1- https://docs.microsoft.com/es-es/dotnet/csharp/language-reference
2- Ceballos, Sierra, Francisco Javier. Enciclopedia de Microsoft Visual Basic: interfaces gráficas y aplicaciones para Internet con Windows Forms y ASP.NET (3a. ed.), RA-MA Editorial, 2012. ProQuest Ebook Central, http://ebookcentral.proquest.com/lib/bibliouamericanasp/detail.action?docID=3228989