First Look : Microsoft Studio .NET 2003 Enterprise Architect

    เมื่อ 2 อาทิตย์ที่แล้ว ผมได้รับแผ่น CD จาก Microsoft เป็น CD Final Beta ของ Microsoft Studio .NET 2003 ที่มีชื่อ Code Name ว่า "Everett" ก่อนหน้านี้ประมาณ 2 เดือนที่ผ่านมา ผมก็ได้รับ CD รุ่น Beta 1 มาครั้งหนึ่งแล้ว แต่ยอมรับครับ ว่าช่วงหลายเดือนนี้ไม่ค่อยมีเวลาเลย เลยยังไม่ค่อยได้ลองใช้มากนัก วันนี้ทุกอย่างเริ่มลงตัว ผมเริ่มแจกแจงตัวเองได้ดีขึ้น เลยมีเวลาเขียนให้อ่านครับ

 

แผ่น CD

    Final Beta Enterprise Architect ประกอบดัวย

    นับว่าเป็นชุดโปรแกรมที่ใหญ่มาก เมื่อ Install แบบ เต็ม มันกินเนื้อที่ใน Harddisk ประมาณ 5 GB เครื่องที่ผมใช้ทดสอบเป็นเครื่อง Pentium III ความเร็วประมาณ 700 MHz มี Ram 256 MB ใช้งานได้ครับ ไม่รู้สึกว่าช้ามากนัก ความเร็วไม่น่าจะแตกต่างจากรุ่น 2002 มากนัก

ภาพแรก

    เมื่อเริ่ม Run โปรแกรม ผมแทบจะไม่รู้สึกถึงการเปลี่ยนแปลงจาก Version 2002  User Interface แทบจะลอก Version เดิมมาทั้งหมด

Editor

    ส่วนสำคัญที่สุดของ IDE ก็คงหนีไม่พ้นความสามารถของ Editor ในความคิดของผม ผมว่า Editor ตัวนี้แทบจะเหมือน Visual Studio 6.0 จุดเด่นที่สุดที่ผมเห็นเพียง 2 จุดก็คือ ความสามารถในการซ่อนบางซ่อนของ Code ได้ Method หรือ Class ไหนที่ไม่ต้องการดู ก็สามารถซ่อนให้เหลือเพียงบรรทัดเดียวได้ ทำให้การดู Code ง่ายกว่าเดิมมากครับ และอีกเรื่องหนึ่งก็คือ ความสามารถในการขีดเส้นใต้ Code ที่ผิด เราสามารถใช้ Mouse ไปทาบดู จะเห็นข้อความที่ผิดพลาด  แต่ความสามารถทั้งสองนี้ ก็ไม่ใช่ของใหม่ครับ มีมาตั้งแต่รุ่น Visual Studio .NET 2002 แล้ว

    ถ้าถามผมว่า ผมชอบ Editor ตัวนี้หรือไม่ ผมคงต้องบอกว่าชอบ แต่ถ้าเทียบกับราคาขนาดเลข 6 หลัก ผมว่ามันเกินไปมากครับ แต่ถ้าเปลี่ยนคำถามเป็นว่า ผมคิดว่า Editor ตัวนี้เป็น Editor ที่ดีที่สุดในตลาดหรือไม่ ผมพูดได้เต็มปากเลยครับว่า "ไม่" มีตัวที่ดีกว่านี้ครับ เอาไว้ถ้ามีเวลาจะเอามาเสนอครับ

 

Document Generator

    ใน Visual Studio .NET 2003 เราเราสามารถ ที่นำเอา Comment ที่สร้างตามรูปแบบที่กำหนด เอามาสร้างเป็น Web Pages แสดงวิธีการใช้ จะว่าเป็นของใหม่ก็ไม่ใช่ครับ Java ก็มีมานานแล้ว แต่ก็นับเป็นความสามารถที่ดี Comment ในโปรแกรมจะมีประโยชน์มากขึ้นมากครับ

