Saladpuk.com
🏆 เนื้อหาหลัก
🏆 เนื้อหาหลัก
  • 💖สลัดผัก
  • 📰มีอะไรใหม่บ้าง
    • 2020
      • 2020-11
      • 2020-10
      • 2020-09
      • 2020-08
      • 2020-03
      • 2020-02
      • 2020-01
    • 2019
      • 2019-12
      • 2019-11
      • 2019-10
      • 2019-09
      • 2019-08
  • 🤔อ่านเรื่องไรดี ?
  • มือใหม่หัดเขียนโค้ด
    • 👶เขียนโค้ดด้วยภาษา C#
      • เกิดมาไม่เคยเขียนโค้ดมาก่อนเบย
      • 👶พื้นฐาน
        • 1.โปรแกรมที่ต้องลง
        • 2.โครงสร้างของโค้ด
        • 3.ชนิดของข้อมูล
        • 4.การสร้างตัวแปร
        • 5.คำสั่งพื้นฐาน
        • 6.การแปลงข้อมูล
        • 7.การเปรียบเทียบค่า
        • 8.การตัดสินใจด้วย IF statements
        • 9.การตัดสินใจด้วย Switch statements
        • 10.การทำงานซ้ำๆด้วย While
        • 11.การทำงานซ้ำๆด้วย Do While
        • 12.การทำงานซ้ำๆด้วย For
        • 13.การแก้โจทย์จากรูป
        • 14.มารู้จักกับ Array กัน
      • 🧑ระดับกลาง
        • 15.Value type vs Reference type
        • 16.ลดงานซ้ำๆด้วย Method
        • 17.มารู้จักกับ Class & Field กัน
        • 18.มารู้จักกับ Constructor กันบ้าง
        • 19.มาเขียน Method ใน Class กัน
        • 20.มารู้จักกับ Property กัน
        • 21.ลองใช้คลาสแบบจริงจังบ้าง
        • 22.การสืบทอด Inheritance
        • 23.Polymorphism
        • 24.Abstract Class
        • 25.Interface
        • 26.Namespace
        • 27.Enum
        • 28.Exception handler
        • 29.ลงลึกกับ string
        • 30.StringBuilder เพื่อนคู่ string
      • 👨⏳ระดับสูง
        • Generic
        • Delegates
        • Action & Func
        • Lambda expression
        • LINQ
        • พระคัมภีร์การใช้คำสั่ง LINQ
      • 💡Tips
        • 💡C# version 8.0
        • 💡Boxing & Unboxing
    • 👶Algorithm
      • 👾Algorithm Big-O
      • 👽Algorithm P & NP
    • 👦OOP
      • 💖Abstraction
      • 💖Encapsulation
      • 🏆Abstraction & Encapsulation
      • 💖Inheritance
      • 💖Polymorphism
      • 🏆Inheritance & Polymorphism
      • 📝ลองเขียน OOP ดูดิ๊
      • 👑OOP + Power of Design
      • 🥰เทคนิคในการออกแบบ
    • 👶บทสรุปฐานข้อมูล
      • เก็บรูปในฐานข้อมูล
      • Database indexing
      • การลบข้อมูล
    • 👦Communication Patterns
    • 👦Design Patterns
      • 🤰Creational Patterns
        • 🏭Factory Method
        • 🏭Abstract Factory
        • ☝️ Singleton Pattern
        • 🏗️ Builder Pattern
        • 🎎Prototype Pattern
      • 🧱Structural Patterns
        • 🔌Adapter Pattern
        • 📪Proxy Pattern
  • Puzzle
    • 🧠Challenges
      • 🐴Google ม้า 25 ตัว
      • 🌉Amazon เสา 2 ต้น
      • 🥇ทองเก๊
      • 💊ยาต้านโควิด
      • 🎩CP หมวก 5 ใบ
      • 🧓Einstein's Riddle 01
  • พื้นฐานที่ควรต้องรู้
    • 🐳Docker
      • 📦Docker Containers
      • 🃏Docker Exercise 01
      • 🛠️ Docker Tools
      • 🗃️ Docker Registry
      • 🖼️ Container Image
      • 📢Docker Push
      • 🔄WSL
    • 👶Clean Code
      • 🧓Uncle Bob - Clean Code
      • 🧓Uncle Bob - Comments
      • 🧓Uncle Bob - Naming
      • 🧓Uncle Bob - Mindset
      • 🧓Uncle Bob - TDD
    • 👶Code Smells
    • 👶สิ่งที่คนเขียนโค้ดมักเข้าใจผิด
    • 👶AI พื้นฐาน
    • 👶Git พื้นฐาน
      • Git branching strategy
    • 👶Cloud พื้นฐาน
    • 👶UML พื้นฐาน
      • Activity Diagram
      • Class Diagram
      • Sequence Diagram
      • Use case Diagram
      • บทสรุปการใช้ UML
    • 👶Data Scientist
      • การเลือก Algorithms ให้ AI (1/5)
      • การเตรียมข้อมูลให้ AI (2/5)
      • หลักการตั้งคำถามให้ AI (3/5)
      • แฉความลับของ AI Model (4/5)
      • หัดเขียน AI จาก AI ของคนอื่น (5/5)
    • 👶DevOps พื้นฐาน
    • 👶Docker ขั้นพื้นฐาน
      • Image and Container
      • แชร์ Docker Image ที่สร้างไว้
    • 👶Microservices พื้นฐาน
      • Microservices ที่ดีมีลักษณะยังไง
      • Microservices Tips
      • จาก Monolith สู่ Microservices
    • 👶ความรู้พื้นฐานในการทำเว็บ
    • 👦Bottlenecks of Software
      • หัวใจที่สำคัญที่สุดของฐานข้อมูล
    • 👦Agile Methodology
      • Agile in a Nutshell
      • Software Development Life Cycle
      • Code Review
    • 👦Security พื้นฐาน
      • การเก็บรหัสผ่านที่ถูกต้อง
      • Security in actions
        • Hash function
      • Security Principles
      • 😎The Matrix 1
      • 😎The Matrix 2
      • HTTPS in a nutshell
    • 👦SOLID Design Principles
      • มารู้จักกับ SOLID กันดีกว่า
      • Single-Responsibility Principle
      • Open/Closed Principle
      • Liskov Substitution Principle
      • Interface Segregation Principle
      • Dependency-Inversion Principle
  • Cloud Computing
    • 👶Microsoft Azure 101
      • สมัคร Microsoft Azure
      • รู้จักกับ Resource Groups
      • สร้างเว็บตัวแรกกัน
      • สร้าง Virtual Machine กัน
      • ประเภทของคลาว์เซอร์วิส
      • มาสร้าง Logic App กัน
      • มาสร้าง Function App กัน
      • คลาว์คิดเงินยังไง ?
      • Cloud Native
      • Guideline for Cloud scaling
      • Auto Scaling
    • 👶Azure App Services
    • 👶App Service Plan
    • 👶Azure Storage
      • Blob storage
        • ลองสร้างที่เก็บไฟล์กันเลย
        • เข้าใจ Blob storage ให้มากขึ้น
        • ลองเขียนโค้ดอัพโหลดไฟล์กันบ้าง
        • สร้างเว็บจากที่ฝากไฟล์บนคลาว์
    • 👶Azure Bot Service
      • Bot เข้าใจเราได้ยังไงกันนะ
    • 👶Azure Cognitive Services
      • การสร้าง Cognitive Services
      • การ Login ด้วยใบหน้า
      • อ่านลายมือจากรูปเป็นตัวอักษร (OCR)
      • เขียน AI แยกของต่างๆทำยังไง?
      • เขียนแอพ ทายอายุ บอกเพศ ง่ายจิ๊ดเดียว
      • เขียนแอพให้ AI อธิบายรูปเป็นภาษาคน
    • 👶Machine Learning Studio
      • มาสร้าง AI ของแท้ตัวแรกของเรากัน
      • สร้าง AI ตัดสินใจอนุมัติบัตรเครดิต 💳
      • ลองเรียกใช้ AI ของเรากัน
    • 👶Azure Service Fabric
      • สร้าง Service Fabric กัน
    • 👶Blockchain
      • Blockchain ทำงานยังไง ?
      • Consensus Algorithm คืออะไร ?
      • สร้าง Blockchain ใช้เองกัน !
      • หัดเขียน Smart Contract กัน
    • 👶Power BI
    • 👶Azure Web App
      • เซิฟเวอร์บนคลาว์ ราคา? ต่าง?
    • 👶Azure DevOps
      • เล่น Azure DevOps กัน
      • เล่นกับ Repository
      • ลองทำ Continuous Integration (CI)
      • ลองทำ Continuous Delivery (CD)
      • เล่น Kanban Board
    • 🤠Cloud Playground
      • การป้องกันความลับหลุดตอนที่ 1
      • การป้องกันความลับหลุดตอนที่ 2
      • การป้องกันความลับหลุดตอนที่ 3
      • การป้องกันความลับหลุดตอนจบ
  • Software Testing
    • 👦Test-First Design
    • 👦Test-Driven Development
      • 1.มารู้จักกับ TDD กันดีกว่า
      • 2.Test cases เขาเขียนกันยังไงนะ
      • 3.เครื่องมือในการทดสอบ
      • 4.การใช้ Theory และ InlineData
      • 5.โค้ดที่ทดสอบได้
      • 6.Mantra of TDD
      • 7.Functional & None-Functional testing
      • 8.Manual vs Automation testing
      • 9.Automation Frameworks in .NET
      • 10.Mock Framework
      • 11.มาเรียนการใช้ Moq กันเถอะ
      • 12.สรุป
  • Web
    • 👦Web API
      • 1.Web API คืออะไร
      • 2.ติดตั้ง .NET Core SDK
      • 3.สร้าง Web API ตัวแรกกัน
      • 4.Verbs
      • 5.Swagger เพื่อคู่ API
      • 6.การใช้ Model
      • 7.เรียก Web API ผ่าน Postman
      • 8.มาจัดกลุ่ม API กัน (1/2)
      • 9.มาจัดกลุ่ม API กัน (2/2)
  • Software Design
    • 🤴Design Patterns
      • 🦈Creational patterns
        • Abstract Factory
        • Builder
        • Factory Method
        • Prototype
        • Singleton
      • 🦈Structural patterns
        • Adapter
        • Bridge
        • Decorator
        • Facade
        • Proxy
      • 🦈Behavioral patterns
        • Chain of Responsibility
        • Command
        • Iterator
        • Mediator
        • Memento
        • Observer
        • State
        • Strategy
        • Template Method
        • Visitor
