martes, 25 de agosto de 2015

EJEMPLO Mostrar Datos XML con ASPX

Para agregar el archivo XML al proyecto

  1. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta App_Data y, a continuación, haga clic enAgregarnuevo elemento.
    18az815d.alert_note(es-es,VS.100).gifNota:
    Al poner el archivo XML en la carpeta App_Data, recibe automáticamente los permisos correctos para que ASP.NET pueda leer y escribir en el archivo en tiempo de ejecución. Además, impide que el archivo se pueda ver en un explorador, porque la carpeta App_Data está marcada de forma que no se puede examinar.
  2. En Plantillas instaladas de Visual Studio, haga clic en Archivo XML.
  3. En el cuadro Nombre, escriba XMLFrutas.xml.
  4. Haga clic en Agregar.
    Se crea un nuevo archivo XML que sólo contiene la directiva XML.
  5. Copie los siguientes datos XML y después péguelos en el archivo, sobrescribiendo toda la información existente.

<?xml version="1.0" encoding="utf-8" ?>
<frutas>
  <fruta id="1"
         nombre="PERA"
         cantidad="200"
         imagen="imagenes/auto.jpg"></fruta>
  <fruta id="2"
         nombre="BANANA"
         cantidad="430"
         imagen="imagenes/auto.jpg"></fruta>
  <fruta id="3"
           nombre="SANDIA"
         cantidad="802"
         imagen="imagenes/auto.jpg"></fruta>
  <fruta id="4"
           nombre="NARANJA"
         cantidad="488"
         imagen="imagenes/auto.jpg"></fruta>
</frutas>

      6.-Guarde el archivo XMLFrutas.xml y ciérrelo.

Mostrar datos XML en un control de lista


Para hacer que los datos estén disponibles para los controles en una página Web ASP.NET, se utiliza un control de origen de datos.

Para configurar el acceso a datos al archivo .xml

  1. Abra el archivo Default.aspx y después cambie a la vista Diseño.
  2. En el Cuadro de herramientas, desde el grupo Datos, arrastre un control XmlDataSource a la página.
  3. En el menú XmlDataSourceTareas, haga clic en Configurar origen de datos.
    Aparece el cuadro de diálogo Configurar origen de datos<DataSourceName>.
  4. En el cuadro Archivo de datos, escriba ~/App_Data/XMLFrutas.xml.
  5. Haga clic en Aceptar.

Para utilizar un control GridView para una presentación básica de datos XML

  1. En el Cuadro de herramientas, desde el grupo Datos, arrastre un control GridView a la página.
  2. En el menú Tareas de GridView, en la lista Elegir origen de datos, haga clic en XmlDataSource1.
  3. Presione CTRL+F5 para ejecutar la página.
    La página muestra los datos XML en una cuadrícula.

lunes, 24 de agosto de 2015

XML

RESUMEN

XML proviene de eXtensible Markup Language (“Lenguaje de Marcas Extensible”).
XML fue diseñado para describir los datos.
XML es una herramienta en software y en hardware independiente para llevar información.
El XML es una adaptación del SGML (Standard Generalized Markup Language), un lenguaje que permite la organización y el etiquetado de documentos. Esto quiere decir que el XML no es un lenguaje en sí mismo, sino un sistema que permite definir lenguajes de acuerdo a las necesidades. El XHTML, el MathML y el SVG son algunos de los lenguajes que el XML tiene la capacidad de definir.XML es un lenguaje de marcas muy similar a HTML
XML fue diseñado para describir los datos, no mostrar los datos
Etiquetas XML no están predefinidas. Debe definir sus propias etiquetas
XML está diseñado para ser auto-descriptiva
XML es una Recomendación del W3C

SINTAXIS

