@manhnguyenv

Welcome to my blog!

ASP.NET Core MVC

February 7, 2020 14:44

ASP.NET Core MVC (edit)

ASP.NET Core là một nền tảng mã nguồn mở phát triển ứng dụng Web mới nhất của Microsoft đang được cộng đồng .NET Developer chào đón nồng nhiệt và có nhu cầu tuyển dụng rất lớn với mức lương hấp dẫn.

Đây là một nền tảng hứa hẹn sự phát triển của thế hệ website kế tiếp cũng như để đưa .NET đến với thế giới mã nguồn mở. Nền tảng này được rất nhiều người khen ngợi cả ở độ mềm dẻo, tính đa nền tảng và có những tính năng mạnh mẽ mà .NET Developer nào cũng mong được sử dụng.

Mặc dù thời buổi hiện nay có rất nhiều các trung tâm, các khóa học cả trong và ngoài nước cũng như có rất nhiều các tài liệu và video trên mạng xã hội để hướng dẫn các bạn học và thực hành với ASP.NET Core hay bất cứ ngôn ngữ và framework nào. Nhưng Softech Aptech luôn tự hào có những lợi thế cạnh tranh riêng và được rất nhiều các bạn học viên yêu quý và tin tưởng. Đó là sự đầu tư nghiên cứu tỉ mỉ và công phu để đưa ra khóa học dễ hiểu nhất, gần với thực tế nhất giúp các bạn hiểu và làm được ngay.

Ngoài ra điểm mạnh là Softech Aptech đưa vào các design pattern, các dự án thực tế để học viện trải nghiệm và làm việc thực tế, điều này không phải ai cũng có thể đủ đầu tư để làm được việc này.

Với khóa học "Lập trình ứng dụng Enterprise Web với ASP.NET MVC Core", học viên được đảm bảo các yếu tốt sau:

NỘI DUNG KHÓA HỌC

PHẦN I: LẬP TRÌNH ASP.NET MVC CORE

  1. Giới thiệu tổng quan khóa học
  2. Tổng quan về .NET Core
  3. Giới thiệu về các tính năng mới của ASP.NET Core
  4. Giới thiệu mô hình MVC (Models, Views, Controllers)
  5. Cài đặt Visual Studio 2017 và .NET Core SDK
  6. Tổng quan cấu trúc dự án trong ASP.NET MVC Core 2.0
  7. Làm việc với Controllers (Tầng điều khiển) trong mô hình ASP.NET MVC
  8. Làm việc với Views (Tầng giao diện) trong mô hình ASP.NET MVC
  9. Làm việc với Models (Tầng dữ liệu) trong mô hình ASP.NET MVC
  10. Ràng buộc dữ liệu với Data Validation và Annotation
  11. Các kỹ thuật lập trình cơ sở dữ liệu với Entity Framework Core
  12. Các kỹ thuật xây dựng giao diện với Layouts & Styles
  13. Các kỹ thuật xây dựng giao diện đa thiết bị với Responsive
  14. Các kỹ thuật tối ưu với State Management & Cached
  15. Làm việc với ASP.NET Identity: Authentication & Authorization (Quản lý users và phân quyền)
  16. Các kỹ thuật bảo mật với Web Security
  17. Làm việc với Globalization (Đa ngôn ngữ)
  18. Các kỹ thuật dò lỗi và giám sát lỗi với Debugging & Monitoring
  19. Các kỹ thuật kiểm thử (Testing, Unit Test)
  20. Triển khai ứng dụng ASP.NET Core MVC lên môi trường Hosting, Azure Cloud

PHẦN II: CÁC KỸ THUẬT NÂNG CAO

  1. Làm việc với AJAX
  2. Làm việc với Upload files
  3. Làm việc với bộ soạn thảo CKEditor và CKFinder
  4. Làm việc với TagHelper, WebComponent và tự xây dựng TagHelper, WebComponent
  5. Triển khai mô hình xây dựng ứng dụng với Dependency Injection
  6. Triển khai Design Pattern với Repository và Service
  7. Làm việc với mô hình đa cấu trúc Areas trong ASP.NET MVC
  8. Các kỹ thuật SEO và tối ưu SEO
  9. Các kỹ thuật tích hợp mạng xã hội Facebook vào website (Like, Share, Comment, ...)
  10. Cấu hình đăng nhập qua mạng xã hội với Facebook, Twitter và Google