Powered by GitBook
On this page
  • 🔥 ทำงานกับ Repository
  • 1️⃣ ใช้ Repository ใหม่จาก Azure DevOps เลย
  • 2️⃣ เอางานเก่าขึ้นมาใช้แทน
  • 3️⃣ ใช้ Repository เดิม
  • 4️⃣ สร้าง.gitignore
  • 🔥 ลองเล่นกันเรย
  • Git Clone
  • Git Pull
  • Git Add & Commit
  • Git Push

Was this helpful?

Export as PDF
  1. Cloud Computing
  2. Azure DevOps

เล่นกับ Repository

Previousเล่น Azure DevOps กันNextลองทำ Continuous Integration (CI)

Last updated 5 years ago

Was this helpful?

แนะนำให้อ่าน บทความนี้เป็นส่วนหนึ่งของคอร์ส ที่จะมาสอนการใช้งานทุกสิ่งที่ DevOps ควรจะต้องมี เพื่อให้เราสามารถทำ Feedback loop ได้ไวขึ้น ดังนั้นถ้าเพื่อนๆสนใจอยากดูว่ามันทำอะไรได้ก็กดไปอ่านที่บทความหลักได้เลยครัช

คำเตือน ถ้าเพื่อนๆต้องการทำตามบทความนี้ จะต้องมีโปรเจคใน Azure DevOps เสียก่อน แต่ถ้าใครยังไม่มีก็สามารถไปทำตามได้จากบทตัวนี้ก่อน แล้วค่อยกลับมาทำตามบทความนี้ก็ได้ครัช

