![](https://habrastorage.org/storage2/718/799/ae5/718799ae56be0d75b42e104ab746c2a4.png)
ææ°ã®Webã®æã匷åãªãã¬ã³ãã®1ã€ã¯ã¢ãã€ã«Webã§ããããã¯ãããŸããŸãªã¢ãã€ã«ããã€ã¹ãã¹ããŒããã©ã³ãã¿ãã¬ãããªã©ã®ãµã€ãã®ç¹å¥ãªãã¬ãŒã³ããŒã·ã§ã³ã§ãã
ãã®èšäºã§ã¯ãã¢ãã€ã«Webã®çŸåšã®åŸåã«ã€ããŠèª¬æããŸãã ã¢ãã€ã«Webã®æé·é床ã¯ïŒ æ°å¹ŽåŸã«ã¢ãã€ã«Webã«äœãæåŸ ããŸããïŒ ã¢ãã€ã«ãµã€ãã®ãã¬ãŒã³ããŒã·ã§ã³ã¯ãããžãã¹ããªã³ã©ã€ã³ã·ã§ããã³ã°ã«ã©ã®ããã«åœ±é¿ããŸããïŒ ä»æ¥ã®ã¢ãã€ã«ãµã€ãã®ç¶æ³ã¯ã©ãã§ããïŒ
ãã®èšäºã®ç®çã¯ãã¢ãã€ã«ãµã€ãã®äœææ¹æ³ã«é¢ãã質åã«çããããšã§ããããŸãã ã¢ãã€ã«ãµã€ãã®äœæããã»ã¹ã«ããã2ã€ã®äž»ãªæ¹åãšã Visual Studio 2012ãšASP.NET MVCã®å¹æçãªããŒã«ã䜿çšããŠããµã€ãã®ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³ã«çŽé¢ããã¿ã¹ã¯ãå®è£ ããæ¹æ³ãæ€èšããŸãã
ã¢ãã€ã«Webãã¬ã³ã
ãŸããå®çšçãªéšåã«ç§»ãåã«ãã¢ãã€ã«Webã®çŸåšã®åŸåãèŠãŠã¿ãŸãããã ãã¢ãã€ã«Webã¯2幎ã§ã©ããããã®éãã§æé·ããŸãããïŒããšãã質åã«çããŠã¿ãŠãã ããã æ£è§£ã¯é©ããããããŸããã2009幎ãã2011幎ã«ãããŠãWebãµã€ããé²èŠ§ããããã®ã¢ãã€ã«ããã€ã¹ã®äœ¿çšã1000ïŒ ãŸãã¯10åã«å¢å ããŸããïŒå³1ïŒã
![clip_image001 clip_image001](https://habrastorage.org/getpro/habr/post_images/756/784/5eb/7567845eb535653a1914eb5e4f4ba52d.png)
å³1 ã¢ãã€ã«Webãã¬ã³ãïŒç§ïŒ
ããã«ã2011幎8æã«ã¯ãã¢ãã€ã«WebããŠãŒã¶ãŒã«ããWebãžã®ç·èšªåæ°ã®7ïŒ ããã§ã«å ããŠããŸãã ãã®èšäºã®å·çæç¹ã§ã¯ããã®æ°åã¯ããªãé«ãå¯èœæ§ããããŸãã
å°æ¥ã«ç®ãåããããŸããŸãªã¢ããªã¹ãã®äºæž¬ãèæ ®ãããšã2014幎ãŸã§ã«ã¢ãã€ã«Webã¯Webãžã®éåžžã®ãã¹ã¯ãããã¢ã¯ã»ã¹ãäžåãããšãããããŸãïŒå³2ïŒã
![clip_image002 clip_image002](https://habrastorage.org/getpro/habr/post_images/f33/904/dfe/f33904dfe4bbd281402ab5e5e2e57867.png)
å³2ã ã¢ãã€ã«Webã¯2014幎ã«ãã¹ã¯ãããããã€ãã¹ããŸãïŒcïŒ
éåžžã«ããããããã®äºæž¬ã¯å®éã«ç§ãã¡ã芳å¯ãããã®ãšå€§å·®ãããŸããïŒã¹ããŒããã©ã³ãšã¿ãã¬ããã¯ããã¢ã¯ã»ã¹ãããããªãããŸããŸãæ®åããŠããŸãã ããšãã°ããšãžããã®äžéšã®åœã§ã¯ã倧å€æ°ã®ãŠãŒã¶ãŒããã¹ã¯ãããã€ã³ã¿ãŒããããèŠéããã³ã³ãã¥ãŒã¿ãŒãæã£ãŠããªãïŒãŸãã¯ä»ã§ã¯ãªãïŒç¶æ³ã§ãã¢ãã€ã«ããã€ã¹ã§ããã«ã€ã³ã¿ãŒãããã䜿çšãå§ããŸããã
ã¢ãã€ã«Webã®ãã®ãããªåŒ·ãåŸåã«é¢é£ããŠãã¢ãã€ã«ããã©ãŒãã³ã¹ãããžãã¹ãŸãã¯Webãµã€ããžã®ãã©ãã£ãã¯ã«ã©ã®ããã«åœ±é¿ããããè©äŸ¡ããããšã¯èå³æ·±ããã®ã«ãªããŸãã
![clip_image003 clip_image003](https://habrastorage.org/getpro/habr/post_images/640/9d5/e86/6409d5e8646e36ba3c32382383e8bfa7.png)
å³3 ã¢ãã€ã«ããŒãžã§ã³ã®ãµã€ãã®ãã©ãã£ãã¯ã®å¢å
ãµã€ãã®ã¢ãã€ã«ããŒãžã§ã³ãååšããã ãã§ããªãœãŒã¹ã®ããŒãžãžã®ãã©ãã£ãã¯ãå€§å¹ ã«å¢å ããããšãããããŸãã äžéšã®ã¬ããŒãã«ãããšããã®å¢å ã¯æ倧85ïŒ ã«ãªãå¯èœæ§ããããŸãïŒå³3ïŒã
åæã«ããŠãŒã¶ãŒãã¢ãã€ã«ããã€ã¹çµç±ã§ã¹ãã¢ã«ã¢ã¯ã»ã¹ã§ããããã«ãããµã€ãã§ã¯ãæ倧51ïŒ ã®å£²äžæé·ãèŠãããŸãïŒå³4ïŒã
![clip_image004 clip_image004](https://habrastorage.org/getpro/habr/post_images/b0e/7ba/472/b0e7ba47230a10a5ab64e52c04299783.png)
å³4 ã¢ãã€ã«ããŒãžã§ã³ã®ãµã€ãã®å£²äžæé·
ã¢ãã€ã«ããã€ã¹ãšã¢ãã€ã«Webã«ã¯çå®ãªåŸåãããããã«æãããŸãã ç 究ã§ã¯ãã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³ãå°å ¥ãããµã€ãããªã³ã©ã€ã³ã¹ãã¢ã§ã¢ãã€ã«ããã€ã¹ããµããŒãããããšã®ç¢ºããªå©ç¹ã瀺ãããŠããŸãã ããããå®éã«ã¯ã©ãã§ããïŒ ãã¹ãŠã®ãµã€ããã¢ãã€ã«WebãµããŒãããµããŒãããŠããŸããïŒ
ãã 2010幎ã®èª¿æ»ã«ãããšãã¢ãã€ã«éä¿¡ã®ãµããŒããæäŸãã500ã®æ倧ã®ãªã¹ãã®ãµã€ãã®20ïŒ ããããã«è¶ ããŠããŸãïŒå³5ïŒã
![clip_image005 clip_image005](https://habrastorage.org/getpro/habr/post_images/eea/dc3/6dc/eeadc36dcd82a6dbb34201a5b12b1694.png)
å³5 ã¢ãã€ã«Webãµã€ãã®ãµããŒãïŒcïŒ
ãŸããã¢ãã€ã«ãŠãŒã¶ãŒããµããŒãããŠããeã³ããŒã¹ãµã€ãã¯çŽ5ïŒ ã ãã§ãïŒ ïŒå³6ïŒ
![clip_image006 clip_image006](https://habrastorage.org/getpro/habr/post_images/98a/57b/39b/98a57b39b67250416d9eddc2f985317c.png)
å³6 ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³çšã®ã€ã³ã¿ãŒããããµã€ãã®æé©åïŒcïŒ
ãã¡ãããç¶æ³ã¯åŸã ã«æ¹åãããŠããŸãããããžãã¹ãšWebã ããã¢ãã€ã«Webã®éçºã«è¿œãã€ããŠããªãããšã¯æããã§ãã
ãããŠãããã§çåãçããŸããããžãã¹ãªãŒããŒã¯ãã®åé¡ãã©ã®ããã«è§£æ±ºãã¹ãã§ããããïŒ ã¢ãã€ã«ãµã€ãã®æ§ç¯æ¹æ³
ã¢ãã€ã«WebïŒ2ã€ã®ã¢ãããŒã
ãã®èšäºã§ã¯ãã¢ãã€ã«Webãæ§ç¯ããããã®2ã€ã®äž»ãªã¢ãããŒãã匷調ããŸãã æåã®ã¢ãããŒãïŒãã¹ãŠã®ã¿ã€ãã®ç»é¢çšã®åäžãµã€ãããã³2çªç®ã®ã¢ãããŒãïŒã¢ãã€ã«ããã€ã¹çšã®ãµã€ãã®åå¥ããŒãžã§ã³ã
ã¢ãããŒãã«ã¯ããããé·æãšçæããããŸãã ããããé çªã«èŠãŠã¿ãŸãããã
ã¢ãããŒãïŒãã¹ãŠã®ããã€ã¹ã«å¯ŸããŠ1ã€ã®ãµã€ã
ã¢ãã€ã«ããã€ã¹ã§Lenta.ruã«ãããã®æ倧ã®ãã¥ãŒã¹ãªãœãŒã¹ã«åãæ¿ããããšãããšã次ã®å³ã衚瀺ãããŸãïŒå³7ïŒã
![clip_image007 clip_image007](https://habrastorage.org/getpro/habr/post_images/ff1/b4c/839/ff1b4c839d535f25968e92c7848984d3.png)
å³7 ã¢ãã€ã«ãã©ãŠã¶ã®Lenta.ru
ã¿ããã¹ã¯ãªãŒã³ã§ãžã§ã¹ãã£ãŒã䜿çšããŠããã¹ããæ¡å€§ããããã«å¿ èŠãªæ å ±ã衚瀺ããã«ã¯ãåçã¯äžæºã§ãïŒå³8ïŒã
![clip_image008 clip_image008](https://habrastorage.org/getpro/habr/post_images/32e/312/a32/32e312a32d1a3c9e7cd4d64744351bfe.png)
å³8 ããããã®ããã¹ãLenta.ru
ããã«ç§ãã¡ããµã€ãã«æ¥ãã¢ã€ãã¢ããããŸãããã®åœ¢åŒã§æ å ±ãèªãããšãã§ããŸãã
1ã€ã®ãµã€ãã®æ å ±ãç°ãªãããã€ã¹ã«è¡šç€ºããåé¡ã®è§£æ±ºçã¯ãWebæšæºã«ãããŸãã ããšãã°ãVisual Studio 2012ã®ASP.NET MVC4ã«å梱ãããŠããããã©ã«ãã®ãã³ãã¬ãŒããèŠãŠãã ããïŒå³9ïŒã
![clip_image009 clip_image009](https://habrastorage.org/getpro/habr/post_images/e78/01f/24a/e7801f24adc94914150b8f1a87ce1b07.png)
å³10 ããŸããŸãªç»é¢ã§ã®ãµã€ãã®ã¹ã±ãŒãªã³ã°ã
ããã«ããããããããã¹ã¯ãããã³ã³ãã¥ãŒã¿ãŒã®å€§ç»é¢ã«çŠç¹ãåœãŠãWebãµã€ããæã£ãŠããã®ã§ãä»ã®ããã€ã¹ã§è¡šç€ºãããšãã«ç»é¢ãçž®å°ããŠãèªã¿ãããã¯å€±ãããŸããã
ããã©ããããWebæšæºã®ãµããŒãã®ãããã§ãåœç€Ÿã®ãµã€ãã¯ç»é¢è§£å床ã«é©å¿ããå¿ èŠã«å¿ããŠãããŒãžã®ã¬ã€ã¢ãŠããããŒãžäžã®èŠçŽ ã®äœçœ®ãå€æŽããããã¢ãã€ã«ããã€ã¹ã§ãã¬ãŒã³ããŒã·ã§ã³ã䟿å©ã«ã§ããªãå Žåã¯ãããã®äžéšãåé€ãããããŸãã
ããšãã°ãå³10ã§ã¯ããµã€ãºãå°ãããããšãããŒãžããããŒã®ã¬ã€ã¢ãŠãã®å€æŽããªã¹ããã¶ã€ã³èŠçŽ ïŒé»äžžïŒã®åé€ã«æ³šæã§ããŸãã æçµçã«ãæå°ã®è§£å床ã§ãã£ãŠããããŒãžã¯èªã¿ããããŸãŸã§ããããŠãŒã¶ãŒãå¿ èŠãšããã¡ã€ã³ã³ã³ãã³ããžã®äŸ¿å©ãªã¢ã¯ã»ã¹ãæäŸããŸãã
ç§ãèšã£ãããã«ããã®ã¡ã«ããºã ã¯WebæšæºïŒCSS3 Media QueriesïŒã®å©ããåããŠéæãããŸããããã«ã€ããŠã¯èšäºã®æè¡éšåã§èª¬æããŸãã
ã¢ãããŒãïŒãµã€ãã«ã¯å¥ã®ãã¢ãã€ã«ãããŒãžã§ã³ããããŸã
ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³ãæ§ç¯ããéã®2çªç®ã®ã¢ãããŒã-å¥ã®ã¢ãã€ã«ãµã€ããæ€èšããŠãã ããã ããšãã°ããœãŒã·ã£ã«ãããã¯ãŒã¯Facebookã®æåãªWebãµã€ããåãäžããŸãïŒå³11ïŒã
![clip_image010 clip_image010](https://habrastorage.org/getpro/habr/post_images/b97/a28/756/b97a28756241274ebd7823a2a95d1447.png)
å³11 Facebookã®ãã¹ã¯ãããããã³ã¢ãã€ã«ããŒãžã§ã³
ã芧ã®ãšãããFacebookã¯ãã¹ã¯ããããŠãŒã¶ãŒãšã¢ãã€ã«ãŠãŒã¶ãŒã«2ã€ã®ãŸã£ããç°ãªãããŒãžã§ã³ã®ãµã€ããæäŸããŠããŸãã Facebookã®ã¢ãã€ã«ããŒãžã§ã³ã®å©äŸ¿æ§ã«ã€ããŠã¯èª¬æããŸãããããã®ã¢ãããŒãã«ããåé¡ãå¹æçã«è§£æ±ºã§ããããšã«æ³šæããŠãã ããã
ãã®ã¢ãããŒãããµããŒãããããã«ãVisual Studio 2012ã¯ç¹å¥ãªã¢ãã€ã«ãµã€ããã³ãã¬ãŒããè¿œå ããASP.NET MVCãšjQuery UIã«åºã¥ããŠå¥ã®ã¢ãã€ã«ãµã€ããçæéã§æ§ç¯ã§ããããã«ããŸããïŒå³12ïŒã
![clip_image011 clip_image011](https://habrastorage.org/getpro/habr/post_images/68e/376/137/68e376137f511cd6da969151758d06e5.png)
å³12 ãã¹ã¯ãããããã³ã¢ãã€ã«ASP.NETãµã€ã
ã¢ãã€ã«ãµã€ããæ§ç¯ããæ¹æ³ã«æ £ããŠããã®ã§ãã¢ãã€ã«ãµã€ãã®æ§ç¯ã«é¢ããæè¡çãªè©³çŽ°ãšãå¹æçãªéçºã®ããã«Visual Studio 2012ããã³ASP.NET MVC4ãæäŸããããŒã«ãèŠãŠã¿ãŸãããã
ASP.NET MVC 4ã«ããå¹æçãªã¢ãã€ã«ãµã€ãéçº
説æããã¢ãããŒãã®é åºã§ã¢ãã€ã«ãµã€ãã®éçºãæ€èšããŠãã ãããæåã¯ããã¹ãŠã®ç»é¢ã«1ã€ã®ãµã€ããã¢ãããŒãã次ã«ãå¥ã®ãµã€ããã§ãã
ãã¹ãŠã®ç»é¢ã«1ã€ã®ãµã€ããäœæ
åã«æžããããã«ãWebã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã³ããããŸããŸãªããã€ã¹ã«é©å¿ãããã¡ã«ããºã ã¯CSS3 Media QueriesãšåŒã°ããŸãã ãã®Webæšæºã¯Webéçºè ã«ããç¥ãããŠãããšæããŸãã ASP.NET MVCã¯ããã©ã«ãã§ãã®äœ¿çšãæäŸããŸãã
Visual Studio 2012ã§MVC4ã¢ããªã±ãŒã·ã§ã³ãäœæããå ŽåãSite.cssã¹ã¿ã€ã«å®çŸ©ãã¡ã€ã«ã¯Contentãã©ã«ããŒã«ãããŸãã ãã®ãã¡ã€ã«ã«ã¯ãCSS3ã¡ãã£ã¢ã¯ãšãªã®äœ¿çšãå«ãŸããŠãããããŒãžã³ã³ãã³ãã解å床ã«é©åãããããšãã§ããŸãïŒå³13ïŒã
![clip_image012 clip_image012](https://habrastorage.org/getpro/habr/post_images/40d/574/550/40d574550f5cf1ea767fc64648825158.png)
å³13 CSS3ã¡ãã£ã¢ã¯ãšãªã®äœ¿çš
CSS3 Media Queriesã䜿çšãããšãç¹å®ã®ç»é¢å¹ ãªã©ã®ç¹å®ã®æ¡ä»¶ã§ã®ã¿é©çšãããCSSã¹ã¿ã€ã«ã®ã»ãããå®çŸ©ã§ããŸãã
ASP.NET MVC 4ã¯ãã®ã¡ã«ããºã ã䜿çšããŠãããã©ã«ãã®ã¢ãã€ã«ãã¥ãŒãäœæããŸãã å³13ã¯ãç»é¢ã®å¹ ã850ãã¯ã»ã«æªæºã®å Žåã«ã®ã¿é©çšãããäžé£ã®ã«ãŒã«ã瀺ããŠããŸãã
ãã®ã¡ã«ããºã ãç¬èªã®ã«ãŒã«ã§äœ¿çšããã³æ¡åŒµããŠããµã€ããããã«æè»ã«ãããŠãŒã¶ãŒã®ããã€ã¹ã«é©å¿ãããããšãã§ããŸãã
åãµã€ãããŒãžã«äœ¿çšããå¿ èŠããããã1ã€ã®éèŠãªã¡ã«ããºã ã¯ãããã¥ãŒããŒããã¡ã¿ã¿ã°ã§ãã
<meta name = "viewport" content = "width = device-width" />
ãã®å®çŸ©ã¯ãç»é¢ã«åãããŠããŒãžã®ããã¹ããšã³ã³ãã³ãã調æŽããããã¢ãã€ã«ããã€ã¹ã«æ瀺ããŸãã ASP.NET MVC4ãã³ãã¬ãŒãã§ã¯ããã®å®çŸ©ã¯_Layout.cshtmlã¬ã€ã¢ãŠããã¡ã€ã«ã«è¿œå ããããã¹ãŠã®ããŒãžã«é©çšãããŸãã
ããã€ã¹ãæ¡ä»¶ããšã«ç°ãªããã¥ãŒãäœæãã
ãã¹ã¯ããããŠãŒã¶ãŒãšã¢ãã€ã«ãŠãŒã¶ãŒçšã«1ã€ã®ãµã€ãããã£ãŠããå€ãã®å Žåãããã€ã¹ããšã«ç°ãªãè¡šçŸïŒãã¶ã€ã³ïŒãäœæããå¿ èŠããããŸãã ãã¹ã¯ããããŠãŒã¶ãŒçšã«1ã€ãã¢ãã€ã«ãŠãŒã¶ãŒçšã«1ã€ãiPhoneãŠãŒã¶ãŒçšã«3ã€ç®ã®ãã¶ã€ã³ãäœæããå Žåã®ãªãã·ã§ã³ãæ³åããŠãã ããã
åçŽãªã¿ã¹ã¯ã§ãããåäžã®ãããžã§ã¯ãå ã§äžè¬çãªããžãã¹ããžãã¯ã䜿çšããŠå®è£ ããæ¹æ³ã¯ïŒ ASP.NET MVC 4ã¯ããã®ããã®éåžžã«ã·ã³ãã«ãªããŒã«ãæäŸããŸããããã«ãããåé¡ãæ°åã§è§£æ±ºã§ããŸãã
ãŠã£ã¶ãŒãã䜿çšããŠãIndex.Mobileãšããååã®æ°ãããã¥ãŒãViews / Homeãã©ã«ããŒã«è¿œå ããŸã
![clip_image013 clip_image013](https://habrastorage.org/getpro/habr/post_images/b12/2a2/105/b122a2105f41877ad2e48796311bb6a6.png)
å³14 æ°ãããã¥ãŒãè¿œå ãã
ãã®åŸããã®ãã¥ãŒã®ããŒã¯ã¢ããã次ã®ããã«å€æŽããŸãã
<h2>ããã«ã¡ã¯ãã¢ãã€ã«ãŠãŒã¶ãŒïŒ</ h2>
ãããŠãå®è¡ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã ãã¹ã¯ããããŠãŒã¶ãŒãšããŠãæšæºããŒãžã衚瀺ãããŸãïŒå³15ïŒã
![clip_image014 clip_image014](https://habrastorage.org/getpro/habr/post_images/cc0/c8d/44c/cc0c8d44c294498351d3959d596e9ddb.png)
å³15 ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãã¥ãŒ
ããã§ãã¢ããªã±ãŒã·ã§ã³ãéããã«ãã¢ãã€ã«ã¯ã©ã€ã¢ã³ãã®åãã¢ãã¬ã¹ã«ç§»åããŸãã ããã«ã¯Opera Mobile Emulatorã䜿çšããŸãã åãäœæã®ã¢ãã€ã«ãã¥ãŒãæ°ãããã¥ãŒã«å€æŽãããŠããããšãããããŸãïŒå³16ïŒã
![clip_image015 clip_image015](https://habrastorage.org/getpro/habr/post_images/de7/ec3/bcd/de7ec3bcd8eda656d1bfdcb4334ff72c.png)
å³16 ã¢ãã€ã«ãã¥ãŒã¢ããªã±ãŒã·ã§ã³
ã芧ã®ãšãããåãã¢ããªã±ãŒã·ã§ã³å ã§2ã€ã®ç°ãªããã¶ã€ã³ãäœæããããã«ã1è¡ã®ã³ãŒããèšè¿°ããå¿ èŠã¯ãããŸããã§ããããã®æ©èœã¯ãMVC4ã§ããã«ãµããŒããããŠããŸãã
ä»äºã®ååã¯å®äºããŸãããã3çªç®ã®ãã¬ãŒã³ããŒã·ã§ã³ãç¹ã«iPhoneã«ã€ããŠã¯ã©ãã§ããããïŒ åãšåãããã«ãIndex.iPhoneãšããå¥ã®æ°ãããã¥ãŒãè¿œå ããŸãããã ãããŠã次ã®ã³ãŒãã§ããŒã¯ã¢ãããå€æŽããŸãã
<h2>ããã«ã¡ã¯iPhoneãŠãŒã¶ãŒïŒ</ h2>
IEã®éçºè ããŒã«ãiPhoneãšããŠäœ¿çšããŠèªåèªèº«ã玹ä»ããããŒãžã«ç®ãåãããšãæåŸ ããŠããæ£ç¢ºãªçµæãåŸãããŸããïŒå³17ïŒã
![clip_image016 clip_image016](https://habrastorage.org/getpro/habr/post_images/d9b/401/d48/d9b401d484203a9a9e3ae2a5fa115488.png)
å³17 iPhoneãšããŠããŒãžã«ç§»åãã
ããã§ããMVC4ã¯ã¢ãã€ã«ããã€ã¹å šè¬ã§ããã«äœ¿çšã§ããæ©èœããµããŒãããŠããŸãããç¹å®ã®ããã€ã¹ã決å®ããã«ã¯ããã³ããã¬ãŒã ã¯ãŒã¯ãäœæããå¿ èŠããããŸãã
ããã¯ã3è¡ã®ã³ãŒãã§å®è¡ãããŸãã Global.asaxãã¡ã€ã«ã®Application_StartïŒïŒã«æ¬¡ã®ã³ãŒããè¿œå ããŸãã
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone") { ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) });
ã¢ããªã±ãŒã·ã§ã³ãèµ·åããiPhoneãè£ ã£ãŠã¢ã¯ã»ã¹ãããšãç®çã®çµæãåŸãããŸãïŒå³18ïŒã
![clip_image017 clip_image017](https://habrastorage.org/getpro/habr/post_images/ffa/c0b/b26/ffac0bb2683f742e39e173225a7e279e.png)
å³18 iPhoneå°çšã®ã¢ããªãã¥ãŒ
ãã®ãããASP.NET MVC4ã¡ã«ããºã ãš3è¡ã®ã³ãŒãã䜿çšããŠãããŸããŸãªçš®é¡ã®ããã€ã¹ïŒãã¹ã¯ããããã¢ãã€ã«ããã€ã¹ãç¹ã«iPhoneçšïŒåãã«3ã€ã®ç°ãªãè¡šçŸãæã€ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸããïŒå³19ïŒã
![clip_image018 clip_image018](https://habrastorage.org/getpro/habr/post_images/3d2/fa9/d49/3d2fa9d4953f103fd073ce7373db81fa.png)
å³19 1ããŒãžã®3ã€ã®ãã¥ãŒ
ãããã®æ©èœã®ãããã§ãããŸããŸãªããã€ã¹çšã ãã§ãªããäžè¬çã«ããããæ¡ä»¶ã«åºã¥ããŠãããŸããŸãªãã¥ãŒãäœæã§ããŸã-ããªãã¯ãããèªåã§ã€ã³ã¹ããŒã«ããŸãã
ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³çšã«å¥ã®Webãµã€ããäœæãã
ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³ãäœæãã2çªç®ã®æ¹æ³ã¯ãã¢ãã€ã«åºæã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒæã®ã³ã³ãããŒã«ãšãžã§ã¹ãã£ïŒã«ç¹åããç¹å¥ãªã€ã³ã¿ãŒãã§ã€ã¹ãåããå¥ã®ãµã€ããäœæããããšã§ãã
Visual Studio 2012ãšASP.NET MVC4ã¯ãã®ã·ããªãªãå®å šã«ãµããŒãããäžè¬çãªjQuery UIãœãªã¥ãŒã·ã§ã³ã«åºã¥ããç¹å¥ãªãã³ãã¬ãŒãã®åœ¢ã§ãœãªã¥ãŒã·ã§ã³ãæäŸããŸãïŒå³20ïŒã
![clip_image019 clip_image019](https://habrastorage.org/getpro/habr/post_images/56a/36a/d54/56a36ad54d976e295d3c9b3e96b7874a.png)
![clip_image020 clip_image020](https://habrastorage.org/getpro/habr/post_images/c43/0e6/b96/c430e6b9620e55a1574c64b676ab4996.png)
å³20 åäžãµã€ãã®ã¢ãã€ã«ãã¬ãŒã³ããŒã·ã§ã³
ãããã®ãã³ãã¬ãŒããšãæšæºããã±ãŒãžã«å«ãŸããjQuery UIããã³jQuery Mobileã³ã³ããŒãã³ãã䜿çšããŠãã¢ãã€ã«ã¯ã©ã€ã¢ã³ãçšã«åå¥ã®ãµã€ããäœæã§ããŸãã
2ã€ã®ã¢ãããŒãã®éžæ
å¿ èŠãªã¢ãããŒãã®éžæã«çŽé¢ããå¯èœæ§ããããŸãïŒãã¹ãŠã®ç»é¢ãšããã€ã¹ã«å¯ŸããŠ1ã€ã®ãµã€ããäœæããããã¢ãã€ã«ããã€ã¹çšã«å¥ã®ãµã€ããéžæããŸãã éžæã¯å®å šã«ããªã次第ã§ããããµã€ãã®è©³çŽ°ãšã¿ã¹ã¯ã«äŸåããŸãã
1ã€ã®ãµã€ãã®ã¢ãããŒãã¯ã1ã€ã®ããŒã ããããžã§ã¯ãã«åãçµãã§ãããšãããµã€ãã«è€éãªã¬ã€ã¢ãŠããå«ãŸããŠããªããšããããã³ãµã€ãããŒãžã«ç ç²ã«ã§ããªãéèŠãªèšèšèŠçŽ ãå«ãŸããŠããªããšãã«æå³ããããŸãã
ã¡ã€ã³ãµã€ãã«å€æ°ã®æ©èœãããã¯ãå«ãè€éãªã¬ã€ã¢ãŠããå«ãŸããŠããå Žåãå¥ã®ããŒã ãŸãã¯ã¢ãŠããœãŒã·ã³ã°ãé¢äžããŠããå Žåãå¥ã®ã¢ãã€ã«ãµã€ãã®ã¢ãããŒãã¯çã«ããªã£ãŠããŸãã
ã©ã¡ãã®æ¹æ³ãéžæããŠãã Visual Studio 2012ãšASP.NET MVC4ã¯ãã¹ãŠã®ã¢ã€ãã¢ãšèŠæãå®å šã«å®çŸããŸãã
ãããã«
ãã®èšäºã§ã¯ãã¢ãã€ã«Webã®çŸåšã®åŸåãã¢ãã€ã«Webã移åããŠããå Žæãšé床ã調ã¹ãŸããã ããžãã¹ããã³ãµã€ãã®æåã«å¯Ÿããã¢ãã€ã«éä¿¡ãµããŒãã®åœ±é¿ã«é¢ããããŒã¿ã確èªããŸããã ä»æ¥ãã¢ãã€ã«ãµã€ãã®æåºã®éèŠæ§ã«ã€ããŠåŠã³ãŸããã
ã¢ãã€ã«ãŠãŒã¶ãŒããµããŒããããšããåé¡ã解決ããããã®2ã€ã®ã¢ãããŒãã«ã€ããŠèª¬æããŸããã1ã€ã¯ãã¹ãŠã®ããã€ã¹çšã®ãµã€ãã§ããã1ã€ã¯ã¢ãã€ã«ãŠãŒã¶ãŒçšã®ãµã€ãã§ãã ãããã®åã¢ãããŒãã¯ãVisual Studio 2012ããã³ASP.NET MVC 4ã§å¹æçã«ãµããŒããããŠããŸãããããæ°è¡ã®ã³ãŒãã§ãããããã¿ã€ãã®ã¢ãã€ã«ãŠãŒã¶ãŒã«åºæã®è¡šçŸãäœæã§ããŸãã
ãã®è³æãã圹ã«ç«ãŠã°å¹žãã§ãã ãã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠãŠã§ãã䟿å©ã«ããŸãããïŒ