Todos los elementos XML debe tener una etiqueta de cierre
En XML, es ilegal para omitir la etiqueta de cierre. Todos los elementos deben tener una etiqueta de cierre:
<p>This is a paragraph.</p>
<br />
XML etiquetas son mayúsculas y minúsculas
Etiquetas XML mayúsculas y minúsculas. El tag <letra> es diferente de la etiqueta <letra>.
Etiquetas de apertura y de cierre deben ser escritos con el mismo caso:
<Message>ESTO ES INCORRECTO</message>
<message>ESTO ES CORRECTO</message>
Elementos XML deben anidarse correctamente
En HTML, puede ver los elementos incorrectamente anidados:
b><i>Este texto está en negrita y cursiva</b></i>
En XML, todos los elementos deben estar anidados correctamente dentro de unos a otros:
<b><i>Este texto está en negrita y cursiva</i></b>
En el ejemplo anterior, "correctamente anidado" simplemente significa que desde el <i> elemento se abre dentro de la <b> elemento, que debe estar cerrado dentro de la <b> elemento.
Documentos XML debe tener un elemento raíz
Los documentos XML deben contener un elemento que es el padre de todos los demás elementos. Este elemento se llama la raíz elemento.
<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>
Los valores XML atributo debe ser presupuestados
Elementos XML pueden tener atributos en pares nombre / valor al igual que en HTML.
En XML, los valores de los atributos deben estar siempre entre comillas.
INCORRECTO:
<note date=12/11/2007>
  <to>Tove</to>
  <from>Jani</from>
</note>
CORRECTO:
<note date="12/11/2007">
  <to>Tove</to>
  <from>Jani</from>
</note>
Entidad Referencias
Algunos caracteres tienen un significado especial en XML.
Si coloca un personaje como "<" dentro de un elemento XML, se generará un error porque el intérprete interpreta como el inicio de un nuevo elemento.
Esto generará un error de XML:
<message>if salario < 1000 then</message>
Para evitar este error, sustituya el carácter "<" con una referencia de entidad:
<message>if salario &lt; 1000 then</message>
Hay 5 referencias a entidades predefinidas en XML:
&lt;<less than
&gt;>greater than
&amp;
&ampersand 
&apos;'apostrophe
&quot;"quotation mark
Nota: Sólo los caracteres "<" y "y" son estrictamente ilegal en XML. El mayor de carácter es legal, pero es un buen hábito para reemplazarlo.
Los comentarios en XML
La sintaxis para escribir comentarios en XML es similar a la de HTML.
<! - Esto es un comentario ->
De espacio en blanco se conserva en XML
XML no trunca múltiples espacios en blanco en un documento (mientras HTML trunca múltiples espacios blancos a un solo espacio en blanco):
XML:
Hello           Tove
HTML:
Hello Tove
Tiendas XML de New Line como LF
Aplicaciones de Windows almacenan una nueva línea como: retorno de carro y avance de línea (CR + LF).
Unix y Mac OSX utiliza LF.
Sistemas Viejo Mac utiliza CR.
XML almacena una nueva línea como LF.
XML bien formado
Documentos XML que se ajustan a las reglas de sintaxis anteriores se dice que los documentos XML "bien formada".

Lenguaje de manipulación de datos XML


El Lenguaje de manipulación de datos XML (XML DML) es una extensión del lenguaje XQuery. Según W3C, el lenguaje XQuery carece de la parte de manipulación de datos (DML). El lenguaje XML DML que se presenta en este tema, así como el lenguaje XQuery, proporciona un lenguaje de consultas y modificación de datos completamente funcional que se puede utilizar con el tipo de datos xml.
XML DML agrega a XQuery las siguientes palabras clave, donde se distingue entre mayúsculas y minúsculas:
insert
delete
replace value of
Como se describe en Tipo de datos XML y columnas (SQL Server), se pueden crear variables y columnas de tipo xml y asignarles documentos o fragmentos XML. Para modificar o actualizar estas instancias XML, realice el siguiente procedimiento:
Utilice el método modify() del tipo de datos xml.
Especifique las instrucciones XML DML correspondientes en el método modify().
Tenga en cuenta que no se pueden insertar ni eliminar algunos atributos, y a veces tampoco es posible modificar sus valores. Por ejemplo:
Para xml con tipo o sin tipo, los atributos son xmlns, xmlns:* y xml:base.
Solo para xml con tipo, los atributos son xsi:nil y xsi:type.
Entre otras restricciones se pueden citar las siguientes:
Para xml con o sin tipo, se producirá un error al insertar el atributo xml:base.
Para xml con tipo, se producirá un error al eliminar y modificar el atributo xsi:nil. Para xml sin tipo, se puede eliminar el atributo o modificar su valor.
Para xml con tipo, se producirá un error si se modifica el valor del atributo xs:type. Para xml sin tipo, se puede modificar el valor del atributo.
Cuando se modifica una instancia XML con tipo, el formato final debe ser una instancia válida de ese tipo. En caso contrario, se devuelve un error de validación.