PHẦN III: ĐỒ ÁN - XÂY DỰNG HOÀN CHỈNH WEBSITE THƯƠNG MẠI ĐIỆN TỬ

  1. Xây dựng phần Front-Office (Dành cho end-users)
  2. Xây dựng phần Back-Office (Dành cho administrators, managers)
  3. Triển khai ứng dụng lên Microsoft Windows Azure, Hosting (Mắt Bão, PA VietNam, ...)
  4. Tổng kết khóa học & Trao chứng chỉ

Nghề nghiệp

The Job

  • Lead an Agile team to develop breakthrough SaaS products to help 50,000+ merchants and top brands transform their business.

  • Participate in the complete Software Development Life Cycle (requirement analysis, planning, implementation, code review, unit testing, testing, deployment, operation, monitoring...).

  • Accountable for technical outputs of your team, providing guidance and expertise to your team while continuously looking for opportunities to improve quality and performance.

    • Responsible for the technical leadership and technical solution of the team.

    • Review source code and coach team members to follow coding standards, design patterns, and implement tests.

  • Independently support production systems and resolve customer support requests.

  • Research technologies and share knowledge with colleagues.

 

Your Skills and Experience

Must have

  • 05+ years of experience in web development with C#, ASP.NET or ASP.NET Core, EF or EF Core, Web API.

  • Have experience managing a team of at least 5 developers.

  • Have experience developing REST APIs for both public and private consumption

  • Have experience with or eager to learn React, HTML5, and CSS3.

  • You are a detail-oriented and goal-driven person.

Have any of the below experience/knowladge is a plus

  • Experienced with code reviews and able to provide feedback and guidance to colleagues.

  • SaaS product development.

  • MySQL, Oracle, MongoDB, Elasticsearch, or Redis.

  • Kafka or RabbitMQ.

  •  

    CI/CD.

  • Clean Code and coding standards.

  • Unit test or TDD.

  • Git (e.g.: Github, Gitlab, Azure DevOps...).

Why You'll Love Working Here

  • HARAVAN is the first and leading company in Vietnam that provides the One-Stop SaaS Commerce Platform in Vietnam. HARAVAN is now serving 50,000+ businesses including top brands such as Vinamilk, AEON, THEFACESHOP,  L'Oréal, Nestlé, Juno, Bitis’s, Thien Long, Kềm Nghĩa...
  • HARAVAN is the technology company in the SeedCom group. We provide technology solutions for its members such as GHN, The Coffee House, Cầu Đất Farm, Juno, Eva De Eva, HNOSS, KingFood…
  • HARAVAN is the first Vietnam commerce solution provider was chosen by Google, to join the Google Launchpad Accelerator program at Google headquarter. And the first Vietnam partner as a business solution provider for the Facebook Messenger platform.
  • Dynamic and friendly working environment.
  • Work in truly Agile Software Development teams.
  • Work with young, talented, and enthusiastic colleagues.
  • Work with the latest technologies (microservices, CI/CD, .NET Core, React, React Native, MongoDB, Elasticsearch, Google Cloud Platform, Kubernetes...).

Our attractive offers include:

  • Attractive salary and benefits package.
  • Internal events: Engagement activities, Company Trip, Team building, Haravan's birthday, Year-end party…
  • Annual health check-up and premium healthcare.
  • 13th-month salary and yearly performance bonus.

ASP.NET Core 2.1: Phát triển ứng dụng web hiện đại

Phát triển ứng dụng doanh nghiệp tùy chỉnh với các tính năng độc đáo và ngôn ngữ lập trình mới nhất là một câu chuyện của một thế giới khác một thập kỷ trước. Nó đòi hỏi một lượng thời gian và tiền bạc đáng kể để cung cấp trải nghiệm người dùng tối ưu. Tuy nhiên, ngày nay, số hóa đã tạo nên một cuộc cách mạng 360 độ trong ngành công nghiệp phần mềm.

