���W

.NET�J���҂̂��߂�DI��AOP����i��ҁj

�R�[�h�ŊȒP�ɕ�����gAOP�h

������ЃA�C�r�X�@���{ �a��
2008/01/23
Page1 Page2

�@�gDI�h��gAOP�h�̐�����ǂނƓ���Ă��܂����悭������Ȃ����A���ǂǂ̂悤�ȏ�ʂʼn��̖��ɗ��‚̂��悭������Ȃ��B����Ȉ�ۂ����l�͑����̂ł͂Ȃ����낤���H

�@�{���W�ł́ADI��AOP��p�������ɃV���v���ȃ\�[�X�E�R�[�h�����ۂɏ����ē������Ă݂邱�ƂŁADI��AOP�̗L������”\���������Ă����������Ƃ�ړI�ɂ��Ă���B�{�e��ʂ���.NET�J���ɂ�����DI��AOP�̗L�����Ɖ”\������������Ă���������΍K���ł���B

�@�O���ł�DI�iDependency Injection�B�ˑ������j����������B����̌�҂ł�AOP�iAspect-Oriented Programming�B�A�X�y�N�g�w���v���O���~���O�j�ɂ‚��ďЉ�Ă��������Ǝv���B

��3. �\�[�X�E�R�[�h�ōl����AOP

��3-1. �\�[�X�E�R�[�h�ōl����uAOP�Ƃ͉����H�v

�@�O�҂ł�AOP�ɂ‚��Ď��̂悤�ɐ��������B

�uAOP�Ƃ́A�I�u�W�F�N�g�w���ł͂��܂����\�b�h���ł��Ȃ��A�I�u�W�F�N�g�Ԃɋ��ʂ��鏈���𒊏o���āA1�J���ɂ܂Ƃ߂�v���O���~���O��@�̂��ƁB�v

�@�����A���̂悤�Ȍ��t�����̐����ł́A�Ȃ��Ȃ�AOP�̊T�O�͗������Â炢�B�����ňȉ��ł́A�O�҂Ɠ���DI��AOP�p�̃t���[�����[�N�uS2Container.NET�v�����ۂɗp���Ȃ���A�\�[�X�E�R�[�h��������AOP��������Ă������B

�@����ł́A�Ɩ����W�b�N���R�[�f�B���O����ꍇ���l���Ă݂悤�B���̍ۂɁA�{���̖ړI�ł͂Ȃ��u�Ɩ������ȊO�̃R�[�f�B���O�v���K�v�ƂȂ�ꍇ������B�Ⴆ�΃��M���O�����i�����O�o�͏����j��g�����U�N�V��������������ł���B

�@�����̏����́A�����̌��i�������̃��\�b�h���Ȃǁj�ŕK�v�Ƃ���邱�Ƃ������B��ʓI�ɋ��ʂ��鏈�����������݂���ꍇ�A���̋��ʏ����̃��\�b�h���i�����\�b�h�̐؂�o���j���s�����낤�B�������A���M���O������g�����U�N�V���������͂��̂悤�ȋ��ʏ����̃��\�b�h�����s���Ȃ��ꍇ�������B

�@�Ⴆ�΁A�����̃��\�b�h�ŁA���̊J�n���ƏI�����Ƀ��O���o�͂���ꍇ�A���L�̃R�[�h�̂悤�ɁA�e���\�b�h�̊J�n�����ƏI�������Ƀ��M���O����������΂߂Ă������ƂɂȂ�B�]���āA���M���O���������\�b�h�����邱�Ƃ͓���̂��B

using System;
�c�c�ȗ��c�c
public string GetEmpNameWithTitle(int empNo)
{
  Console.WriteLine("�J�nGetEmpNameWithTitle(" + empNo + ")");
  string empName = EmpDao.GetEmpName(empNo) + "����";
  Console.WriteLine("�I��GetEmpNameWithTitle : " + empName);
  return empName;
}
�c�c�ȗ��c�c
���X�g1 �e���\�b�h�̊J�n�����ƏI�������ɋL�q�������M���O�����̃R�[�h�iEmployeeLogic.cs�j

�@���̂悤�ȏꍇ��AOP���𗧂BAOP���g���ċ��ʏ����𒊏o����1�J���ɂ܂Ƃ߂邱�Ƃɂ���āA���M���O���������U���邱�Ƃ�h�����Ƃ��ł��A���M���O�����Ɏd�l�ύX���K�v�ƂȂ����ꍇ�̃����e�i���X�������シ��B�܂��A�{���̖ړI�ł͂Ȃ��u�Ɩ������ȊO�̃R�[�h�v����������A�{���̖ړI�ł���Ɩ����������̃V���v���ȃ\�[�X�E�R�[�h�ɂȂ�“ǐ������シ��B

�@�ڂ����͌�q���邪�AS2Container.NET��Quill�ł́uAspect�����iSeasar.Quill.Attrs���O��ԁj�v���w�肷�邾���ŊȒP��AOP�����H���邱�Ƃ��ł���BQuill�͑O�҂ł��g�p���Ă���̂ŁAQuill�ɂ‚��Ă��O�����Q�Ƃ��Ăق����B�Ȃ��{�e�̃T���v�����A�O�҂ō쐬�����uQuillSample�v�v���W�F�N�g�𗘗p���Ă���B���̃v���W�F�N�g�͎��̃����N����_�E�����[�h���Ă��悢�B

�@���̃��X�g2�́A��قǂ̃R�[�h��i���X�g1�j��Quill��Aspect������p���ď������������̂��BAspect�����̃p�����[�^�Ƃ��Ďw�肳��Ă���uConsoleTraceInterceptor�v�N���X�ɂ́A���o���ꂽ���M���O�������L�q����Ă���B�ڂ����͎����́u3-2. AOP�̎��H�v�ŏЉ��B

using Seasar.Quill.Attrs;
�c�c�ȗ��c�c
[Aspect(typeof(ConsoleTraceInterceptor))]
public virtual string GetEmpNameWithTitle(int empNo)
{
  string empName = EmpDao.GetEmpName(empNo) + "����";
  return empName;
}
�c�c�ȗ��c�c
���X�g2 Aspect�����ɂ����AOP�𗘗p����R�[�h�iEmployeeLogic.cs�j
ConsoleTraceInterceptor�N���X�ɁA���ʂ��郍�M���O���������o����ċL�q����Ă���B

�@����ł́A�O��쐬����Windows�A�v���P�[�V�����̃T���v���E�R�[�h�����AOP�����H���Ă݂悤�B


�@INDEX
�@ �m���W�n.NET�J���҂̂��߂�DI��AOP����
�@ Seasar.NET��DI���n�߂悤
�@   1�DDI��AOP�J���‹��̏���
�@   2�DDI��AOP�𗝉����邽�߂̃T���v���̍쐬
�@   3�D�\�[�X�E�R�[�h�ŗ�������DI
�@   4�DDI���𗧂��
�@
�@ �R�[�h�ŊȒP�ɕ�����gAOP�h
  1�D�\�[�X�E�R�[�h�ŗ�������AOP
�@   2�DAOP�̎��H


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

���ڂ̃e�[�}

Insider.NET �L�������L���O

�{�� ����