🔥 ทำงานกับ Repository

ที่โปรเจคที่เราได้มามันจะมีเมนูอยู่ด้านซ้ายมือเอาไว้เข้าไปจัดการตามแต่ละเรื่องต่างๆ ซึ่งในรอบนี้เราจะมาลองใช้ Repository เพื่อเอาไว้ให้ทีมทำงานร่วมกันจัดการ source code ดังนั้นเราก็จะจิ้มมันลงไปหนึ่งจึ๊ก

พอเรากดเข้ามาแล้ว เขาก็จะแตกเมนูเป็นตัวย่อยๆให้เราทำงานด้วย (เดี๋ยวไปอธิบายแต่ละเมนูแยกเป็นแต่ละบทความอีกที) แต่ที่ด้านขวามือเราจะเห็นว่าหน้าตามันเปลี่ยนไป ซึ่งถ้าเรายังไม่เคยทำอะไรกับโปรเจคนี้เลยเขาจะให้เราเลือกว่าเราจะทำงานกับ Repository ของโปรเจคนี้ยังไง ซึ่งเขามีตัวเลือกให้เราลองเล่นได้ทั้งหมด 4 อย่าง

1️⃣ ใช้ Repository ใหม่จาก Azure DevOps เลย

ในกรณีที่เราอยากได้ Repository ที่ไม่มีอะไรเลย เราก็สามารถเริ่มต้นทำงานกับเจ้า repository ตัวนีได้เลย โดยการ Clone จาก URL ที่เขาโชว์ไว้ให้นั่นเอง ซึ่งจากตัวนี้ถ้าเราอยากได้ Credentials ก็สามารถกดสร้างได้จากหน้านี้เลย

