Với tư cách là một người bắt chước C++, điều này thực sự đã làm tôi khó chịu. Tôi luôn thích ý tưởng về "khung độc lập về ngôn ngữ" mà Microsoft đã đưa ra với khoảng một thập kỷ trước. Tại sao họ lại bỏ bóng vào ý tưởng này? Có ai biết lý do đằng sau nó?Tại sao WPF không hỗ trợ C++. NET - cách WinForms hoạt động như thế nào?
Trả lời
Một phần lý do sẽ là hỗ trợ C++ thực ra là hai ngôn ngữ trong một - các biến thể gốc và CLI; rằng tải phát triển thêm đã được thừa nhận bởi đội Visual C++ là lý do mà việc tích hợp MSBuild thích hợp bị trễ (trễ? Tôi chưa kiểm tra trong năm 2008 hoặc sau này) đằng sau các ngôn ngữ khác.
Một phần khác sẽ liên quan đến việc tạo mã trong quá trình biên dịch diễn ra trong bản dựng C# để hỗ trợ ví dụ: ràng buộc "ma thuật"; Tôi đã tìm thấy rằng ngay cả trong F #, bạn không nhận được nó "chỉ xảy ra".
Nó cũng gây lỗi cho tôi, nếu họ đã hỗ trợ nó, chúng tôi có thể di chuyển mã C++ sang GUI mới dễ dàng hơn và rẻ hơn về cơ bản viết lại mọi thứ trong C#. Chi phí của chúng tôi là một tài sản để làm lại các ứng dụng của chúng tôi, chỉ là những gì chúng tôi muốn trong một cuộc suy thoái.
Tôi tưởng tượng lý do là C# là phổ biến (và không phải là nền tảng chéo như C++) nên họ đã quyết định giữ cho nỗ lực phát triển của họ ở mức tối thiểu bắt buộc.
Nếu đó là lý do của tôi thì C++ sẽ không được sử dụng để viết GUI.
Tôi không cố gắng để được snarky ở đây, có thể ai đó có thể cho tôi thấy lỗi của cách của tôi nhưng tôi không nghĩ rằng đó là một ý tưởng tốt. Tôi đang rối tung xung quanh với một ngay bây giờ và phát triển chậm hơn nhiều so với nếu ứng dụng đã được viết bằng C#. Cảm giác của tôi là nếu các tính năng trong C++ Net hoặc chỉ là C++ thông thường được yêu cầu cho ứng dụng, nó có vẻ như là một ý tưởng tốt hơn là tạo một DLL để thực hiện việc nâng hạng nặng và có thể giao tiếp với C#.
đó đơn giản chỉ vì C# có tất cả những nỗ lực đưa vào nó để làm cho nó dễ dàng. Họ có thể làm điều đó với C++, nếu họ muốn. Họ chỉ không. – gbjbaanb
Có lý do chính đáng nào không? –
Có lý do chính đáng để có thời gian chạy đa ngôn ngữ không, nếu nó trở thành quá nhiều công việc để hỗ trợ lập trình GUI bằng tất cả các ngôn ngữ? –
Bạn có thể thực hiện WPF với C++ được quản lý.
Lý do là gần như tất cả lập trình ứng dụng mới hiện được thực hiện bằng JavaScript, Java, VB.NET hoặc C# - tất cả ngôn ngữ GC. Sự nhấn mạnh là chất lượng cao hơn cho một bộ kỹ năng thấp hơn và C++ đòi hỏi quá nhiều từ nhà phát triển, các công ty muốn mọi người viết mã lỗi đăng nhập vào ngày đầu tiên của họ.
C++ cho các ứng dụng chủ yếu để bảo trì các ứng dụng hiện có hoặc khi cần thực hiện hiệu năng cực đoan. Trình điều khiển thiết bị và hệ điều hành vẫn thường được viết bằng C++ nhưng ngay cả khi đang thay đổi (Coyotos là Cbit, E #, Cosmos/Mosa là C#, Singularity/Midori).
- 1. Thư viện hỗ trợ Android hoạt động như thế nào?
- 2. Hỗ trợ Scala XML hoạt động như thế nào?
- 3. WPF INotifyPropertyChanged hoạt động như thế nào?
- 4. .NET profilers hoạt động như thế nào?
- 5. .NET Caching hoạt động như thế nào?
- 6. Làm cách nào để tạo các ứng dụng .net, WPF, WinForms, v.v. của tôi hoạt động trên hệ thống Windows 8 được hỗ trợ ARM?
- 7. Ruby có hỗ trợ unicode không và nó hoạt động như thế nào?
- 8. Tại sao WPF CheckBox Binding của tôi không hoạt động?
- 9. Tại sao ObservableCollection không hỗ trợ thay đổi hàng loạt?
- 10. tại sao ngắt() không hoạt động như mong đợi và làm thế nào nó hoạt động
- 11. Cách triển khai TransactionScope hoạt động như thế nào? Yêu cầu hỗ trợ cơ sở dữ liệu nào?
- 12. Tại sao Arguments dài hỗ trợ Array.Copy
- 13. C# Events hoạt động như thế nào?
- 14. Tại sao Windows Server 2012 không hỗ trợ .NET framework 4.0?
- 15. WPF - DispatcherUnhandledException dường như không hoạt động
- 16. Tại sao TextBox.Text không hoạt động trong WPF?
- 17. Hỗ trợ JPEG 2000 trong C# .NET
- 18. Hỗ trợ lọc Maven của IntelliJ hoạt động như thế nào?
- 19. Tại sao C# không hỗ trợ quá tải cho nhà điều hành bằng cách tham chiếu?
- 20. Tại sao WPF XAML Grid TranslateTransform.X của tôi không hỗ trợ?
- 21. .NET ExecutionContext thực sự hoạt động như thế nào?
- 22. Tại sao các thuộc tính tự động C# không hỗ trợ các giá trị mặc định như VB 2010?
- 23. Hỗ trợ nội dung Eclipse C++, tự động kích hoạt
- 24. Application.Restart hoạt động như thế nào trong .NET?
- 25. WinForms AcceptButton không hoạt động?
- 26. Thư viện hỗ trợ: Hoạt ảnh FragmentTransaction không hoạt động
- 27. Back_inserter hoạt động như thế nào?
- 28. Tại sao thử nghiệm máy chủ/máy khách hỗ trợ SSL SSL này hoạt động?
- 29. Đóng cửa hoạt động như thế nào? (C#)
- 30. Hỗ trợ nhiều ngôn ngữ trong một ứng dụng Winforms
Tôi đoán là nhóm trình biên dịch C++ không được hỗ trợ và duy trì hai ngôn ngữ (C++ và C++/CLI) là quá nhiều gánh nặng. C++/CLI sẽ chết với VS11, và bạn sẽ viết các đối tượng COM với sự trợ giúp của các phần mở rộng trình biên dịch nhẹ, IMHO có nhiều tính năng (và .NET thân thiện như C++/CLI). Tôi thích một trình biên dịch chính xác cho một ngôn ngữ hơn là một trình biên dịch không có thật cho hai ngôn ngữ. –