�A�ځF������Z�p�ɂ‚Ȃ���Silverlight����

�����Ēʂ�Ȃ��u�񓯊������v���������悤

��i �M�V
2012/08/02
Page1 Page2 Page3

�@Silverlight�A�v�����J�����邤���ŁA���������Ă������Ēʂ�Ȃ��̂��u�񓯊������v���B�l�b�g���[�N�ւ̃A�N�Z�X�ȂǁA���Ԃ������鏈���͔񓯊��ł�API�����񋟂���Ă��Ȃ�*1�B

*1 ����ɂ����ƁA�iWindows 8�����́jMetro�X�^�C���E�A�v���J���ł͂��̌X������苭���Ȃ�B�l�b�g���[�N�ǂ��납�A���[�J���̃X�g���[�W�ւ̃A�N�Z�X�ł���A�񓯊�API�݂̂ƂȂ��Ă���B

�@�u�񓯊��iasynchrony�j�v�Ƃ������t�́A�u���鏈���̎��s���ɁA�ʂ̏������~�߂Ȃ��v�Ƃ����Ӗ��ł���BSilverlight�A�v���Ȃǂ�GUI�A�v���œ��ɏd�v�Ȃ̂́A�d��������������Ƃ��ɁAUI�X���b�h�i���G���h�E���[�U�[����̓��͂��󂯕t������AUI��`�悵���肷��X���b�h�j���~�߂Ȃ����Ƃ��B�‚܂�A�d���������͔񓯊��ɍs��˂΂Ȃ�Ȃ��B

�@�����ō���́A.NET�ɂ�����񓯊������̏��������A�����‚��̃t���[�����[�N�őΔ䂵�Ȃ���������Ă������B

���񓯊�API�̈��

�@�Ⴆ�΁A�l�b�g�z���Ƀe�L�X�g���_�E�����[�h���āA��ʏ�i���ɁA�uDescription�v�Ƃ������O��t�����e�L�X�g�{�b�N�X�j�ɕ\�����邱�Ƃ��l���Ă݂悤�B

�@WPF�i�f�X�N�g�b�v�ł�.NET Framework�̏ꍇ�j�ł���΁AList 1�̂悤�ȏ��������ł���B

using (var w = new WebClient())
{
  var text = w.DownloadString(new Uri(txtUri));
  Description.Text = text;
}
Using w As New WebClient()
   Dim text = w.DownloadString(New Uri(txtUri))
  Description.Text = text
End Using
List 1�F �l�b�g���[�N�ɓ����I�ɃA�N�Z�X�����i��FC#�A���FVB�j

�@�������A���̂悤�ȏ�����������ƁA�_�E�����[�h����������܂ł̊ԁA�A�v�����t���[�Y���Ă��܂��B�A�v���̃t���[�Y�̓G���h�E���[�U�[�ɗ^�����ۂ����Ɉ������߁A���R�A�񐄏��ł���B

�@�u�񐄏��Ȃ��͍̂ŏ�����񋟂��Ȃ��v�Ƃ����̂��ASilverlight�̕��j���B�����ŁAWebClient�N���X�iSystem.Net���O��ԁj���瓯���ł�API���폜���ꂽ�BList 1�Ɠ��l�̂��Ƃ�����̂ɁAList 2�̂悤�ȏ��������K�v�ƂȂ�B

var w = new WebClient();

w.DownloadStringCompleted += (sender, e) =>
{
  var desc = e.Result;
  this.Desciption.Text = desc;
};

w.DownloadStringAsync(new Uri(txtUri));
Dim w As New WebClient()

AddHandler w.DownloadStringCompleted,
  Sub(sender, e)
    Dim desc = e.Result
    Me.Description.Text = desc
  End Sub
w.DownloadStringAsync(New Uri(txtUri))
List 2�F �l�b�g���[�N�ɔ񓯊��I�ɃA�N�Z�X�����i��FC#�A���FVB�j

�@���Ȃ݂ɁA���̏������i��Completed�C�x���g���g�����́j�́A�uEAP�v�i��q�j�ƌĂ΂��p�^�[���ŁA���̂ق��ɂ������‚��̔񓯊�API�p�^�[�������݂���iEAP�́A.NET Framework 2.0�`3.5�̂���Ɏ嗬�������������ŁA���݂�Task�N���X���g�����p�^�[���ɒu���������n�߂Ă���j�B

���񓯊��̎d�g��

�@�u�����I�ȏ���������ƃA�v�����t���[�Y����v�Ƃ����Ă��A�����ɂ̓C���[�W�������΂Ȃ���������Ȃ��B�����⑫���Ă������B

�@Figure 1�́AGUI�A�v���������I�ɂǂ�������������Ă��邩���܂��ɕ\�������̂ł���B

Figure 1�F GUI�A�v���̓���̊T�O�}

�@�܂��́A���̒��ɏo�Ă���UI�X���b�h�A�X���b�h�E�v�[���AI/O�҂��Ȃǂɂ‚��Đ������Ă������B

��UI�X���b�h

�@Silverlight��WPF�A���邢�́A.NET�Ɍ��炸�O���t�B�b�N�������قƂ�ǂ̃t���[�����[�N�ł́A�G���h�E���[�U�[����̓��͎󂯕t���ƁAUI�v�f�̍X�V���������ɒS����p�̃X���b�h�������Ă���B���̃X���b�h���uUI�X���b�h�v�i���邢�́A�u���C���E�X���b�h�v�ȂǂƂ��j�ĂԁiFigure 2�j�B�p�t�H�[�}���X��̗��R����AUI�v�f�̓X���b�h���S�ithread-safe�j�ɂ͍���Ă��炸�A�K������UI�X���b�h�Ƃ����A�P��̃X���b�h��ő��삷��K�v������B

�@�ʏ�A�A�v���́A�G���h�E���[�U�[����̓��͂��󂯎���āA���炩�̏������������ʂ�UI�ɔ��f������B���́u���炩�̏����v�ɂ����āA�d����������I/O�҂��Ȃǂ�UI�X���b�h���~�߂Ă��܂��ƁA�A�v�����t���[�Y���Ă��܂��B

Figure 2�F UI�X���b�h

�@�����ŁA�d����������UI�X���b�h�Ƃ͕ʂ̃X���b�h�Ŏ��s����K�v������B���̈���ŁA�ʃX���b�h�ł̌v�Z���ʂ�UI�ɔ��f�����邽�߂ɂ́AFigure 3�Ɏ����悤�ɁAUI�X���b�h�ɏ�����߂��K�v������i�t���[�����[�N�ɂ���ė��V�͈قȂ邪�A���̂��߂̎d�g�݂��񋟂���Ă���j�B

Figure 3�F UI�X���b�h�ɏ�����߂�

���X���b�h�E�v�[��

�@�X���b�h�̍쐬�͔��ɕ��S���傫���AOS�S�̂̃p�t�H�[�}���X�𗎂Ƃ����˂Ȃ��B�����ŁA�����̃X���b�h�𗧂Ă��ςȂ��ɂ��āA�g���񂷂��ƂŌ����悭�^�X�N�����Ȃ��Ă����d�g�݂�����A������u�X���b�h�E�v�[���ithread pool�F �X���b�h�̒��ߒu���A���p�j�v�ƌĂԁBFigure 4�Ɏ����悤�ɁA���s�������^�X�N����x�A�L���[�ɂ��߂Ă����A�X���b�h�ɋ󂫂��ł�����A���s���Ă����B

�@Silverlight 5�^.NET Framework 4�ȍ~�ł́ATask�N���X�iSystem.Threading.Tasks���O��ԁj����ăX���b�h�E�v�[���𗘗p�ł���*2�B�܂��A�^�C�}�[�i��Timer�N���X�iSystem.Threading���O��ԁj�𗘗p�j��A��q����I/O�҂��̌��ʂ��󂯎��R�[���o�b�N�Ăяo���ł��A�X���b�h�E�v�[�������p�����B

Figure 4�F �X���b�h�E�v�[��

*2 ����ŁAThread�N���X�iSystem.Threading���O��ԁj���g���ăX���b�h�𒼐ڗ��ĂĎg����ʂ͂قƂ�ǂȂ��Ȃ����B

��I/O�҂�

�@CPU�̊O���ɂ���A�X�g���[�W��l�b�g���[�N�Ȃǂ̃n�[�h�E�F�A�ɑ΂��鑀��i���f�[�^�̑���M�j���A�uI/O�iinput/output�j�v�ƌĂԁB

�@CPU�̓��쑬�x�Ɣ�ׂ�ƁAI/O�ɂ����鎞�Ԃ͔��ɒ����B���̊Ԃ͖{���ɂ����҂��Ă��邾���ŁACPU�⃁������K�v�Ƃ��Ȃ����߁A�X���b�h�͉�����ׂ��ł���B

�@���ہAFigure 5�Ɏ����悤�ɁAOS�̓X���b�h���������I/O�҂����邽�߂̋@�\��񋟂��Ă���BI/O�������s���������́AI/O������ɌĂяo���Ăق����R�[���o�b�N��OS�ɓo�^���A�����ɃX���b�h��ł̏������I������BI/O������̃R�[���o�b�N���s�̓X���b�h�E�v�[����ōs����B

Figure 5�F I/O�҂�

�@I/O�Ɋ֘A����API�i�Ⴆ�΁AWebClient�N���X��DownlowdStringAsync���\�b�h�Ȃǁj�́A���̂悤�Ȏd�g�݂��g���Ĕ񓯊�I/O�҂����s���Ă���B

�@���̃y�[�W�ł́A�񓯊�API�̃p�^�[���iAPM�^EAP�^TAP�j�ɂ‚��Đ�������B


�@INDEX
�@ [�A��] ������Z�p�ɂ‚Ȃ���Silverlight����
�@ �����Ēʂ�Ȃ��u�񓯊������v���������悤
  1�D�񓯊�API�̈��^�񓯊��̎d�g��
�@   2�D�񓯊�API�̃p�^�[�� �^UI�X���b�h�ւ̐؂�ւ�
�@   3�D�񓯊������̋�̗�^�⑫�F C# 5.0�i��Visual Basic 11�j

CfbNXEy[Ww �@�u�A�ځF������Z�p�ɂ‚Ȃ���Silverlight����v


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; }