14/9/16

Crear servicio en Windows:

1 - Nuevo proyecto de tipo: Installed → Visual C# → Classic Desktop → Windows Service.
2 - Saca un editor en donde poner componentes pero lo más importante es poner la propiedad (F4) “ServiceName”. Esta propiedad será el nombre que tiene el servicio en Windows. No será el nombre del ejecutable.
3 - Añadir un “Instalador” se hace con “Add Instaler” en la parte baja de la pestaña de propiedades. No sé exáctamente para qué sirve, pero ahí podremos poner una descripción del servicio y algunas propiedades interesantes más, pero si no se añade esto, luego no se “Instala” el servicio.
4 - “Instalar el Servicio”. No se puede ejecutar directamente, hay que instalarlo y luego iniciarlo. Para instalarlo hay que ejecutar: InstallUtil con el nombre del fichero ejecutable.
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe .\PCSService.exe

5 - “Arrancar el Servicio”. Se hace con net start y el nombre del servicio que hemos puesto en el paso 2.
net start XviConSl

Nota final:
Si en las propiedades del Servicio hemos puesto "AutoLog" a true (que viene por defecto) podremos ver con el visor de eventos (ejecutar "eventvwr" en cmd) mensajes del servicio al instalarse, iniciar, parar tanto en la parte de "sistema" como en la de "aplicaciones".

 

24/8/16

Html y css. Esqueleto página centrada horizontalmente

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
 <head> 
  <style> 
   div.clBloqueEncabezado{ 
                  background-color: cyan; 
    text-align: center; 
   } 
   div.clEncabezado{
    display:inline-block;
    background-color:green; 
    padding:0.5em; 
   } 
   div.clCuerpo { 
    text-align: center; 
   } 
   div.clMenu { 
    display: inline-block; 
    background-color: lightblue; 
   } 
   div.clPanelPrincipal { 
    display: inline-block; 
    background-color: lightcoral; 
   } 
   div.clBloquePie { 
    background-color: aquamarine; 
    text-align: center; 
   } 
   div.clPie{ 
    display:inline-block; 
    background-color:green; 
    padding:0.5em; 
   } 
  </style> 
 </head> 
 <body> 
  <div class="clBloqueEncabezado"> 
   <div class="clEncabezado"> 
    Encabezado 
   </div>
  </div> 
  <div class="clCuerpo"> 
   <div class="clMenu"> 
    <h2>Menú</h2> 
    <ul> 
     <li>Uno</li> 
     <li>Dos</li> 
     <li>Tres</li> 
    </ul> 
   </div> 
   <div class="clPanelPrincipal">panelPrincipal</div> 
  </div> 
  <div class="clBloquePie">
   <div class="clPie">Pie</div> 
  </div> 
 </body> 
</html>

19/8/16

Buscar con grep

grep -l -r -i --include="*.cs" "tExto a buscar" .
(Ojo que hay un punto al final)
  • -l que muestre solo el nombre
  • -r que busque en los directorios recursivamente.
  • -i CaseInsensitive. Que no distinga mayúsculas de minúsculas.
  • --include="*.cs". Tipos de fichero a buscar.
  • El punto al final es "Donde" buscar. En este caso en el directorio actual.

    (Si no se pone da un error extraño)

    grep: (entrada estándar): Not enough space

Para windows se consigue aquí


29/6/16

Hola mundo con C# Interactive de Visual Studio 2015

> #r "System.Windows.Forms" //Cargar el ensamblado
> using System.Windows.Forms; //Usar el Namespace
> MessageBox.Show("Hola"); //Mostrar el mensaje

9/6/16

Incluir fichero css en código con JSF.

Definiendo en el código xhtml la etiqueta h con
xmlns:h="http://java.sun.com/jsf/html"

Escribimos:

<h:outputStylesheet library="css" name="Estilos.css"  />

En cualquier parte del código

