°ÁÂ Àü ÇÊÀÚÀÇ Àâ´ã>
±× Àü¿¡ Å¿ÀÀÇ Àâ´ã : ÀÌ °Á´ 2004³â 2¿ùºÎÅÍ 4¿ù±îÁö ¿ù°£¸¶¼Ò¿¡ ¿¬ÀçµÇ¾ú´ø ½º¸¶Æ® Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ Ä÷³À̱¸¿ä.
´å³Ø¿¢½ºÆÛÆ®ÀÇ ±â¼ú ÄÁ¼³ÅÏÆ®À̽ŠÁ¤¼ºÅ´ÔÀÌ Á¦°øÇØÁּ̽À´Ï´Ù. ½º¸¶Æ® Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ ÀڷḦ ±¸Çϱâ Èûµç »óȲ¿¡¼
ÀÌ·¸°Ô ¼±¶æ ÁÁÀº ÀڷḦ °ø°³ÇØÁֽмºÅ´Բ² ´Ù½Ã Çѹø °¨»çµå¸³´Ï´Ù.
Âü°í·Î, ¼ºÅ´ÔÀÇ °³ÀÎ »çÀÌÆ®´Â ¹Ù·Î
www.sysnet.pe.krÀÔ´Ï´Ù.
°Áº¸°í °¨µ¿À» ¸Ô¾î¼ ÇѸ¶µð °Ý·Á¸¦ ÇØ ÁÖ°í ½Í°Å³ª, °Á¿¡ ´ëÇØ Áú¹®Àº ¿ä±â·Î!!!
¿äÁò µé¾î¼, Smart Client ¶ó´Â ¿ë¾î¸¦ ½É½ÉÄ¡ ¾Ê°Ô µé¾î º¸¾ÒÀ» °ÍÀÌ´Ù. ¸ð¹ÙÀÏ ºÐ¾ß¿¡ °è½Å ºÐµéÀº ÇϳªÀÇ "±â±â" ¶ó°í ¾Ë°í
°è½Ç ÅÙµ¥, ÇÊÀÚÀÇ À̹ø °Á¿¡¼´Â "±â±â" ¸¦ ´Ù·ç´Â °ÍÀÌ ¾Æ´Ï°í, Microsoft °¡ ¼±º¸ÀÎ ".NET Framework" ÀÇ ºÎºÐÀ¸·Î ³ª¿Â
"Smart Client" ¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» ´Ù·ç·Á°í ÇÑ´Ù. »ç½Ç, ´å³Ý¿¡¼µµ Smart Client ¶ó´Â ¿ë¾î´Â ´Ù¼Ò ±¤¹üÀ§ÇÏ°Ô ¾²À̴µ¥,
ÀÌ °Á¿¡¼´Â ÁÖ·Î "ÀÎÅÍ³Ý ÀͽºÇ÷η¯¿¡ ÀÓº£µå µÈ ÇüÅÂÀÇ ÄÁÆ®·Ñ" À» ´Ù·ê ¿¹Á¤ÀÌ´Ù.
³Ê¹« ¸»ÀÌ ¾î·Á¿üÀ» Áö ¸ð¸£°ÚÁö¸¸, ½±°Ô Çѹø ´õ Ç®ÀÌÇØ º¸ÀÚ¸é, ±âÁ¸ ActiveX ÄÁÆ®·ÑÀ» ´ëüÇÏ´Â Smart Client ¸¦
±¸ÇöÇØ º»´Ù´Â °ÍÀÌ´Ù.
Á¤¼ºÅ kevin@dotnetxpert.com
ÇöÀç (ÁÖ) ´å³Ý ¿¢½ºÆÛÆ® ¿¡¼ ±â¼úÄÁ¼³ÅÏÆ®·Î ÀÏÇϰí ÀÖÀ¸¸ç, ÁÖ·Î COM-ActiveX, COM+, .NET Framework °ü·ÃÇÑ ÀÛ¾÷À» Çϰí ÀÖ´Ù.
¿¬Àç ¼ø¼
1ȸ : Smart Client ÀÇ °³¿ä
2ȸ : Internet Explorer ¿ÍÀÇ ¿¬µ¿
3ȸ : ¹èÆ÷
¿¬Àç °¡À̵å
¿î¿µÃ¼Á¦ : IIS °¡ ¼³Ä¡µÈ Windows ¿î¿µÃ¼Á¦ - ÇÊÀÚÀÇ °æ¿ì Windows 2003
°³¹ßµµ±¸ : Visual Studio .NET 2003, .NET Framework v1.1.4322
±âÃÊÁö½Ä : COM, C#, ASP.NET ±âÃÊ
ÀÀ¿ëºÐ¾ß : ÇöÀç·Î¼´Â ±â¾÷ ³»ºÎÀÇ ÀÎÆ®¶ó³Ý ȯ°æ¿¡¼ÀÇ ActiveX ÄÁÆ®·Ñ ´ëü.
ÀÌÈÄ, ´å³Ý ÇÁ·¹ÀÓ¿öÅ©°¡ ÀϹÝÈµÇ¸é ¿ÜºÎ À¥»çÀÌÆ® ¿¡¼ÀÇ ActiveX ÄÁÆ®·Ñ ´ëü
[°ÁÂÀÇ ¼Ò½º¸¦ ´Ù¿î·ÎµåÇÏ°í ½Í´Ù¸é Ŭ¸¯Çϼ¼¿ä!!]
.NET Framework ÀÌ ³ª¿Ô´Ù. ¾î·Æ´Ù´ø NT Service Á¶Â÷µµ .NET Framework ÀÌ ³ª¿À¸é¼ ±¸ÇöÀÌ °£´ÜÇØÁ³´Ù. À¥ ÇÁ·Î±×·¥µµ ¸¶Âù°¡Áö´Ù. ¿¹Àü ASP ¿¡¼ "Microsoft Scripting Runtime °³Ã¼ ¶óÀ̺귯¸®" ¿¡¼ Á¦°øµÇ´Â ÀÌ¿ÜÀÇ ±â´ÉÀ» »ç¿ëÇÏ·Á¸é VC++/ VB ¸¦ ÀÌ¿ëÇÏ¿© COM °³Ã¼¸¦ ¸¸µé¾î¾ß ÇßÁö¸¸, ÀÌÁ¦´Â ASP.NET ¿¡¼ .NET Framework ÀÇ Base Class Library ¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ¾î¼ COM °³Ã¼¸¦ Á¦ÀÛÇÒ Çʿ伺ÀÌ ¾ø¾îÁ³´Ù. À̹ø ¿¬Àç¿¡¼ ´Ù·ê "Smart Client" ´Â ±âÁ¸ÀÇ "ActiveX ÄÁÆ®·Ñ" À» ±³Ã¼ÇÒ ¼ö ÀÖ´Â ±â¼úÀÌ´Ù. ¹°·Ð, ActiveX ÄÁÆ®·Ñ Á¦ÀÛº¸´Ù ÈξÀ ½¬¿öÁ³À½Àº ¸»ÇÒ °Íµµ ¾ø´Ù. ±× µ¿¾È ¼ö¸¹Àº ActiveX ¸¦ Á¦ÀÛÇØ ¿À´ø ÇÊÀÚ °³ÀÎÀûÀ¸·Îµµ À̹ø "Smart Client" ´Â ȯ¿µÇÒ ¸¸ÇÑ ±â¼úÀÌ ¾Æ´Ñ°¡ »ý°¢µÈ´Ù.
¸ÕÀú Á¢ÇÏ°Ô µÇ¾î °Þ¾ú´ø ½ÃÇàÂø¿À¸¦ ºñ·ÔÇØ¼ ¿¹Á¦ Áß½ÉÀ¸·Î ¼³¸íÀ» ÇØ³ª°¥ Å×´Ï, °ü½ÉÀÖ´Â µ¶ÀÚµéÀº ´Ü°èº°·Î Çϳª¾¿ µû¶ó¼ ÇØº¸±æ ±ÇÇÑ´Ù. Âü°í·Î, IIS ´Â 5.0 °ú 6.0 ¿¡¼ ¸¹Àº Â÷À̰í ÀÖ°í, .NET Framework ¿ª½Ã 1.0 °ú 1.1 ¿¡´Â ¸¹Àº Â÷À̰¡ ÀÖ´Ù. ¾ÕÀ¸·ÎÀÇ ±â»ç´Â IIS 6.0 °ú .NET Framework 1.1 À» ±âÁØÀ¸·Î ÇϹǷΠÀ̰Ͱú ´Ù¸¥ ȯ°æÀ» °¡Áø µ¶ÀÚÀÇ °æ¿ì, ¾Æ·¡ÀÇ ¼³¸í¿¡¼ »óÀÌÇÑ ºÎºÐÀÌ ÀÖÀ»Áöµµ ¸ð¸£´Ï °¨¾ÈÇØ Áֱ⠹ٶõ´Ù.
1. ActiveX º¸´Ù ½¬¿î ÄÁÆ®·Ñ
2. °£´ÜÇÑ ÄÁÆ®·Ñ Á¦ÀÛ
3. À̺¥Æ® ±¸Çö
4. À̺¥Æ® µ¿ÀÛÀ» À§ÇÑ ´å³Ý º¸¾È º¯°æ
1. ActiveX º¸´Ù ½¬¿î ÄÁÆ®·Ñ
Çö¾÷¿¡ °è½Å ºÐµé Áß¿¡¼, ¼ø¼öÇÏ°Ô À¥ »çÀÌÆ®ÀÇ Ãâ·ÂÀ» DHTML ·Î¸¸ ÇÏ´Â °ÍÀÌ ³Ê¹«µµ Èû°ã´Ù´Â °ÍÀ» Åä·ÎÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì¿¡ ÀÖ¾î °í°´ÀÇ ¿ä±¸´Â DHTML ÀÇ Á¦¾àÀ» »ý°¢ÇÏÁö ¾Ê´Â´Ù. ¹«Á¶°Ç ÀÌ·¯ÀÌ·¯ÇÑ ±â´ÉÀÌ ÇÊ¿äÇÒ »ÓÀ̰í, ±×·¯ÇÑ ±â´ÉÀ» Script ·Î ±¸ÇöÇÏ·Á´Ï ¼ÓµµÀúÇÏ ¹× ÄÚµåÀÇ À¯Áöº¸¼ö¿¡ ¾î·Á¿òÀÌ ¿À´Â °ÍÀº ´ç¿¬ÇÏ´Ù. ƯÈ÷ ·çÇÁ°¡ ¸¹Àº °æ¿ì, ½ºÅ©¸³Æ®ÀÇ ¼ÓµµÀúÇÏ´Â ½É°¢ÇØÁö¸ç, ¿î¿µÃ¼Á¦¿Í µ¶¸³µÈ Script ÀÇ ÇѰè·Î ÀÎÇØ ±¸ÇöÀÌ ºÒ°¡´ÉÇÑ ºÎºÐ±îÁöµµ ³ª¿Ã ¼ö ¹Û¿¡ ¾ø´Ù. ±×·± »óȲ¿¡¼ ÇØ°áÃ¥À¸·Î Á¦½ÃµÈ °ÍÀº ActiveX ÄÁÆ®·ÑÀ̾ú´Ù. Internet Explorer ¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ±×·ì¿þ¾î¸¦ º¸¸é, ActiveX ·Î "µµ¹è" ¸¦ ÇÑ »çÀÌÆ®°¡ ¸¹´Ù. "µµ¹è" ¶ó´Â ¿ë¾î¸¦ ½è´Âµ¥, Àý´ë Å¿ÇÏ·Á´Â Àǹ̰¡ ¾Æ´Ï´Ù. ¿ä±¸»çÇ×´ë·Î ÇÏ·Á´Ï, ´äÀº ActiveX »ÓÀ̾ú°í, ±×·Î ÀÎÇØ °³¹ß»ý»ê¼ºÀÌ ÇöÀúÇÏ°Ô ¶³¾îÁ³À» °ÍÀÌ´Ù.
ÀÌÁ¨ ActiveX ¸¦ ¶°³ª¾ß ÇÒ ½Ã±â°¡ µÈ °Í °°´Ù. VC++ ¿¡¼ ¹þ¾î³ª¼ VB ¼öÁØÀÇ Æí¸®ÇÔÀ» Á¦°øÇØÁÖ´Â Smart Client °¡ ¿©·¯ºÐ °ç¿¡¼ ±â´Ù¸®°í ÀÖ´Ù. Smart Client ÀÇ ½ÇÇö °¡´É¼º¿¡ ÀÖ¾î Àå¾Ö¹°À̶ó¸é ¾ÆÁ÷ "´å³Ý ÇÁ·¹ÀÓ¿öÅ©" °¡ ³Î¸® ÆÛÁöÁö ¾Ê¾Ò´Ù´Â »ç½ÇÀÌ´Ù. ÀÏ´Ü, ±× ºÎºÐÀº ½Ã°£ÀÌ ÇØ°áÇØ ÁÙ °ÍÀ̰í, °¡´ÉÇÑ ¹üÀ§¸¦ ã¾Æº¸¸é ÀÎÆ®¶ó³ÝÀ» ¿¹·Î µé ¼ö ÀÖ°Ú´Ù. Á¤Ã¥ÀûÀ¸·Î ´å³Ý ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼³Ä¡ÇÒ ¼ö ÀÖ´Â »óȲÀ̶ó¸é, ActiveX º¸´Ù °³¹ß»ý»ê¼ºÀ» ÇöÀúÇÏ°Ô ³ô¿©ÁÙ "Smart Client" ¸¦ Àû¿ëÇÏ´Â °ÍÀÌ Çö¸íÇÑ ¼±ÅÃÀÌ µÈ´Ù. ´ÙÀ½Àº ÇÊÀÚ°¡ »ý°¢ÇØ º» ºñ±³ µµÇ¥ÀÌ´Ù.
|
Visual Basic |
Visual C++ |
Smart Client |
±¸ÇöÀÇ ¿ëÀ̼º |
»ó |
ÇÏ |
»ó |
Ŭ¶óÀÌ¾ðÆ® º¸¾È |
ÇÏ |
ÇÏ |
»ó |
½¬¿î ¹èÆ÷ |
ÇÏ |
»ó |
»ó |
ÄÚµå ÀÎÁõ |
ÇÊ¿ä |
ÇÊ¿ä |
*ÇÊ¿ä/ºÒÇÊ¿ä |
( *»ç½Ç Smart Client ¿ª½Ã °á±¹ ÄÚµå ÀÎÁõÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù´Â °Í¸¸ ¾Ë¾ÆµÎÀÚ. ´Ù¸¥ Á¡À̶ó¸é ÇØ´ç DLL ¿¡ ÇÒ ÇÊ¿ä´Â ¾ø°í, º°µµÀÇ º¸¾È¼³Á¤À» ÇØÁÖ´Â ¸ðµâ¿¡ ´ëÇØ¼¸¸ ÄÚµå ÀÎÁõÀ» ÇÏ¸é µÈ´Ù. ÀÌ ºÎºÐ¿¡ ´ëÇØ¼´Â ¿¬Àç 3ȸ¿¡¼ ÀÚ¼¼È÷ ´Ù·ç°Ú´Ù. )
±×°ÍÀ» °¨¾ÈÇÏ´õ¶óµµ ¸ðµç ¸é¿¡¼ ¿ì¼öÇÑ °ÍÀ» ÇÑ´«¿¡ ¾Ë ¼ö ÀÖ´Ù. Smart Client ´Â Á¦ÀÛ ¾ð¾î¸¦ ÀÚÀ¯·Ó°Ô ¼±ÅÃÇÒ ¼ö ÀÖÀ¸¸ç, Code Access Security ¿¡ ±â¹ÝÇÑ º¸¾ÈÀ¸·Î ÀÎÇØ »ç¿ëÀÚ ÀÔÀå¿¡¼µµ ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ActiveX ÀÇ °æ¿ì CAB ÆÄÀϵîÀ» ¸¸µé¾î¾ß ÇßÁö¸¸, "Smart Client" ´Â ´Ü¼øÈ÷ DLL ¶Ç´Â EXE ÆÄÀÏÀ» À¥ »ó¿¡ ¿Ã·Á³õ±â¸¸ ÇÏ¸é µÈ´Ù. ActiveX ¿Í ¸¶Âù°¡Áö·Î À¥ ¼¹ö°¡ ¾î¶² °ÍÀ̳Ĵ Áß¿äÇÏÁö ¾Ê´Ù. °á±¹ Smart Client ÄÚµåÀÇ ½ÇÇàÀº Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÀÌ·ç¾îÁö±â ¶§¹®ÀÌ´Ù. ½ÉÁö¾î, »ç¿ëÀÚ ÄÄÇ»ÅÍÀÇ º¸¾È¼³Á¤À» ¹Ù²Ü Çʿ䰡 ¾ø´Â ¹üÀ§³»¿¡¼ÀÇ ±â´É±¸ÇöÀ̶ó¸é, ÄÚµå ÀÎÁõÁ¶Â÷µµ ÇÊ¿ä¾øÀÌ ¹Ù·Î ¹èÆ÷°¡ °¡´ÉÇÏ´Ù. ±×·¸´Ù°í ÇØ¼, ¾ÕÀ¸·ÎÀÇ ¼³¸íµéÀÌ Áٰ𠽬¿ï °Å¶ó°í »ý°¢Çؼ´Â ¾ÈµÈ´Ù. ±âÁ¸ ±¸ÇöµÈ ActiveX Áß¿¡¼ º¹ÀâÇÑ °Í±îÁöµµ ¸ðµÎ ´ëüÇÒ ¸¸ÇÑ "Smart Client" ¸¦ ¿øÇÑ´Ù¸é ´Ù¼Ò ¾î·Á¿î À̾߱â±îÁö Èê·¯°¥Å×´Ï ¸»ÀÌ´Ù.
2. °£´ÜÇÑ ÄÁÆ®·Ñ Á¦ÀÛ
óÀ½ºÎÅÍ, ³Ê¹« ½±´Ù°í ¼³¸íÇØ¼ ³»½É °ÆÁ¤µÈ´Ù. »ç½Ç, "°£´ÜÇÑ" ÄÁÆ®·ÑÀε¥µµ Á¤ÀÛ °í·ÁÇØ¾ß ÇÒ °ÍÀÌ ¸¹±â ¶§¹®ÀÌ´Ù. ¾ÆÁ÷Àº COM ¿¡ ´ëÇÑ ¿ä¼Òµµ Àû¿ëµÇ¾î ÀÖ°í, WinForm µ¶¸³ ÇÁ·Î±×·¥°ú´Â ´Þ¸® Ŭ¶óÀÌ¾ðÆ® Á¢±Ù¿¡ ´ëÇÑ º¸¾È»çÇ×±îÁö ¹Î°¨ÇÏ°Ô Àû¿ëµÇ´Ù º¸´Ï ½ÇÁ¦·Î´Â "´å³Ý ÇÁ·¹ÀÓ¿öÅ©" ¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ Áö½ÄÀ» ¿ä±¸ÇÒ Á¤µµÀÌ´Ù. ¹Ì¸® Smart Client ¸¦ °øºÎÇØ º¸½Å ºÐµµ °è½Ç °ÍÀ̰í, ºñ·Ï "°£´ÜÇÑ" ÄÁÆ®·Ñ Á¦ÀÛÀÌÁö¸¸, À̹ø ȸ¸¦ ¸ðµÎ ÇÒ¾ÖÇÒ Á¤µµÀÌ´Ï Â÷±ÙÂ÷±Ù ¼÷ÁöÇØ º¸µµ·Ï ÇÏÀÚ.
½Ç½À
ÀÌÁ¦, ´Ü°èº°·Î ±¸ÇöÀ» ÇØ³ª°¡¸é¼ ¼³¸íÀ» ÇÒ ÅÙµ¥, À̹øÈ¸¿¡¼´Â ±âº»ÀûÀÎ ¸Þ¼µå, ÇÁ·ÎÆÛƼ, À̺¥Æ®¸¦ ±¸ÇöÇÑ Smart Client ·Î½á HTML ¿¡¼´Â ±¸ÇöÀÌ ´Ù¼Ò º¹ÀâÇÑ Æ®¸® ÄÁÆ®·ÑÀ» ¿¹Á¦·Î Á¦ÀÛÇØ º¸°Ú´Ù. À̹ø¿¡ ¸¸µå´Â ÄÁÆ®·ÑÀº ³ª¸ÓÁö ¿¬Àç¿¡¼ °è¼Ó È®ÀåµÉ °ÍÀ̹ǷÎ, Á÷Á¢ ½Ç½ÀÇØ º¼ °ÍÀ» ±ÇÇÑ´Ù.
|
¤¡. [ȸé 1] °°ÀÌ Visual Studio.NET ÅëÇÕȯ°æÀ» ½ÇÇà½ÃÄѼ, "WebApp" ¶ó´Â À¥ Application ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù.
[ȸé 1 : À¥ ÇÁ·ÎÁ§Æ® »ý¼º]
ÆÁÀ̶ó°í ÇÒ ¼ö ÀÖ´Â ¼³¸íÀ» µ¡ºÙ¿© º¸¸é, ½ÇÁ¦·Î [ȸé 1]°ú °°ÀÌ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°Ô µÇ¸é, Visual Studio.NET ÀÌ IIS ·çÆ® µð·ºÅ丮·Î ÁöÁ¤µÈ °÷¿¡ ¸¸µé°Ô µÈ´Ù. º¸Åë C:\InetPub\wwwroot\WebApp Æú´õ°¡ µÉ ÅÙµ¥, »ç½Ç ÀÌ·¸°Ô ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÇ±æ ¹Ù¶ó´Â ºÐµéÀº ¾øÀ» °ÍÀÌ´Ù. ±×·¯´Ï, ÀÚ½ÅÀÇ ÀÛ¾÷Æú´õ ( ÇÊÀÚÀÇ °æ¿ì¿¡´Â, D:\workshop ) ¾Æ·¡¿¡ "WebApp" Æú´õ¸¦ ¸¸µé°í, [ȸé 2] ¿Í °°ÀÌ µî·ÏÁ¤º¸ â¿¡¼ "À¥°øÀ¯" ¼³Á¤À» ÇÑ´Ù. ±×·± ÈÄ, "WebApp" À¥ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¸é »ç¿ëÀÚ°¡ ÀǵµÇß´ø "D:\workshop\WebApp" Æú´õ¿¡ Visual Studio.NET ÀÌ ÇÁ·ÎÁ§Æ® ÆÄÀϵéÀ» »ý¼ºÇÏ°Ô µÈ´Ù.
[ȸé 2 : WebApp Æú´õ¸¦ À¥°øÀ¯ ½ÃÅ´]
¤¤. [ȸé 3] °ú °°ÀÌ Smart Client ¸¦ ±¸ÇöÇÒ "Ŭ·¡½º ¶óÀ̺귯¸®" ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù. ( ¿©·¯ ¾ð¾î Áß¿¡¼ ÇÊÀÚ´Â Visual C# À» ¼±ÅÃÇß´Ù. )
[ȸé 3 : Visual C# Ŭ·¡½º ¶óÀ̺귯¸® »ý¼º]
¤§. ÀÌÁ¦, ÇÁ·ÎÁ§Æ® Áغñ´Â ³¡³µ°í, ¿¹Á¤Çß´ø µ¥·Î Smart Client ÄÁÆ®·ÑÀ» »ý¼ºÇØ º¸ÀÚ. [ȸé 4] ¿¡¼ º¸´Â °Íó·³ "»ç¿ëÀÚ Á¤ÀÇ ÄÁÆ®·Ñ" À» ¼±ÅÃÇϰí "TreeControl.cs" ¶õ À̸§À¸·Î Ãß°¡ÇÏÀÚ.
[ȸé 4 : »õ Ç׸ñ Ãß°¡ - »ç¿ëÀÚ Á¤ÀÇ ÄÁÆ®·Ñ]
¤©. ÄÁÆ®·Ñ µðÀÚÀÎ Æû¿¡ "µµ±¸»óÀÚ" ·ÎºÎÅÍ "TreeView" ¸¦ ²ø¾î´Ù ³õ°í À̸§À» "_treeView" ·Î ¼öÁ¤ÇÑ´Ù.
¤±. TreeControl.cs ¿¡¼ ¸Þ¼µå¿Í ÇÁ·ÎÆÛƼ¸¦ ±¸ÇöÇÏÀÚ. ÀÚ¼¼ÇÑ ÄÚµå´Â [¼Ò½º ´Ù¿î·Îµå] ¸¦ ÂüÁ¶ÇϵÇ, µ¶ÀÚ ³ª¸§´ë·Î ÀÚÀ¯·Ó°Ô Ãß°¡ÇØ º¸±â ¹Ù¶õ´Ù.
¸Þ¼µå |
public void LoadXML( string text );
|
public À̹ǷΠ½ºÅ©¸³Æ®¿¡¼ ¾×¼¼½º °¡´É.XML ¹®¼¸¦ ¹®ÀÚ¿·Î ¹Þ¾Æ¼ Æ®¸®¿¡ º¸¿©ÁÜ.
|
private bool SetTreeData( XmlNodeList nodeList, TreeNode parentNode );
|
private À̹ǷΠ½ºÅ©¸³Æ®¿¡¼ ¾×¼¼½º ºÒ°¡´É. Àç±ÍÈ£ÃâÀ» ÅëÇØ µ¥ÀÌÅ͸¦ ½ÇÁ¦·Î Æ®¸®¿¡ ·»´õ¸µ.
|
ÇÁ·ÎÆÛƼ |
public string SelectedNodeText; [get]
|
¼±ÅÃµÈ ³ëµåÀÇ XML ÅØ½ºÆ®¸¦ ¹Ýȯ
|
¤². Á¦´ë·Î µÈ ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ´Â Æ®¸® ÄÁÆ®·ÑÀÇ ³ëµå¸¦ Ŭ¸¯½Ã¿¡ À̺¥Æ®¸¦ ¹ß»ý½ÃÄÑ¾ß ÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸, À̺¥Æ®¿¡ ´ëÇØ¼´Â º¹ÀâÇϹǷΠÀá½Ã ¹Ì·ç°Ú´Ù. ÄÄÆÄÀÏ ÈÄ, SmartClient.dll À» "WebApp" À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ WebForm1.aspx °¡ ÀÖ´Â Æú´õ¿¡ º¹»çÇÏÀÚ. ½ÇÁ¦ °³¹ß½Ã¿¡´Â ¸Å¹ø DLL ÀÌ º¯°æµÉ¶§¸¶´Ù º¹»çÇϱⰡ ¹ø°Å·Î¿ì¹Ç·Î, [ȸé 5] ¿Í °°ÀÌ Ãâ·Â °æ·Î¸¦ ÁöÁ¤ÇØ ³õÀ¸¸é Æí¸®ÇÒ °ÍÀÌ´Ù.
[ȸé 5 : Ãâ·Â °æ·Î ¼³Á¤]
¤µ. ÀÌÁ¦, "WebApp" ÇÁ·ÎÁ§Æ®·Î µ¹¾Æ°¡¼ "WebForm1.aspx" ¸¦ ¼öÁ¤ÇØ º¸ÀÚ. cs ÄÚµå´Â ¼öÁ¤ÇÒ ÇÊ¿ä¾ø°í, HTML À» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApp.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>WebForm2</title>
<script language=jscript> -------------------------- ¨ç
function window.onload()
{
Form1._Control1.LoadXML( _xmlData.xml );
}
</script>
<xml id=_xmlData> -------------------------------- ¨è
<tree>
<L expand="T">
<D>¸¶¼Ò</D><D>http://www.imaso.co.kr/</D><D>Ãß°¡ DATA</D>
<L expand="T">
<D>´å³Ý¿¢½ºÆÛÆ®</D><D>http://www.dotnetxpert.com/</D><D>Ãß°¡ Data1</D>
</L>
</L>
<L expand="F">
<D>Microsoft</D><D>http://www.microsoft.com</D><D>Ãß°¡ Data2</D>
</L>
</tree>
</xml>
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<OBJECT id="_Control1" style="WIDTH: 272px; HEIGHT: 193px"
classid="SmartClient.dll#SmartClient.TreeControl" VIEWASTEXT>
</OBJECT> -------------------------------- ¨é
</form>
</body>
</html>
|
´Ü°èº°·Î »ìÆìº¸±â·Î ÇÏÀÚ.
¨ç ¿¹ÀüÀÇ ActiveX ÄÁÆ®·ÑÀ» »ç¿ëÇÏ´Â °Í°ú ¹æ½ÄÀº °°´Ù. ÇØ´ç Smart Client ÀÇ public ¸Þ¼µå¸¦ ½ºÅ©¸³Æ® »ó¿¡¼µµ È£ÃâÇØ ÁÖ¸é µÈ´Ù.
¨è XML µ¥ÀÌÅÍ ¾ÆÀÏ·£µå ·Î ÇØ¼ XML µ¥ÀÌÅ͸¦ ÄÁÆ®·Ñ¿¡¼ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï HTML ³»¿¡ ³Ö¾î µÎ¾ú´Ù. ±×¸® Áß¿äÇÑ »çÇ×Àº ¾Æ´Ï´Ù.
¨é Smart Client °¡ HTML ³»ºÎ¿¡¼ ¾î¶»°Ô »ç¿ëµÉ ¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. <OBJECT/> ű׸¦ »ç¿ëÇÑ´Ù´Â ¸é¿¡¼´Â ActiveX ¿Í µ¿ÀÏÇÏ´Ù. ´Ù¸¥ ºÎºÐÀ̶ó¸é, classid »ÓÀε¥, À¥¼¹ö¿¡¼ SmartClient.dll À» ¹ß°ßÇÒ ¼ö ÀÖ´Â »ó´ë°æ·Î À§Ä¡¿Í ¾î¶² Ŭ·¡½º¸¦ Ȱ¼ºÈ ½Ãų °ÍÀÎÁö¿¡ ´ëÇÑ Å¸ÀÔ Á¤º¸¸¦ ±â¼úÇϰí ÀÖ´Ù. ³ªÁß¿¡ ¾Ë°Ô µÇ°ÚÁö¸¸, SmartClient.dll ÆÄÀÏÀ» regasm.exe ·Î ·ÎÄÿ¡ COM °³Ã¼·Î µî·ÏÇÑ´Ù¸é, ÀÌ ºÎºÐ Á¶Â÷µµ ½ÇÁ¦ CLASS ID ·Î ±³Ã¼ °¡´ÉÇÏ´Ù.
¤·. ±¸Çö¿Ï·á ¹× Å×½ºÆ® Áغñ°¡ ¸ðµÎ ³¡³µ´Ù. WebApp ÇÁ·ÎÁ§Æ®¸¦ ÄÄÆÄÀÏ Çϰí, À¥ ºê¶ó¿ìÀú¿¡¼ http://localhost/WebApp/WebForm1.aspx ·Î °¡º¸ÀÚ. [ȸé 6] °ú °°Àº °á°ú°¡ º¸ÀÏ °ÍÀÌ´Ù. ActiveX ¿Í ºñ±³ÇØ º¸¸é ¾ó¸¶³ª Æí¸®ÇØ Á³´Â Áö ´À²¸Áö´Â ¼ø°£ÀÌ´Ù. ÁøÀÛ¿¡, °³¹ßÀÌ ÀÌ·± ½ÄÀ¸·Î µÇ¾ú¾î¾ß ÇÏÁö ¾Ê¾Ò³ª ÇÏ´Â »ý°¢¸¶Àú µå´Â °ÍÀº ¿ÖÀϱî. À̹ø¿£, http://127.0.0.1/WebApp/WebForm1.aspx ·Î ÇØº¸ÀÚ. IIS 6.0 ÀÇ °æ¿ì¿¡ ºñ¹Ð¹øÈ£¸¦ ¹°¾îº¼ °ÍÀÌ´Ù. 127.0.0.1 À» "·ÎÄà ÀÎÆ®¶ó³Ý" ÀÌ ¾Æ´Ñ "ÀÎÅͳÝ" À¸·ÎºÎÅÍÀÇ Á¢±ÙÀ¸·Î ÀνÄÇÏ´Â µ¥´Ù°¡, IIS 6.0 Àº ±âº»ÀûÀ¸·Î °¡»ó µð·ºÅ丮¿¡ ´ëÇØ¼ "À͸íÁ¢±Ù" À» Çã¿ëÇÏÁö ¾Êµµ·Ï µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ÀÌ °æ¿ì, ¸Å¹ø ºÒÆíÇÏ°Ô °èÁ¤À» ÀÔ·ÂÇÏ´øÁö, ¾Æ´Ï¸é IIS 6.0 ¿¡¼ "WebApp" °¡»óµð·ºÅ丮¿¡ ´ëÇØ¼ "À͸íÁ¢±Ù" Çã¿ëÀ» Ã¼Å©ÇØ µÎ¸é µÈ´Ù.
[ȸé 6 : ¿¹Á¦ ½ÇÇàȸé]
ÇѰ¡Áö ´õ ¾ð±ÞÇÏÀÚ¸é, "SmartClient.dll" ¾î¼Àºí¸®¿¡ "°·ÂÇÑ À̸§¼¸í" À» ÇÏ°Ô µÇ¸é, "127.0.0.1" ¿¡¼µç "localhost" ¿¡¼µç ÀüÇô Ȱ¼ºÈ°¡ µÇÁö ¾Ê´Â´Ù. ¾î¶°ÇÑ ±âÁØÀÌ Àû¿ëµÇ´Â Áö´Â ¾ÆÁ÷ ¸ð¸£°ÚÁö¸¸, »ó½ÄÀûÀ¸·Î´Â ÀÌÇØ°¡ µÇÁö ¾Ê´Â ±âÁØÀÌ´Ù.
3. À̺¥Æ® ±¸Çö
¾î¶»°Ô ´å³Ý ÇÁ·¹ÀÓ¿öÅ©ÀÇ Class °¡ COM °³Ã¼·Î ¸ÅÇÎÀÌ µÇ´ÂÁö¿¡ ´ëÇØ¼´Â ³»ºÎ ±¸ÇöÀº Á¤È®È÷ ¾Ë ¼ö ¾ø´Ù. ÇÏÁö¸¸, ¾î·µç IUnknown °ü·ÃÇÑ ÀÎÅÍÆäÀ̽º¿¡ vtable À» ¸ÂÃß¾î ÁÖ¸é È£ÃâÇÒ ¼ö´Â ÀÖÀ» °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î À̺¥Æ® ¿ª½Ã COM ÀÇ ±Ô¾àÀ» µû¸£±â¸¸ ÇØÁØ´Ù¸é »óÈ£¿¬µ¿À» ÇÏ°Ô µÉ °ÍÀÌ´Ù. ±×°É °³¹ßÀÚ°¡ ÇØÁÖ¾î¾ß ÇÒ±î? ActiveX ½ÃÀý¿¡´Â ±×·¸°Ô ÇÏ´Â °ÍÀÌ ´ç¿¬ÇßÁö¸¸, ´å³Ý ÇÁ·¹ÀÓ¿öÅ©ÀÇ Smart Client ·Î ¿Í¼´Â ÄÚµå¶ó±â º¸´Ù´Â "Ư¼º" À¸·Î ¹Ù²î¾ú´Ù. ´å³ÝÀÇ "Ư¼º" À» ÀÌ¿ëÇÏ¿© °³¹ßÀÚ°¡ "Ç¥½Ã" ¸¸ ÇØµÎ¸é ¸ðµç ÄÚµå´Â ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼ »ðÀÔÇØ ÁØ´Ù. À̺¥Æ® ¼Ò½º¸¦ ¾Ë¸®´Â Ư¼º°ú, À̺¥Æ®¸¦ ¹ß»ýÇÏ´Â ³»ºÎ Äڵ常 ÁغñÇÏ¸é ³¡ÀÎ ¼ÀÀÌ´Ù. ¹°·Ð, À̺¥Æ®¸¦ °Å´Â °ÍÀº ¿ÜºÎÄڵ忡¼ ÇØ¾ß ÇÒ ÀÏÀÌ´Ù.
ÀÌÁ¦ºÎÅÍ À§¿¡¼ ¸¸µç Tree Control ¿¡¼, ³ëµå°¡ ¼±ÅÃÀÌ µÇ¸é À̺¥Æ®¸¦ ¹ß»ýÇÑ °ÍÀ» ½ºÅ©¸³Æ®¿¡¼ ¹Þ°í URL À» ¾ò¾î³»¾î ÇØ´ç ÁÖ¼Ò·Î ³×ºñ°ÔÀÌ¼Ç ÇÏ´Â °ÍÀ» ±¸ÇöÇØ º¸°Ú´Ù.
¤¡. À̺¥Æ® ¼Ò½º ÀÎÅÍÆäÀ̽º ¸¶·Ã.
¹®¹ýÀº VC++ ATL ¿¡¼ IDL ´Ù·ê ¶§¿Í »ó´çÈ÷ À¯»çÇÏ´Ù.
SmartClient ÇÁ·ÎÁ§Æ®¿¡¼ "TreeEvent.cs" ÆÄÀÏÀ» »õ·Î Ãß°¡ÇÏ°í ´ÙÀ½°ú °°ÀÌ À̺¥Æ® ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÀÚ.
public interface ITreeControlCOMIncoming ----------------- ¨ç
{
void LoadXML( string text );
string SelectedNodeText { get; }
}
[Guid("A59B958D-B363-454b-88AA-BE8626A131FA")] ------- ¨è
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] ------- ¨é
public interface ITreeEvent
{
[DispId(0x60020000)] --------------------------- ¨ê
void NodeClicked();
}
|
¨ç ±âº»ÀûÀÎ Smart Client ÀÇ ¸Þ¼µå¸¦ ½ºÅ©¸³Æ®¿¡¼ È£ÃâÇÏ°í ½ÍÀ» ¶§´Â public Á¦ÇÑÀÚ¸¦ ÁÖ´Â °ÍÀ¸·Î ³¡³µÁö¸¸, À̺¥Æ®¸¦ ±¸ÇöÇϸ鼴 ¿ÜºÎ¿¡¼ÀÇ È£ÃâÀ» À§ÇÑ ¸ñ·ÏÀ» ÀÎÅÍÆäÀ̽º¿¡¼ ±â¼úÇØ ÁÖ°í ±×°ÍÀ» »ó¼Ó¹Þ¾Æ¾ß ÇÑ´Ù. µÚ¿¡ TreeControl Ŭ·¡½º¿¡ ÁÖ°Ô µÉ ClassInterfaceType.None À¸·Î ÀÎÇØ¼ ¿ÜºÎ·Î ±â´ÉÀ» ³ëÃâ½Ãų ¸Þ¼µå³ª ÇÁ·ÎÆÛƼ¸¦ ÀÌ¿Í °°ÀÌ ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÏ¿© °ü¸®ÇÏ°Ô µÈ´Ù..
¨è ÇØ´ç Event Source ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ¼ ÀÓÀÇÀûÀ¸·Î À¯ÀÏÇÑ GUID °ªÀ» ¼³Á¤ÇÑ´Ù.
¨é Script ¿¡¼ À̺¥Æ®¸¦ °É °ÍÀ̱⠶§¹®¿¡ IDispatch °¡ Àû¿ëµÇ¾î¾ß ÇÑ´Ù.
¨ê °¢°¢ÀÇ À̺¥Æ®¿¡ ´ëÇØ ÀÓÀÇÀûÀ¸·Î DispID »ó¼ö°ªÀ» ¼³Á¤ÇÑ´Ù.
¤¤. À̺¥Æ® ¼Ò½º ÀÎÅÍÆäÀ̽º¿Í TreeControl Ŭ·¡½º¿Í ¿¬°á
VC++ ·Î ATL À» ÇØº¸Áö ¾ÊÀ¸½Å ºÐµéÀº À§ÀÇ »çÇ׸¸ ÇØµµ ³¸¼³¾î ÇÏ½Ç °Í °°´Ù. ÇÏÁö¸¸ °ÅÀÇ Á¤ÇüÈµÈ Æ²ÀÌ´Ï »ç¿ëµÇ´Â Ư¼ºµéÀÌ ´Ù¼Ò ³¸¼³Áö¶óµµ Áö±Ý º¸¿©µå¸®´Â "Ʋ" ´ë·Î¸¸ ÇØÁÖ¸é ¹®Á¦°¡ ¹ß»ýÇÏÁø ¾ÊÀ» °ÍÀÌ´Ù.
[ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(ITreeEvent))] ------- ¨ç
public class TreeControl : System.Windows.Forms.UserControl, ITreeControlCOMIncoming --- ¨è
{
private System.Windows.Forms.TreeView _treeView;
public delegate void NodeClickedHandler(); ------------------- ¨é
public event NodeClickedHandler NodeClicked;
protected void OnNodeClicked()
{
if ( NodeClicked != null )
{
Invoke( NodeClicked, null );
}
}
public string SelectedNodeText
{
get
{
if ( _treeView.SelectedNode == null )
{
return string.Empty;
}
XmlNode aNode = _treeView.SelectedNode.Tag as XmlNode;
return aNode.OuterXml;
}
}
}
|
¨ç ClassInterfaceType.None À¸·Î ÀÎÇØ¼ »ó¼Ó¹ÞÀº interface ¿¡ ¸í½ÃµÈ ÇÁ·ÎÆÛƼ¿Í ¸Þ¼µå¸¸À» ¿ÜºÎ¿¡ ³ëÃâ½ÃŰ°Ú´Ù´Â °ÍÀ» ¾Ë¸®°í ComSourceInterface Ư¼ºÀ¸·Î TreeControl ÀÇ À̺¥Æ® ¼Ò½º ÀÎÅÍÆäÀ̽º°¡ ITreeEvent ¶ó°í ¾Ë¸®°Ô µÈ´Ù. ÀÌ Æ¯¼ºÀ» ÄÄÆÄÀÏ·¯°¡ ÀÎÁöÇÒ °ÍÀÌ°í ±×¿¡ µû¸¥ Äڵ带 ÀÚµ¿À¸·Î »ý»êÇØ ³¾ °ÍÀÌ´Ù.
¨è ClassInterfaceType.None Ư¼ºÁöÁ¤À¸·Î ÀÎÇØ¼ ITreeControlCOMIncoming ÀÎÅÍÆäÀ̽º¿¡ ¸í½ÃÀûÀ¸·Î ÁöÁ¤µÈ ¸Þ¼µå¿Í ÇÁ·ÎÆÛƼ¸¸À» ¿ÜºÎ¿¡ °ø°³ÇÕ´Ï´Ù.
¨é À̺¥Æ® ±¸ÇöÀº C# À̺¥Æ® ±¸ÇöÀ» µû¸¥´Ù. ComSourceInterface ¿¡¼ ¼±¾ðµÈ ¸Þ¼µå Çϳª´ç delegate Çϳª¾¿ ¼±¾ðÇÏ°í ´ëÀÀµÇ´Â event ¸¦ Á¤ÀÇÇÏ¸é µÈ´Ù.
¤§. À̺¥Æ® ¹ß»ý
TreeControl ÀÇ °æ¿ì, ³ëµå°¡ ¼±ÅÃµÉ ¶§¸¶´Ù ¿ÜºÎ¿¡ À̺¥Æ®¸¦ ¹ß»ý½Ãų °ÍÀ̹ǷΠTreeView ÄÁÆ®·ÑÀÇ AfterSelect À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ¾Æ·¡¿Í °°ÀÌ È£ÃâÇØ ÁÖ¸é µÈ´Ù.
private void _treeView_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
OnNodeClicked();
}
|
¤©. ½ºÅ©¸³Æ®¿¡¼ À̺¥Æ® ¹Þ±â
¿ª½Ã ±âÁ¸ ActiveX À̺¥Æ® ó¸®ÇÏ´Â °Í°ú ´Ù¸¦ °ÍÀÌ ¾ø´Ù. ´ÙÀ½Àº ¼±ÅÃµÈ Æ®¸® ³ëµå·ÎºÎÅÍ XML ÅØ½ºÆ®¸¦ ¹Þ¾Æ¿À°í ±× µ¥ÀÌÅÍ Áß¿¡¼ URL ³ëµåÀÇ °ªÀ» Àоîµé¿© ÇØ´ç »çÀÌÆ®·Î À̵¿À» ÇÑ´Ù.
<script event="NodeClicked()" for="_Control1">
var xmlText = _Control1.SelectedNodeText;
var xmlDoc = new ActiveXObject( "Microsoft.XMLDOM" );
if ( xmlDoc.loadXML( xmlText ) == true )
{
document.location.href = xmlDoc.selectSingleNode( "L" ).childNodes.item( 1 ).text;
}
</script>
|
¸ðµÎ, ±¸ÇöÀ» ÇßÀ¸¸é ÄÄÆÄÀÏ Çϰí http://127.0.0.1/WebApp/WebForm1.aspx ·Î Å×½ºÆ® ÇØº¸ÀÚ. ÀÌÁ¦±îÁöÀÇ ÄÚµùÀ» µû¶óÇØ ÁֽŠ¿©·¯ºÐµé²² Á˼ÛÇÏÁö¸¸, À§ÀÇ ±¸ÇöÀº "¿¹¿Ü" ¹ß»ýÀ¸·Î ³¡³ª°í ¸¸´Ù. ¿Ö ¿¹¿Ü»óȲÀÌ µÇ¾î¹ö¸° °ÍÀϱî? ÀÌ·± Çö»óÀº Smart Client ¿¡¼ À̺¥Æ®¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ ´å³ÝÀÇ "º¸¾È" ¿¡ À§¹èµÇ±â ¶§¹®ÀÌ´Ù. Áï, "ÀÎÅͳÝ" À¸·ÎºÎÅÍ ´Ù¿î·Îµå ¹ÞÀº ¸ðµâÀÇ Äڵ尡 "Unmanaged ÄÚµå" ¸¦ È£ÃâÇÒ ¼ö ¾øµµ·Ï ÇØ³õÀº °ÍÀÌ´Ù. À̺¥Æ®´Â ¸í¹éÈ÷ COM °³Ã¼·Î ±¸ÇöÀÌ µÇ°í COM Àº Unmanaged ÄÚµå¶ó¼ "´å³Ý" Àº ±×°ÍÀ» Çã¿ëÄ¡ ¾Ê´Â °ÍÀÌ´Ù.
¿©±â¼, ÇѰ¡Áö Àá½Ã Àǹ®ÀÌ »ý±â´Â µ¶ÀÚ°¡ ÀÖÀ» °ÍÀÌ´Ù. °á±¹ Smart Client ¸¦ Script ¿¡¼ Á¢±ÙÇÒ ¶§´Â ¸¶Âù°¡Áö·Î COM È£ÃâÀ» ÇÏ´Â °ÍÀε¥, ±×°ÍÀº ¿Ö ¿¹¿Ü°¡ ¾Æ´Ï¶ó´Â °ÍÀÎÁö? ±× ÀÌÀ¯¿¡ ´ëÇØ ÇØ´äÀ» À̲ø¾î ³»ÀÚ¸é ÀÌ·± ½ÄÀÌ´Ù. ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼ Smart Client ¸¦ È£ÃâÇÏ´Â °ÍÀº ¿ÜºÎ¿¡¼ ´å³Ý Äڵ带 È£ÃâÇÏ´Â °Í »ÓÀÌ´Ù. Áï, ¿ì¸®°¡ ¸¸µç ÄÁÆ®·Ñ ³»ºÎÀÇ ´å³Ý Äڵ尡 "Unmanaged Code" ¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ ¾Æ´Ï°í, ¿ÜºÎ¿¡¼ "Unmanaged Code" ¸¦ ÅëÇÏ¿© ¿ì¸®ÀÇ ´å³Ý Äڵ带 ½ÇÇà½ÃŰ´Â °ÍÀÌ´Ù. ±×¿Í ¹Ý¸é¿¡ À̺¥Æ®ÀÇ Ã³¸®´Â ´Ù¸£´Ù. COM ¿¡¼ÀÇ À̺¥Æ® 󸮴 "½Ö¹æÇâ Åë½Å" ÀÌ´Ù. À̺¥Æ®¸¦ °É°Ô(sinking) µÇ´Â °ÍÀº ¿¹¿Ü Á¶°Ç¿¡ °É¸®Áö ¾Ê´Â´Ù. ±×·¡¼ ½ºÅ©¸³Æ® ¿£ÁøÀÌ <script event="..." for="..." /> À» ÇØ¼®ÇÏ´Â ½ÃÁ¡¿¡ ¿¹¿Ü°¡ ¹ß»ýÇÏÁö ¾Ê´Â °ÍÀÌ´Ù. ¸¶Ä¡, ÄÁÆ®·ÑÀÇ public ¸Þ¼µå È£Ãâ°ú °°ÀÌ ¿ÜºÎ¿¡¼ Unmanaged Code ¸¦ ÅëÇØ¼ ½ÇÇàÇÏ´Â °Í »ÓÀ̱⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸, À̺¥Æ® ¹ß»ýÀº ´Ù¸£´Ù. À̺¥Æ® ¹ß»ýÀÇ ±Ù¿øÀº ´å³Ý ÄÚµåÀ̰í, ±×°ÍÀº °ð À̺¥Æ®¿Í ¿¬°áµÈ ¿ÜºÎ IDispatch ÀÎÅÍÆäÀ̽º¸¦ È£ÃâÇÏ´Â °ÍÀ» ÀǹÌÇϸç, IDispatch ÀÎÅÍÆäÀ̽º È£ÃâÀÚü´Â "Unmanaged ÄÚµå" À̱⠶§¹®¿¡ ´å³Ý º¸¾È ¼³Á¤¿¡ À§¹è°¡ µÇ´Â °ÍÀÌ´Ù.
"ÀÎÅͳÝÀ¸·ÎºÎÅÍ ´Ù¿î·Îµå ¹ÞÀº ¾î¼Àºí¸® ÄÚµå" ´Â "Unmanaged ÄÚµå" ¸¦ È£ÃâÇØ¼´Â ¾ÈµÈ´Ù.
4. À̺¥Æ® µ¿ÀÛÀ» À§ÇÑ ´å³Ý º¸¾È º¯°æ
Win32 ½ÃÀý¿¡µµ ±×·¨Áö¸¸, º¸¾ÈÀº ´Ù°¡¼±â°¡ Èûµé´Ù. ±×·¡µµ ´å³ÝÀº ±×³ª¸¶ ½¬¿îÆíÀÌ´Ï ³Ê¹« Å« ºÎ´ãÀº °®Áö ¸»±â ¹Ù¶õ´Ù. À§¿¡¼ ÀÌ¹Ì "À̺¥Æ®" ¸¦ ¹ß»ý½ÃŰ´Â °ÍÀÌ "Unmanaged Code ¸¦ È£ÃâÇÒ ¼ö ¾ø´Ù" ´Â °ÍÀ¸·Î ÀÎÇØ ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù°í Çß´Ù. ±×·¸´Ù¸é, ´ç¿¬È÷ ±× º¸¾È »çÇ×À» Çã¶ôÇÑ´Ù¸é "À̺¥Æ®" ´Â Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ°Ô µÉ °ÍÀÌ´Ù. ¿ì¼±, À̹ø È£¿¡¼´Â º¸¾È ¼³Á¤À» "Microsoft .NET Framework 1.1 ±¸¼º" ¸¦ ÅëÇØ¼ ÇØº¸°Ú´Ù. ½ÃÀÛ¸Þ´º¿¡¼ "ÇÁ·Î±×·¥/°ü¸®µµ±¸/Microsoft.NET Framework 1.1 ±¸¼º"À» ¼±ÅÃÇÏÀÚ.
[ȸé 7 : .NET Configuration 1.1 ½ÇÇàȸé]
http://localhost ÀÇ °æ¿ì¿¡´Â "LocalIntranet_Zone" ¿¡ ¼³Á¤µÈ ±ÇÇÑÀÌ Àû¿ëµÇ°í, http://127.0.0.1 ·Î´Â "Internet_Zone" ÀÌ Àû¿ëµÈ´Ù. ¹Ù²ã ¸»Çϸé, IP ¿Í DNS ·Î Á¢±ÙÇÒ ¶§´Â "Internet_Zone" À̰í, NETBIOS À̸§À̳ª "localhost" ·Î Á¢±ÙÇÏ´Â °ÍÀº "LocalIntranet_Zone" ÀÌ´Ù. °¢°¢ÀÇ ±ÇÇÑÀ» »ìÆìº¸¸é ¾Ë°ÚÁö¸¸, ÀÎÅÍ³Ý Á¸ÀÌ º¸´Ù ´õ °ÈµÈ º¸¾È±ÔÄ¢À¸·Î Á¦ÇÑÀ» Çϰí ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÀÚ, ±×·³ ¹«¾ùÀ» ÇØ¾ß °Ú´Â°¡? ´ç¿¬È÷ "·±Å¸ÀÓº¸¾ÈÁ¤Ã¥ / ÄÄÇ»ÅÍ / ÄÚµå ±×·ì / All_Code / Internet_Zone" ÀÇ º¸¾È¼³Á¤À» ¹Ù²ãÁÖ¾î¾ß ÇÒ °ÍÀÌ´Ù. ( ¼³Á¤À» ¸¶Ä£ ÈÄ, http://127.0.0.1/ ·Î Á¢±ÙÇÑ´Ù¸é À̺¥Æ® °ü·ÃÇØ¼ ¿¹¿Ü°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ÇÏÁö¸¸, http://localhost ·Î´Â ¿©ÀüÈ÷ ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù. ÇÊÀÚ°¡ ´ÙÀ½ÀÇ ¼³¸íÀ» ÅëÇØ "Internet_Zone" À» ¹Ù²Ù°ÚÀ¸´Ï, À̱ÛÀ» Àд µ¶ÀÚ´Â "LocalIntranet_Zone" À» ¹Ù²ãº¸±æ ¹Ù¶õ´Ù. )
[ȸé 7] ¿¡¼ "Internet_Zone" ÀÇ "µî·ÏÁ¤º¸" âÀ» ¶ç¿ì°í "±ÇÇÑ ÁýÇÕ" ÅÇÀ¸·Î °¡º¸ÀÚ.
[ȸé 8 : Internet_Zone ÀÇ µî·ÏÁ¤º¸ â]
[ȸé 8] ¿¡¼ º¸´Â °Íó·³, "±ÇÇÑ ÁýÇÕ" ÀÌ "Internet" À¸·Î ¼³Á¤µÇ¾îÁ® ÀÖ´Ù. ±×¸®°í, "Internet" ±ÇÇÑÁýÇÕÀº "ÆÄÀÏ´ëÈ»óÀÚ", "°Ý¸®µÈ ÀúÀå¼Ò ÆÄÀÏ", "º¸¾È", "»ç¿ëÀÚÀÎÅÍÆäÀ̽º", "Àμâ" ±ÇÇÑÀ» °¡Áö°í ÀÖ´Ù. °¢°¢ÀÇ ±ÇÇÑÀ» ¸¶¿ì½º·Î Ŭ¸¯Çϰí, "±ÇÇѺ¸±â" ¹öưÀ» ´·¯º¸ÀÚ. "Internet" ±ÇÇÑÁýÇÕÀº ´ÙÀ½ Ç¥¿Í °°ÀÌ ¼³Á¤µÇ¾îÁ® ÀÖ´Ù.
ÆÄÀÏ ´ëÈ»óÀÚ |
¿±â |
°Ý¸®µÈ ÀúÀå¼Ò ÆÄÀÏ |
Çã¿ëµÈ ¿ëµµ |
»ç¿ëÀÚ·Î µµ¸ÞÀÎ °Ý¸® |
µð½ºÅ© ÇÒ´ç |
10240 |
º¸¾È |
ÄÚµå ½ÇÇà»ç¿ë |
¿¹ |
»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º |
â ÀÛ¾÷ |
¾ÈÀüÇÑ ÃÖ»óÀ§ â |
Ŭ¸³º¸µå |
ÀÚü Ŭ¸³º¸µå |
Àμâ |
¾ÈÀüÇÑ Àμâ |
¿ì¸®°¡ ¿øÇÏ´Â °ÍÀº "°ü¸®µÇÁö ¾Ê´Â ÄÚµå È£Ãâ Çã¿ë" ÀÌ´Ù. [ȸé 7] À» º¸¸é, ".NET Configuration 1.1 / ³»ÄÄÇ»ÅÍ / ±ÇÇÑÁýÇÕ" ³ëµå°¡ Àִµ¥, ¿ì¸®°¡ ¿øÇÏ´Â "Internet" ±ÇÇÑÁýÇÕÀ» ¼±ÅÃÇÏÀÚ. MMC ÀÇ ¿À¸¥ÂÊ ÆÐ³Î¿¡ "±ÇÇÑ º¸±â" ¸¸ÀÌ Á¸ÀçÇÑ´Ù. ¹Ý¸é¿¡ "Everything" ±ÇÇÑ ÁýÇÕÀ» ¼±ÅÃÇØ º¸ÀÚ. ¿À¸¥ÂÊ ÆÐ³Î¿¡ "±ÇÇÑ º¸±â / ±ÇÇÑ º¯°æ / ±ÇÇÑ ÁýÇÕ À̸§ ¹Ù²Ù±â" °¡ ÀÖ´Â °ÍÀÌ È®ÀεȴÙ. Áï, "Internet" ±ÇÇÑÁýÇÕÀº ´õ ÀÌ»ó º¯°æ ºÒ°¡´ÉÇÏ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. Smart Client ¸¸À» À§ÇÑ ±ÇÇÑ ÁýÇÕÀ» »õ·Î Çϳª ¸¸µé¾î¾ß Çϴµ¥, ¾îÂ÷ÇÇ º¸¾È ¼³Á¤ÀÌ "Internet" ±ÇÇÑ ÁýÇÕ¿¡¼ Çϳª¸¸ Ãß°¡ÇÒ °ÍÀ̱⠶§¹®¿¡ ±âÁ¸ ÁýÇÕÀ¸·ÎºÎÅÍ º¹Á¦Çؼ ¸¸µå´Â °ÍÀ¸·Î ÇØº¸°Ú´Ù.
¤¡. "±ÇÇÑ ÁýÇÕ / Internet" ÄÁÅØ½ºÆ® ¸Þ´º¿¡¼ "º¹Á¦" ¸¦ ¼±ÅÃÇÑ´Ù. ±×·³, »õ·Ó°Ô "Internet ÀÇ º¹»çº»" ±ÇÇÑ ÁýÇÕÀÌ »ý±ä´Ù.
¤¤. "¼Ó¼º" âÀ» ¶ç¿ì°í, "±ÇÇÑ ÁýÇÕ À̸§" À» "SmartClientSet" À¸·Î º¯°æÇÑ´Ù.
¤§. ¿À¸¥ÂÊ ÆÐ³Î¿¡¼ "±ÇÇÑ º¯°æ" À» ¼±ÅÃÇÑ´Ù.
¤©. "±ÇÇÑ ÁýÇÕ ¸¸µé±â" âÀÌ ¿¸®´Â µ¥, ´õ Ãß°¡Çϰųª »èÁ¦ÇÒ °ÍÀº ¾ø´Ù. ¿À¸¥ÂÊÀÇ "ÇÒ´çµÈ ±ÇÇÑ" ¸ñ·Ï¿¡¼ "º¸¾È" À» ¼±ÅÃÇϰí, "¼Ó¼º" ¹öưÀ» Ŭ¸¯ÇÏÀÚ. [ȸé 9] ¿¡¼Ã³·³ Ãß°¡·Î "°ü¸®µÇÁö ¾Ê´Â ¾î¼Àºí¸® È£Ãâ Çã¿ë" À» üũÇÏÀÚ.
[ȸé 9 : ±ÇÇÑ ¼³Á¤ - °ü¸®µÇÁö ¾Ê´Â ¾î¼Àºí¸® È£Ãâ Çã¿ë Ãß°¡]
¤±. "È®ÀÎ" ¹öư°ú "¸¶Ä§" ¹öưÀ» Â÷·Ê·Î ´©¸£ÀÚ. ±×·³, »õ·Ó°Ô "SmartClientSet" À̶õ »õ·Î¿î "±ÇÇÑ ÁýÇÕ" À» ¸¸µç °ÍÀÌ´Ù.
ÀÌÁ¦ À̰ÍÀ» ÄÚµå ±×·ìÀÇ "Internet_Zone" ¿¡ Àû¿ë½ÃŰ¸é µÈ´Ù. ÇÏÁö¸¸, Àá±ñ »ý°¢ÇØ º¼ °ÍÀÌ ÀÖ´Ù. "Internet_Zone" Àüü¿¡ "SmartClientSet" ±ÇÇÑÁýÇÕÀ» Àû¿ë½ÃŰ´Â °ÍÀÌ Å¸´çÇѰ¡? ³Ê¹«³ª ´ç¿¬ÇϰÔ, ±×°ÍÀº ·ÎÄà ½Ã½ºÅÛ¿¡ Ä¡¸íÀûÀÎ º¸¾È °áÇÔÀ» ¾È°Ü ÁÖ´Â °ÍÀÌ´Ù. ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡¼ ¹æ¹®ÇÏ´Â ¸ðµç ÀÎÅÍ³Ý »çÀÌÆ®µéÀÇ "Smart Client" ¿¡°Ô ±×·¯ÇÑ ±ÇÇÑÁýÇÕÀ» °®°Ô ÇÏ´Â °ÍÀº À§ÇèÇÏ´Ù. ¿ì¸° ´ÜÁö, ƯÁ¤ À¥»çÀÌÆ®¸¦ ÁöÁ¤Çؼ ÇØ´ç ±ÇÇÑÀ» Ãß°¡ÇØ ÁÖ´Â ½ÄÀ̾î¾ß ÇÑ´Ù.
¤¡. ÄÚµå ±×·ìÀÇ "Internet_Zone" À» ¼±ÅÃÇϰí, ¿À¸¥ÂÊ ÆÐ³Î¿¡ ³ª¿À´Â "ÀÚ½Ä ÄÚµå ±×·ì Ãß°¡" ¸Þ´º¸¦ ¼±ÅÃÇÏÀÚ. ¹°·Ð, ÄÁÅØ½ºÆ® ¸Þ´º·Îµµ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.
¤¤. "ÄÚµå ±×·ì ¸¸µé±â" ´ëÈâ¿¡¼ "À̸§" À» InternetSmartClient_Zone À¸·Î ¼³Á¤ÇÏÀÚ. µ¶ÀÚ ÀÓÀÇ·Î À̸§À» Áö¾îµµ µÈ´Ù.
¤§. "Á¶°Ç Çü½Ä ¼±ÅÃ" À» ÇØ¾ß Çϴµ¥, ¿ì¸®°¡ °ü½ÉÀÖ´Â Smart Client ´Â ÀÎÅͳÝÀ¸·ÎºÎÅÍ ´Ù¿î·ÎµåÇÏ¿© ½ÇÇàµÇ±â ¶§¹®¿¡ ¼±ÅÃÇØ¾ß ÇÒ Á¶°ÇÀº "URL" ÀÌ µÈ´Ù. ¼±ÅÃÇÏ°í ³ª¸é, ÇÏ´Ü¿¡ URL ÀÔ·Â »óÀÚ°¡ ³ª¿À´Âµ¥ ±×°÷¿¡ http://127.0.0.1/* ¶ó°í ÀÔ·ÂÇÑ´Ù.
¤©. "ÄÚµå ±×·ì¿¡ ±ÇÇÑ ÁýÇÕ ÇÒ´ç" ¿¡¼ ¿ì¸®°¡ ÀÌÀü¿¡ ¸¸µé¾î µÎ¾ú´ø "SmartClientSet" À» ¼±ÅÃÇÑ´Ù.
À̰ÍÀ¸·Î, ¼³Á¤Àº ¸ðµÎ ³¡³µ´Ù. ÀÌÀü¿¡ ¸¸µé¾î µÎ¾ú´ø TreeControl À» Å×½ºÆ® ÇØº¸ÀÚ. http://127.0.0.1/WebApp/WebForm1.aspx ·Î Ž»öÇϰí, Æ®¸®¿¡ ³ª¿À´Â ³ëµå¸¦ ¼±ÅÃÇØ º¸ÀÚ. "¿¹¿Ü" ¹ß»ý ¾øÀÌ À̺¥Æ®¸¦ Á¤»óÀûÀ¸·Î ¹Þ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¸ðµç ¼³¸íÀÌ ³¡ÀÌ ³µ´Ù. ÀÌÁ¦ ¿©·¯ºÐ ³ª¸§´ë·Î ÁÖÁ¦¸¦ °¡Áö°í ¶Ç ´Ù¸¥ "Smart Client" ¸¦ Á¦ÀÛÇÏ¿© Å×½ºÆ® ÇØº¸±â ¹Ù¶õ´Ù.
¹°·Ð, ¸ðµç ¹®Á¦°¡ ±ò²ûÇÏ°Ô ÇØ°áµÈ °ÍÀº ¾Æ´Ï´Ù. ÀÌ·Î ÀÎÇØ "º¸¾ÈÀ» ¼öÁ¤ÇØ¾ß ÇÏ´Â" ¹èÆ÷¿¡ ´ëÇÑ ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. À̺¥Æ®¸¦ »ç¿ëÇÏ´Â Smart Client ÀÇ °æ¿ì¿¡´Â ¸ðµç Ŭ¶óÀÌ¾ðÆ® ÄÄÇ»Å͸¶´Ù ±×¿Í °°Àº º¸¾È ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù´Â °ÍÀΰ¡? ¾Æ½±°Ôµµ ±×·¡¾ß ÇÑ´Ù. ÇÏÁö¸¸, »ç¿ëÀÚ·Î ÇÏ¿©±Ý Á÷Á¢ ¼³Á¤ÇÏ°Ô ÇÒ ¼ö ÀÖÀ» Á¤µµ·Î °£´ÜÇÑ °ÍÀÌ ¾Æ´Ï´Ù. µû¶ó¼, ¹èÆ÷ÇÏ´Â ÀÔÀå¿¡¼´Â À§ÀÇ ¼³Á¤À» ÀÚµ¿À¸·Î ÇØÁÖ´Â ÇÁ·Î±×·¥À» Çϳª ¸¸µé¾î¼ ¹Ì¸® »ç¿ëÀÚÀÇ ÄÄÇ»ÅÍ¿¡¼ ½ÇÇàÀ» Çϵµ·Ï ÇØÁÖ´Â ½ÄÀ¸·Î ¹è·Á¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù. ÀÌ¿Í °°Àº ¹èÆ÷ ¹®Á¦¿¡ ´ëÇØ¼´Â ¿¬Àç 3ȸ¿¡¼ ÀÚ¼¼È÷ ´Ù·çµµ·Ï ÇϰڴÙ.
¿¬Àç 1ȸ¸¦ ¸¶Ä¡¸ç
Smart Client Á¦ÀÛÀ» ÇØº¸´Ï ¾î¶»´Ù°í »ý°¢µÇ´Â°¡? ´å³Ý¸¸ ¾Ë¾Æ¼´Â ¾ÈµÇ´Â ¹®Á¦¿´´Ù°í »ý°¢ÇÏÁö´Â ¾Ê´Â°¡? ±×·¸´Ù. ¾ÆÁ÷±îÁö´Â "´å³Ý ÇÁ·¹ÀÓ¿öÅ©" ÀÚü°¡ Windows »ó¿¡¼ ¿î¿µµÇ°í ÀÖÀ¸¸ç, Windows ¿¡´Â ¼ö¸¹Àº COM ±â¼úÀÌ ³ì¾ÆÀÖ´Ù. °á±¹, "´å³Ý(À¸·Î ¸¸µç) ÄÁÆ®·Ñ" À̶õ ±âÁ¸ COM À» »ç¿ëÇÏ´Â ¹«¼öÇÑ Application °úÀÇ ¿¬µ¿À» À§Çؼ¶óµµ "COM" ¿¡ ´ëÇÑ ¹è·Á¸¦ ¾ÈÇÒ ¼ö ¾ø°í, ¾ÕÀ¸·Îµµ ¾ó¸¶ µ¿¾ÈÀº "COM" ¿¡ ´ëÇÑ Áö½ÄÀÌ ÀÖ´Â »ç¶÷ÀÌ "´å³Ý ÄÁÆ®·Ñ" ¿¡ ´ëÇØ¼µµ ¸¹Àº À¯¿¬¼ºÀ» ¹ßÈÖÇÒ ¼ö°¡ ÀÖÀ» °ÍÀÌ´Ù. "ÀÎÅÍ³Ý ÀͽºÇ÷η¯" 6.0 ¹öÀüÀÌ ³ª¿ÂÁöµµ ²Ï ¿À·£ ½Ã°£ÀÌ Èê·¶´Ù. ¸¶Ä¡ Visual Studio 97 À» ³»³õÀº ÀÌÈÄ·Î ¸¹Àº °ø¹éÀÌ ÀÖ´ø °Í°ú ºñ½ÁÇÑ °ÍÀÌ ¾Æ´Ò·±Áö. ÇÊÀÚÀÇ °³ÀÎÀûÀÎ »ý°¢À¸·Î´Â ÀÎÅÍ³Ý ÀͽºÇ÷η¯ ÀÇ ´ÙÀ½ ¹öÀü¿¡´Â "´å³Ý ÇÁ·¹ÀÓ¿öÅ©" ¿ÍÀÇ ¿¬µ¿À» ¸¹Àº ºÎºÐ °³¼±½ÃÄѼ ³»³õÀ» °Å¶ó »ý°¢Çϱ⿡ ³»½É ±â´ë¸¦ Çϰí ÀÖ´Â ÁßÀÌ´Ù.
¾î¶»°Ô, ¾î´À ºÎºÐÀÌ °³¼±µÉÁö´Â ¸ð¸£°ÚÁö¸¸ ±×°ÍÀº ºÒÈ®½ÇÇÑ ¹Ì·¡ÀÇ ÀÏÀ̰í, ¿¬Àç 2ȸ ±â»ç¿¡¼´Â ÇöÀçÀÇ ÇÁ·¹ÀÓ¿öÅ©¿Í ÀÎÅÍ³Ý ÀͽºÇ÷η¯ ¾È¿¡¼ ±âÁ¸ÀÇ ActiveX °¡ ½è´ø ±â±³¸¦ Smart Client ·Î ¾î¶»°Ô ´ëü°¡ µÇ´Â Áö¿¡ ´ëÇØ¼ ÀÚ¼¼È÷ ¼³¸íÇÒÅ×´Ï ±â´ëÇØ Áֱ⠹ٶõ´Ù.
Âü°í URL
MSDN Magazine February 2003 : Give Your .NET-based Applications a Fast and Responsive UI with Multiple Threads
http://msdn.microsoft.com/msdnmag/issues/03/02/Multithreading/default.aspx
MSDN Magazine June 2002 : Code Access Security and Distribution Features in .NET Enhance Client-Side Apps
http://msdn.microsoft.com/msdnmag/issues/02/06/rich/
MSDN Magazine January 2002 : Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer
http://msdn.microsoft.com/msdnmag/issues/02/01/UserCtrl/default.aspx
°Á ¸ñ·ÏÀ¸·Î..
|