ASP.NET

Tuesday, July 25, 2017

เชื่อม SQL Server บน VMWare ผ่าน SQL Server Management Studio ที่เครื่อง Client

หากติดตั้ง SQL Server ต่างเครื่องคอมพิวเตอร์ที่เราต้องการ Develop
จะต้อง Set ค่าเพิ่มเติมผ่าน SQL Server Configuration Server ด้วย
เพราะไม่เช่นนั้นก็จะไม่สามารถเชื่อมต่อได้เลย

1. เปิด SQL Server Configuration Server
2. เลือก SQL Server Services
3. เลือก SQL Server(ชื่อ Instance ที่ได้สร้างไว้) และเลือก Properties
4. เช็คว่า Log on as : Built-in account: Network Service

Sunday, July 16, 2017

ฺBoxing vs Unboxing ต่างกันตรงไหน


Boxing คือการแปลง value type ให้เป็น reference type เช่น
     int i = 123;
     Object o = (Object)i;

Unboxing คือการแปลง reference type เป็น value type เช่น
     int d;
     d = DateTime.Now.Day;

Overloading vs Overriding ต่างกันตรงไหน

Overriding Overloading
มาพร้อมกับการสืบทอด(Inheritance) เพราะว่า Override นั้นคือการ implement method ใหม่ การทำงานมันเหมือนกันแต่ว่าต่างกันที่ parameter

Abstract vs Interface ต่างกันตรงไหน

เปรียบเทียบผ่านตารางละกัน

Abstract Interface
เป็น Class ไม่ใช่ Class
ถูกนำมาใช้กับ Class ที่สามารถให้ Method กับ Class ลูกใช้งานได้ทันที และให้ Class ลูกไปเขียนขั้นตอนการทำงานเอง เช่นสัตว์ประเภทต่างๆ ที่มีการทำงานที่เหมือนกัน ถูกนำมาใช้กรณีออกแบบ Class ที่อยู่ในกลุ่มเดียวกัน แต่มีการทำงานที่ไม่เหมือนกัน เช่น นกกับเครื่องบิน สามารถบินได้เหมือนกัน แต่บินด้วยวิธีที่ไม่เหมือนกัน
มีแค่กรอบการทำงาน หรือมี Logic เพิ่มเติมได้ มีแค่กรอบการทำงาน
Method 2 แบบ
- Method ที่สามารถเรียกใช้งานได้ทันที
- Method ที่มีเพียงแค่ชื่อ แต่ไม่มีในส่วนของหน้าที่การทำงาน
Method ที่มีเพียงแค่ชื่อ แต่ไม่มีในส่วนของหน้าที่การทำงาน
Method ต้องประกาศ Abstract  Method ไม่ต้องประกาศ Abstract
มี abstract method อย่างน้อย 1 method และส่วนใหญ่จะมี concrete method (เมธอดที่มีส่วนimplementation แล้ว) ทุกๆ Method ของ Interface จะเป็น abstract 
Class ลูก ที่ extends ไม่จําเป็นต้องระบุ Method ที
มีอยูใน Abstract Class ครบทุก Method
Class ลูก ที่ Implement จะต้องระบุ
Method ที่มีอยูใน Interface ให้ครบทุก
Method
Class ลูกจะต้อง override เฉพาะ Method ที่เป็น abstract เท่านั้น Class ลูกจะต้อง override ทุก method ใน Class ลูก เพราะเป็น abstract ทั้งหมด
Class ลูก สามารถ extends ได้เพียง 1 Class Class ลูกสามารถ Implements ได้มากกว่า 1 Class

Thursday, July 13, 2017

Agile แนวการทำงานเพื่อรองรับ Requirement ที่ไม่นิ่ง

Agile นั้นเกิดขึ้นมาจากบริษัทที่ทำในเชิง Software Development เป็นหลัก เพราะปัญหาของระบบเดิมที่บรรดาบริษัท Software เจอก็คือ
  • ความยากในการวางแผน 
  • งบประมาณที่อาจจะบานปลาย
  • ระบบแบบ Waterfall กระบวนการ Test จะต้องให้ Design และ Develop เกือบเสร็จ หากเจอความผิดพลาดด้วยการเข้าใจ Requirement ผิดพลาดหรือมีการเปลี่ยนแปลงก็ตามแต่ การแก้ไขก็จะทำได้ยาก

Monday, July 10, 2017

การเพิ่ม Search Method และ Search View

จากหน้าจอ Index ที่ List รายชื่อ Movie หากต้องการทำส่วนค้นหาข้อมูล เช่น Title , Genre จะทำอย่างไร

ตัวอย่าง