Khi nói đến việc phát triển một ứng dụng web doanh nghiệp tùy chỉnh, bạn chọn từ một bộ công nghệ rộng lớn. Nổi bật nhất trong số đó là ASP.NET. Nó có sự kết hợp hoàn hảo của các mô hình phát triển web cung cấp tất cả các dịch vụ cần thiết để xây dựng các ứng dụng web doanh nghiệp mạnh mẽ.

ASP.NET Core là một khung công tác đa nền tảng, nguồn mở của Microsoft. Nó có cả cấu trúc MVC và API Web kết hợp thành một khung duy nhất. Phiên bản mới nhất của nó ASP.NET Core 2.1 hỗ trợ các ứng dụng web thời gian thực và nhiều tính năng mới, giúp phát triển web nhanh, an toàn và đáng tin cậy. Chúng ta hãy xem các tính năng mới nhất của Core 2.1 để phát triển phần mềm .NET cho doanh nghiệp :

  1. HTTPClientFactory để xử lý các trường hợp HTTPClient : Các nhà phát triển làm việc với HTTPClient trong phần mềm sản xuất gặp nhiều thách thức. HttpClientFactory cho phép bạn tạo và đăng ký các trường hợp httpclient. Bạn có thể thêm HttpClient làm dịch vụ và sử dụng thông qua giao diện IHttpClientFactory trong bộ điều khiển. Cách tiếp cận đơn giản của nó cho phép các doanh nghiệp sử dụng nó để tạo các ứng dụng lớn hơn. Ngoài ra, các nhà phát triển có thể gói gọn HTTPClient theo các loại mà họ yêu cầu. Họ chỉ có thể trưng ra để tiêu thụ những phương thức trả về kết quả cho khách hàng mà không có chi tiết triển khai.

  2. SignalR : SignalR của ASP.NET Core 2.1 là một thư viện mã nguồn mở để hỗ trợ thêm chức năng web thời gian thực vào các ứng dụng. Nó cho phép giao tiếp hai chiều giữa máy chủ và máy khách. Nó cũng bao gồm các API để tạo RPC (các cuộc gọi thủ tục từ xa), quản lý kết nối, nhóm các kết nối và ủy quyền.

  3. Thư viện lớp UI UI : Một tính năng mới khác của ASP.NET Core 2.1, thư viện lớp UI UI giúp cải thiện giao diện người dùng trong các thư viện lớp có thể sử dụng lại. Nó làm cho việc phát triển dễ dàng hơn bằng cách đưa UI dựa trên dao cạo vào thư viện và chia sẻ nó trên nhiều dự án. ASP.NET Core 2.1 làm cho trình biên dịch dao cạo tích hợp với các quy trình xây dựng để có thời gian bắt đầu ứng dụng nhanh hơn.

  4. HTTPS for Security : HTTPS được đặt làm mặc định trong ASP.NET Core 2.1 và các tính năng của nó giúp giảm bớt các cài đặt HTTPS trong sản xuất. ASP.NET Core SDK mới nhất bao gồm một chứng chỉ được cài đặt. Bạn sẽ được nhắc thêm nó vào thư mục gốc chứng chỉ tin cậy của máy phát triển. Theo cách này, gỡ lỗi được quản lý cục bộ để làm cho HTTPS hoạt động trơn tru.

  5. Tuân thủ và bảo mật GDPR : Khi nói đến xử lý dữ liệu, bảo vệ quyền riêng tư của người dùng là mối quan tâm hàng đầu của bất kỳ trang web nào. Với ASP.NET Core 2.1, bạn có thể dễ dàng tuân thủ các yêu cầu về quyền riêng tư bao gồm GDPR của EU (Quy định bảo vệ dữ liệu chung). GDPR cung cấp cho người dùng quyền kiểm tra, chỉnh sửa và xóa dữ liệu khỏi ứng dụng của bạn.

Trong ngành công nghiệp phát triển phần mềm không ngừng phát triển, luôn có những cải tiến không ngừng về khung, công cụ và phương pháp luận. ASP.NET Core 2.1 bao gồm các tính năng cho phép doanh nghiệp tận dụng tối đa các nỗ lực phát triển web của họ. 