XML <--> HTML

La diferencia entre XML y HTML
XML no es un sustituto de HTML.
XML y HTML fueron diseñados con diferentes objetivos:
XML fue diseñado para describir los datos, con especial atención a los datos que se
HTML fue diseñado para mostrar los datos, con el foco en el aspecto de datos
HTML es sobre la visualización de la información, mientras que XML es de llevar la información.
XML no es un reemplazo para HTML
XML es un complemento a HTML.
Es importante entender que XML no es un sustituto de HTML. En la mayoría de las aplicaciones web, XML se utiliza para describir los datos, mientras que HTML se utiliza para dar formato y mostrar los datos.
Mi mejor descripción de XML es la siguiente:
XML es una herramienta en software y en hardware independiente para llevar información.

domingo, 23 de agosto de 2015

Motor de vista RAZOR y ASPX

Razor 

Principales Reglas de sintaxis para C #

  • Bloques de código Razor están encerrados en @ {...}
  • Expresiones en línea (variables y funciones) comenzar con @
  • Declaraciones Código terminan con punto y coma
  • Las variables se declaran con la palabra clave var
  • Las cadenas se encierran entre comillas
  • C # código es sensible a mayúsculas
  • Archivos de C # tienen la extensión .cshtml
EJEMPLO

@{ var miMensaje = "Hola Mundo"; }

<p>El valor de miMensaje es: @miMensaje</p> 


@{
var saludo = "Bienvenido al Sitio!";
var dia = DateTime.Now.DayOfWeek;
var mensajeSaludo = saludo + " Aqui en Tarija es: " + dia;
}

<p>El Saludo es: @mensajeSaludo</p>

COMO FUNCIONA?