Lo que genera incluye en la cabecera, y con la ruta adecuada, y ... con parámetros que no entiendo un enlace
<link type="text/css" rel="stylesheet"
href="/proyecto/javax.faces.resource/Estilos.css.xhtml?ln=css" />
Pero el caso es que funciona. Si se usa algún estilo en la página lo usa.
Ejemplo:
<p:panelGrid columns="2" columnClasses="alinearArriba">

20/4/16

Conectar Java con SqlServer.

  1. Abrir SqlServer para conexión por tcp/ip
  2. Para SqlServer 2008 sería:

    Ejecutar: Microsoft SQL Server 2008>Herramientas de configuración>Administración de Configuración de SQL Server

    Desplegar "Configuración de red de SQL Server", "Protocolos de " [Nombre instancia], y en TCP/IP dejar como habilitado

  3. Conseguir el jar adecuado.
  4. página de Microsoft sobre el tema

    Para la Java 1.7 corresponde el sqljdbc41.jar que habría que bajar de Internet

  5. La cadena de conexión
  6. Aquí está la madre del cordero.

    En mi caso "jdbc:sqlserver:" es siempre fijo.

    //nombre servidor:numero de puerto

    instanceName=nombre de instancia(si hay varias en el mismo equipo es fundamental ponerla)

    si se trabaja con autenticación de sqlServer (no Directorio Activo), user y password

    En resumen:

    "jdbc:sqlserver://localhost:1433;instanceName=SQLEXPRESS2008;databaseName=nombreBD;user=sa;password=secreta";

Con esto funciono.

Añado código de ejemplo:(Sacado de uno de los ejemplos de Microsoft que vienen junto al .jar para conectarse)


import java.sql.*;


public class CrudSqlServer1 {

 public static void main(String[] args) {
  // Create a variable for the connection string.
  String connectionUrl = "jdbc:sqlserver://localhost:1433;instanceName=SQLEXPRESS2008;databaseName=nombreBD;user=sa;password=secreta";

  // Declare the JDBC objects.
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  
         try {
          // Establish the connection.
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
              con = DriverManager.getConnection(connectionUrl);
            
              // Create and execute an SQL statement that returns some data.
              String SQL = "SELECT * FROM Tabla1";
              stmt = con.createStatement();
              rs = stmt.executeQuery(SQL);
            
              // Iterate through the data in the result set and display it.
              while (rs.next()) {
               System.out.println(rs.getString(4) + " " + rs.getString(6));
              }
              System.out.println("FIN");
         }
        
  // Handle any errors that may have occurred.
  catch (Exception e) {
   e.printStackTrace();
  }

  finally {
   if (rs != null) try { rs.close(); } catch(Exception e) {}
       if (stmt != null) try { stmt.close(); } catch(Exception e) {}
       if (con != null) try { con.close(); } catch(Exception e) {}
  }

 }

}

19/3/16

Vim. Fijar los espacios de un tab. 8 es mucho.

Hay que poner las dos variables.
:set ts=4
:set sw=4
Siempre el mismo número. Es para el tab y el >>. que por lo visto, no son lo mismo.

Estructura base html a 19/03/2016

  1. Bajar jQuery
  2. 4 ficheros: Los "min" para producción (con el javascript comprimido) y los normales para depuración Para cada uno habría que considerar las versiones 1.X compatibles con Explorers 6,7 y 8 y los de la 2.X que no soportan esos navegadores Download jQuery
  3. Bajar bootstrap
  4. Baja todas las versiones (min y normal) Download Bootstrap
  5. Página vacía
  6. Copiado de: https://openwebinars.net/tutorial-bootstrap-3-introduccion-e-instalacion/ <!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!--Con esto garantizamos que se vea bien en dispositivos móviles--> <title>Pon un título</title> <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> <!--Llamamos al archivo CSS --> </head> <body> <script src="js/jquery.min.js"></script> <!-- Importante llamar antes a jQuery para que funcione bootstrap.min.js --> <script src="js/bootstrap.min.js"></script> <!-- Llamamos al JavaScript de Bootstrap --> </body> </html>