Tôi hiện đang phát triển một ứng dụng mà bạn có thể tạo "chương trình" với nó mà không cần viết mã nguồn, chỉ cần nhấp vào & phát nếu bạn muốn.Tạo mã động
Bây giờ câu hỏi là làm thế nào để tôi tạo một chương trình thực thi từ mô hình dữ liệu của tôi. Có nhiều khả năng nhưng tôi không chắc cái nào là tốt nhất cho tôi. Tôi cần phải tạo ra các hội đồng với các lớp và không gian tên và tất cả mọi thứ có thể là một phần của ứng dụng.
CodeDOM class: Tôi nghe nói về rất nhiều hạn chế và lỗi của lớp này. Tôi cần tạo thuộc tính về tham số phương thức và giá trị trả về. Điều này có được hỗ trợ không?
Tạo mã nguồn C# theo chương trình và sau đó gọi CompileAssemblyFromFile trên đó: Điều này sẽ hoạt động vì tôi có thể tạo bất kỳ mã nào tôi muốn và C# hỗ trợ hầu hết các tính năng CLR. Nhưng điều này sẽ không chậm?
Sử dụng lớp phản chiếu ILGenerator: Tôi nghĩ với điều này tôi có thể tạo mọi mã .NET có thể. Nhưng tôi nghĩ điều này phức tạp hơn và dễ bị lỗi hơn các phương pháp khác?
Có các giải pháp khả thi nào khác không?
EDIT: Công cụ này là chung để phát triển ứng dụng, không bị giới hạn ở một miền cụ thể. Tôi không biết nếu nó có thể được coi là một ngôn ngữ lập trình trực quan. Người dùng có thể tạo các lớp, phương thức, các cuộc gọi phương thức, tất cả các loại biểu thức. Nó sẽ không bị giới hạn rất vì bạn có thể thực hiện hầu hết mọi thứ được phép bằng ngôn ngữ lập trình thực. Hiện tại rất nhiều thứ vẫn phải được người dùng viết dưới dạng văn bản, nhưng mục tiêu cuối cùng là, gần như mọi thứ đều có thể được nhấp cùng nhau.
Bạn có thể đưa ra ví dụ về loại (s) của "chương trình" sẽ được tạo ra từ điều này không? –
Tôi đã cập nhật câu hỏi, vui lòng xem chỉnh sửa của tôi. – codymanix
Tôi vẫn không thể thực sự nhìn thấy những gì bạn đang cố gắng đạt được - nó giống như một DSL hay bạn đang cố gắng tạo ra một ngôn ngữ lập trình cấp cao có mục đích chung đang chạy trên C#? – glenatron