Razor es una sintaxis de programación sencillo para incrustar código del servidor de páginas web.
Sintaxis Razor se basa en el marco ASP.NET, la parte del Marco de Microsoft.NET que está diseñado específicamente para la creación de aplicaciones web.  
La sintaxis Razor le da todo el poder de ASP.NET, pero utiliza una sintaxis simplificada que es más fácil para saber si usted es un principiante, y te hace más productivo si usted es un experto.
Páginas web de afeitar puede ser descrito como páginas HTML con dos tipos de contenido: contenido HTML y código de la maquinilla de afeitar.
Cuando el servidor lee la página, se ejecuta el código Razor primero, antes de enviar la página HTML al navegador. El código que se ejecuta en el servidor puede realizar tareas que no se pueden hacer en el navegador, por ejemplo, el acceso a una base de datos del servidor. Código del servidor puede crear contenido HTML dinámico sobre la marcha, antes de ser enviada al navegador. Visto desde el navegador, el HTML generado por el código del servidor no es diferente de contenido HTML estático.
Páginas web ASP.NET con sintaxis Razor tienen la cshtml extensión de archivo especial (Razor usando C #) o vbhtml (Razor usando VB).

ASPX


COMO FUNCIONA?

Fundamentalmente una página ASP.NET es lo mismo que una página HTML.
Una página HTML tiene la extensión .htm. Si un navegador solicita una página HTML desde el servidor, el servidor envía la página al navegador sin ninguna modificación.
Una página ASP.NET tiene el .aspx extensión. Si un navegador solicita una página ASP.NET, el servidor procesa cualquier código ejecutable en la página, antes de que el resultado se envía de vuelta al navegador.
La página de ASP.NET anterior no contiene ningún código ejecutable, por lo que nada se ejecuta. En los próximos ejemplos vamos a añadir un poco de código ejecutable a la página de demostrar la diferencia entre páginas HTML estáticas y páginas dinámicas ASP.

Por ejemplo, usando ASPX en una vista podemos hacer lo siguiente:
<%
   var name = "Pepe";
%>
<p>Hola, <%= name %></p>

RAZOR VS ASPX

ASP.NET MVC utiliza view engines para generar las vistas y desde MVC3 disponemos de dos motores de vistas incluidos para utilizar directamente.
  • ASPX:  Es el motor de vistas de ASP.NET con tipos personalizados “ViewPage, ViewMasterPage y ViewUserControl” que heredan  de los tipos  de páginas existentes .aspx, .ascx, .master.
  • Razor: Motor de vistas más cercano para los programadores de C# o VB
  • Otros:
La principal ventaja de las vistas escritas con Razor respecto a las que usan sintaxis ASPX es que son más concisas, sencillas de codificar, y más legibles. Pero aparte de esto, el resto de aspectos son idénticos a ASPX:
- Tenemos páginas maestras (se llaman "Layouts" en razor).
- El rendimiento va a ser el mismo, poco más o menos.
- El código HTML generado es el mismo (¡el que tú generes!).
- Las rutas, que no tienen absolutamente nada que ver con la sintaxis usada en las vistas, son las mismas. Es decir, usando el sistema de routing (capa Controlador) puedes generar rutas muy limpias y amigables independientemente de la sintaxis que elijas para escribir las vistas.

martes, 18 de agosto de 2015

Métodos en Linq Para Listar, Insertar, Actualizar, Buscar y Eliminar

1.- Listar

Para cada operación crearemos un método comenzaremos con el método que lista todos los registros de nuestra tabla.

public static List<Personas> CargarDatos()
{
    using (DatabaseEntities bd = new DatabaseEntities())
    {
       var datos = (from p in bd.Personas select p).ToList();
 
        return datos;
    }
}
Public Shared Function CargarDatos() As List(Of Personas)
      Using bd As New DatabaseEntities()
          Dim datos = (From p In bd.Personas Select p).ToList()
 
          Return datos
      End Using
  End Function

2.- Insertar

public static void Agregar(string nombre, string apellido, int edad,string profesion)
      {
          using (DatabaseEntities bd = new DatabaseEntities())
          {
              bd.Personas.AddObject(new Personas { Nombre = nombre, Apellido = apellido, Edad = edad, Profesion = profesion });
              bd.SaveChanges();
          }
      }
Public Shared Sub Agregar(ByVal nombre As String, ByVal apellido As String, ByVal edad As Integer, ByVal profesion As String)
      Using bd As New DatabaseEntities()
          bd.Personas.AddObject(New Personas() With {.Nombre = nombre, .Apellido = apellido, .Edad = edad, .Profesion = profesion})
          bd.SaveChanges()
      End Using
  End Sub

3.- Actualizar

public static void Editar(int id,string nombre, string apellido, int edad, string profesion)
      {
          using (DatabaseEntities bd = new DatabaseEntities())
          {
              var editar = (from p in bd.Personas
                            where p.Id == id
                            select p).Single();
 
              editar.Nombre = nombre;
              editar.Apellido = apellido;
              editar.Edad = edad;
              editar.Profesion = profesion;
              bd.SaveChanges();
          }
      }
Public Shared Sub Editar(ByVal id As Integer, ByVal nombre As String, ByVal apellido As String, ByVal edad As Integer, ByVal profesion As String)
      Using bd As New DatabaseEntities()
          Dim editar = (From p In bd.Personas
                        Where p.Id = id
                        Select p).Single()
 
          editar.Nombre = nombre
          editar.Apellido = apellido
          editar.Edad = edad
          editar.Profesion = profesion
          bd.SaveChanges()
      End Using
  End Sub

4.- Buscar

public static List<Personas> Buscar(string nombre)
{
    using (DatabaseEntities bd = new DatabaseEntities())
    {
        var buscar = (from p in bd.Personas
                      where p.Nombre.StartsWith(nombre)
                      select p).ToList();
 
        return buscar;               
    }
}
Public Shared Function Buscar(ByVal nombre As String) As List(Of Personas)
      Using bd As New DatabaseEntities()
          Dim busca = (From p In bd.Personas
                       Where p.Nombre.StartsWith(nombre)
                       Select p).ToList()
 
          Return busca
      End Using
  End Function

5.- Eliminar

public static void Eliminar(int id)
      {
          using (DatabaseEntities bd = new DatabaseEntities())
          {
              var eliminar = (from p in bd.Personas
                              where p.Id==id
                              select p).Single();
 
              bd.DeleteObject(eliminar);
              bd.SaveChanges();
          }
      }
Public Shared Sub Eliminar(ByVal id As Integer)
      Using bd As New DatabaseEntities()
          Dim eliminar = (From p In bd.Personas
                          Where p.Id = id
                          Select p).Single()
 
          bd.DeleteObject(eliminar)
          bd.SaveChanges()
      End Using
  End Sub