SIã§Webã·ã¹ãã ãããªã Javaï¼ ãããã ASP.NET MVC ã§ãã
ãä»äºï¼ã¤ã¾ãSIãä¼æ¥åãåè¨éçºï¼ã§ Webã·ã¹ãã ãéçºããéã«ãã©ããªã¢ã¼ããã¯ãã£ã«ãã¹ãããã©ã®ãã¬ã¼ã ã¯ã¼ã¯ï¼ããã°ã©ãã³ã°è¨èªï¼ãæ¡ç¨ãã¹ãããèããæãæè¿ã§ã¯ ASP.NET MVC ãè¯ãé¸æã ã¨å®æãã¦ãã¾ãã
ã§ã¯ãªããããè¯ãã®ããã¾ãã¡ãã£ã¢ããããä¸ã§æµè¡ãã®ä»ã®ãã¬ã¼ã ã¯ã¼ã¯ãRuby on Rails ã PHP, Struts, Play, Node.js ãªã©ããã©ããè¯ãã¨æã£ã¦ããã®ããå®éã®éçºç¾å ´ã«ããã¨ã³ã¸ãã¢ã¨ãã¦èãã¦ãããã¨ãæ´çãã¦ã¿ã¾ããã
å
ã«æã£ã¦ããã¾ãããåç½®ããé·ãã§ãã
çµè«ã ãèªã¿ããæ¹ã¯ä¸çªæå¾ã®ç¯ã¾ã§èªã¿é£ã°ãã¦ä¸ããã
ã¾ãã¯ãã¸ãã¹è¦³ç¹ã§
ã¾ããSIæ¥çã§ã¯ Ruby ã Node.js ã®æ¡ä»¶ã¯ã¾ã è¦ããã¨ç¡ãã
ä½ãå¤ããã¨ããã¨ãæ±ç¨æ©ãé¤ã㨠Java ãã»ã¨ãã©ã§ããã®æ¬¡ã .NETããã以å¤ã¯å°æ°æ´¾ã¨ããå¸å ´æ§æã
.NET ã®å
訳ã¨ãã¦ã¯ VB ã大åã ã C# ãå°ãªãããããã*1
PHP ã¯å°ãä¸è¦æ¨¡ãªãè¦ããã¨ããã
ä»ã®ãã¬ã¼ã ã¯ã¼ã¯ãè¨èªã«ã¤ãã¦
ã¾ã㯠Ruby ã PHP ã«ã¤ãã¦ãRailsãªããã¯ã¨ã¦ãè¯ããã¬ã¼ã ã¯ã¼ã¯ã§ãPHPã«ãããã¤ãè¯ãã¨ãã®ãããã¨æãã¾ããããããã¯ä»ã®æ®µéã§ã¯ã¨ã³ã¿ã¼ãã©ã¤ãºç³»ã«ã¯åããªãã¨æããå 製ãããªãã¾ã ããSIã§ã¯ã¡ãã£ã¨èããããªãããã¨Javaã«ã¤ãã¦ãå°ãèå¯ã
Ruby
- Ruby ã¯æè»æ§ãããããã¦ç練度ã®ä½ã人ãå ¥ãæ··ãã£ããã¼ã ã§éçºãè¡ã£ãå ´åã«ãæè¡çè² åµãæ±ããããã
- ããããªæ¸ãæ¹ãåºæ¥ã¦ãã¾ããããçµå±ã³ã¼ãã£ã³ã°è¦ç´ã¨ãã§ã¬ãã¬ãã«ããããå¾ãªããPerlãªãããåãã
- ãããã¨ãã§è£å©çã«ä½¿ãããã°ã«ã¼è¨èªã¨ãã¦æ´»ç¨ãããªã便å©ã ã¨æãã
- å°æ°ç²¾éã§ã®ã¢ã¸ã£ã¤ã«éçºãªããã«ã¯åãã¦ããã¨æãã
PHP
- PHP ã¯éã«å¦ç¿ã³ã¹ããä½ããæ軽ãããããå¿ ç¶çã«è¨è¨ãããããã«ããã¡ã§ã大è¦æ¨¡ã«ãªã£ã¦ããã¨æè¡çè² åµãæ±ãããããï¼ã¨æããå®è£ ãã¨ã¦ãå¤ãã£ãï¼
- VBãæ´å²çãªèæ¯ãVBAãªã©ã®å½±é¿ããããæåçã«ããªãããã«è¿ãã¨æã£ã¦ãããï¼å¾è¿°ï¼
- ã¡ããã¨è¨è¨ããã°åé¡ãªãããPHPãVBã®æååã«ãããåºæ¥ã人ãå± ãªããï¼å°ãªãã¨ãèªåãè¦èãããç¾å ´ã§ã¯ããã ã£ãï¼
- ãã ãPHPã¯ãªãã¡ã¯ã¿ãªã³ã°ãã¥ããã¨æãããã¾ããã£ã´ãã®PHPã§ã¯ãªãä½ããã¬ã¼ã ã¯ã¼ã¯ã使ãã¹ãã§ãããã
Java
- ã¨ã³ã¿ã¼ãã©ã¤ãºç³»ã¯ã¬ã¬ã·ã¼ãªJavaãå¤ããJava 7 ã¯ã»ã¨ãã©ãªããå°ãåã®ã·ã¹ãã ãªã Java 6ããã¿ããã Java 5ããããã« 1.4 ã¯ç¡ãã¨æãã1.4ã¯ç·ç§°åã¨ãªã¼ããã¯ã·ã³ã°ããªãã®ã§ã¾ã¨ãã«ä½¿ããªãããã
- Javaã¯è¨èªä»æ§ãå³æ ¼ãªåé¢ãåé·ããã¦é¢åããããâçç£æ§ãä½ããä¾ãã°ãåæ¨è«ãããªã²ã¼ããã©ã ãå¼ãããããã£ãããªãã¨ãã
- Windowsã¢ããªç³»ãåºæ¥ãªããã¨ã¯ãªããã©ãWindowsã®ã·ã¹ãã ããã°ã©ãã³ã°ã«ã¯åããªãã
- æ°è¦éçºãããªã Java 8 ãã Scala ã«ç§»è¡ããæ¹ãããããããªããã¨æããPlayFramework 2 ã¨ã Lift ã¨ãããããéå»ã®Javaè³ç£ãæµç¨ã§ãããã
- ãããªããã§åæã«ãªã¯ã³ã³èªå®ãã¦ãããªããªããã¨ã¯ãªãã ãããã©ãå°ãªãã¨ãã¤ããã¼ã·ã§ã³ãèµ·ããã¨ã¯æããªãããã¹ãCOBOLï¼ï¼è¶ å人çãªè¦ç«ã¦ã®è©±ã§ããæ ¹æ ãªããï¼
- ãã ã²ã¨ã¤æ°ã«ãªãç¹ããããã° Android å¨è¾ºã§ã®åãããªã
å¾åã¯å°ã話ãé£èºãããã¦ãããã
C#ãã¤ã¤ãã§ãï¼
ã§ãASP.NET MVC 㯠C# ã§ã VB ã§ãå©ç¨å¯è½ãªã®ã§ãã¡ãã£ã¨è©±ããããããç¥ãã¾ããããä¾ãã° Java 㨠C# ãæ¯è¼ããã¨ãã« C# ã®æ¹ãçç£æ§ãé«ãã®ãªããC# ã使ãããã¬ã¼ã ã¯ã¼ã¯ãé¸æããã°è¯ãã¨æã£ã¦ãã¾ãã
C#ãã¤ã¤ã¨æãçç±ï¼ä¸»ã«Javaã¨æ¯è¼ï¼
- Delphiããã®æµãããããJavaããå¾çºãªã®ã§ãã¢ãã³ãªè¨èªã®ããã¨ãåãã
- åæ¨è«
- æååæ¯è¼ã¯ == ã§OK
- ããããã£ãããã®ã§ã²ãã¿ã¼ã»ãã¿ã¼ä¸è¦
- æ¤æ»ä¾å¤ãªã
- ããã©ã«ãå¼æ°ãååä»ãå¼æ°
- ããªã²ã¼ããã©ã ãå¼
- dynamicåã使ãã°ããã¯ã¿ã¤ãã³ã°ãå¯è½
- Java風ã®è¨æ³ãªã®ã§ã¨ã£ã¤ããããã
- LINQ è¶ å¼·åï¼ãããããªãã§ã³ã¬ã¯ã·ã§ã³æä½ã§ããªãï¼
- è¨èªä»æ§ããªã¼ãã³ã«ãªããMono ã¨ãåºã¦ãããVC + MFCæ代ã¨éã£ã¦ãã³ãã¼ããã¯ããªããã¨ã¯è¨ã£ã¦ãçºå±ãç¶ããã©ããã¯MSé ¼ã¿ãªã¨ããã大ããã
- IDEãµãã¼ãï¼ããã¯C#ã¨ããããVisual Studioã®è©±ï¼
- å¼·åãªã¤ã³ããªã»ã³ã¹
- Eclipseã»ã©ã§ã¯ãªããå称å¤æ´ãªã©ã®ç°¡åãªãªãã¡ã¯ã¿ãªã³ã°ãªãåºæ¥ããããã¯å人çã«ã¯ã¹ã¯ãªããç³»è¨èªã«å¯¾ããå§åçãªã¢ããã³ãã¼ã¸ã ã¨æã£ã¦ã¾ãããããããªãã¡ã¯ã¿ãªã³ã°ããã®ã§ã
- Windows Azure Webãµã¤ãï¼PaaSï¼ã®ãµãã¼ããEclipse 㧠GAE/J ãã£ããã¨ãããã©ãããããæ軽ã ã¨æãã
å®ã¯ä¸éä¸è¬ã§ã® C# ã®è©ä¾¡ãã¡ãã£ã¨ä½ãããã¨æã£ã¦ã¾ãã
ã㨠LINQï¼ããã ãã§ãçç£æ§ã大ããåä¸ãã¾ããç¥ããªã人ã¯ä½¿ã£ã¦ã¿ã価å¤ãããã¨æãã
VBãããªãçç±
次ã«ãVBã¯ãã¡ã ã¨æãçç±ãï¼ããã¯å人çãªãé常ã«æè¦è«ã«è¿ãçç±ã§ããéçºç¾å ´ã®ç¶æ³ã«åããã¦VBãé¸æããã®ããã¹ããªã¨ãããã¡ããããã¨æã£ã¦ãã¾ãï¼
- éãªãã¸ã§ã¯ãæåçãªéå»ã®éºç£ãå¼ããã£ã¦ãããããã¯ã¡ãªããã¨ã¨ããããã¨ãåºæ¥ãããå人çã«ã¯è¯ãã¨æã£ã¦ããªãã
- ã¤ã³ã¯ãªã¡ã³ãæ¼ç®å i++ ããªããCç³»ããæ¥ã人ã«ã¯ãããã©ã¤ã£ãã
- Cç³»ã®è¨èªã¨æ¯è¼ãã¦ã³ã¼ãã®æåã®éãå¤ããããã¨è¦ã§ããããæãããï¼æ £ãã®åé¡ããï¼
ããããéè¦ãããç¹ã¨ãã¦ãåã.NETã§ã C# 㨠VB ã§ã¯æåãå ¨ãç°ãªãã¨ããå®æãããã¾ãã
æåã®éã
æ´å²çãªè¦å ããVBAãVBSãªã©ã¨ãã£ãç°¡æçãªããã°ã©ãã³ã°ç°å¢ãããããããããã°ã©ã ã®å°é家ã§ãªã人ã§ãVBå©ç¨è
ã¨ãã¦åå¨ããããããä¸ãå®ç¤¾ä¼ã®ã³ãã¥ããã£ã«ãåå¨ããã
C#æåã®äººã¨VBæåã®äººã§ã¯ãã¨ã³ã¸ãã¢ãªã³ã°ã«æ¼ãã¦æèã®ãã¯ãã«ã大ããç°ãªããããã¦ãã«è¨ãã°ãããè¯ãæ¸ããã¨ãããã¨ããããã¨ããããåãã°ä½ã§ãè¯ããã¨ãã£ãæèã«ãªããã¨ãå¤ããæ©ã話ãã³ããæèã
ãããæªãã¨ã¯è¨ããªãããçµæçã«æè¡çè² åµãç大ã«æ±ããã·ã¹ãã ã«ãªããã¡ãã¦ãããå¿
ããªããVBã§ã¾ã¨ããªã·ã¹ãã è¦ããã¨ç¡ãããã¸ã§ããã¾ã§ã«ãã£ãä¸ã¤ãç¡ãã
ããã¯PHPæååã«ãåæ§ã«æãã¦ãããã¨ã§ãããWordpressãªããã¯PHPã§ããã§ãã¦ãã¨æããããã©ãªãã¡ããã¨è¨è¨ããã°ããã®ã«ãæ軽ã«ä½ããã®ãPHPã®ããã¨ãããªã®ã§ããããè£ç®ã«åºã¦ãããããªæ°ãããã
ASP.NET MVC çºè¦
ä¸è¨ã®çç±ãããC# 㧠Ruby on Rails çãªãã¬ã¼ã ã¯ã¼ã¯ã¯ãªãããã£ã¨æ¢ãã¦ããï¼WebForms ã«ã¤ãã¦ã¯è«å¤ãå
¨ãç¼ä¸ã«ãªãã£ãããã»ã¨ãã©æ¥åã§ä½¿ã£ããã¨ç¡ãï¼ã
㧠ASP.NET MVC ãªããã§ãããå®éãã¾ã¨ãã«ä½¿ãããã ã¨æã£ãã®ã¯ ASP.NET MVC 3 ããã§ãããã
ASP.NET MVC ã¨ã¯
å¾æ¥ã® ASP.NET ã¨ã¯å
¨ãã®å¥ç©ãã³ã¢æ©è½ã¯å
±éãªããã ãããã¬ã¼ã ã¯ã¼ã¯ã¨ãã¦ã®è¨è¨ææ³ãæ¦å¿µã¯å
¨ãç°ãªãã
ããã¡ãã£ã¨å¥ã®ååã«ãã¦æ¬²ãããããã
å¾æ¥ã® ASP.NET 㯠WebForms ã¨ãã£ã¦ãWindowsãã¹ã¯ãããã¢ããªã¨åããããªæè¦ã§Webã¢ããªãä½ããããã«ããããã¨ããçºæ³ã§ä½ããããã¬ã¼ã ã¯ã¼ã¯ãå人çã«ã¯ããªãéªæªãªãã®ã ã¨æã£ã¦ããã
対ãã¦MVCã¯ãã¾ãæ©ã話ã Rails ã®ãã¯ãªã
ASP.NET MVC ãè¯ãã¨æãçç±
ã¨ããããæãã¤ãã¾ã¾ã«ããã¦ã¿ããï¼2014/2/27 è¯ããªãçç±ãæ··ãã£ã¦ããã®ã§ä¿®æ£ãã¾ããï¼
- Rails ãããã® CoC ï¼è¨å®ããè¦ç´ï¼ã®ç²¾ç¥ããã¨ãã°ã¯ã©ã¹ã¨ãã¥ã¼ã®å½åã ãã§URLã«ã¼ãã£ã³ã°ãè¡ããããã¿ãããªãé¢åãªè¨å®ã¯ä¸åä¸è¦ã
- MVCãªã®ã§ã¦ããããã¹ããæ¸ããããï¼ï¼ããã¯WebFormsã«å¯¾ããåªä½æ§ããªï¼
- ããªãè³¢ãã¢ãã«ãã¤ã³ãã¼ãæè¿ã®Frameworkã§ã¯ããå½ããåã«ãªã£ã¦ãã¦ããããªæ°ããããã©ã
- MVC 3 ããå ¨ãæ°ãããã¥ã¼ã¨ã³ã¸ã³ãRazorãã«ç§»è¡ããå¤ãASPXã¹ã¿ã¤ã« <% ã %> ã¿ã°å°çããè±å´ãçµå±ãã¶ã¤ãã¨ããã°ã©ããåæ¥ãããã¨ã£ã¦ãSIã§ã¯ã»ã¨ãã©ç¡ãã®ã§ãç´æ¥C#ã³ã¼ãããããã»ããè¯ãã¨æãã*2
- MVC 4 ãã Web API ã«ã対å¿ãã¬ã¹ãã³ã¹ã¨ãã¦ãªãã¸ã§ã¯ããreturnããã ãã§ãJSON ã XML ã«èªåå¤æãã¦ãããã
- MVC 5 㧠Bootstrap ãããã©ã«ãã«ãªããçµæ§ã¤ã¤æãã
- ãªã¼ãã³ã½ã¼ã¹ãhttp://aspnetwebstack.codeplex.com/ Apache ã©ã¤ã»ã³ã¹ã2.0ã
- ãã®æ°ã«ãªãã° Mono ã使ã£ã¦ Linux ãµã¼ãã§ããã¹ãã£ã³ã°å¯è½ã
- ã¨ã³ã¿ã¼ãã©ã¤ãºç³»ä»¥å¤ã§ããWindowsç³»ã¬ã³ã¿ã«ãµã¼ããåºã¦ãã¦ãããã¯ã©ã¦ããªãAWSããããã©æ¬å®¶æ¬å ã® Azure ãåãã¤ã¤ãä¼æ¥5年以å ã®éçºä¼ç¤¾ãªã BizSpark ã§ç¸å½ä½¿ããã
- SignalR ãããã¾ãããããã¯ä½ãã¨ããã¨ãWebSocket ã使ã£ã¦RPCããããããªã¤ã¡ã¼ã¸ãã¯ã©ã¤ã¢ã³ãå´ã§JSã¡ã½ããã³ã¼ã«ããã¨ãµã¼ãå´ã®ã¡ã½ãããå®è¡ããã¦æ»ãå¤ãè¿ããããã¿ãããªãWCFã®ãã«ããã©ãããã©ã¼ã åãç®æãã¦ããã ããããããï¼
çæç¹
çæç¹ã¨ãã¦ããMã»Vã»Cã ã® Model ã®é¨åã¯å³å¯ã«è¨ãã°æä¾ãããªããã¨ã«ã¤ãã¦æ¸ãã¦ããã¾ãã
æ©ã話ããRails ã§è¨ã ActiveRecord ã¿ãããªéè¡ã¯ã¤ãã¦ã¾ãããè¦ããã«DBã¤ã³ã¿ãã§ã¼ã¹ã«ä½ã使ããã¯èªç±ã§ãã
Entity Framework ãçµã¿åãããã®ãä¸è¬çãªæ§æã®ããã§ããRailsããã¯ãªModelã¯ã©ã¹ããã®ã¹ãã£ãã©ã¼ã«ãã£ã³ã°ã¯åºæ¥ã¾ãããªã®ã§ç°¡åãªãã¹ã¡ã³ããããªãèªåçæããã ãã§CRUDæä½ãå®æãã¾ãã
ãã ããOracle ã¨çµã¿åãããå ´å EntityFramework ã®ã³ã¼ããã¡ã¼ã¹ãã«å¯¾å¿ãã¦ãªãã®ã§æ³¨æãå¿
è¦ãDBãã¡ã¼ã¹ãã®ã¿ããã¨ãEntityFramework ã¯ããã©ã¼ãã³ã¹ãæªãã®ãããã¯ããªãã
ãã©ãã©ã¨æ¸ããªãã£ã¦ããã¾ãããããªã主観çã§æè¦è«ã§ããããã¡ãã£ã¨ãã·ãªã¬ãã¼ãæ¸ããããã«ãªããããªã orz
*1: ã½ããã¦ã§ã¢ã¡ããªãã¯ã¹èª¿æ» http://www.meti.go.jp/meti_lib/report/2012fy/E002056.pdf
*2:ã¡ãªã¿ã«ä»ã®ãã¥ã¼ã¨ã³ã¸ã³ã使ããã¨ãåºæ¥ã¾ãããã¥ã¢HTMLãè¯ããªãSparkã¨ãã