Blog

  • Bài 1: Cơ bản về UnitTest

    Khi muốn test nhiều dữ liệu:

    Ta thêm param vào phương thức và trên đó thêm các thuộc tính:

    [theory]

    [Inlinedata(cac gia tri param tương ứng)]

    [Inlinedata(cac gia tri param tương ứng)]

    [Inlinedata(cac gia tri param tương ứng)]

    [Inlinedata(cac gia tri param tương ứng)]

    [Inlinedata(cac gia tri param tương ứng)]

  • Giới thiệu SQLite

    SQLite là một hệ quản trị cơ sở dữ liệu quan hệ, khác với các hệ quản trị CSDL khác nó không cần client–server database engine (một dịch vụ, ứng dụng cài đặt đầy đủ thông qua nó kết nối, tương tác với các CSDL), nó được nhúng vào rất nhiều chương trình khác nhau, từ destop, mobile đến website. Hầu hết ngôn ngữ lập trình có các thư viện hỗ trợ kết nối, truy vấn đến SQLite như: PHP CJavaC#JavaScript… Nó được nhúng vào các trình duyệt, vào các hệ thống nhúng, hệ điều hành như AndroidIOS … đều đã nhúng mặc định.

    Vì SQLite không cần client–server database engine nên có thể hiểu file CSDL đã tích hợp mọi thứ, sử dụng ngay không cần phải cài đặt thêm thứ gì.

    SQLite tương thích với chuẩn SQL

    Việc kết nối và thi các lệnh SQL với SQLite thật sự rất đơn giản, ví dụ:

    SQLite với PHP

    Ví dụ bạn cần thi hành một lệnh SQL trên CSDL SQLite với file có tên db.sqlite. Giả sử câu lệnh đó là:

    SELECT * FROM Danhmuc

    Chạy thử

    SQLite với .NET

    Đối với .NET thư viên truy cập SQLite được cung cấp tại http://sqlite.org/download.html, vào đó tìm đúng phiên bản binary cho .NET cần dùng, tải về và cài đặt. Sau đó thêm System.Data.SQLite ở thư mục cài đặt C:\Program Files\SQLite.NET\bin vào dự án của bạn để sử dụng.

    Cách thứ 2 cài System.Data.SQLite vào dự án bằng Package Manager Console trong Visual Studio

    Mở cửa sổ lệnh Package Manager Console, rồi gõ lệnh sau để cài:

    PM> Install-Package Microsoft.EntityFrameworkCore.Sqlite
    Install-Package Microsoft.EntityFrameworkCore.Tools
    Install-Package Microsoft.EntityFrameworkCore.Design

    Add-Migration InitialCreate
    Update-Database

    Nếu cài đặt thành công, khai báo sử dụng thư viện trong file code:

    using System.Data.SQLite;
    

    Dưới đây là đoạn mã, kết nối và truy vấn đến SQLite bằng C#

    using Microsoft.EntityFrameworkCore;
    using System;
    using System.Collections.Generic;
    
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    
        public string DbPath { get; }
    
        public BloggingContext()
        {
            var folder = Environment.SpecialFolder.LocalApplicationData;
            var path = Environment.GetFolderPath(folder);
            DbPath = System.IO.Path.Join(path, "blogging.db");
        }
    
        // The following configures EF to create a Sqlite database file in the
        // special "local" folder for your platform.
        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseSqlite($"Data Source={DbPath}");
    }
    
    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
    
        public List<Post> Posts { get; } = new();
    }
    
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
    
        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
    
    
    
    using System;
    using System.Linq;
    using Microsoft.EntityFrameworkCore;
    
    using var db = new BloggingContext();
    
    // Note: This sample requires the database to be created before running.
    Console.WriteLine($"Database path: {db.DbPath}.");
    
    // Create
    Console.WriteLine("Inserting a new blog");
    db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
    await db.SaveChangesAsync();
    
    // Read
    Console.WriteLine("Querying for a blog");
    var blog = await db.Blogs
        .OrderBy(b => b.BlogId)
        .FirstAsync();
    
    // Update
    Console.WriteLine("Updating the blog and adding a post");
    blog.Url = "https://devblogs.microsoft.com/dotnet";
    blog.Posts.Add(
        new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" });
    await db.SaveChangesAsync();
    
    // Delete
    Console.WriteLine("Delete the blog");
    db.Remove(blog);
    await db.SaveChangesAsync();
    
    SQLiteStudio - Giao diện trực quan làm việc với SQLite
    Để thực hành, học về SQL nói chung bạn có thể sử dụng CSDL mẫu bằng SQLite để thực hành, với mục đích tương tác với CSDL mà chưa cần áp dụng cho loại ngôn ngữ lập trình nào. Bạn có thể cài đặt công cụ SQLiteStudio, bạn có thể tải về cho macOS, Windows hay Linux.
    
    Sau đó tải luôn dữ liệu mẫu tôi chuẩn bị sẵn, lưu file dữ liệu mẫu tên db.sqlite CSDL SQLite mẫu vào folder nào bạn thích.
    Chạy file: SQLiteStudio, giao diện chương trình có dạng
    
    SQLite Studio
    Giao diện SQLiteStudio
    <img src="https://raw.githubusercontent.com/xuanthulabnet/sql-learning/master/docs/sql-001.png" alt="SQLite Studio">
    Bạn bắt đầu có thể tạo mới CSDL SQLite, thi hành các lệnh SQL trên giao diện này, ở đây bạn đã có file dữ liệu mẫu db.sqlite nên chỉ việc thêm nó vào và thực hành
    
    Nhấn CTRL-0 thêm file db.sqlite mẫu vừa tải về để làm việc
    Nhấn ALT+E mở cửa sổ soạn thảo lệnh SQL ví dụ nhập lệnh select * from Danhmuc
    Nhấn F9 để chạy lệnh SQL nhập vào, kết quả trả về được thông báo hiện thị trực quan trong cửa sổ chương trình.
    Đây là cách mà các bài hướng dẫn về SQL gợi ý dùng để thực hành trên website này. Ngoài ra bạn có thể dùng thẳng các chương trình khác như: MySQL console
    
    Bạn có thể cài đặt XAMPP hoặc wampserver để có luôn cơ sở dữ liệu MariaDB, MySQL và công cụ PHPAdmin để tương tác trực quan với CSD
  • Bai 1: Vue là gì?

    Vue (phát âm là /vjuː/, giống như view ) là một khuôn khổ JavaScript để xây dựng giao diện người dùng. Nó được xây dựng trên HTML, CSS và JavaScript chuẩn và cung cấp một mô hình lập trình dựa trên thành phần, khai báo giúp bạn phát triển hiệu quả giao diện người dùng ở mọi mức độ phức tạp.

    Sau đây là một ví dụ tối thiểu:

    js

    import { createApp, ref } from 'vue'
    
    createApp({
      setup() {
        return {
          count: ref(0)
        }
      }
    }).mount('#app')

    bản mẫu

    <div id="app">
      <button @click="count++">
        Count is: {{ count }}
      </button>
    </div>

    Kết quảSố đếm là: 0

    Ví dụ trên minh họa hai tính năng cốt lõi của Vue:

    • Kết xuất khai báo : Vue mở rộng HTML chuẩn với cú pháp mẫu cho phép chúng ta mô tả khai báo đầu ra HTML dựa trên trạng thái JavaScript.
    • Tính phản ứng : Vue tự động theo dõi các thay đổi trạng thái của JavaScript và cập nhật DOM một cách hiệu quả khi có thay đổi xảy ra.

    Bạn có thể đã có thắc mắc – đừng lo lắng. Chúng tôi sẽ đề cập đến mọi chi tiết nhỏ trong phần còn lại của tài liệu. Bây giờ, vui lòng đọc tiếp để bạn có thể hiểu rõ hơn về những gì Vue cung cấp.

    Tạo ứng dụng Vue

    Điều kiện tiên quyết

    Cài đặt Node.js phiên bản 18.3 trở lên

    Làm quen với dòng lệnh

    Hãy đảm bảo bạn đã cài đặt phiên bản Node.js mới nhất và thư mục làm việc hiện tại của bạn là nơi bạn định tạo dự án. Chạy lệnh sau trong dòng lệnh của bạn (không có $dấu):

    $ npm create vue@latest
    $ cd <your-project-name>
    $ npm install
    $ npm run dev

    Khi bạn đã sẵn sàng đưa ứng dụng của mình vào sản xuất, hãy chạy lệnh sau:

    $ npm run build
  • Update data to Visual studio

    Cài đặt:

    dotnet tool install –global dotnet-ef

    dotnet add package Microsoft.EntityFrameworkCore.Design

    dotnet ef

    Chạy lênh:

    dotnet ef migrations add InitialCreate

    dotnet ef database update

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!