���W�FXAML�t�@�~�����ʊJ���̂��T�߁i��ҁj

MVVM�p�^�[�����g�����N���X�E�^�[�Q�b�g�J��

��i �M�V
2012/01/17
Page1 Page2

�@�O���AGUI�A�v���J���ɂ����āA�قȂ�^�[�Q�b�g�ԂŃ\�[�X�E�R�[�h�����ʉ��ł��镔���ƁA�ł��Ȃ�����������Ƃ����b�������B���ʉ��ł��Ȃ��̂́A�ȉ��̂悤�ȕ����ł���B

  • UI�ɐ[��������镔��
  • �Z�L�����e�B�ɂ�����镔��

�@���̕ӂ���ŏ�����ӎ����č��΁A�N���X�E�^�[�Q�b�g�J�������₷���Ȃ邾�낤�B���ɁAXAML�t�@�~���̏ꍇ�AXAML�{.NET����iC#��VB�FVisual Basic�j���g���āA�f�[�^�E�o�C���f�B���O�Ƃ����d�g�݂Ɋ�Â����ʂ̊J���X�^�C���ɂȂ��Ă��邽�߁A�A�v���̑啔�������ʉ��ł���B

�@����́A��̓I�ȃT���v���E�A�v���iC#�j���g���āAXAML�t�@�~���Ԃł̃N���X�J���̎�@��������Ă������i���ȉ��̖{�������܂߂āAVB�̃R�[�h�͊�������j�B�T���v���͉��L�̃����N�悩��_�E�����[�h�ł���B

�@�O�񓯗l�A�ȉ��̂悤�ȗ��̂��g���B

  • WPF�F Windows Presentation Foundation�BWindows�f�X�N�g�b�v������GUI�t���[�����[�N�B�{�e�ł́A�f�X�N�g�b�v�ł�.NET Framework�i�ŎQ�Ɖ”\�ȃ��C�u�����E�Z�b�g�j���w���āuWPF�v�Ə����Ă���ӏ�������B
  • Silverlight�F �{�e�ŒP�ɁuSilverlight�v�Ƃ����ƁA�u���E�U������Silverlight���w�����̂Ƃ���B
  • WP7�F Silverlight for Windows Phone 7���w���āA�uWP7�v�Ƃ������̂��g���B
  • Metro�F �uWindows 8�v�i�R�[�h�l�[���j�œ��������^�b�`�E�C���^�[�t�F�C�X�O���GUI�t���[�����[�N�B

���\�[�X�E�R�[�h���L�̕��@

�@Visual Studio�Ńv���W�F�N�g�̃^�[�Q�b�g���w�肷��ƁA�ق��̃^�[�Q�b�g����͎Q�Ƃł��Ȃ��Ȃ��Ă��܂��B�Ⴆ�΁AWPF���^�[�Q�b�g�ɂ����ꍇ�ASilverlight����͎Q�Ƃł��Ȃ��B

�@�������A�\�[�X�E�R�[�h�I�Ɍ���ƁA�^�[�Q�b�g�ɂ�炸�S�������悤 �ɏ����镔���͑����B�ŏI��i�Ƃ��Ă̓R�s�[���y�[�X�g���������邪�A�ێ�”\�����l����ƁA�\�[�X�E�R�[�h��1�‚����ɂ��Ă��������B

�@����A�����̃^�[�Q�b�g�œ����\�[�X�E�R�[�h�����ʗ��p����ɂ�2�ʂ�̕��@������B

  • Portable���i���ʃo�C�i�����쐬�j
  • �����N�i�\�[�X�E�R�[�h���v���W�F�N�g�Ԃŋ��L�j

�@���ꂼ��ɂ‚��Đ������čs�����B

��Portable��

�@�O������������Ƃ���A�uPortable Class Library�v�Ƃ������̂��g���΁AWPF�ASilverlight�AWP7�AMetro�̂����ꂩ����Q�Ɖ”\�ȃ��C�u�������쐬�ł���*1�B

*1�@�^�[�Q�b�g�i�f�X�N�g�b�v�ł�Silverlight���Ȃǁj���قȂ�Ƃ����Ă��A�Q�Ƃł��郉�C�u�����̎�ނ��ς�邾���ŁA�A�Z���u���i��DLL��EXE�F���s�”\�`���j�̒��g�i�����^�f�[�^�⒆�Ԍ��ꖽ�߁j�̎d�l�͊��S�݊��ƂȂ��Ă���B�u�^�[�Q�b�g�������v�Ƃ�����񂪑����Ƃ��Ċ܂܂�Ă��邾���ŁA�c��͑S�������ł���B
Portable Class Library�ł́A�Q�Ɖ”\�ȃN���X���A�S�Ẵ^�[�Q�b�g����g���鋤�ʕ��������Ɍ��肵�������ŁA�^�[�Q�b�g�����Ƃ��āu.NETPortable�v�Ƃ����������Ă���B

�@Visual Studio 2010����Portable Class Library�𗘗p����ɂ́A�ȉ��̊g���@�\���C���X�g�[������K�v������i���O������Ƃ���Visual Studio 2010 SP1�����O�ɃC���X�g�[�����Ă����K�v������j�B

�@�����o�[�W�����ł���uVisual Studio 11�v�i�R�[�h�l�[���j�ł͕W���ŗ��p�ł���\�肾�B

�@�������APortable Class Library�ł́A�W�����C�u�����̂����A�ǂ̃^�[�Q�b�g�ɂ��܂܂�Ă����b�I�ȃN���X�����Q�Ƃł��Ȃ��B�P���Ȍv�Z�╶���񏈗��ō��邱�Ƃ͂Ȃ����A���̂ɂ���ẮA���C�u�����̕s���������邾�낤�B�Ⴆ�΁A�l�b�g���[�N�E�A�N�Z�X��摜�����Ȃǂ��s�����Ƃ���ƁA�v���̊O���‚������邩������Ȃ��B

�@��̓I�ɂ́A��قǁA�T���v���E�A�v�����g���Ȃ����������B

�������N

�@�\�[�X�E�R�[�h�������L�ł���΂����i�������̃A�Z���u�����ł��Ă������j�ꍇ�AVisual Studio�̃����N�@�\���g�����@������BFigure 1�Ɏ����悤�ɁA�m�t�@�C���̒lj��n�_�C�A���O�Łm�����N�Ƃ��Ēlj��n��I������΂悢�B

Figure 1 : �m�����N�Ƃ��Ēlj��n�@�\
���̉�ʃL���v�`���́A�m�\�����[�V���� �G�N�X�v���[���[�n�Ńv���W�F�N�g���ڂ̉E�N���b�N�E���j���[�Łm�lj��n�|�m�����̍��ڂ̒lj��n��I������ƕ\�������m�t�@�C���̒lj��n�_�C�A���O��ʂ̈ꕔ�ł���B

�@�m�����N�Ƃ��Ēlj��n����ƁAFigure 2�Ɏ����悤�ȏ�ԂɂȂ�B

Figure 2 : �����N�Ƃ��Ēlj����ꂽ�\�[�X�E�R�[�h

�@����ŁA����i��̐}�ł����ƁuTwitterViewModel(WPF)�v�v���W�F�N�g�j�ōs�����\�[�X�E�R�[�h�̕ύX���A��������i�uTwitterViewModel(Silverlight)�v�v���W�F�N�g�j�ɑ����ɔ��f�����悤�ɂȂ�B

��Project Linker

�@1�t�@�C�����m�����N�Ƃ��Ēlj��n����̂͂��Ȃ�ʓ|�ȍ�ƂƂȂ�B���Ƃ����āA�v���O������������x�ł����Ƃ���ň�C�ɒlj����悤�Ƃ���ƁA�u�g����Ǝv���ď����Ă����N���X������Silverlight�̃N���X�E���C�u�����ɂ͂Ȃ������v�Ƃ����悤�Ȋ��Ⴂ�Ɍォ��C�t���Ƃ����悤�Ȃ��Ƃ��N���蓾��B

�@�����ŕ֗��Ȃ̂��A�uProject Linker�v�Ƃ���Visual Studio�g���ł���B

�@Project Linker���g���ƁAFigure 3�Ɏ����悤�ɁA�i�\�����[�V�������ɂ���j�v���W�F�N�g�ԂŃ\�[�X�E�t�@�C���������I�Ƀ����N���邱�Ƃ��ł���B

Figure 3 : Project Linker�ɂ�郊���N�̎����Ǘ��̗�
���̗�ł́A�m�\�����[�V���� �G�N�X�v���[���[�n���́uTwitterViewModel(Silverlight)�v�v���W�F�N�g���ڂ̉E�N���b�N�E���j���[����mAdd Project link�n���N���b�N���A�����ŕ\�����ꂽ�mSelect Source Project�n�_�C�A���O�Łi�v���W�F�N�g�E�����N�̃\�[�X�Ƃ��āj�uTwitterViewModel(Silverlight)�v�v���W�F�N�g��I�����Ă���B���̏�ԂŁmOK�n�{�^���������ăv���W�F�N�g�E�����N��lj������ꍇ�A�uTwitterViewModel(WPF)�v�v���W�F�N�g�ɒlj������\�[�X�E�t�@�C�����A�uTwitterViewModel(Silverlight)�v�v���W�F�N�g�ɂ������N�Ƃ��Ď����I�ɒlj������B

���T���v���E�A�v��

�@����������̓I�Ȑ��������邽�߂̃T���v���E�A�v���Ƃ��āA����́A�ȈՓI��Twitter�N���C�A���g���쐬�����BFigure 4�ɁA�쐬�����A�v����WPF�ł̉�ʃL���v�`���������B

Figure 4 : �T���v���E�A�v���̉�ʃL���v�`��

�@����Ɠ��l�̂��̂��ASilverlight��WP7�ł��쐬���Ă���BMetro�́A�uVisual Studio 11�v���K�v�ɂȂ�̂ō���̓T���v���Ɋ܂߂Ȃ��������A���l�̎菇��Metro�ł���邱�Ƃ��e�Ղ��낤�B

�@���Ȃ݂ɁATwitter�N���C�A���g�̍����́ARIA�A�[�L�e�N�`��������ł̔��㎁�̃T���v���E�A�v���ƁAReactiveOAuth�̃R�[�h���Q�l�ɂ����Ă�����Ă���B

���v���W�F�N�g�\��

�@���̃T���v���E�A�v���ł́AFigure 5�Ɏ����悤�ȃv���W�F�N�g�\�����̂��Ă���B

Figure 5 : �N���X�J���p�̃v���W�F�N�g�\���̗�

�@������MVVM�iModel-View-ViewModel�j�p�^�[�����g���Ă��āA

  • Model�̑啔����Portable Class Library��
  • ViewModel�́AProject Linker���g����100���\�[�X�E�R�[�h���L
  • �c���View�̂݁A�•ʂɍ쐬

�Ƃ����\���ɂȂ��Ă���B

�@MVVM�p�^�[�����̂ɂ‚��Ă̏ڍׂ́A�u�A�ځFWPF�����v���Q�Ƃ��Ăق����B

���R�[�h�䗦

�@.cs�t�@�C����.xaml�t�@�C���̍s���i��s�A�R�����g�s�͏����j�́AFigure 6�Ɏ����Ƃ���ł���B

Figure 6 : �\�[�X�E�R�[�h�̍s��

�@WPF�̏ꍇ�ŁA�����ނˈȉ��̔䗦�ƂȂ��Ă���B

  • Portable�����������F ��45��
  • 100�������N���Ă��镔���F ��35��
  • �•ʂɏ����������F ��20��

�@�•ʕ����́A��������Visual Studio����������e���v���[�g�̎��_�ōs���������A���ۂɎ����ŏ����������͂����Ə��Ȃ��BSilverlight��WP7�̍s���������̂��A���������e���v���[�g�̍s�����������ƂɋN������B

�@�܂��A�•ʂɏ����������ł́A�R�s�[���y�[�X�g�����R�[�h�������B�������������č��΃����N���i��ViewModel���j�Ɉڂ������������邾�낤�B�����₷���Ƃ̌��ˍ���������̂ŁA������x�͑Ë����Ă���B

�@���Ȃ݂ɁAXAML�R�[�h�Ɋւ��Ă̓����N�ł��Ȃ��i�m�����N�Ƃ��Ēlj��n�����ꍇ�A���\�[�X�̃p�X�������Đ�����XAML�R�[�h��ǂݍ��߂Ȃ��j���߁A�R�s�[���y�[�X�g���B��̃\�[�X�E�R�[�h���L��i�ƂȂ�B

��MVVM�p�^�[��

�@���������T���v���E�A�v���ŁA�•ʃv���W�F�N�g�ƃ����N�E�v���W�F�N�g�̋�؂肪�A�����ނ�View��ViewModel�̋��E�ɂȂ��Ă���_�͋������Ă��������BMVVM�p�^�[�����g���ƁA�\�[�X�E�R�[�h���L�ł��镔���Ƃł��Ȃ����������R�ɕ������₷���B

�@�����A��������Ƃ���MVVM�p�^�[�����̗p����ꍇ�A�W�����C�u���������ł͋@�\���s�����Ă��āA����Ɗ����邾�낤�B�K���AMVVM�J����⏕���邽�߂̃��C�u�����������‚�����ANuGet����ē���”\���B����́AMVVM Light Toolkit�Ƃ������C�u�����𗘗p�����B

�@���߂���́APortable�v���W�F�N�g�i��Portable Class Library���ł��镔���j�A�����N�E�v���W�F�N�g�i�������N�Ń\�[�X�E�R�[�h���L�ł��镔���j�A�•ʃv���W�F�N�g�i���•ʂɍ�镔���j���ꂼ��ɂ‚��Đ������Ă������B


�@INDEX
�@ ���W�FXAML�t�@�~�����ʊJ���̂��T�߁i�O�ҁj
�@ WINDOWS 8�����GUI�J�����l����
�@   1�D�gXAML�t�@�~���h�^GUI�t���[�����[�N�̕���
�@   2�D��ѐ��̂���J���X�^�C���^XAML�t�@�~���Ԃ̍�
�@   3�DWinRT
�@
�@ ���W�FXAML�t�@�~�����ʊJ���̂��T�߁i��ҁj
�@ MVVM�p�^�[�����g�����N���X�E�^�[�Q�b�g�J��
  1�D�\�[�X�E�R�[�h���L�̕��@�^�T���v���E�A�v��
�@   2�DPortable�v���W�F�N�g�^�����N�E�v���W�F�N�g�^�•ʃv���W�F�N�g


Insider.NET �t�H�[���� �V���L��
  • ��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����
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j
- PR -

���ڂ̃e�[�}

�Ɩ��A�v��Insider �L�������L���O

�{�� ����
�\�����[�V����FLASH
"); adremove.push(adstrtmp[adstart]); } } for(var i = 0; i < adremove.length; i++){ adremove[i].parentNode.removeChild(adremove[i]); } adstr.sort().reverse(); adstr = adstr.join(""); return adstr; }