Tag Archive Library

PowerBuilder: Deploy

การ Deploy โปรเจกต์ powerbuilder ไปยัง user สามารถทำได้โดยมีส่วนประกอบ 2 ส่วนด้วยกัน

  1. ไฟล์ *.exe
    • ชื่อไฟล์โดยปกติจะโดนระบุไว้ในไฟล์ *.pbt
    • ถ้าไม่มีการเพิ่มหรือลด library ใน target ก็ไม่จำเป็นต้องส่งไฟล์นี้ให้ user
  2. ไฟล์ *.pbd
    • เป็นไฟล์ที่เกิดจากการแปลงไฟล์ library ( *.pbl ) โดยจะมีชื่อเดียวกันแต่นามสกุล .pbd โดยจะอยู่ใน path เดียวกัน
    • สามารถนำไฟล์ pbd ไปแทนที่ไฟล์เดิมในเครื่อง user ได้ทันที ตัว .exe จะสามารถใช้ datawindow, function, window และส่วนประกอบอื่น ๆ ที่อยู่ใน library version นั้น ๆ ได้ทันที
    • ไฟล์ pbd อื่น ๆ สามารถเรียกใช้สิ่งที่อยู่ใน pbd อื่น ๆ ได้ ถ้ายังเป็นชื่อเดิม มี parameter เหมือนเดิม ถึงตัวมันเองจะเก่ากว่า หรือว่าใหม่กว่าไฟล์ pbd ตัวนั้น ๆ

ข้อดีจากคุณสมบัติของไฟล์ pbd และ exe ทำให้เวลาที่ส่งโปรแกม update ให้ user สามารถส่งบางฟีเจอร์ ไปให้ user แต่ละกลุ่มได้โดยการส่ง pbd ให้ต่างกัน กลุ่ม a อาจจะได้รับไฟล์ pbd ที่ใหม่กว่าเพื่อทดลองใช้ฟีเจอร์ใหม่ ๆ ในเมนูเดียวกันกับกลุ่ม b ที่ได้รับไฟล์ pbd เวอร์ชั่นก่อนหน้าที่ใช้งานได้ อาจจะไม่ดีนัก แต่ทำงานได้อยู่

สร้าง project ใหม่โดยใช้ composer

เดี่ยวนี้ framework ต่างๆก็ใช้ package manager อย่าง composer ติดตั้ง library ต่างๆ รวมทั้งติดตั้ง framework อื่นๆ อย่าง jQuery ถ้าต้องการที่จะสร้างโครงการของเราเองก็ทำได้ง่ายๆ

  1. สร้าง folder ใหม่ขึ้นมา เช่น C:\xampp\htdocs\snippets
  2. พิมพ์[code language=”text” title=”command”]composer init[/code]
  3. ตอบคำถามไปตามละดับ เช่น [code language=”text” title=”command”]
    D:\>cd D:\xampp\htdocs\snippets

    D:\xampp\htdocs\snippets>composer init

    Welcome to the Composer config generator

    This command will guide you through creating your composer.json config.

    Package name (<vendor>/<name>) [pitt.p/snippets]: pitt/snippets
    Description []: code snippets
    Author [, n to skip]: Pitt Phunsanit <[email protected]>
    Minimum Stability []: stable
    Package Type (e.g. library, project, metapackage, composer-plugin) []: project
    License []: mit

    Define your dependencies.

    Would you like to define your dependencies (require) interactively [yes]? yes
    Search for a package: jquery

    Found 15 packages matching jquery

    [0] components/jquery
    [1] frameworks/jquery
    [2] contao-components/jquery
    [3] yiisoft/jquery
    [4] etdsolutions/jquery
    [5] ovidentia/jquery
    [6] mygento/jquery
    [7] quickapps-plugins/jquery
    [8] intelogie/jquery
    [9] apnet/jquery
    [10] jquery/jquery
    [11] yepsua/jquery4php
    [12] venne/jquery2.0-module
    [13] sonata-project/jquery-bundle
    [14] blueimp/jquery-file-upload

    Enter package # to add, or the complete package name if it is not listed: 0
    Enter the version constraint to require (or leave blank to use the latest version):
    [/code]

  4. ตอบคำถามไปเรื่อยๆ รูปแบบ packages จะสัมพันกับ url ใน github เช่น https://github.com/jquery/jquery ถ้าไม่ทราบหาได้ขากเว้บ packagist.org จนสุดท้ายจะสร้างไฟล์ composer.json ขึ้นมา[code language=”javascript” title=”composer.json”]
    {
    "authors": [{
    "email": "[email protected]",
    "homepage": "https://pitt.plusmagi.com",
    "name": "pitt phunsanit",
    "role": "Developer"
    }],
    "description": "snippet",
    "homepage": "https://pitt.plusmagi.com",
    "license": "mit",
    "minimum-stability": "stable",
    "name": "pitt/snippet",
    "require": {
    "ckeditor/ckeditor": "*",
    "components/jquery": "*",
    "components/jquery-migrate": "*",
    "components/jqueryui": "*",
    "phpoffice/phpexcel": "^1.8",
    "twbs/bootstrap": "*"
    },
    "type": "project"
    }[/code]
  5. โหลด library โดยคำสั่ง[code language=”text” title=”command”]composer update[/code]