2️⃣ เอางานเก่าขึ้นมาใช้แทน

ในกรณีที่เพื่อนๆมี source code อยู่ใน Repository เก่าของตัวเองอยู่แล้ว ก็สามารถเอางานที่อยู่ในนั้น Push ขึ้นมาได้เลยโดยใช้ Repository ตัวใหม่ที่ Azure DevOps สร้างมาให้ตัวนี้

3️⃣ ใช้ Repository เดิม

ในกรณีที่เพื่อนๆมีงาน source code อยู่ใน GitHub หรือใน Team Foundation Version Control (TFCV) อยู่ก่อนหน้าแล้ว ก็สามารถเลือกใช้ตัวเลือกนี้เพื่อให้มันลิงค์ไปเอางานจาก repository ที่เลือกไว้ได้เลย

4️⃣ สร้าง.gitignore

สำหรับเพื่อนๆที่อยากให้มันสร้าง .gitignore ก็สามารถกดสร้างจากเมนูตรงนี้ได้เลย โดยที่มันก็จะมี default gitignore ให้เราเลือกเหมือน GitHub อยู่ละ

🔥 ลองเล่นกันเรย

Git Clone

สำหรับตัวอย่างตัวนี้ผมจะเล่นจากตัวพื้นฐานสุดๆก่อนเลยละกัน นั่นก็คือผมจะเลือกใช้วิธีที่ 1️⃣ เราจะได้เห็นทุกอย่างแบบคลีนๆเลยนั่นเอง ดังนั้นผมก็จะ Clone project ตัวนี้ลงมาที่เครื่องเลยละกัน โดยการ copy URL ที่เขาเตรียมไว้ให้นั่นเอง

https://sakuljaru@dev.azure.com/sakuljaru/saladpuk/_git/saladpuk

ดังนั้นเราก็เปิด Command prompt หรือ Terminal ไปยังตำแหน่งที่เราจะทำงานด้วย (ในตัวอย่างของผมคือ d:\temp นะ) แล้วก็สั่ง Clone ลงไปโลด

git clone https://sakuljaru@dev.azure.com/sakuljaru/saladpuk/_git/saladpuk

ผลลัพท์ Cloning into 'saladpuk'... warning: You appear to have cloned an empty repository.

สิ่งที่ผมได้คือโฟร์เดอร์ว่างๆออกมาครับ (คลีนจริงๆ)

Git Pull

จากตรงนี้ผมจะขอลองสร้าง .gitignore ของตัวโปรเจค Visual Studio หน่อยละกัน โดยการกลับไปที่ตัวเว็บในตัวเลือกข้อ 4️⃣ โดยเลือก VisualStudio ลงไป แล้วกดปุ่ม Initialize นั่นเอง

หลังจากทำเสร็จหน้าตามันจะเปลี่ยนไปนิดหน่อย เพื่อแสดงรายการไฟล์ที่อยู่ใน Repository ของเรานั่นเอง ซึ่งจากจุดนี้ก็จะคล้ายๆกับ GitHub ละ (เดี๋ยวรายละเอียดมาอธิบายต่ออีกที)

จากนั้นกลับมาที่ Command prompt หรือ Terminal ที่เราเปิดค้างไว้ เราก็จะเข้าไปใน directory ที่เราพึ่งได้มา (ในตัวอย่างจะได้ directory ชื่อ saladpuk มา) ดังนั้นเราก็จะเข้าไปทำงานกับ directory นั้นด้วยคำสั่ง change directory หรือ cd นั่นเอง

