งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

การใช้เทคโนโลยี Open Source ในการพัฒนา ซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ สำนักงานส่งเสริมอุตสาหกรรม.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การใช้เทคโนโลยี Open Source ในการพัฒนา ซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ สำนักงานส่งเสริมอุตสาหกรรม."— ใบสำเนางานนำเสนอ:

1 การใช้เทคโนโลยี Open Source ในการพัฒนา ซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ isriya_pa@sipa.or.th สำนักงานส่งเสริมอุตสาหกรรม ซอฟต์แวร์แห่งชาติ ( องค์การมหาชน ) 2005 อนุญาตให้เผยแพร่เอกสารนี้ต่อด้วยสัญญาอนุญาตแบบ Creative Commons Attribution License

2 Open Source คืออะไร ? ซอฟต์แวร์เสรี ผู้ใช้มีสิทธิอย่างเสรีกับตัวซอฟต์แวร์ - ใช้งาน - ปรับปรุงแก้ไข - พัฒนาต่อ - ขาย ปัจจุบันใช้งานอย่างแพร่หลาย

3 คุณใช้ Open Source อยู่หรือเปล่า ? Google ใช้ Linux เป็นระบบปฏิบัติการ Hotmail ใช้ FreeBSD เป็นระบบปฏิบัติการ 70% ของเว็บ ใช้ Apache เป็นเว็บเซิร์ฟเวอร์ ADSL Router ใช้ Linux เป็นระบบปฏิบัติการ โทรศัพท์มือถือของ Motorola ใช้ Linux เป็นระบบปฏิบัติการ Yahoo! ใช้ MySQL เป็นระบบฐานข้อมูล

4 ทำไมต้องสนใจ Open Source “Innovation Happens Elsewhere”  ไม่ว่าองค์กรจะลงทุนด้านวิจัยแค่ไหน ปริมาณผลงานของเคน นอกองค์กรย่อมมีมากว่า  ทางออก : นำผลงานของคนนอกมาใช้งาน  วิธีการ : Open Source

5 ประวัติของ Open Source 1983 : Richard Stallman ประการคำว่า Free Software 1991 : Linus Torvalds เริ่มทำ Linux 1997 : Eric S. Raymond เขียน “The Cathedral and the bazaar” 1998 : Netscape เปิดเผยซอร์สของ Mozilla 1998 : Eric S. Raymond ประกาศคำว่า Open Source 2004 : Firefox 1.0 ออก

6 รูปแบบการพัฒนา ซอฟต์แวร์แบบ Open Source ผู้สร้างเปิดเผยซอร์สโค้ด ผู้สนใจมีสิทธิแก้ไขซอร์สโค้ด ผู้สนใจมีสิทธิส่งส่วนที่แก้ไขมาให้ผู้สร้าง ผู้สร้างมีสิทธิผนวกส่วนแก้ไข ไปกับโปรแกรมต้นฉบับ ก่อให้เกิดชุมชนของผู้ใช้ - ผู้พัฒนา

7 ข้อดีของการพัฒนาแบบ Open Source ผู้ใช้มีส่วนร่วมในการกำหนดทิศทางของโปรแกรม ผู้สร้างมีโอกาสรับฟังความคิดเห็นของผู้ใช้โดยตรง เพิ่มปริมาณผู้มีส่วนร่วม (contributor) ของโปรแกรม ลดระยะเวลาในการออกโปรแกรมรุ่นใหม่ (release cycle) ลดค่าใช้จ่ายในการพัฒนาโปรแกรม

8 โครงการ Open Source ที่มี ชื่อเสียง ระบบปฏิบัติการ Linux, FreeBSD เว็บเซิร์ฟเวอร์ Apache ฐานข้อมูล MySQL, PostgreSQL เว็บเบราว์เซอร์ Mozilla Firefox อีเมล Mozilla Thunderbird ชุดออฟฟิศ OpenOffice.org โปรแกรมตกแต่งภาพ Gimp ภาษาโปรแกรม PHP, Python, Perl

