Technical Review of my Book Generative AI in Software Engineering: A Book About a Transforming Discipline

Imagen
The book   Generative AI in Software Engineering , edited by yours truly (José Alfonso Aguilar-Calderón), has finally been published. And no, it’s not just another book full of empty promises about “the future of artificial intelligence,” but a serious, comprehensive, and practical exploration of how generative AI is transforming every corner of software engineering. This project began with a simple but persistent question I kept hearing in academic discussions, classrooms, and even casual conversations with colleagues:   Can generative AI change the way we program?   This book answers yes—and it brings solid arguments and real-world examples to support that claim. What makes this book different? This book doesn’t stay in the purely academic or overly technical sphere. Instead, it strikes a balance between theory, historical context, practical application, and critical reflection. It’s ideal for those of us who live at the intersection of engineering, teaching, and hands-...

Como crear y leer un archivo XML en C#

Hola, la primera entrega para este blog consiste en hacer un sencillo programa en C# con el framework 2.0 que nos permita crear un archivo XML para la configuración de nuestro sistema. Este ejemplo servirá para configurar el acceso a la base de datos de nuestro programa, en este archivo colocaremos la dirección IP, etc, hasta el usuario de la BD, ya cada quien según sus requisitos de seguridad sabrá que incluir y que no en el archivo XML, asi que, comenzamos!! Lo primero que tenemos que hacer es abrir el Visual Studio o SharpDevelop como prefieran y crear un proyecto en donde deberán crear un formulario como este: Les recalco que solo es un ejemplo de caracter ilustrativo (por el asunto de la contraseña y el usuario en el archivo XML). Bien, ahora vamos a crear los métodos que nos servirán para crear el archivo XML.
 private bool fCrearArchivoXml(string sArchivo)
{
bool bCreado = false;
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = (" ");
try
{
using (XmlWriter xmlEscribe = XmlWriter.Create(sArchivo, settings))
{
xmlEscribe.WriteStartElement("ArchivoConfiguracion");
xmlEscribe.WriteStartElement("Configuracion");
xmlEscribe.WriteElementString("IP" , txtIpAddress.Text);
xmlEscribe.WriteElementString("USUARIO", txtUser.Text);
xmlEscribe.WriteElementString("CONTRASENA", txtPassword.Text);
xmlEscribe.WriteElementString("BASEDATOS", txtDataBase.Text);
xmlEscribe.WriteEndElement();
xmlEscribe.WriteElementString("FECHA", DateTime.Now.ToString());
xmlEscribe.WriteEndDocument();
bCreado = true;
xmlEscribe.Flush();
}
}
catch (Exception ex)
{
MessageBox.Show("Error al crear el archivo xml fCrearArchivoXml(): " + ex.Message);
}
return bCreado;
}


En este método definimos las etiquetas que formarán nuestro archivo XML. Ahora, para mandar llamar el método anterior debemos de crear el evento click del botón "Crear", dentro de ese evento colocaremos el llamado a la siguiente función:

private void fGuardar()
{
string sRutaParaGuardarDocumento = "";
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Archivos XML|*.xml|Todos los archivos|*.*";
saveFileDialog1.Title = "Guardar archivo de configuración xml.";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
sRutaParaGuardarDocumento = saveFileDialog1.FileName.ToString();
if(fCrearArchivoXml(sRutaParaGuardarDocumento))
{
MessageBox.Show("Archivo de configuración creado.","Makaveli XCF");
fLimpiarCampos();
txtIpAddress.Focus();
}
}
}
El código anterior se encarga de crear un Save File Dialog para ubicar en que parte queremos guardar el archivo XML cuando lo creamos. Para terminar este sencillo ejemplo solo nos falta validar los campos (que eso no lo explicaré) y la función para abrir y modificar el archivo XML. Para modificar el archivo XML debemos generar el evento en el menu "Archivo" de la ventana de nuestra aplicación, en él, deberemos colocar el llamado a un método nombrado "Abrir", a continuación el código fuente en orden.

void OptLoadClick(object sender, EventArgs e)
{
fAbrir();
}

private void fAbrir()
{
OpenFileDialog dlgNombreArchivo = new OpenFileDialog();
string sRuta = "";
dlgNombreArchivo.Filter = "Archivo de configuración xml|*.xml|Todos los archivos|*.*";
dlgNombreArchivo.Title = "Makaveli XCF.";
try
{
if (dlgNombreArchivo.ShowDialog() == DialogResult.OK)
{
sRuta= dlgNombreArchivo.FileName.ToString();
fObtenerDatosXml(sRuta);
}
}
catch (Exception ex)
{
MessageBox.Show("Error al abrir el archivo de configuración xml." + ex.Message,"Makaveli XCF",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}

private void fObtenerDatosXml(string sRuta)
{
try
{
using (XmlReader reader = XmlReader.Create(sRuta))
{
reader.Read();
reader.ReadStartElement("ArchivoConfiguracion");
reader.ReadStartElement("Configuracion");
reader.ReadStartElement("IP");
txtIpAddress.Text = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("USUARIO");
txtUser.Text = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("CONTRASENA");
txtPassword.Text = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("BASEDATOS");
txtDataBase.Text = reader.ReadString();
reader.ReadEndElement();
reader.ReadEndElement();
reader.ReadStartElement("FECHA");
lblPor.Visible=true;
lblCopyrigth.Text = reader.ReadString();
reader.ReadEndElement();
reader.ReadEndElement();
}
}
catch (FileLoadException ex)
{
MessageBox.Show("Error al obtener datos del archivo xml de respaldo: " + ex.Message);
}
}
Aquí tenemos una imágen del archivo XML creado. Listo, con esto concluimos la primera entrega de mi bog, espero que a alguien le sea útil este código, la próxima entrega será algo fácil, validar los caracteres que teclee el usuario en los campos de un formulario en C#.

Es cuánto. 

Comentarios

Mi foto
José Alfonso Aguilar
Mazatlán, Sinaloa, Mexico
Me gusta aprender y escribir sobre tecnología y desarrollo. Soy Ingeniero en Sistemas Computacionales, trabajo como Profesor-Investigador en la Facultad de Informática Mazatlán, de la Universidad Autónoma de Sinaloa. México. Me gusta combinar la docencia-investigación con el giro profesional del desarrollo de software y gestión de proyectos de innovación.

Entradas más populares de este blog

Historia y versiones de HTML (HyperText Markup Language)

Todo lo que debes saber sobre el Model-View Controller (MVC) para Aplicaciones Web

Hablemos de Propiedad Intelectual