ĐẶT VẤN ĐỀ - Để quản lý quy trình mua hàng của khách nhân viên kỹ thuật phải ghi chép các biểu mẫu hằng ngày và lưu trữ dưới dạng file thô, khả năng lưu trữ kém và có thể sai sót và gây nhiều bất lợi cho nhân viên kỹ thuật về việc quản lý 4 mua hàng của khách hàng. Ngoài ra khi các bộ phận, nhà máy đặt hàng với số lượng lớn và các mặt hàng khác nhau thì việc giải quyết các nhu cầu mua hàng đó vô cùng phức tạp và mất quá nhiều thời gian nhưng hiệu quả công việc vẫn còn rất thấp. - Vấn đề đặt ra cho bài toán là làm thế nào xây dựng một website cho phép nhân viên kỹ thuật có thể quản lý quy trình mua hàng của từng khách riêng biệt nhờ vậy mà công ty dễ dàng quản lý được các đơn đặt hàng, thống kê được doanh số bán hàng và lợi nhuận của từng tháng. - Bên cạnh đó đề tài cần đảm bảo được các yêu cầu sau: Tính tiện dụng: Hệ thống phải có tính thân thiện với người dùng, đảm bảo khả năng hỗ trợ tối đa cho người dùng trong việc sử dụng và khai thác hệ thống.
Tính bảo mật: Hệ thống phải đảm bảo khả năng bảo mật cho thông tin trong quá trình truy xuất thông tin từ phía người dùng. Mọi truy xuất của người dùng phải được kiểm soát cả từ phía trình khách lẫn trình chủ nhầm đảm bảo khả năng vận hành tốt nhất cho hệ thống. Tính tùy biến: Hệ thống phải hỗ trợ khả năng tùy biến nhằm giúp cho người quản trị dễ dàng kiểm soát các nguồn thông tin của mình tùy thuộc vào nhu cầu của họ. LỊCH SỬ GIẢ QUYẾT VẤN ĐỀ: Đây là một vấn đề hoàn toàn mới của công ty và chưa hề được giải quyết nên công ty đã nghiên cứu giải pháp và đã đề xuất giải pháp cho em.
Sau đó em tiến hành thực hiện đề tài của mình bằng các giải pháp mà công ty đã đưa ra để giải quyết vấn đề hiện tại của công ty. PHẠM VI ĐỀ TÀI - Đề tài nghiên cứu xoay quanh vấn đề quản lý quy trình mua hàng của khách hàng và hỗ trợ cho nhân viên kỹ thuật để giúp công ty quản lý tốt quy trình mua hàng của của khách hàng được hiệu quả hơn. - Hệ thống được xây dựng trên nền website và người dùng là khách hàng có nhu cầu mua hàng trực tuyến trên hệ thống website của công ty. Hệ thống sẽ gồm các chức năng chính như sau: 5 Quản trị viên (admin) quản lý sản phẩm, đơn hàng, thành viên người dùng Khách hàng xem, tìm kiếm và mua sản phẩm Khách hàng có thể đăng nhập và xem danh sách đơn hàng đã mua Khách hàng có thể gửi liên hệ và xem thông tin công ty Có 2 view cho khách hàng và cho quản trị, quản trị yêu cầu đăng nhập còn khách hàng thì mặc định là không.
PHƯƠNG PHÁP NGHIÊN CỨU/HƯỚNG GIẢI QUYẾT VẤN ĐỀ: - Cấu trúc dự án Dự án được xây dựng theo sự kết hợp của mô hình 3 lớp và MVC. Mục đích là để có thể sử dụng lại được toàn bộ code ở phần server side vì AngularJS cũng là MVC. Một số khái niệm: Backend: Toàn bộ code c# xử lý WebAPI, EF, MVC5 Frontend: Phần code giao diện bên ngoài như AngularJS, Bootstrap, HTML, CSS, JavaScript Trang admin: Trang dành cho Admin Trang customer: Trang dành cho khách hàng Database Repository Service Web API, Controller AngularJS, ASP.NET MVC - Yêu cầu cài đặt: Microsoft SQL Server 2008 R2: https://www.com/en-us/download/details.aspx?id=30438 Visual Studio 2015 Community: https://www.com/downloads/download-visual-studio-vs Node Package Manage: https://nodejs.org/en/ Bower: https://bower.io/ - Công nghệ sử dụng Truy xuất dữ liệu: Entity Framework 6 Resfull API: Web API Hiển thị cho khách hàng: ASP.NET MVC thuần Phần quản trị: AngularJS Phần chứng thực: ASP.NET Identity - Định hướng công nghệ: Có thể sử dụng ADO.NET nếu cần tốc độ nhưng lại vất vả trong khi code và cần có kỹ năng quản lý code tốt. Có thể dùng Dapper hỗ trợ bạn quản lý kết nối và mapping data.
Ngoài ra có thể dùng các thư viện khác. Tất cả các thư viện này đều phải base trên ADO.NET tốc độ vẫn là vô địch vì nó nằm gần SQL nhất. - Dựng cấu trúc solution cho dự án Các thành phần của Solution Demo.Common: Chứa các lớp tiện ích dùng chung cho dự án Demo.Model: Chứa các lớp Domain Entities của dự án Shop.Data: Chứa tầng truy cập dữ liệu sủ dụng Entity Framework Codefirst Demo.Service: Chứa các service xử lý Business logic Demo.Web: Project chính dùng để hiển thị giao diện và tương tác người dùng.UnitTest: Chứa các class Text sử dụng cho việc Unit Test - Các package cần cài đặt Shop.Model Entity Framework Microsoft.Data Entity Framework Shop.Web Autofac, AutoMapper, Entity Framework.UnitTest Moq, Entity Framwork 2. Hệ quản trị CSDL SQL Server Hình 4.
Hệ quản trị CSDL SQL Server Hình 5. Các thành cơ bản trong SQL ServerHình 6. Hệ quản trị CSDL SQL Server - Giới Thiệu SQL Server SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.
SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server có thể kết hợp “ăn ý” 8 với các server khác như Microsoft Internet Information Server (IIS), E- Commerce Server, Proxy Server…. - Các thành cơ bản trong SQL Server SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full-Text Search Service…. Các thành phần này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng.
Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô dưới dạng support và table. Ngoài ra, nó còn có khả năng tự điều chỉnh ví dụ: trả lại tài nguyên cho ệ điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần. Integration Services: là tập hợp các đối tượng lập trình Hình 7. Các thành cơ bản trong và các công cụ đồ họa cho SQL Server việc sao chép, di chuyển và chuyển đổi dữ liệu.
Khi bạn làm việc trong một công ty Hình 8. Mô hình ASP.NET MVCHình 9. Các thành cơ bản trong lớn thì dữ liệu được lưu trữ ở SQL Server nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2, Microsoft Access,… và bạn chắc chắn sẽ có nhu cầu di chuyển dữ liệu giữa các server này. Ngoài ra, bạn còn muốn định dạng dữ liệu trước khi lưu vào database.
Chắc chắn Integration Services sẽ giúp bạn giải quyết được công việc này dễ dàng. Analysis Services: Đây là một dịch vụ phân tích dữ liệu rất hay của Microsoft. Dữ liệu khi được lưu trữ vào trong database mà bạn không thể lấy được những thông tin bổ ích thì coi như không có ý nghĩa gì. Chính vì thế, công cụ này ra đời giúp bạn trong việc phân tích dữ liệu một cách 9 hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes.
Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và triển khai các ứng dụng soạn và gửi thông báo. Ngoài ra, dịch vụ này còn có chức năng gửi thông báo theo dịch thời đến hàng ngàn người dăng ký sử dụng trên nhiều loại thiết bị khác nhau. Reporting Services: là một công cụ tạo, quản lý và triển khai báo cáo bao gồm: server và client. Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo.
Full Text Search Service: là một thành phần đặc biệt trong việc truy vấn và đánh chỉ mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server. Service Broker: là một môi trường lập trình cho việc tạo ra các ứng dụng trong việc nhảy qua các Instance.Tổng quan về ASP.NET MVC - Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp cho chúng ta có thể tạo được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng dụng theo mẫu ASP.NET Web Forsm. Nền tảng ASP.NET MVC có đặc điểm nổi bật là nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp các tính năng có sẵn của ASP.
Nền tảng ASP.NET MVC được định nghĩa trong namespace System.Mvc và là một phần của name space System. - MVC là một mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên đã quen thuộc. Một số loại ứng dụng web sẽ thích hợp với kiến trúc MVC. Một số khác vẫn thích hợp với ASP.NET Web Forms và cơ chế postbacks.
Đôi khi có những ứng dụng kết hợp cả hai kiến trúc trên. 10 - Nền tảng MVC bao gồm các thành phần dưới đây: Hình 10. Mô hình ASP.NET MVC Hình 11. Cấu trúc RESTHình 12.
Mô hình ASP.NET MVC Models: Các đối tượng Models là một phần của ứng dụng, các đối tượng này thiết lập logic của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy và lưu trạng thái của model trong CSDL. Ví dụ như, một đối tượng Product (sản phẩm) sẽ lấy dữ liệu từ CSDL, thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại vào bảng Products ở SQL Server. Views: Views là các thành phần dùng để hiển thị giao diện người dùng (UI).
Thông thường, view được tạo dựa vào thông tin dữ liệu model. Ví dụ như, view dùng để cập nhật bảng Products sẽ hiển thị các hộp văn bản, drop-down list, và các check box dựa trên trạng thái hiện tại của một đối tượng Product. Controllers: Controller là các thành phần dùng để quản lý tương tác người dùng, làm việc với model và chọn view để hiển thị giao diện người dùng. Trong một ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý và đáp trả nội dung người dùng nhập và tương tác với người dùng.
Ví dụ, controller sẽ quản lý các dữ liệu người dùng gởi lên (query-string values) và gởi các giá trị đó đến model, model sẽ lấy dữ liệu từ CSDL nhờ vào các giá trị này.