Compiler as a Service – Parte 1

Pensaba acerca de las cosas que podríamos hacer si el compilador de C# fuese un assembly reutilizable (Compilar as a service). Lo primero, y menos original, que se me ocurrió es que podríamos tener algo como JSON pero para C# en lugar de Java Script.

   1: class Program

   2: {

   3:     static void Main(string[] args)

   4:     {

   5:         const string data = @"results[""professional""] = 

   6:         new

   7:         {

   8:             FirstName = ""Juan Pablo"",

   9:             LastName = ""Ibañez"",

  10:             Certifications = new[]

  11:             {

  12:                 new { Provider=""MSFT"", ExamCode = ""70-536"", Title = ""Application Development Foundation"" },

  13:                 new { Provider=""MSFT"", ExamCode = ""70-505"", Title = ""Application Development Foundation"" },

  14:                 new { Provider=""MSFT"", ExamCode = ""70-563"", Title = ""Application Development Foundation"" }

  15:             },

  16:             

  17:             SayHi = new System.Action(()=> System.Console.WriteLine(""Hi""))

  18:         };";

  19:  

  20:         dynamic professional = CSharpEvaluator.Evaluate(data)["professional"];

  21:         

  22:         Console.WriteLine("First Name: {0}", professional.FirstName);

  23:         Console.WriteLine("Last Name : {0}", professional.LastName);

  24:         foreach (var certification in professional.Certifications)

  25:         {

  26:             Console.WriteLine("tCertification: {0}", certification.Title);

  27:         }

  28:         professional.SayHi();

  29:     }

  30: }

image

Esto abriría realmente muchas posibilidades. Una de las que me atrae más es el sustituir los XMLs. Quizás para guardarlos en una base de datos como entidades completas y hacerlas viajar por la red.

Sin categoría

4 thoughts on “Compiler as a Service – Parte 1

  1. Lo malo es que pierdes la seguridad de tipos y las comprobaciones del compilador, que no es poco.
    Sería ganar flexibilidad, a costa de perder seguridad.

  2. @Matias: sí, JAvaScript es un lenguaje buenísimo, no hay dudas de eso.
    @Cristhian: definitivamente la flexibilidad vs. seguridad, como vos la llamas, es un tema de discusión enorme que lleva muchísimos años. No obstante, no me preocupa demasiado ya que nunca he tenido problemas al usar dynamic. Lo veo más como un temor que como una realidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *