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

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

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

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


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

1 การใช้เทคโนโลยี Open Source ในการพัฒนา ซอฟต์แวร์ ขอขอบคุณผู้ให้ข้อมูลที่น่าสนใจ คุณอิสริยา ไพรีพ่ายฤทธิ์ สำนักงานส่งเสริมอุตสาหกรรม ซอฟต์แวร์แห่งชาติ ( องค์การมหาชน ) 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 Open Source Software Project


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

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


Ads by Google