Chúng tôi có ứng dụng Windows desktop trưởng thành được viết bằng C++. GUI của ứng dụng nằm trên đỉnh của một cửa sổ DLL mà hầu hết các công việc cho GUI (đó là loại động cơ). Nó cũng được viết bằng C++. Chúng tôi đang xem xét việc chuyển ứng dụng Windows thành ứng dụng dựa trên web vì nhiều lý do khác nhau.Chuyển đổi từ ứng dụng dành cho máy tính để bàn được viết bằng C++ sang ứng dụng dựa trên web
Điều tôi muốn tránh là phải viết CGI cho ứng dụng dựa trên web này trong C++. Đó là, tôi thà có sức mạnh của một ngôn ngữ 4G như Python hoặc ngôn ngữ .NET để tạo phiên bản dựa trên web của ứng dụng này. Vì vậy, câu hỏi là: cho rằng tôi cần phải sử dụng một DLL C + + trên backend để làm công việc của ứng dụng ngăn xếp công nghệ nào bạn muốn giới thiệu cho ngồi giữa trình duyệt của người dùng và là C + + dll? Chúng ta có thể giả định rằng máy chủ web sẽ là Windows.
Một số tùy chọn:
- Viết một lớp COM trên đầu trang của các cửa sổ DLL sau đó có thể được truy cập thông qua NET và sử dụng ASP.NET cho giao diện người dùng
- Truy cập diễn đàn xuất khẩu giao diện DLL trực tiếp từ. NET và sử dụng ASP.NET cho giao diện người dùng.
- Viết thư viện Python tùy chỉnh bao bọc cửa sổ DLL để phần còn lại của mã có thể được viết.
- Viết CGI sử dụng C++ và C++ - khung MVC dựa như Wt
Mối quan tâm:
- Tôi không muốn sử dụng C++ cho khuôn khổ web nếu nó có thể tránh được - Tôi nghĩ rằng ngôn ngữ như Python và C# đơn giản hơn và hiệu quả hơn về thời gian phát triển.
- Tôi lo ngại rằng mã được quản lý và không được quản lý của tôi trộn với một trong các giải pháp .NET tôi đang yêu cầu rất nhiều vấn đề nhỏ khó gỡ rối (bằng chứng hoàn toàn giai thoại)
- Tương tự như vậy khi sử dụng một lớp Python. Bất cứ điều gì đó là hơi ra khỏi con đường bị đánh đập như lo lắng cho tôi trong đó tôi không có nhiều bằng chứng một cách này hay cách khác nếu đây là một giải pháp lâu dài khả thi.
Bằng "ứng dụng web", tôi giả sử bạn có nghĩa là HTML/CSS/Javascript, thay vì RIA như Flash hoặc Silverlight? –
Tôi làm, vâng. Ứng dụng cuối cùng có thể chứa một số phần tử flash/sl nhưng chúng không phải là nền tảng. – Karim