PHÂN BIỆT COOKIE VÀ SESSION

Session dịch là phiên làm việc. Nó là cách đơn giản để lưu trữ 1 biến và khiến biến đó có thể tồn tại từ trang này sang trang khác . Nếu như với các biến thông thường, khi trang web bất kỳ bắt đầu thực thi, biến đó sẽ được cấp phát bộ nhớ, lưu giá trị và thu hồi vùng nhớ sau khi trang kết thúc. Session sẽ khác, nó có thể được tạo ra, tồn tại trên server , có thể xuyên từ trang này sang trang khác, chỉ mất đi khi ta xóa nó hoặc hết tuổi thọ (quá thời gian load dữ liệu hoặc thoát khỏi địa chỉ trang-đóng ứng dụng).

Session hoạt động như thế nào? session khi sinh ra được lưu trên 1 file có tên dài dòng, khó đoán và được tạo ngẫu nhiên là session id trên máy chủ, và đồng thời ở máy client cũng có 1 cookie sinh ra có nội dung (hay giá trị) đúng như session id (để có thể so khớp session nào là của client nào) đối với mỗi ngôn ngữ lập trình web sẽ có tên cookie quy định như php là PHPSESSID, jsp là JSESSIONID, … Các giá trị của biến session sẽ được lưu trong file đó (khác so với các biến thông thường là được lưu trong bộ nhớ server – trong php file nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.save_path)).
Ứng dụng: Thông thường ứng dụng vào việc quản lý đăng nhập, đăng xuất của thành viên. Với những tác vụ cần xác nhận là thành viên mới sử dụng được, chúng ta cần yêu cầu thành viên đăng nhập vào hệ thống. Nhưng nếu chỉ dùng biến thông thường thì mỗi lần cần thực hiện lại phải đăng nhập vào. Trong khi ấy, nều dùng session thì sau khi đăng nhập, 1 biến session được tạo ra (ví dụ là user_id), thì biến này sẽ tồn tại từ trang này sang trang khác, như thế khi cần thực hiện tác vụ khác cũng cần đăng nhập, ta chỉ cần kiểm tra xem có tồn tại biến user_id này hay chưa là đủ. Nếu tồn tại rồi thì thôi, chưa tồn tại thì đăng nhập.

Về phía cookie:

Cookie là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó.

Trong Cookie có một số thông số sau:
- Địa chỉ URL mà trình duyệt sẽ gửi cookie tới
- Thời gian hết hạn của cookie
- Các cặp biến: giá trị được lưu trữ liên tục

Người ta thường dùng cookies để lưu trữ các thông tin có liên quan đến nhiều phiên làm việc khác nhau (qua nhiều lần đóng và mở session). Vì giao thức HTTP là giao thức không lưu trạng thái (Mỗi khi xử lý xong một yêu cầu từ máy khách là nó sẽ ngắt kết nối và có thể kết thúc phiên), nên cookie sinh ra để làm nhiệm vụ lưu trữ một số biến trạng thái để khắc phục nhược điểm này.

Khác với dữ liệu gửi từ form (Post hay Get) thì cookies sẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian “sống” của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID & Password của 1 số trang web.

Sử dụng Cookie hay Session?

Sử dụng Session hoặc Cookie là tuỳ vào lựa chọn của Lập trình viên, tuy nhiên Session thường được ưa chuộng hơn Cookie vì một số lý do sau:

* Trong một số trường hợp Cookie không sử dụng được. Có thể browser đã được thiết lập để không chấp nhận cookie, lúc đó session vẫn sử dụng được bằng cách truyền session ID giữa các trang web qua URL, ví dụ: script.php?session=abc123.
* Lượng data truyền tải giữa browser và server: chỉ mỗi session ID được truyền giữa browser và server, data thực sự được website lưu trữ trên server.
* Bảo mật: càng ít thông tin được truyền tải qua lại giữa browser và client càng tốt, và càng ít thông tin được lưu trữ tại client càng tốt.

 

Categories

Recent posts