30.8.09

Microsoft technology free training resources - Recursos de formación gratuíta para programas de Microsoft

[English/Inglés]

Microsoft has a good policy. Every month, Microsoft generates a lot of free training resources.

In .NYC's blog, I have found some training resources links.

You can see it here.


[Español /Spanish]

Una buena política de Microsoft es generar un gran número de recursos de formación gratuítos.

En el blog de .NYC he encontrado un buen número de enlaces a múltiples recursos de formación.

Pongo la traducción para las personas que no saben inglés. Traducción del artículo original.

Videos "How Do I"
Estos videos de corta duración (10 - 15 minutos) están enfocados a mostrar cómo se realiza una tarea concreta con las herramientas de Microsoft.

Webcasts de TechNet
Videos grabados de presentaciones de productos, charlas y demostraciones.La duración de estos videos es de 60 - 90 minutos

Podcasts de Technet
Los podcasts con archivos de audio con presentaciones sobre tecnología Microsoft. Puedes oirlos online o descargártelos en múltiples formatos.

Virtual Labs
Prácticas con un terminal virtual y guía paso a paso de autoaprendizaje para aprender a trabajar con las herramientas de Microsoft.

eLearning Snacks
Videos cortos creados por expertos de Microsoft.

Foro TechNet
Para poder encontrar respuesta a tus dudas o encontrar las respuestas que ya se hayan dado.

Radio TechNet
Radio a través de Internet donde encontrar más información de la tecnología Microsoft.

TechNet Centro de Evaluación y Descarga de Productos
Sitio web donde poder descargarte los productos de Microsoft para aprender a utilizarlos.

TechNet Edge
Videos de presentaciones y entrevistas con importantes profesionales en tecnología Microsoft.

20.8.09

Windows Azure Training Kit = Formación gratis en Windows Azure

En el blog de Jorge Serrano (uno de los mejores blogs sobre tecnología Microsoft) he visto este artículo donde podemos encontrar formación gratuíta sobre Windows Azure.


Hace unos días se ha publicado la última versión del Windows Azure Training Kit donde podréis encontrar laboratorios, documentación técnica, tutoriales, etc...

Los requerimientos mínimos son Microsoft .NET Framework 3.5 SP1, Microsoft Visual Studio 2008 SP1 y Microsoft Powershell.

Para os que no habéis oído hablar de Windows Azure, es el nombre de la futura plataforma de servicios de Microsoft basado en computación en la nube (Cloud Computing).

Os paso los enlaces:

- descargar Windows Azure Training Kit (111 - 228 MB).

- artículo en el blog de Jorge Serrano.

19.8.09

Article: How to export data to Excel in .NET – Artículo: Cómo exportar datos a excel en .NET

[English/Inglés]

If you want to export data to Excel file in .NET :


Inputs Outputs Profits
---------------------------------------
12345 10000 2345
22345 10000 12345
32345 10000 22345


I am going to let you this example in order that you can see hot to do it.


[Español/Spanish]

Si quiere exportar datos a excel en .NET:


Inputs Outputs Profits
---------------------------------------
12345 10000 2345
22345 10000 12345
32345 10000 22345


Le dejo este ejemplo para que pueda ver cóom hacerlo.


[Example /Ejemplo]

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.Reflection;