Features

    และแล้วก็ถึงเวลาที่ Smart Devices จะมาเป็นตัวสร้างมูลค่าเพิ่ม ยังจำได้ไหมครับ ผมเคยนำเสนอ Smart Devices ที่เป็น Plug-in สำหรับ Visual Studio .NET 2002 เอาไว้เขียนโปรแกรมออกอุปกรณ์พวก Handheld มาวันนี้ รุ่นจริงก็เสร็จเรียบร้อยแล้ว ให้มากับ Visual Studio .NET 2003 ครับ เท่านี้ยังไม่พอ Smart Devices Project นี้เอาไว้สร้าง Application จำพวก .exe ซึ่งเอาไว้รันบนอุปกรณ์ Handheld แล้วถ้า เราเล่น Web ผ่านอุปกรณ์มือถือ จำพวกที่ใช้ GPRS Technology ตัว Visual Studio .NET 2003 ก็เตรียม ASP .NET Mobile Web Application เอาไว้ให้เราใช้ คุณสามารถสร้าง Project ที่เป็น ASP .NET โดยพุ่งเป้ากลุ่มเป้าหมายที่เป็นอุปกรณ์ Handheld ได้เลยครับ

    Visual J# ที่ใครว่าแท้งก่อนคลอด ก็โผล่เข้ามาสร้างสีสรร กับเขาด้วย แต่ก็เรื่องเดิมๆ ครับ มันรองรับ JDK ได้เพียง Version 1.1 ซึ่งทาง Sun ตอนที่เขียนนี้ไปถึง 1.4 แล้ว แต่ถ้าใครเขียน Code ที่ไม่ได้ใช้ความสามารถของ Version เกิน 1.1 ก็โอนมาเข้า .NET ได้เลย

Migration

    นี่เป็นเรื่องที่บาดเจ็บที่สุดสำหรับผู้ที่ใช้ผลิตภัณฑ์ของ Microsoft เมื่อมีผลิตภัณฑ์รุ่นใหม่ออกมา ก็มักจะมีปัญหาเรื่องความเข้ากันได้กับรุ่นเก่า ปัญหานี้เกิดเกือบทุกผลิตภัณฑ์ของ Microsoft ตั้งแต่ชุด Office ไปจนล่าสุด จาก Visual Studio 6.0 มาเป็น Visual Studio .NET 2002 อันหลังนี่ร้ายแรงที่สุด เอามาใช้ไม่ได้เลย ไม่ใช่แค่เพี้ยนเหมือนกับชุด Office    แล้ว Visual Studio .NET 2002 กับ 2003 จะเป็นอย่างไร

    ผมเองไม่เคยทดลอง Migrate จริงๆ เนื่องด้วยผมไม่มี Project ที่สร้างด้วย Visual Studio .NET 2002 ไม่ได้ซื้อครับ ผมขอนั่งเทียนวิเคราะห์ก็แล้วกัน เริ่มที่ Visual Studio .NET นั้น แยกส่วน IDE และ .NET Framework  ดังนั้น Syntax หรือ Library ของ Code ต่างๆ จึงขึ้นอยู่กับ .NET Framework ไม่ใช่ IDE  .NET Framework เท่าที่เห็นก็เป็น Version 1.1 ผมว่ามันไม่น่าจะหนีรุ่นปัจจุบัน เลยเหมาสรุปว่า ไม่น่าจะมีปัญหา แต่ยังไม่จบครับ Code เราไม่มีปัญหา แต่ Format ของ แฟ้มชนิดต่างๆ สิครับ มันอาจจะมีการปรับปรุงจนอ่านรุ่นเก่าไม่ออก แต่เท่าที่ Microsoft เขียนบอกเอาไว้ ว่ามันจะไม่มีปัญหา เมื่อเรา Load รุ่นเก่า มันจะทำการ Convert เป็นรุ่นใหม่โดยอัตโนมัติ แต่ก็สรุปไม่ได้ว่าสมบูรณ์แค่ไหน เพราะยังไม่เคยลองครับ

