Có một số quảng cáo khá mới xung quanh Reactive Framework mới trong .NET 4.0. Trong khi tôi nghĩ rằng tôi undestood khái niệm cơ bản của nó tôi không hoàn toàn được bán ra rằng nó là hữu ích. Bạn có thể đưa ra một ví dụ tốt (đó là một nửa dễ hiểu) mà hoàn toàn cho thấy sức mạnh và sự hữu ích của Rx? Hiển thị điều gì đó làm cho cuộc sống dễ dàng hơn nhiều khi thực hiện với Rx.Khuôn khổ phản ứng cho các ví dụ .NET chứng minh tính hữu dụng của nó
Trả lời
Đây là ví dụ nhanh. Lập trình một thao tác kéo theo cách khai báo đầy đủ, sử dụng LINQ cho các sự kiện.
//Create an observable with the initial position and dragged points using LINQ to Events
var mouseDragPoints = from md in e.GetMouseDown()
let startpos=md.EventArgs.GetPosition(e)
from mm in e.GetMouseMove().Until(e.GetMouseUp())
select new
{
StartPos = startpos,
CurrentPos = mm.EventArgs.GetPosition(e),
};
Và vẽ một đường từ startpos để pos hiện
//Subscribe and draw a line from start position to current position
mouseDragPoints.Subscribe
(item =>
{
//Draw a line from item.Startpos to item.CurrentPos
}
);
Như bạn có thể thấy, không có xử lý sự kiện trên tất cả các nơi, cũng không biến boolean để quản lý nhà nước.
Nếu bạn tò mò về những phương thức GetEventName() này, hãy đề nghị bạn đọc toàn bộ bài viết này và tải xuống mã nguồn và phát cùng với nó.
Câu trả lời rất chi tiết nhưng không dễ hiểu. Tôi sẽ phải đọc một số ... – bitbonk
Câu hỏi đặt ra là đưa ra một ví dụ. Dưới đây là một bài đọc hay nếu bạn muốn chạm vào các khái niệm cơ bản - http://amazedsaint.blogspot.com/2009/11/systemreactive-or-net-reactive.html – amazedsaint
tôi đã viết một bản demo bước-by-step trên blog của tôi thời gian gần đây: http://blog.andrei.rinea.ro/2013/06/01/bing-it-on-reactive-extensions-story-code-and-slides/
tôi về cơ bản việc xây dựng một ứng dụng nhỏ trong WPF với Rx và Bing Tìm kiếm:
Ứng dụng sẽ đợi cho đến khi bạn ngừng nhập và sau đó thực hiện tìm kiếm không đồng bộ và trình bày kết quả. Nếu trước khi kết quả đến bạn phát hành một tìm kiếm khác, nó sẽ tự động thả tìm kiếm hiện tại.
Bạn có thể bắt buộc tìm kiếm (bỏ qua thời gian chờ) bằng cách nhấn ENTER hoặc "Go!" và có thể dừng tìm kiếm liên tục bằng cách nhấn nút Xóa. Có một chỉ báo bận và một số xử lý lỗi (ví dụ như trường hợp mạng bị hỏng).
chủ đề chính bao gồm:
- Tạo một thể quan sát được từ một sự kiện (TextChanged, Button.Click vv)
- Async đại biểu (async tìm kiếm)
- mở rộng TakeUntil
- mở rộng DistinctUntilChanged (bao gồm tùy chỉnh Bằng)
- Mở rộng hợp nhất
- Mở rộng ga
- Quan sát tiện ích mở rộng (để đồng bộ hóa chuỗi giao diện người dùng)
.. và hơn thế nữa!
- 1. Bối cảnh trong khuôn khổ Phản ứng JS của Facebook
- 2. Khuôn khổ SoundTouch iOS Ví dụ về phát hiện BPM
- 3. Khuôn khổ .NET, Windows XP
- 4. Khuôn khổ REST của Python cho Máy ứng dụng?
- 5. Khuôn khổ báo cáo lỗi cho .net
- 6. Khuôn khổ chuẩn .NET
- 7. khuôn khổ IoC tốt nhất cho Net
- 8. Cách Snoop chứng minh ứng dụng wpf của bạn?
- 9. Khuôn khổ .NET nào với MVC 4?
- 10. Khuôn khổ báo cáo sự cố tốt nhất cho các ứng dụng máy tính để bàn .NET?
- 11. Ví dụ về ứng dụng .net sử dụng Amazon SQS
- 12. Ví dụ hay về ứng dụng .NET Desktop
- 13. Ví dụ về bản đồ hữu hạn
- 14. .net ví dụ về việc sử dụng chứng chỉ ứng dụng khách trong cuộc gọi dịch vụ web?
- 15. Một khuôn khổ perl cho trí thông minh nhân tạo?
- 16. ví dụ về ứng dụng sử dụng vaadin
- 17. Ứng dụng mẫu Khuôn khổ tốt?
- 18. Ví dụ về Ứng dụng của FasterCSV
- 19. Khuôn khổ và giao dịch .NET Entity
- 20. Khuôn khổ phụ thuộc của các ứng dụng dành cho Windows 8
- 21. Ví dụ về ứng dụng SignalR Console
- 22. Các khuôn khổ của Entity Framework 4
- 23. Tích hợp thông minh vào khuôn khổ Mã Igniter
- 24. Các mẫu thiết kế được sử dụng trong khuôn khổ .NET?
- 25. Các khuôn khổ ORM
- 26. Khuôn khổ tiêm phụ thuộc .NET nào bạn sử dụng?
- 27. Khuôn khổ .NET 4 tổng kích thước triển khai ứng dụng
- 28. Lịch sử ban đầu của khuôn khổ .Net là gì?
- 29. Khuôn khổ web của Clojure dành cho người lớn?
- 30. .NET 4.5 CustomReflectionContext: nó hữu ích cho cái gì?
Xem một ví dụ tại đây: http://stackoverflow.com/questions/1596158/good-introduction-to-the-net-reactive-framework/1749252#1749252 – Benjol
Khi nào đang đẩy hữu ích? Khi kéo là hữu ích? –