�A�ځFReactive Extensions�iRx�j���� ��1��@Reactive Extensions�̊T�v�Ɨ��p���@ �͍� �X�� |
Page1
Page2
|
�@C# 3.0��蓱������A�v���O���~���O�E�X�^�C���ɑ傫�ȕϊv�������炵��LINQ�͂��������낤���B�ڂ����́u���W�FRoad to LINQ�v�ŏЉ��Ă��邪�A�f�[�^���H�ɂ����鏈���̎�Ԃ�傫������������̂ł���BLINQ�̓����Ƃ��āA�e��̃f�[�^�\�[�X�i���z���XML�f�[�^�ASQL�f�[�^�x�[�X�Ȃǁj�ɑ��ē���I�ȋL�@����邱�Ƃ���������B
�@Reactive Extensions�i�ȍ~�ARx�j�́ALINQ���K�p�ł���f�[�^�\�[�X�̊T�O���u���v�Ɓu�C�x���g�v�ɍL�����A����uLINQ to Asynchronous�v�uLINQ to Events�v�Ƃł������ׂ����̂ł���B����ɂ��A�]���ł͎�Ԃ̂����������G�Ȕ�������C�x���g�����A���Ԃ��W���鏈���Ȃǂ��ALINQ�̌`�ŁA�ȒP�ɁA�錾�I�ɋL�q�ł���悤�ɂȂ�B
�@Rx�����p�ł���v���b�g�t�H�[���́A
- .NET Framework 3.5
- .NET Framework 4.0 Client Profile
- Silverlight 3
- Silverlight 4
- Windows Phone 7
- XNA 4.0
�Ƒ���ɓn��B���ɁA�ʐM�ɔ�API��������Ă��Ȃ�Silverlight��Windows Phone 7�ő傫�ȗ͂����邾�낤�B�܂��AJavaScript�����ɂ́uRxJS�v�Ƃ������C�u�������ʓr�A�p�ӂ���Ă���A��������d�g�݂Ƃ��āAJavaScript��ł�.NET Framework�p�Ɠ����悤�ɁARx�̔���C�x���g�����ɑ��鋭�͂ȋ@�\���g�����Ƃ��\���B
��Reactive Extensions�iRx�j�̗��j
�@Rx�́A2009�N11��18���ɁA�}�C�N���\�t�g�̊J�����储���Microsoft Research�̎����I�ȃv���W�F�N�g�����J����|�[�^���E�T�C�g�uMicrosoft DevLabs�v�ɂăy�[�W���J�݂���A���̌�A1�N���ɓn��ׂ��������I�ȃ����[�X���������Ă����BDevLabs�̎����I�ȃv���W�F�N�g�́A�����Ȑ��i�ɏ��i������̂�����A�ŏI�I�ɂ͑ł����Ă��܂����̂�����*1�BRx�́A2011�N1��21���ɁA�����Ȑ��i�Ƃ��ĔF�߂��A�ȍ~�A�v���W�F�N�g�̃y�[�W��*2Data Developer Center�ւƈڍs�����B�܂��A�����v���W�F�N�g���i�ȑO�ɂ́ARx�ł̎�v�ȃC���^�[�t�F�C�X�ł���IObservable<T>��IObserver<T>��.NET Framework 4�^Silverlight 4�ɂ��łɓ����Ă���ق��AWindows Phone 7 SDK��Microsoft.Phone.Reactive���O��ԂƂ��ĕW���Ń��C�u���������ڂ���Ă����B
�@�C���^�[�t�F�C�X�����ł�.NET�̃N���X�E���C�u�����ɓ��ڂ���Ă��邱�ƁAWindows Phone 7�ɕW�����ڂ���Ă��邱�ƂȂǂ���A�u.NET Framework 4.5�ɓ��ڂ����̂ł́H�I�v�Ƃ������҂�������Ă��邪�A���݁ADeveloper Preview�Ƃ��Č��J����Ă���Visual Studio 11�ɓ�������Ă���.NET Framework 4.5�ɂ�Rx�͓����Ă��Ȃ��B�Ƃ͂����ADevLabs�ł̎����I�v���W�F�N�g�ł͂Ȃ��A�����ȃv���W�F�N�g�ł��邽�߁A�J����T�|�[�g���ł����邱�Ƃ͂Ȃ��̂ŁA���S���ė��p���Ă����B
*1�@�ł���ꂽ���̂ł�STM.NET�ȂǁA�����Ȑ��i�ƂȂ������̂ɂ�Small Basic�Ȃǂ���������B |
*2�@Data Developer Center�́A�����ja-jp�ŃA�N�Z�X����Ɓu�f�[�^ �A�N�Z�X �f�x���b�p�[ �Z���^�[�v�Ƃ��āAen-us�Ƃ͂܂������قȂ���{��p�̃y�[�W���\������邪�Aja-jp�̃y�[�W�ł́A���݂̂Ƃ���ARx�Ɋւ���y�[�W�ɂ̓A�N�Z�X�ł��Ȃ��B |
��Reactive Extensions�iRx�j���\�ɂ��邱��
�@Rx�̈�������e�͑���ɓn��B�ŏ��ɏq�ׂ��悤�ɔ��ƃC�x���g���ł�����̂����A�ق��ɂ����Ԃ�ALINQ to Objects�ň����ʏ�̃R���N�V�����i��IEnumerable<T>�C���^�[�t�F�C�X�����������I�u�W�F�N�g�j���������Ƃ��\���B
�@�Ȃ����̂悤�Ȃ��Ƃ��\�Ȃ̂��Ƃ����ƁA�Ⴆ��MouseClick�C�x���g���v�������ׂĂق����B�}�E�X���N���b�N����A����1�b��Ƀ}�E�X���N���b�N����A����3�b��Ƀ}�E�X���N���b�N����B�N���b�N�̂��т�MouseEventArgs�I�u�W�F�N�g�ɂ���āA�N���b�N���ꂽ���W�Ȃǂ̒l�����s�����B����͎��ԂƂ����������̏�ɒl����������Ă���A�ƌ��邱�Ƃ��ł���B
�@�ł͎��Ԃ��̂��́A�Ⴆ��Timer�C�x���g�͂ǂ����낤���B����́A�w�肳�ꂽ���ԊԊu�ŁA�C�x���g�����s����Ă���ƌ��邱�Ƃ��ł���B
�@�������͂ǂ����낤���H ���̏ꍇ�́A���鎞�Ԃɂ���ď����̊J�n���x������A�������I�������Ƃ��ɒl�����s�����A�ƌ��邱�Ƃ��ł���B
�@�z��͂ǂ����낤�H ���̏ꍇ�ł��A��u�̂����A�Ⴆ��0.0000001�b�Ԋu�Œl�����s�����ƍl���邱�Ƃ��\�Ȃ̂��B
�@������}�ɂ܂Ƃ߂�ƁA���̂悤�ɂȂ�B
�C�x���g�^���^�z�������Ԏ��ɏ��C���[�W�} |
�@Rx�͂��܂��܂Ȓl���A���Ԏ��ɏ����ȃX�g���[���ƍl���邱�Ƃɂ��A�����ɏ悹���邷�ׂĂ̒l����LINQ���Z�q�ɂ���Ďˉe�E���o�E�������邱�Ƃ��\�ɂ����̂ł���B
��LINQ�ł���Ƃ�������
�@Rx�̍��{���x����C���^�[�t�F�C�X��IObservable<T>���B����́A�]���ALINQ�Ŏg���Ă���C���^�[�t�F�C�X��IEnumerable<T>�ł͂Ȃ��B�������A�]����LINQ�Ɠ������o�ŁA�������\�b�h�ŃR�[�h���������Ƃ��ł��邵�A�N�G���\�����g�����Ƃ��\���i���̃R�[�h���Q�Ɓj�B
|
||
LINQ to Objects��Reactive Extensions�œ����o�͌��ʂ�������N�G���\���̗�i��FC#�A���FVB�j |
�@��葽���̂��Ƃ��������߁ARx�����ɗp�ӂ��ꂽ���\�b�h������������B�]���āA�K���������ׂē����Ƃ͂����Ȃ����A�]���A�g���Ă��郁�\�b�h�Ɠ������O�E�����Ӗ��������̂��������邱�Ƃɂ��A�V���Ȋw�K�R�X�g���}�����Ă���B
�@�܂������قȂ�C���^�[�t�F�C�X�ł���̂ɁA�����悤��LINQ�̉��Z�q��p���邱�Ƃ��ł��Ă���B���̂��Ƃ��\�ɂ����̂́AIObservable<T>�^IObserver<T>�C���^�[�t�F�C�X�̐��藧�����̂��AIEnumerable<T>�^IEnumerator<T>�C���^�[�t�F�C�X�]�����č��ꂽ���̂����炾�B
�@�ȉ���IEnumerator<T>�C���^�[�t�F�C�X�]�������IObserver<T>�C���^�[�t�F�C�X������邱�Ƃ̏ؖ����L���iC#�̂݁BVisual Basic�͊����j�B
|
|
|
|
|
|
|
|
|
|
IEnumerator<T>�C���^�[�t�F�C�X����IObserver<T>�C���^�[�t�F�C�X�o�����iC#�j |
�@�����ł͋L���Ȃ����AIEnumerable<T>�C���^�[�t�F�C�X�Ɋւ��Ă��A���l�̑�����s�����Ƃ�IObservable<T>�C���^�[�t�F�C�X������邱�Ƃ��m�F�\���B�ȏ�̂��Ƃ́AIEnumerable<T>�C���^�[�t�F�C�X��IObservable<T>�C���^�[�t�F�C�X���A���̌����Ȃ��A���݂ɕϊ����邱�Ƃ��\�ɂ��Ă���i���ہAIEnumerable<T>�C���^�[�t�F�C�X��ToObservable�g�����\�b�h�AIObservable<T>�C���^�[�t�F�C�X��ToEnumerable�g�����\�b�h��Rx���Q�Ƃ��邱�ƂŒlj������j�B
�@�Ȃ��A���̐}�Ɏ����Ƃ���AIEnumerable<T>��Pull�^�̃C���^�[�t�F�C�X�ł���AIObservable<T>��Push�^�̃C���^�[�t�F�C�X�ł���B
Pull�^��Push�^�̔�r |
�}���́uSubscribe�v�i���T�u�X�N���C�u�j�Ƃ́APush�ʒm�̃I�u�U�[�o�i��IObserver<T>�I�u�W�F�N�g�j��o�^���邱�ƁB |
�@Push�^�̏ꍇ�A�v���O�����͍ŏ���IObserver<T>�I�u�W�F�N�g��IObservable<T>�I�u�W�F�N�g�ɓo�^���i��Subscribe�j�A�ȍ~�͗��ҊԂŒl���`�B�����BPull�^�̏ꍇ�́A�v���O������IEnumerator<T>�I�u�W�F�N�g���擾���A�ȍ~�͂������Ĕ\���I�ɒl�����o���B
�@�����Ɋւ�������́A�u���W�FRoad to LINQ��pull�^��push�^�̐����v���Q�Ƃ��Ăق����B
���C�x���g�ɓK�p�����
�@�C�x���g�͂��܂��܂Ȍ`�Ō����BGUI�̃}�E�X�E�C�x���g�Ȃǂ����������AWindows Phone 7�ōl����̂Ȃ�W�F�X�`����Z���T�[����̃C�x���g���g�߂��낤�BINotifyPropertyChanged�C���^�[�t�F�C�X�ɂ��I�u�W�F�N�g���g�̒ʒm��f�[�^�o�C���h�Ȃǂ��������B
�@Rx�̓C�x���g�̍������\�ɂ���B�Ⴆ�}�E�X�E�J�[�\���̃_�E���^���[�u�^�A�b�v�Ȃǂ̃C�x���g���������āA1�̃h���b�O���h���b�v�E�C�x���g������A�ȂǂƂ������Ƃ��\�ɂȂ�B���̃R�[�h�́A���̗�ł���B
|
||
3�̃C�x���g����������1�̃h���b�O�C�x���g������i��FC#�A���FVB�j |
�@�܂��A���Ԃ��g�����l�̃t�B���^�����O���\�ɂ���B���̃R�[�h��Windows�t�H�[���ł̗Ⴞ�B
|
||
���Ԃ��g�����t�B���^�����O�i��FC#�A���FVB�j |
�@�C���N�������^���E�T�[�`�ȂǁA���͂Ƀ��A���^�C���ɉ����ăl�b�g���[�N�ʐM�����悤�Ƃ���ꍇ�ȂǂɁA���ׂĂ̒l�ŒʐM�����悤�Ƃ���͖̂��ʂ��������낤�B���̏ꍇ�A�l��K�x�ɊԈ��������͂����B��L�̗�̓e�L�X�g�{�b�N�X�̓��͂ɕω����������ꍇ�A1�b�Ԃ̊Ԃ�TextChanged�C�x���g���������ĕʂ̒l��������O�̒l������悤�ȃt�B���^�����O������B�������邱�Ƃɂ��A���ʂȃl�b�g���[�N�ʐM��}������B
�@���̂悤�Ȏ��Ԃ��g��������́A�]���ł͂��Ȃ�̎�Ԃ������Ȃ���L�q�ł��Ȃ��������Ƃ����ARx�Ȃ��������������͔��ɓ��ӂƂ���Ƃ���ŁA���\�b�h1�K�p���邾���ōς�ł��܂��B
���������ɓK�p�����
�@Rx�͔������ɂ����đ傫�ȗ͂�����B�Ⴆ�iWPF�ŁjWebRequest�N���X�iSystem.Net���O��ԁj�Ŕ��ʐM���s���ꍇ���l���Ă݂悤�BBegin-End�ōs���������̓����_�����l�X�g���������B���̏ꍇ�A�����̃��N�G�X�g�������ȂǁA���G�ȏ���������̂�����A�܂��A��O�����͈̔͂ɒ��ӂ��K�v������A�l�X�g���������_�����ꂼ��ɓƗ�����try-catch���������K�v������BUI�X���b�h�ւ�BeginInvoke�i�����ł̏������s�̊J�n�˗��j�����Ȃ�̎�Ԃ��B
|
||
�ʏ�̔������R�[�h�i��FC#�A���FVB�j |
�@Rx���g���ƁA���l�̃R�[�h�͈ȉ��̂悤�ɂȂ�B
|
||
Rx��p�����������R�[�h�i��FC#�A���FVB�j |
�@Rx���g�����ƂŃ����_���̃l�X�g�̓��\�b�h�E�`�F�[���ƂȂ�A�܂��A��O������UI�X���b�h�֖߂����Ƃ���ӏ��ɏW��邱�ƂŁA�啝�ɋL�q�ʂ���������B
�@�g�����\�b�h�ɂ��ꕔ�̏������O�ɏo���Ă���̂ŁA���̕������A���t�F�A�Ɋ����邩������Ȃ����A���̂悤�ɊȒP�ɏ����ȕ��i�Ƃ��ĕ������邱�Ƃ��\���Ƃ������Ƃ��ARx�̑傫�ȃ����b�g��1���B
�@�Ƃ���ŁA�u���W:.NET�J���҂̂��߂̔������v�ŏЉ�ꂽ�悤�ɁAC# 5.0����������Ɋւ���\�����lj������B�ł́ARx���g���Ĕ������������̂͑҂������������̂��낤���H
�@�����͈Ⴄ�B�܂��ARx�͍������g����Z�p���B�����āARx��C# 5.0��async�\���Ŏg�����߂�Task<T>�I�u�W�F�N�g�ɕϊ����邱�Ƃ��܂��e�ՂȂ̂ŁA���������������͌����Ė��ʂɂȂ�Ȃ��B
�@�Ō�ɁARx��C# 5.0��async�\���́A������x�A�̈�͂��Ԃ邪�A�S���ʂ̉��l�����ʂ����Ȃ��Ȃ��̂ŁA������Rx���̂̉��l�͑��Ȃ��Ȃ��B
�@���̂��Ƃɂ��ďڂ����́A����ȍ~�̔������ɂ��Đ�������Ƃ��ɉ������B
�@�����Ď��̃y�[�W�ŁARx�̃C���X�g�[�����@��A�Z���u���̎�ނɂ��Đ�������B
�@INDEX | ||
�@ | �A�ځFReactive Extensions�iRx�j���� | |
�@ | ��1��@Reactive Extensions�̊T�v�Ɨ��p���@ | |
1�DRx�̗��j�^LINQ�ł���Ƃ������Ɓ^�C�x���g��������ɓK�p����� | ||
�@ | 2�DRx�̃C���X�g�[�����@�^�A�Z���u���̎�ށ^���O��Ԃ̕��� | |
�@�u�A�ځFReactive Extensions�iRx�j����v |
- ��2��@�Ȍ��ȃR�[�f�B���O�̂��߂� �i2017/7/26�j
�@�����_���ŋL�q�ł��郁���o�̑����Athrow���Aout�ϐ��A�^�v���ȂǁAC# 7�ɂ͈ȑO�����R�[�h���Ȍ��ɋL�q�ł���悤�ȋ@�\����������Ă��� - ��1��@Visual Studio Code�f�o�b�O�̊�b�m�� �i2017/7/21�j
�@Node.js�v���O�������f�o�b�O���Ȃ���AVisual Studio Code�ɓ�������Ă���f�o�b�O�@�\�̊�{�́u�L�v���}�X�^�[���悤 - ��1��@���ĂȃR�[�f�B���O�̂��߂� �i2017/7/19�j
�@C# 7�Œlj����ꂽ�V�@�\�̒�����A�u���l���e�����\���̉��P�v�Ɓu���[�J�����v���Љ��B�����͕�����₷���R�[�h���L�q����̂Ɏg���� - Presentation Translator �i2017/7/18�j
�@Presentation Translator��PowerPoint�p�̃A�h�C���B�v���[���e�[�V�������̎����̕t����A������ł̎��^�����A�X���C�h�̖|����s����
|
|