9 การพัฒนาซอฟต์แวร์ด้วย Open Source Platform ส่วนที่รองรับการทำงานของซอฟต์แวร์ เช่น OS, server, library Programming ตัวโปรแกรมเอง, ภาษา, compiler, interpreter Tools เครื่องมือที่ช่วยให้การพัฒนาโปรแกรมสะดวกและมีประสิทธิภาพ เช่น debugger, version control

10 Platform : Normal Solutions ใช้ Open Source ลดค่าใช้จ่ายรวมของ Solution Applications 10,000 B Linux 0 B Windows 4,900 B ราคารวมของ Solution 10,000 B14,900 B

11 Platform : Web Solutions Applications Apache IIS Web Server Database MySQL Oracle OS Linux Windows

12 Platform : ลดค่าใช้จ่ายรวม ใช้ Open Source เพื่อลดค่าใช้จ่ายโดยรวมของ Solution ผู้ซื้อ : ได้ Solution ในราคาที่ถูกลง ผู้ขาย : มีโอกาสขายได้มากขึ้น สามารถใช้ Open Source ร่วมกับซอฟต์แวร์อื่นได้ เช่น - Windows + Apache + My SQL - Linux + Oracle

13 Programming C/C++ Java.NET PHP Perl Python

14 Programming : C/C++ C เป็นภาษาหลักในการพัฒนาโปรแกรมมายาวนาน - ประสิทธิภาพสูง - เหมาะกับงานเกี่ยวกับระบบ C++ เป็น superset ของ C - เพิ่มความสามารถด้าน Object-Oriented - เขียน C++ แบบ C ได้ - ปัจจุบันโปรแกรมขนาดใหญ่ส่วนมากเขียนด้วย C++

15 Programming : C/C++ : GCC GCC (GNU Compiler Collection) เป็น compiler มาตรฐานในการทำ benchmark สนับสนุนภาษา C, C++, Fortran, Obj-C, Ada เวอร์ชันล่าสุด 4.0 มีใน Unix แทบทุกตัว ใช้บนวินโดวส์ได้ผ่าน Cygwin (www.cygwin.com)www.cygwin.com การใช้งานเป็น command line

16 Programming : C/C++ : GCC (2) เขียนโปรแกรมภาษา C ชื่อ main.c gcc main.c - ได้ผลลัพธ์คือ a.out - ทดสอบโปรแกรมโดยสั่ง./a.out gcc -o program main.c - ได้ผลลัพธ์คือ program - ทดสอบโปรแกรมโดยสั่ง./program