cd saladpuk

ผลลัพท์ D:\temp\saladpuk>

หลังจากนั้นเราก็จะลอง Pull project ลงมาใหม่ด้วยคำสั่ง git pull นั่นเอง

git pull

ถ้าทำเสร็จเราจะเห็นว่าใน folder ของเรามีไฟล์ใหม่เพิ่มเข้ามา 2 ไฟล์ตามที่ใน repository มีแล้วนั่นเอง

Git Add & Commit

คราวนี้เราก็ลองสร้างโปรเจคด้วยภาษาอะไรก็ได้ตามที่แต่ละคนถนัด ซึ่งในตัวอย่างผมจะสร้าง เว็บไซต์ ด้วย ASP.NET Core MVC ผ่าน Command line ครับ

ดังนั้นผมก็จะเปิด Command prompt ตัวเดิมกลับมาแล้วใช้คำสั่งด้านล่างนี้ เพื่อสร้างตัวเว็บไซต์นะครับ

dotnet new mvc

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

 dotnet build

ผลลัพท์ Microsoft (R) Build Engine version 16.3.0+0f4c62fea for .NET Core Copyright (C) Microsoft Corporation. All rights reserved.

Restore completed in 34.59 ms for D:\temp\saladpuk\saladpuk.csproj. saladpuk -> D:\temp\saladpuk\bin\Debug\netcoreapp3.0\saladpuk.dll saladpuk -> D:\temp\saladpuk\bin\Debug\netcoreapp3.0\saladpuk.Views.dll

Build succeeded. 0 Warning(s) 0 Error(s)

Time Elapsed 00:00:18.61

ถ้าได้ทุกอย่างสมบูรณ์แล้วเราจะพบว่ามันสร้างไฟล์ที่จำเป็นในการสร้างเว็บไซต์ออกมาเต็มไปหมดเบย ตามรูปด้านล่าง

ถัดไปเราก็จะเอาไฟล์เหล่านี้ไป commit เสียก่อนโดยใช้ 2 คำสั่งนี้

git add .
git commit -am "Created asp.net core MVC"

เรียบร้อยแล้ว ตอนนี้ไฟล์ของเราทั้งหมดก็พร้อมที่จะเอากลับไปที่ repository บน Azure DevOps แล้วนั่นเอง

Git Push

ถัดไปเราก็ใช้คำสั่งด้านล่างเพื่อส่งสิ่งที่เราทำขึ้นไปบน Azure DevOps นั่นเอง

git push

ถ้าเรายังไม่เคย Login เอาไว้เลยมันจะขึ้นมาถามให้เรา Login ดังนั้นก็จัดไปด้วย account ที่เราลงทะเบียนไว้ในบนความก่อนหน้านั่นเอง

หลังจากที่เรา push งานเสร็จแล้วลองเปิดไปดูที่ Azure DevOps เราก็จะเห็นว่าไฟล์ที่เราทำไว้ทั้งหมดขึ้นมาอยู่บน repository เรียบร้อยแล้วนั่นเองขอรับ

จากตรงนี้ก็แสดงว่าเราสามารถใช้งานตัว Repository ของเราแบบง่ายๆได้ละ ดังนั้นถัดไปเราจะไปดูเรื่องการทำ Build pipeline เพื่อให้โปรเจคของเรากลายเป็น Automation ให้ได้มากที่สุดนั่นเอง ดังนั้นกดปุ่ม Next ด้านล่างเพื่ออ่านบทความการทำ Continuous Integration กันเบย

แนะนำให้อ่าน สำหรับใครที่อยากทำตามตัวอย่าง แต่ยังไม่ได้ติดตั้ง .NET Core ก็สามารถไปอ่านวิธีการติดตั้งได้จากลิงค์นี้เบย

ลองเล่นดู ในตัวอย่างนี้ผมตั้งโปรเจ็คเป็น Public เอาไว้ ดังนั้นเพื่อนๆก็สามารถเข้ามาดูตัว repository ผ่านลิงค์ตัวนี้ได้เบยครัช

👶
https://youtu.be/57b7SbYwgrE?t=151
https://dev.azure.com/sakuljaru/_git/saladpuk
👶 Azure DevOps
เล่น Azure DevOps กัน