ไฟล์จุถูกเก็บในโฟลเดอร์ vendor/xxx/yyy อย่างเรียบร้อยและเหมือนกันทุกเครื่องถ้าลง package เดียวกัน version เดียวกัน

api,framework,ide,library

คำพวกนี้จะเจอเป็นประจำในคู่มือเวลาเขียนเว็บดูเหมือนจะมีความหมายเดียวกัน ความจริงมีรายละเอียดมีแตกต่างกันบ้างโดย

  • ฟังชั่น (function) คือชุดคำสั่งที่ทำหน้าที่ใดหน้าที่หนึ่งโดยเฉพาะ
  • เอพีไอ (api) คือส่วนติดต่อที่อนุญาติให้เอาไปใช้เวลาเขียนโปรแกรม เช่นเอพีไอที่ทำหน้าที่ติดต่อกับดาด้าเบส ตัวทีทำหน้าที่ติดต่อกับกล้องถ่ายภาพ แต่ละเอพีไอประกอบด้วยฟังก์ชั่นทำหน้าที่ต่างๆ กันไป
  • ไลบารี (library) เปรียบเหมือนห้องสมุดที่มีชุดคำสั่งสำรับอำนวยความสดวกในการเขียนด้านใดด้านหนึ่ง เหมือนห้องสมุดจะมีหนังหนังสือให้เลือกใช้ เช่น jquery เป็นไลบารี (ห้องสมุดเฉพาะด้าน javascript) ซึ่งมีเอพีไอ (หนังสือ) ให้เรียกใช้ เช่น Selectors ไว้เลือกส่วนต่างๆ ของโค้ท html มี Manipulation ไว้แก้ไขโค้ท html
  • เฟรมเวิร์ค (framework) ตามตัวอักษรคือ กรอบการทำงาน โครงสร้างหรือจะเรียกว่านั่งร้านก็ได้ โดยจะต่างจากไลบารีเพราะ
    1. คำสั่งเราจะอยู่ในเฟรมเวิร์ค(กรอบ) ได้เพียงตัวเดียวเท่านั้นต่างจากไลบารีที่สามารถเรียกใช้พร้อมกันหลายตัว
    2. การทำงานจะไม่มีการเรียกใช้เอพีไอโดยตรงแต่จะผ่านเฟรมเวิร์คทำให้สามารถเขียนครั้งเดียวเอาไปใช้ในสภาพแวดล้อมต่างกันได้ เช่น ภาษาตะกูลดอทเน็ตคำสั่งของเราจะไม่เรียกใช้เอพีไอของวินโดวส์โดยตรงแต่จะผ่านดอทเน็ตเฟรมเวิร์คอีกที ทำให้ถึงเป็นวินโดวส์ต่างเวอร์ชั่นกัน แต่ถ้าเฟรมเวิร์คเวอร์ชั่นเดียวกันเป็นล่ามให้ก็จะทำงานเหมือนกัน
  • ไอดีอี (ide) คือสภาพแวดล้อมที่เราใช้เขียนโปรแกรม ประกอบด้วยหลายส่วน
    • เครื่องมือที่เราใช้เขียนโปรแกรม เช่น อิดิพลัส ,ดรีมวีฟเวอร์ ,วิชวลสตูดิโอ
    • ตัวแปรภาษาต่างๆ
    • ตัวดีบัคโค้ท
    • เซิร์ฟเวอร์