จากไฟล์ Views/Movies/Index.cshtml เพิ่ม Code ด้านล่าง
 @model IEnumerable<MvcMovie.Models.Movie>  
 @{  
   ViewBag.Title = "Index";  
 }  
 <h2>Index</h2>  
 <p>  
   @Html.ActionLink("Create New", "Create")  
   @using (Html.BeginForm("Index", "Movies", FormMethod.Get))  
   {  
   <p>  
     Title: @Html.TextBox("SearchString")  
     Genre: @Html.DropDownList("movieGenre", "All")  
     <input type="submit" value="Filter" />  
   </p>  
   }  
 </p>  
 <table class="table">  

Focus การทำงานที่ Mode Edit

Post นี้จะมา Focus การทำงานที่ Mode Edit

ตัวอย่าง
หากต้องการแก้ไข Display Name สามารถกำหนดผ่านไฟล์ Models/Movie.cs

เช่น

 using System;  
 using System.ComponentModel.DataAnnotations;  
 using System.Data.Entity;  
 namespace MvcMovie.Models  
 {  
   public class Movie  
   {  
     public int ID { get; set; }  
     public string Title { get; set; }  
     [Display(Name = "Release Date")]  
      public string Genre { get; set; }  
     public decimal Price { get; set; }  
   }  
   public class MovieDBContext : DbContext  
   {  
     public DbSet<Movie> Movies { get; set; }  
   }  
 }  

การเพิ่ม Controller เพื่อจัดการข้อมูลใน SQL Server

ในส่วนนี้จะลองสร้าง MovieController เพื่อจัดการข้อมูล Model Movie

ตัวอย่าง

เริ่มจากการคลิกขวา Add > Controller


Sunday, July 9, 2017

การสร้าง Connection String เชื่อมโยง SQL Server บน Local

จะขอยกตัวอย่างการเชื่อมฐานข้อมูลกับ SQL Server 2016 ที่ได้ติดตั้งไว้ที่เครื่อง Local

ตัวอย่าง

โดยจะต้องเตรียมฐานข้อมูลจำลองด้วยการสร้าง Table ผ่าน Script

CREATE TABLE Movie
( ID INT NOT NULL,
  Title VARCHAR(50) NOT NULL,
  releaseDate datetime NOT NULL,
  Genre VARCHAR(50),
  price decimal
);


การเพิ่ม Model ให้กับ Application

เริ่มจากการสร้าง Model ด้วยการสร้าง Class ภายใต้ Folder Models>Add>Class

การเพิ่ม View ให้กับ Application


การเรียกใช้งานส่วนของ View จะเริ่มจากการปรับแต่งส่วนของ Controller ให้เรียกการทำงาน View

ตัวอย่าง

HelloWorldController.cs ปรับแต่ง Method Index ให้เรียกใช้ View ดังรูป



Saturday, July 8, 2017

การเพิ่ม Controller ให้กับ Application

MVC ย่อมาจาก Model / View / Controller

Model = เป็น Class ที่แสดงในมุมมองของ Data
View = สำหรับแสดงหน้าตาของระบบ เช่นมุมมองของ HTML
Controller = เป็น Class ที่รับคำสั่ง, ควบคุมการทำงานเพื่อที่จะ Return กลับไปที่ Browser

จาก Solution Explorer ที่ได้สร้างไว้ก่อนหน้า คลิกขวา เลือก Add>Controller ..



Friday, July 7, 2017

เริ่มต้นใหม่กับ MVC บน Visual Studio 2015

หลังจาก Install Visual Studio 2015

เลือก New Project จากหน้า Start Page เพื่อสร้าง Project ใหม่

เลือก Template Visual C# > Web > ASP.NET Web Application และคลิก OK



Tuesday, July 4, 2017

เมื่อตัดสินใจว่าจะกลับมาเป็น Developer


คุณเคยมั้ย.. สงสัยว่าสายงานที่ทำมาหลายๆ ปี ใช่หรือไม่ใช่

พอมาวันหนึ่ง ได้มีโอกาสย้ายงาน

ลองฝืนเข้าไปอยู่ในจุดที่ดีกว่า มีโอกาสเข้าไปทำงาน บ. ใหญ่ที่ใครหลายคนใฝ่ฝัน


เชื่อม SQL Server บน VMWare ผ่าน SQL Server Management Studio ที่เครื่อง Client

หากติดตั้ง SQL Server ต่างเครื่องคอมพิวเตอร์ที่เราต้องการ Develop จะต้อง Set ค่าเพิ่มเติมผ่าน SQL Server Configuration Server ด้วย เพราะไม...