17 Programming : C/C++ : Editor Text editor : vi, notepad, editplus, ultraedit IDE (Integrated Development Environment - Windows : Dev-C++ - Linux : Kdevelop, Anjunta - หรือ Eclipse กับ CDT (C/C++ Development Tools)

18 KDevelop

19 Programming : Java สร้างโดย Sun Microsystems ปี 1990 เป็น Object-Oriented ใช้แนวคิดของ Virtual Machine ทำงานได้ข้ามแพลตฟอร์ม Java Runtime Environment แจกฟรีโดย Sun และมีครบคลุม เกือบทุกแพลตฟอร์ม Java Development Kit ชุดพัฒนาพื้นฐาน แจกฟรีโดย Sun มี 3 edition : J2ME, J2SE, J2EE เวอร์ชันล่าสุด : 5.0

20 Programming : Java : Diagram Java Code (.java) Byte Code (.class) Binary Code Java Class Java Development Kit (JDK) Java Compiler (java.exe) Java Virtual Machine (java.exe) Java Runtime Environment (JRE)

21 Programming : Java : Open Source Open Source implementations Java Class java.exe javac.exe Harmony GCJ GIJ, Kaffe Library Compiler VM

22 Programming : Java : IDE Eclipse (www.eclipse.org)www.eclipse.org - IBM/Oracle - เวอร์ชันล่าสุด : 3.1 NetBeans (www.netbeans.org)www.netbeans.org - Sun (Forte, Sun ONE Studio, Java Studio) - เวอร์ชั่นล่าสุด : 4.1

23 Programming : Java : Other Jboss (www.jboss.org)www.jboss.org - Open Source J2EE application server Jakarta Project (jarkata.apache.org) - Open Source software for Java Platform - ดูแลโดย Apache Foundation - ตัวอย่าง : Tomcat, Ant - นำไปใช้ใน IBM WebSphere

24 Programming :.NET Microsoft เขียนตาม Java Multi-Platform ( ในทางทฤษฎี ) Multi-Language - C#, VB.NET, Managed C++, Jscript.NET, ASP.NET - Python, Ada, Cobol, Boo, Perl, Fortran.NET 2.0 Final : November 2005

25 Programming :.NET : Diagram C#VB.NET CIL (Common Intermediate Language) Binary Code.NET Class (VB.NET).NET Class (C#) compiler CLR (Common Language Runtime)

26 Programming :.NET : Mono Mono (www.mono-project.com)www.mono-project.com เป็นการสร้าง.NET Framework แบบ Open Source บริษัท Ximian ( ปัจจุบันเป็นของ Novell) ส่งเสริมให้.NET สามารถรันข้ามแพลทฟอร์มได้อย่างแท้จริง มีโอกาสเกิดปัญหาด้านกฎหมายในอนาคต รวมอยู่ใน : SuSE, Ubuntu, Debian ไม่รวมอยู่ใน : Red Hat, Fedora

27 Programming :.NET : Mono (2).NET compiler.NET CLR.NET Library.Mono compiler.Mono CLR Library Compiler VM.NET Library Mono Library

28 Programming :.NET : IDE SharpDevelop (www.icsharpcode.net/OpenSource/SD)www.icsharpcode.net/OpenSource/SD - Microsoft.NET - Windows MonoDevelop (http://www.monodevelop.com)http://www.monodevelop.com - Mono implement of Sharp Develop - Microsoft.NET & Mono - Linux, MacOSX

29 SharpDevelop

30 Programming : PHP เดิม : Personal Home Page ปัจจุบัน : PHP Hypertext Processor Scripting language, server side เทียบได้กับ Microsoft ASP, Sun JSP ได้รับความนิยมสูงมาก เช่น Pantip, phpBB, phpMyAdmin

31 Programming : PHP : Solution มักใช่ร่วมกับ Linux, Apache, MySQL LAMP/LAMPS - Linux, Apache, MySQL, PHP / SSL - ( อาจใช้ PostgreSQL แทน MySQL และ Perl/Python แทน PHP ได้ ) สำหรับวินโดวส์แนะนำให้ใช้ AppServ (www.appserv.net)

32 Programming : Perl เป็น scripting Language เหมาะสำหรับทำงานบน Unix shell เขียนได้ง่าย แต่อ่านได้ยาก เพราะเป็นภาษาที่เน้นสัญลักษณ์ แนะนำให้ใช้ PHP หรือ Python

33 Programming : Python เป็น scripting language มีประสิทธิภาพสูง เขียนได้ง่าย ทำงานได้ข้ามแพลทฟอร์ม มี library สำคัญๆ ให้ครบ กำลังได้รับความนิยมเพิ่มขึ้นเรื่อยๆ เช่น - Google - Red Hat - BitTorrent

34 Programming : Python : Example PythonC If (a > b) : print “A is greater” else: print “B is greater” int a; int b; if (a>b) { printf(“A is greater”); } else printf(“B is greater”); }

35 Programming : Others ภาษาโปรแกรมมิ่งอื่นๆ ที่น่าสนใจ - Ruby - Boo - Eiffel - Objective-C

36 Tools Debugger Packaging Version Control Bug Tracker GUI Designer

37 Tools : Debugger GDB – GNU Debugger - เป็น command line debugger - ใช้คู่กับ GCC - สนับสนุน C, C++, Fortran, Pascal, Obj-C - ทำงานได้บน Unix และ Windows - มี GUI เลือกใช้ได้หลายตัว เช่น DDD สำหรับภาษาอื่นๆ สามารถใช้ debugger ของ IDE

38 Tools : Packaging ขั้นตอนการติดตั้งโปรแกรมบน Unix ใช้โปรแกรม เหล่านี้เข้าช่วย - autoconfig - autobuild - make วิธีการติดตั้งพื้นฐาน -./configure - make - make install

39 Tools : Packaging (2) นิยมรวมไฟล์เป็นก้อน แล้วบีบอัดแบบ tar.gz หรือ tarball เพื่อ สะดวกในการดาวน์โหลด การบีบไฟล์ - tar cxvf filename.tar.gz file1 file2 file3 การขยายไฟล์ - tar xvfz filename.tar.gz ไฟล์แบบ tar.gz เปิดได้ด้วยโปรแกรม ZIP ทั่วไป เช่น WinZIP, WinRAR

40 Tools : Packaging (3) ต่อมามีระบบแพกเกจที่ก้าวหน้าขึ้น สามารถติดตั้งได้อัตโนมัติ Red Hat - RPM – Red Hat Package Management Debian - DPKG – Debian Package

41 Tools : Packaging (4) ระบบ RPM และ DPKG มีปัญหาด้าน dependency มีระบบแพกเกจอีกชั้นที่คอยแก้ปัญหา dependency Red Hat - YUM Debian - APT (Advance Package Tool)

42 Tools : Version Control Version Control - จัดการเวอร์ชันของซอร์สโค้ด - เก็บโค้ดไว้ที่เซิร์ฟเวอร์กลาง แล้วเรียกใช้เมื่อต้องการ - สนับสนุนการทำงานร่วมกันเป็นทีม - สามารถย้อนการแก้ไขกลับได้ - ใช้งานอย่างจริงจังในการพัฒนาระดับอุตสาหกรรม

43 Tools : Version Control (2) CVS – Concurrent Versions System - มีใน Unix เกือบทุกรุ่น - มีข้อจำกัดหลายอย่าง เช่น ไม่สามารถเปลี่ยนชื่อไฟล์ได้ - ยังใช้กันอย่างแพร่หลายในโครงการ Open Source สำคัญหลายแห่ง SVN – Subversion - ปรับปรุงจาก CVS แนวคิดใกล้เคียงกัน - แนะนำให้เริ่มที่ SVN เลย

44 Tools : Version Control (3) คำสั่งพื้นฐานของ CVS/SVN svn checkout ดึงซอร์สส่วนที่ต้องการจากเซิร์ฟเวอร์มาที่เครื่อง svn add เพิ่มไฟล์ใหม่ในเครื่องไปยังเซิร์ฟเวอร์ svn update ปรับปรุงการเปลี่ยนแปลงล่าสุดกับเวอร์ชันของเซิร์ฟเวอร์ svn commit ยืนยันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ ( สั่งหลัง add/update)

45 Tools : Bug Tracker ระบบจัดการบั๊กผ่านเว็บ Bugzilla ประสิทธิภาพสูง ใช้งานอย่างแพร่หลาย ติดตั้งยาก IssueZilla เป็น Bugzilla ที่โครงการ Open Office นำมาปรับแต่ง Trac ใช้งานและติดตั้งได้ง่าย ความสามารถครบ ออกแบบมาเพื่อการ พัฒนาโปรแกรม

46 Tools : GUI Designer Glade (http://glade.gnome.org/)http://glade.gnome - เป็น user interface designer - Export เป็น XML - ใช้ได้กับภาษา C, C++, Java, Perl, Python, C#, Ruby Stetic - เป็น user interface designer สำหรับ Mono หรือใช้ GUI designer ที่มากับ IDE เช่น Eclipse, NetBeans, KDevelop

47 Glade

48 More information Open Source at SIPA http://www.thaiopensource.org Open Source Software Project http://www.sourceforge.net


ดาวน์โหลด ppt การใช้เทคโนโลยี Open Source ในการพัฒนา ซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ สำนักงานส่งเสริมอุตสาหกรรม.

งานนำเสนอที่คล้ายกัน


Ads by Google