namespace PruebaExcel
{
class Program
{

private static void formatearHoja(Excel.Worksheet hoja)
{

Excel.Range titulo = (Excel.Range)hoja.Rows.Cells[1, 1];
titulo.Font.Size = 14.0;
titulo.Font.Name = "HelveticaNeueLT Com 95 Blk";

Excel.Range tituloColumna = (Excel.Range)hoja.Rows.Cells[7, 1];
tituloColumna.Borders.LineStyle = XlLineStyle.xlDouble;
tituloColumna.ColumnWidth = 20;
tituloColumna.Font.Bold = true;

tituloColumna = (Excel.Range)hoja.Rows.Cells[7, 2];
tituloColumna.Borders.LineStyle = XlLineStyle.xlDouble;
tituloColumna.ColumnWidth = 60;
tituloColumna.Font.Bold = true;

tituloColumna = (Excel.Range)hoja.Rows.Cells[7, 3];
tituloColumna.Borders.LineStyle = XlLineStyle.xlDouble;
tituloColumna.ColumnWidth = 20;
tituloColumna.Font.Bold = true;
}


static void Main(string[] args)
{

String ingreso, gasto;

Excel.Application excel = new Excel.Application();

Excel.Workbook libro = excel.Workbooks.Add(Missing.Value);

Excel.Worksheet hoja = (Excel.Worksheet)libro.ActiveSheet;
hoja.Name = "Excel .NET";

formatearHoja(hoja);

// cabecera
hoja.Cells[1, 1] = "EMPINFO";
hoja.Cells[2, 1] = "Talavera de la Reina - Toledo - Spain";

// date - fecha
hoja.Cells[4, 1] = "Date / Fecha: " + DateTime.Now.ToShortDateString();

// titles - titulos
hoja.Cells[7, 1] = "Inputs / Ingresos";
hoja.Cells[7, 2] = "Outputs / Gastos";
hoja.Cells[7, 3] = "Profits / Beneficio";



// insert aleatory data - metemos datos aleatorios
Random rand = new Random();

for (int i = 0; i < 5; i++)
{
ingreso = rand.Next(2000000).ToString();
gasto = rand.Next(2000000).ToString();
hoja.Cells[i + 8, 1] = ingreso;
hoja.Cells[i + 8, 2] = gasto;
hoja.Cells[i + 8, 3] = (Int32.Parse(ingreso) - Int32.Parse(gasto)).ToString();

}

// save excel file - guardar archivo excel
hoja.SaveAs(@"C:\TEMP\Informe_" + DateTime.Now.Day + "_" +
DateTime.Now.Month + "_" + DateTime.Now.Year + "_" +
DateTime.Now.Hour + "_" + DateTime.Now.Minute + "_" +
DateTime.Now.Second + "_" + rand.Next(int.MaxValue) + ".xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value);

excel.Visible = true;

System.Console.Out.WriteLine("[English] Excel file generated succesfully\n\nPush Enter to close program.\n");
System.Console.Out.WriteLine("[Spanish] Archivo Excel generado con éxito\n\nPulse Enter para cerrar el programa.\n");
System.Console.In.Read();

excel.Quit();
}
}
}

6.8.09

Article: Error calling PL SQL stored procedure in .NET - Artículo: Error llamando a un procedimiento almacenado PL SQL desde .NET

[English/ Inglés]

Problem:

When PL SQL stored procedure is called from C# code, it returns this error:

ORA-06550: line 1, column 7:
PLS-00201: identifier 'modificar_prueba' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


PL SQL stored procedure:

create or replace package body PRUEBA is

PROCEDURE modificar_ prueba (p_co_prueba varchar2, p_ds_prueba varchar2)
AS
BEGIN

INSERT INTO TB_PRUEBA(CO_PRUEBA,DS_ PRUEBA)
VALUES(p_co_prueba, p_ds_prueba);

END;

end PRUEBA;


C# code:

OracleCommand execModificarCodCap = new OracleCommand();
execModificarCodCap.Connection = oracleConnection1;

execModificarCodCap.CommandText = " modificar_prueba";

execModificarCodCap.CommandType = CommandType.StoredProcedure;

execModificarCodCap.Parameters.Add(new OracleParameter("p_co_prueba ", OracleType.VarChar)).Direction = ParameterDirection.Input;
execModificarCodCap.Parameters.Add(new OracleParameter("p_ds_prueba ", OracleType.VarChar)).Direction = ParameterDirection.Input;
execModificarCodCap.Parameters.Add(new

execModificarCodCap.Parameters["p_co_prueba"].Value = textBoxCodigoPrueba.Text;
execModificarCodCap.Parameters["p_ds_prueba"].Value = textBoxDescripcionPrueba.Text;

execModificarCodCap.ExecuteNonQuery();

MessageBox.Show("Se almacenaron los cambios”,
"Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);

//Se cierra la conexión de BD
oracleConnection1.Close();


Cause:

In the instruction:

execModificarCodCap.CommandText = "modificar_prueba";

The package has not been defined and this is the reason because Oracle can not find it.


Solution:

Add package “PRUEBA” to the instruction:

execModificarCodCap.CommandText = "modificar_prueba";

The correct intruction is:

execModificarCodCap.CommandText = "PRUEBA.modificar_prueba";



More information:

MSDN article: Accessing Oracle 9i Stored Procedures Using ADO.NET



[Español/ Spanish]

Problema:

Cuando ejecuto un procedimiento almacenado en C# me devuelve el siguiente error:

ORA-06550: line 1, column 7:
PLS-00201: identifier 'modificar_prueba' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


El procedimiento PL SQL es el siguiente:

create or replace package body PRUEBA is

PROCEDURE modificar_ prueba (p_co_prueba varchar2, p_ds_prueba varchar2)
AS
BEGIN

INSERT INTO TB_PRUEBA(CO_PRUEBA,DS_ PRUEBA)
VALUES(p_co_prueba, p_ds_prueba);

END;

end PRUEBA;

El código c# que ejecutó es:

OracleCommand execModificarCodCap = new OracleCommand();
execModificarCodCap.Connection = oracleConnection1;

execModificarCodCap.CommandText = " modificar_prueba";

execModificarCodCap.CommandType = CommandType.StoredProcedure;

execModificarCodCap.Parameters.Add(new OracleParameter("p_co_prueba ", OracleType.VarChar)).Direction = ParameterDirection.Input;
execModificarCodCap.Parameters.Add(new OracleParameter("p_ds_prueba ", OracleType.VarChar)).Direction = ParameterDirection.Input;
execModificarCodCap.Parameters.Add(new

execModificarCodCap.Parameters["p_co_prueba"].Value = textBoxCodigoPrueba.Text;
execModificarCodCap.Parameters["p_ds_prueba"].Value = textBoxDescripcionPrueba.Text;

execModificarCodCap.ExecuteNonQuery();

MessageBox.Show("Se almacenaron los cambios”,
"Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);

//Se cierra la conexión de BD
oracleConnection1.Close();


Causa:

En la instrucción:

execModificarCodCap.CommandText = "modificar_prueba";

No se ha definido el paquete donde está el procedimiento y por eso no puede encontrarlo.


Solución:

Añadir el paquete a la instrucción:

execModificarCodCap.CommandText = "modificar_prueba";

El valor correcto sería:

execModificarCodCap.CommandText = "PRUEBA.modificar_prueba";

Más información:

Artículo en MSDN: Accessing Oracle 9i Stored Procedures Using ADO.NET

3.8.09

Article: Error. Microsoft.Office.Interop library cound not be found - Artículo: Error. No se encuentra la referencia Microsoft.Office.Interop

[English /Inglés]

Description:

I have a project (developed with C#) that it has a reference to Microsoft.Office.Interop library. When this project has been copied to other machine, it failed.

When I compiled the project in this new machine, it returned error:

"Microsoft.Office.Interop library could not be found".


Cause:

This two machines have two different Office versions.

When this project was copied to the new machine, references were old libraries.


Solution:

Add correct references from this directory:

C:/WINNT/Microsoft .NET/Primary Interop Assemblies/

In my case, I had to add Microsoft.Office.Interop.Excel.dll library.


[Español/Spanish]

Descripción:

Un proyecto desarrollado en C# que utiliza la libreria Microsoft.Office.Interop en una máquina, al ser llevado a otra máquina (para otro desarrollador) falla.

Al compilar la aplicación en la nueva máquina da error e informa de que no se pudo encontrar la referencia Microsoft.Office.Interop.


Causa:

Cuando dos máquinas tienen diferentes versiones de Office ocurre que las librerias no tienen la misma versión y esto da error.

Al llevar el proyecto al segundo equipo, las referencias eran las de la máquina vieja.


Solución:

Agregar la referencia correcta desde el directorio:

C:/WINNT/Microsoft .NET/Primary Interop Assemblies/

En mi caso la dll que tenía que coger es Microsoft.Office.Interop.Excel.dll.

1.8.09

E-learning, malos hábitos en el trabajo y aplicaciones táctiles en Windows 7

Cosas útiles:

- artículo sobre infraestructuras tecnológicas de E-learning en entornos académicos y las situaciones de interoperabilidad de estos sistemas.

- artículo en el blog de Alex Jiménez sobre los 10 malos hábitos a evitar en el trabajo.

- En el blog de la Comunidad de Desarrollo ISV, he encontrado este artículo que explica cómo pasar nuestras aplicaciones para que puedan ser utilizadas con una pantalla táctil (touch aplication) en Windows 7.

Disfrútenlo.