Visio

    ผมไม่ได้ซื้อ Visual Studio .NET 2002 รุ่นจริง เลยไม่รู้ว่าจริงๆ แล้ว Visio มันมากับ รุ่น 2002 รึเปล่า สมมุติว่าไม่ ก็แล้วกัน การเพิ่ม Visio เข้ามาถือว่าสร้างมูลค่าเพิ่มได้มากเลยครับ

    Microsoft เอา Visio มาใส่ไว้ทำไม เรื่องนี้เข้าใจไม่ยากครับ Microsoft ต้องการเครื่องมือที่ใช้ทำ UML นั่นเอง ในสมัย Visual Studio 6.0 Microsoft เคยให้ตัวที่ชื่อว่า Visual Modeler ซึ่งเป็นเครื่องมือช่วยในการทำ Diagram ซึ่งเป็นของบริษัท Rational แต่มันมีข้อจำกัดมากเหลือเกิน ถ้าทนกันไม่ไหวก็คงต้องหันไปซื้อ Rational Rose กัน

    หลังจาก Visual Studio 6.0 Microsoft ตัดเอา Visual Modeler ออกไป ตั้งใจจะใช้ Visio โปรแกรมทำ Chart สารพัดมาใช้แทน ผมลองทดสอบดูความเข้ากันได้ของ Visio กับ Everett แล้ว พอพูดได้ว่า พอไปวัดไปวาตอนสายๆ ได้ ไม่สามารถเทียบกับฝั่งของ Java ได้เลยครับ แต่ก็ยังดีกว่าไม่มีเอาเสียเลย ถ้าจะซื้อ Rational XDE ก็แพงเหลือรับเกินไป มาดูกันหน่อยว่า Visio กับ Visual Studio .NET 2003 มันจะเป็นอย่างไร

    ในเมนู Project->Visio UML->Reverse Engineer  ผมสามารถ Reverse Engineer Code ไปเป็น UML Diagram ไม่มีปัญหาอะไร หรือในทางกลับกัน ผมสามารถเอา Visio สร้าง Diagram แล้วให้มันแปลงออกมาเป็นภาษา C# หรือ VB .NET ก็ไม่พบปัญหาอะไร แต่ปัญหาที่เกิดก็คือ ผมไม่พบวิธี Update ข้อมูลครับ เช่นเมื่อผม Reverse Engineer Code ไปเป็น UML ถ้าผมปรับปรุง Code เช่นเพิ่มลด Methods ผมไม่พบวิธีที่จะกลับไป Update ข้อมูลใน UML บางคนก็บอกว่าไม่เห็นจะมีปัญหาอะไร ก็แค่ Reverse Engineer ใหม่อีกรอบ ก็เรียบร้อย มันไม่ง่ายอย่างนั้นครับ เพราะใน UML ของ Visio ผมสามารถเขียน Document ในนั้นเพิ่มเติมได้ ถ้า Reverse Engineer ใหม่ ข้อมูลเหล่านั้นก็หายหมด ในทางกลับกันก็เช่นกันครับ จาก UML แปลงมาเป็น C# ก็แปลงได้รอบเดียว Update ไม่ได้ แบบนี้เราเรียกกันว่า ไม่สามารถทำ Round-trip ได้ แต่ถึงกระนั้น ก็มีประโยชน์อย่างมากครับ เมื่อเราต้องการทำความเข้าใจ Code ใดๆ เราทำ Reverse Engineer เราจะเห็นโครงสร้างและความสัมพันธ์ของ Class โดยที่ไม่ต้องปวดหัวกับ Code ที่มีขนาดใหญ่

Crystal Report

    Crystal Report เป็นมูลค่าเพิ่มอีกอย่างของ Visual Studio .NET มันแถมมาให้ตั้งแต่รุ่น 2002 แล้ว ถ้าเทียบกับ Crystal Report รุ่นปกติแล้ว น่าจะเทียบได้กับ Version 9.0 (อันนี้ Sales ของ Crystal Report บอกผม) Crystal Report เป็นเครื่องมือที่ใช้ในการสร้างรายงานครับ มีลูกเล่นเยอะมาก อาจจะกล่าวได้(แบบไม่ค่อยเต็มปากว่า)มันเป็นเครื่องมือที่ใช้สร้าง Report ที่ดีที่สุดในยุคปัจจุบัน เก่งจริงครับ แต่ผมมีเรื่องขอติหน่อย ตรงที่ Bug มันค่อยข้างเยอะ ผมปวดหัวกับมันพอสมควร แถมแฟ้มข้อมูล .rpt ในแต่ละรุ่นก็เข้ากันไม่ค่อยได้ ไม่รู้ว่าพอมารุ่นนี้ จะแก้ปัญหาต่างๆ ที่ผมเจอแล้วหรือยัง

Macro Language

    จุดแข็งอีกข้อของ Visual Studio ตั้งแต่ยุคโบราณ ก็คือความสามารถของ Macro ที่ออกจะเก่งกว่า Editor ตัวอื่น นั่นก็เพราะ Microsoft ใช้ภาษา Visual Basic for Application (VBA) มาเป็นภาษาที่ใช้ในการทำ Macro ซึ่งมันสามารถทำงานได้แทบจะไม่มีขีดจำกัด Microsoft Office ก็ใช้หลักการแบบนี้เหมือนกับ

    มาถึง Visual Studio .NET ตั้งแต่ 2002 Macro Language ก็ถูกปรับขึ้นมาอีกขั้นครับ เป็น VB .NET ซึ่งเก่งกว่าภาษา VBA (น่าเสียดายไม่มี C#) แต่แย่อยู่อย่างหนึ่งครับ ยังไม่หนังสือเล่มไหนสอนใช้ Class Library ที่ใช้ทำ Text Editor คงต้องรอซักหน่อย

    มีเรื่องไม่เข้าท่าอยู่เรื่องหนึ่ง นั่นก็คือ Visio ยังใช้ VBA อยู่ครับ เลยเป็น 1 ประเทศ 2 ระบบไป

สรุป

    ถ้าถามผมว่า ผมพอใจ Visual Studio .NET 2003 หรือไม่ ผมคงตอบว่า คงไม่พอใจนัก ไม่ใช่ว่าเป็นเครื่องมือที่ไม่ดี เพียงแต่ ผมคิดว่ามันเป็นเหล้าเก่าในขวดใหม่ มันคือ Visual Studio .NET 2002 แต่จับยัดเอาของที่ในเวลานั้นยังทำไม่เสร็จ เช่น Smart Devices และ Visual J# มาใส่เพิ่มเท่านั้น ในด้านความสามารถ แทบจะไม่มีอะไรใหม่เลย

    ในอดีตสมัย Visual Studio 6.0 ออกใหม่ๆ ก็เหมือนกันครับ Microsoft กำลังพัฒนา Visual J++ แต่ก็ไม่ทันเวลาวางตลาด เมื่อ Visual Studio 6.0 วางตลาดนั้น ไม่มี Visual J++ แต่หลังจากนั้นอีกไม่นาน เมื่อ Visual J++ เสร็จ ทาง Microsoft ก็แจกจ่ายย้อนหลังครับ โดยที่ไม่ต้องเสียเงินเพิ่ม ผมว่าคราวนี้สถานการณ์ก็ใกล้เคียงกัน ผมไม่รู้เรื่องการตลาดของ Microsoft ว่าตั้งราคา Upgrade เท่าไหร่ แต่ถ้าคิดที่ 30% ตามนโยบายล่าสุดของ Microsoft ผมว่ามันโหดเกินไป  มันนะจะฟรีเลยนะครับ ถ้า Microsoft เล่นที่ 30% ผมว่าชื่อเสียงคงเสียขึ้นอีกเยอะ มันยิ่งเป็นแรงกดดันให้คนหนีไปสู่เครื่องมือตัวอื่น

หมายเหตุ

    บทความนี้ผมเขียนขึ้นอย่างคนไม่รู้ ผมเองไม่เคยได้ใช้ Visual Studio .NET 2002 และแม้กระทั่ง 2002 Beta ผมก็เอาออกจากเครื่องไปแล้ว ที่เขียนนี้คือนึกย้อนไป ซึ่งมีโอกาสผิดพลาดได้เยอะ ประกอบกับ ผมจับ Visual Studio .NET 2003 Final Beta  ตัวนี้ค่อนข้างลวกๆ เนื้อหาอาจจะไม่ถูกต้องนัก หรือความครบถ้วนอาจจะไม่มี ดังนั้นฟังหูไว้หูครับ แต่ถ้ามั่นใจว่าอะไรที่มันคลาดเคลื่อน ก็เขียนมาบอกกันครับ