Chủ Nhật, 3 tháng 8, 2014
Thứ Hai, 14 tháng 7, 2014
tháng 7 14, 2014
Nguyễn Văn Tiềm
photoshop, Tutorial
No comments
Chẳng biết nó là thể loại gì nhưng thấy đẹp nên post chia sẻ với mọi người.
DEMO:
Thật awesome!!! :)
Nào hãy cùng bắt tay vào thực hiện, bài này rất đơn giản, chỉ với vài thao tác cơ bản mà thôi!
Ở đây mình để Full HD.
Ấn Ctrl + J để nhân đôi layer gốc, dùng công cụ Gradient Tool (hoặc Brush) để vẽ một nửa hình tròn màu trắng, có độ rộng, độ tỏa vừa phải trên layer vừa nhân đôi.
Dùng Filter > Noise > Add Noise để thêm noise cho layer này.
Hạ Opacity hoặc Fill xuống cho vừa mắt.
Mục đích của việc này là tạo ra một cái nền không quá đơn điệu, tạo cảm giác như có 1 bóng đèn đang chiếu vào :v
Hạ Opacity xuống khoảng 3-5% sẽ được như này
DEMO:
Thật awesome!!! :)
Nào hãy cùng bắt tay vào thực hiện, bài này rất đơn giản, chỉ với vài thao tác cơ bản mà thôi!
B1: Mở PTS, tạo 1 hình mới
B2: Tạo nền.
Tô đen bức ảnh.Ấn Ctrl + J để nhân đôi layer gốc, dùng công cụ Gradient Tool (hoặc Brush) để vẽ một nửa hình tròn màu trắng, có độ rộng, độ tỏa vừa phải trên layer vừa nhân đôi.
Dùng Filter > Noise > Add Noise để thêm noise cho layer này.
Hạ Opacity hoặc Fill xuống cho vừa mắt.
Mục đích của việc này là tạo ra một cái nền không quá đơn điệu, tạo cảm giác như có 1 bóng đèn đang chiếu vào :v
B3: Thêm chữ nền
Dùng Text Tool để viết chữ, viết một đoạn sau đấy copy & paste sao cho phủ 1 khoảng rộng hơn bức hình. Nên để phông chữ nhỏ, dễ nhìn, màu chữ trắng.
Xong rồi thì ấn Ctrl + T rồi quay cả đám chữ đấy đi 1 góc khoảng 30 độ, tùy bạn.
B4: Tạo 1 kí hiệu hoặc text trung tâm của bức ảnh
Phần nền như thế coi như đã tạm, giờ ta chuyển sang thiết kế một ký hiệu hoặc viết 1 chữ làm trung tâm của bức ảnh.
Ở đây mình tạo 1 document mới, dùng Path Tool để vẽ ra 1 chữ 'N' cách điệu như này :v
Sau đó kéo layer chữ N trắng về file vừa nãy đang làm ở trên, chỉnh position và bóp hình đi 1 chút sẽ được như này
Lưu ý nếu bạn viết Text trực tiếp lên đây thì phải Raterize layer đó (click chuột phải vào layer text rồi chọn rasterize layer)
B5: Sao chép layer nền phần ký hiệu trung tâm
Như ở bức ảnh hoàn thành thì phần chữ 'N' không còn là màu trằng đơn điệu như bức ảnh trên nữa mà nó được tạo nên từ các dòng text nền phía dưới. Thực chất của việc này là chọn ra 1 phần layer chữ nền vừa bao trọn phần ký hiệu kia, sau đó sao chép phần chọn đấy ra 1 layer khác, tăng opacity lên là được. Chú ý phần chữ nền ta đang để opacity khoảng 5% nên nó mới mờ như thế, nếu ta tăng lên 100% thì nó lại trắng bình thường!
Trước hết phải Rasterize Layer chữ nền.
Ctrl + click vào biểu tượng layer ký hiệu, sẽ có 1 cùng select được bao quanh ký hiệu.
Ấn sang layer text nền rồi ấn Ctrl + J để sao chép sang 1 layer khác.
Tăng opacity layer đó lên 100%, và tắt layer ký hiệu kia đi
Được như này
Nếu vẫn còn vùng selection thì ấn Ctrl + D để bỏ đi
B6: Thêm một vài chi tiết khác
Bạn có thể dùng các công cụ như Shape, Text Tool, Brush... để thêm một vài chi tiết khác cho đỡ đơn điệu.
Có thể thêm 1 vài Len Flare cho sinh động, cái này mình rất thích :)
B7: Giảm bớt phần viền để làm nổi bật phần trung tâm
Bức hình đã cơ bản hoàn thiện bạn có thể lưu ngay bức ảnh coi như hoàn chỉnh. Hoặc có thể thêm 1 vài layer nhỏ để làm nổi bật phần trung tâm nên. Có thể dùng brush để bôi đen những phần góc hoặc làm như sau:
Tạo 1 layer mới ở trên cùng, bôi đen hoàn toàn, hạ opacity xuống khoảng 50% để có thể nhìn thấy các layer phía dưới
Dùng Lasso Tool để chọn 1 cùng chọn ở trung tâm bức ảnh, bao quanh phần ký hiệu hoặc một số chỗ khác muốn làm nổi bật. Xóa vùng chọn đó đi
Để Feather lớn để không làm quá lộ đường cắt
Cuối cùng, có thể giảm tiếp hoặc tăng opacity lên. Dùng Gaussian Blur (radius khoảng 50 - 60) để làm mờ đường cắt, có sự tương đối giữa phần trung tâm và phần viền
Vậy là đã hoàn tất bức hình, chúc bạn thành công!
Thứ Tư, 9 tháng 7, 2014
tháng 7 09, 2014
Nguyễn Văn Tiềm
Show, Windows Form
No comments
Mình xin giới thiệu tới các bạn sản phẩm mới hoàn thành: Phần mềm Duyệt Phim - phần mềm quản lý các thư viện phim, lấy thông tin phim từ IMDb.
- Lần đầu sử dụng chương trình chọn Library chọn Add => đặt tên và đặt đường dẫn cho thư viện.
Lưu ý về cách bố trí thư mục trên ổ cứng:
Phần mềm sẽ duyệt các thư mục con trong thư mục đã chọn. Với mỗi thư mục con chỉ chọn ra 1 file mkv/mp4/avi và tên của thư mục con sẽ là tên của phim phục vụ cho tìm kiếm sau này (còn tên file thì không quan trọng). Trong các thư mục con lại duyệt đệ quy tới các thư mục con nữa... (tên thư mục con có thể bắt đầu bằng '#')
=> Vì vậy cấu trúc thư mục nên như sau: Thư mục chính "Films", có các thư mục con: "Clash", "#Bad boys", "Trilogy - Transformer" -> { "Transformer 1", "Transformer 2", "Transformer 3" }... Trong thư mục con nên để duy nhất 1 file phim và các file phụ đề.
- Tìm và get thông tin từ IMDb: Chọn 1 phim click vào "Cập nhật thông tin từ IMDb", trang tìm kiếm hiện ra, bạn click vào link phim phù hợp, đợi một lúc hiện ra "Lấy từ trang này".
Hầu hết các phim chất lượng cao (Bluray, DVD) có tên tuổi hiện nay đều có trên IMDb, và đây là 1 kênh có tiếng về đánh giá chất lượng phim.
Chức năng chính:
- Duyệt các phim trong thư mục, đưa chúng vào các thư viện. Phần mềm chỉ quét các file *.mkv, *.mp4, *.avi định dạng thường thấy với các phim chất lượng cao và mỗi thư mục con chỉ quét 1 phim.
- Cập nhật thư viện: Khi thư mục trên ổ cứng có thay đổi về phim (thêm bớt 1 số phim) => Thêm những phim mới được đưa vào thư mục, xóa những phim đã bị loại bỏ khỏi thư mục, những phim khác không bị thay đổi.
- Hiển thị trang tìm kiếm IMDb, cho người dùng chọn trang thông tin và dùng RegularExpressions để get các thông tin về lưu vào SQLite. Riêng phần hình ảnh dùng WebClient để download thông tin về rồi lưu vào SQLite dạng byte[].
- Phần Poster có ContextMenuStrip để: Chọn hình ảnh, lưu hình ảnh, xóa hình.
- Và các chức năng phụ khác.
- Cập nhật thư viện: Khi thư mục trên ổ cứng có thay đổi về phim (thêm bớt 1 số phim) => Thêm những phim mới được đưa vào thư mục, xóa những phim đã bị loại bỏ khỏi thư mục, những phim khác không bị thay đổi.
- Hiển thị trang tìm kiếm IMDb, cho người dùng chọn trang thông tin và dùng RegularExpressions để get các thông tin về lưu vào SQLite. Riêng phần hình ảnh dùng WebClient để download thông tin về rồi lưu vào SQLite dạng byte[].
- Phần Poster có ContextMenuStrip để: Chọn hình ảnh, lưu hình ảnh, xóa hình.
- Và các chức năng phụ khác.
Hướng dẫn sử dụng:
- Sau khi down phần mềm về các bạn chạy bình thường. Không nên để trong ổ cài win. Phần mềm sẽ sinh ra file Database - là nơi lưu CSDL, không được xóa nó và các file kèm theo.- Lần đầu sử dụng chương trình chọn Library chọn Add => đặt tên và đặt đường dẫn cho thư viện.
Lưu ý về cách bố trí thư mục trên ổ cứng:
Phần mềm sẽ duyệt các thư mục con trong thư mục đã chọn. Với mỗi thư mục con chỉ chọn ra 1 file mkv/mp4/avi và tên của thư mục con sẽ là tên của phim phục vụ cho tìm kiếm sau này (còn tên file thì không quan trọng). Trong các thư mục con lại duyệt đệ quy tới các thư mục con nữa... (tên thư mục con có thể bắt đầu bằng '#')
=> Vì vậy cấu trúc thư mục nên như sau: Thư mục chính "Films", có các thư mục con: "Clash", "#Bad boys", "Trilogy - Transformer" -> { "Transformer 1", "Transformer 2", "Transformer 3" }... Trong thư mục con nên để duy nhất 1 file phim và các file phụ đề.
- Tìm và get thông tin từ IMDb: Chọn 1 phim click vào "Cập nhật thông tin từ IMDb", trang tìm kiếm hiện ra, bạn click vào link phim phù hợp, đợi một lúc hiện ra "Lấy từ trang này".
(Download về, giải nén, sử dụng ngay. Gồm 2 phiên bản: một là phiên bản thường với giao diện mặc định của Window, một phiên bản sử dụng giao diện của DevExpress 13.1 - yêu cầu máy phải cài sẵn Dev)
Thứ Ba, 8 tháng 7, 2014
tháng 7 08, 2014
Nguyễn Văn Tiềm
CSS, Javascript
No comments
Trong thiết kế web hẳn nhiều lúc bạn viết ra được những file CSS, JS rất dài nhưng bạn không chắc rằng nó đã đúng chuẩn chưa, hợp SEO chưa hoặc bạn muốn rút gọn nó để giảm kích thước file???
Rất đơn giản, sau đây tôi sẽ hướng dẫn các bạn cách chuẩn hóa, rút gọn CSS và JavaScipt của mình.
Rất đơn giản, sau đây tôi sẽ hướng dẫn các bạn cách chuẩn hóa, rút gọn CSS và JavaScipt của mình.
I. Chuẩn hóa
- Với CSS thì chắc hẳn bạn cũng đã biết mỗi trình duyệt có 1 cách thức xử lý CSS khác nhau, do đó đôi khi bạn phải viết nhiều lần code CSS chỉ với 1 mục đích nào đó, để có thể tương tác với các các browser tốt nhất. Đơn giản nhất là các hiệu ứng như animation, transform, border-radius... đặc biệt là các thuộc tính của CSS3 thì với mỗi loại trình duyệt phải có 1 loại code tương ứng.
-webkit-, -o-, -moz-... là các tiếp đầu ngữ gắn với thuộc tính CSS để đáp ứng các trình duyệt. Chẳng hạn như với Chrome thì nó sử dụng tiếp đầu ngữ -webkit-: -webkit-transform, -webkit-gradient... Với IE thì là -moz-, với Opera thì là -o-...
Chẳng phải nhớ hết và code hết chúng vì đã có công cụ giúp ta làm điều này. Tức là bạn chỉ cần code 1 version và sử dụng công cụ để nó tự động thêm các version khác. Công cụ tại trang web này.
- Với JavaScript bạn có thể có nhiều công cụ để kiểm tra độ chính xác của code như kiểm tra lỗi cú pháp...
Bạn có thể sử dụng trang web này. JSLint là công cụ rất hữu ích và chính xác.
II. Rút gọn
Với 1 trang web lớn thì kích thước các file CSS, JS có thể là rất lớn và bạn lo ngại nó sẽ làm giảm tốc độ tải trang, gây phiền phức cho người xem. Hoặc bạn mất nhiều công sức để có thể nghĩ ra những dòng code thâm hiểm và không muốn ai soi mói. Đơn giản là việc rút gọn code sẽ làm điều này.
Việc rút gọn code sẽ loại bỏ những dòng comment trong file, những dầu xuống dòng thừa thãi hay những dấu cách chẳng có tác dụng gì, tối ưu các tên biến, cách thức tổ chức code để nhằm rút gọn tối đa nội dung của file gốc mà không làm mất đi những chức năng vốn có của nó. Việc làm code trở thành "một dòng duy nhất" cũng có 1 tác dụng là hạn chế sự soi mói của các coder gà mờ (mình chỉ nói là hạn chế và với các coder newbie thôi nhá). Nhưng tóm lại tác dụng lớn nhất của nó là làm giảm kích thước file, thậm chí có thể làm tăng tốc độ đọc file của trình duyệt.
Với CSS
Thì những việc mà rút gọn có thể làm như: chuyển "0px" thành "0", xóa comment, xóa các dấu Enter, dấu cách thừa (chẳng hạn border: 1px solid; => border:1px solid;) => file với 1 dòng duy nhất, gộp các thuộc tính cùng loại với nhau...
Các bạn có thể sử dụng các công cụ online: http://cssminifier.com/ hoặc http://gpbmike.github.io/refresh-sf/.
Như vậy sau khi chuẩn hóa ở trên + rút gọn là bạn có thể có được 1 file CSS tối ưu.
Đôi khi bạn muốn biến đổi ngược file đã rút gọn lúc trên, tức là biến nó về dạng thông thường, có xuồng dòng, tab đúng chuẩn... thì bạn có thể vào đây.
Với JavaScript
Việc rút gọn nội dung JavaScript có thể thực hiện: xóa các dấu Enter, cách không cần thiết, rút gọn các biến cục bộ (thành a, b, c, d...), rút gọn các hàm...
Các công cụ online tại http://jscompress.com/ hoặc http://gpbmike.github.io/refresh-sf/
Tương tự như với CSS bạn cũng có thể chuẩn hóa code JavaScript với công cụ này.
Thứ Sáu, 27 tháng 6, 2014
tháng 6 27, 2014
Nguyễn Văn Tiềm
Entity Framework, LINQ
No comments
Ở các bài đăng trước mình đã giới thiệu tới các bạn khái niệm LINQ và cách làm việc với LINQ, đấy là một cách giao tiếp với cơ sở dữ liệu rất thuận tiện và nhanh chóng, dễ dàng cho lập trình viên. Một tính năng đặc biệt quan trọng của "LINQ to SQL" là cách giao tiếp với cơ sở dữ liệu thông qua các biến Context, hỗ trợ code dưới dạng lambda, đơn giản hóa mọi vấn đề, và quan trọng hơn đó là tính năng Binding dữ liệu - đều đã được giới thiệu trong các bài đăng trước.
Microsoft ADO.NET Entity Framework là một khuôn khổ đối tượng Object/ Bảng đồ quan hệ Relational Mapping (ORM) cho phép các nhà phát triển dể dàng làm việc với dữ liệu quan hệ như là các đối tượng domain-specific, loại bỏ đi sự khó khăn trong việc truy cập dữ liệu trước đây. Bằng cách sử dụng Entity Framework, truy vấn LINQ, thì việc lấy và thao tác dữ liệu như các đối tượng trở nên mạnh mẽ hơn. Entity Framework ORM cung cấp các dịch vụ như change tracking, idenity resolution, lazay loading, và truy vấn dữ liệu tập trung vào business logic của ứng dụng.
Đơn giản có thể định nghĩa Entity Framework như sau: Entity Framework là một khung Object/Relational Mapping (O/RM). Nó là một kỹ thuật mới cung cấp cho các nhà phát triển ADO.NET một cơ chế tự động để truy cập và lưu trữ dữ liệu trong cơ sở dữ liệu và làm việc với các kết quả ngoài DataReader và DataSet.
Các bạn có thể đọc thêm về O/RM tại đây.
Việc tại sao lại nên dùng Entity Framework sẽ được lý giải trong phần phân biệt Entity với LINQ to SQL.
Microsoft ADO.NET Entity Framework là một khuôn khổ đối tượng Object/ Bảng đồ quan hệ Relational Mapping (ORM) cho phép các nhà phát triển dể dàng làm việc với dữ liệu quan hệ như là các đối tượng domain-specific, loại bỏ đi sự khó khăn trong việc truy cập dữ liệu trước đây. Bằng cách sử dụng Entity Framework, truy vấn LINQ, thì việc lấy và thao tác dữ liệu như các đối tượng trở nên mạnh mẽ hơn. Entity Framework ORM cung cấp các dịch vụ như change tracking, idenity resolution, lazay loading, và truy vấn dữ liệu tập trung vào business logic của ứng dụng.
Đơn giản có thể định nghĩa Entity Framework như sau: Entity Framework là một khung Object/Relational Mapping (O/RM). Nó là một kỹ thuật mới cung cấp cho các nhà phát triển ADO.NET một cơ chế tự động để truy cập và lưu trữ dữ liệu trong cơ sở dữ liệu và làm việc với các kết quả ngoài DataReader và DataSet.
Các bạn có thể đọc thêm về O/RM tại đây.
Việc tại sao lại nên dùng Entity Framework sẽ được lý giải trong phần phân biệt Entity với LINQ to SQL.
I. Entity Framework là gì? Các thành phần của Entity Framework
Entity Framework là một bộ ánh xạ đối tượng – quan hệ cho phép người lập trình .NET làm việc với dữ liệu quan hệ qua các đối tượng (object) nó giúp lập trình viên không cần viết mã cho (hầu hết) những gì liên quan đến truy cập dữ liệu.
Các thành phần trong Entity Framework:
- Code là mã lệnh tạo thành các lớp đối tượng dữ liệu cho phép thao tác với dữ liệu.
- Model là sơ đồ gồm các hộp mô tả các thực thể và các đường nối kết mô tả các quan hệ.
- Database là cơ sở dữ liệu (có thể là SQL Server, Compact SQL Server, Local database, MySQL, Oracle,…)
- Database first: là phương pháp chỉ nên dùng khi ta đã có sẵn CSDL (không phải tạo), EF Wizard sẽ tạo Model và Code cho ta.
- Models first: nên dùng khi ta bắt đầu thiết kế CSDL từ đầu (từ chưa có gì). Ta sẽ thiết kế mô hình CSDL (Model) EF sẽ tự tạo code cho ta, sau đó nhờ EF Wizard tạo CSDL.
- Code first: nên dùng khi đã có mô hình CSDL, ta sẽ chỉ viết code từ đó tạo Database.
Dù cách nào thì cuối cùng cũng phải có Code để thao tác trong mã lệnh và Database để lưu trữ dữ liệu. Model chỉ là một thành phần trung gian.
Theo kinh nghiệm của nhiều lập trình viên đi trước, Code First là phương án mềm dẻo nhất (hơi mất công ngồi gõ code, tuy nhiên nếu dùng tốt code snippets thì đỡ nhiều).
Trước đây khi lập trình CSDL trong VB, VC,… ta luôn tạo CSDL liệu trước, sau đó mới xây dựng mã lệnh truy cập dữ liệu.
Trong bài này tôi sẽ hướng dẫn tạo 1 project Code First với cơ sở dữ liệu có sẵn.
II. Bắt đầu làm việc với Entity Framework
Để làm việc với Entity Framework một cách hoàn chỉnh chúng ta phải cài thêm Entity Framework bản mới nhất từ NuGet:
B1. Tạo Project mới
B2. Cài EF Power Tools vào Visual Studio: Tools -> Library Paskage Manager -> Manage NuGet Packages for Solution…
Bến trái, chọn Online. Nhập Entity Framework Power Tools vào khung Search (góc trên, bên phải) chọn Entity Framework Power Tools -> Install.
Khi đã cài được, bạn chuột phải trên tên Project sẽ thấy có menu Entity Framework.
III. Tạo một ứng dụng Entity Code First sử dụng CSDL có sẵn
Code First tức là bạn phải code sau đó sinh Database từ code đó. Nhưng Database tạo ra như thế sẽ ít thuộc tính: ràng buộc, identity, unique... Giải pháp là tạo 1 database hoàn chỉnh trên SQL sau đó viết code để map CSDL với Entity của chúng ta.
Trước hết tạo ra các class mô tả các bảng trong CSDL của chúng ta, nó bao gồm các trường và thuộc tính, kiều của chúng.
public partial class tbLop
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int IdLop { get; set; }
[StringLength(50)]
public string Lop { get; set; }
}
public partial class tbHocVien
{
[Key]
public int IdHocVien { get; set; }
public int? IdLop { get; set; }
[StringLength(50)]
public string HoTen { get; set; }
[Column(TypeName = "date")]
public DateTime? NgaySinh { get; set; }
}
Sau đó tạo 1 class Context - là class quản lý tất cả các bảng và giao tiếp với Entity, nó tương tự như class DataContext trong LINQ to SQL.
public partial class DataContext : DbContext
{
/// <summary>
/// Connection string lưu ở App.config
/// theo name="DataContext"
/// </summary>
public DataContext()
: base("name=DataContext")
{
}
public virtual DbSet<tbHocVien> tbHocViens { get; set; }
public virtual DbSet<tbLop> tbLops { get; set; }
}
Trong App.config ta thiết đặt ConnectionString để class Conext liên kết với CSDL đã có sẵn.
<connectionStrings>
<add name="DataContext" connectionString="data source=\SQLEXPRESS;initial catalog=db_EF;persist security info=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
Cách này rất thủ công và dễ xảy ra sai sót. Để làm việc này chúng ta có thể cài thêm 1 tool của Visual Studio giúp ta tạo Code First từ Database một cách nhanh chóng, chính xác.
Các bạn download tool tại đây.
Các bạn download tool tại đây.
Sau khi tải về và cài đặt, khởi động lại Visual Studio, tạo 1 Entity mới ta sẽ thấy rõ hơn.
Thêm 1 Entity Model, chọn "Code First from Database"
Chọn Database có sẵn
Thêm 1 Entity Model, chọn "Code First from Database"
Chọn Database có sẵn
Nếu chưa có thì chọn New Connection
Chọn các bảng/view/store để add vào Model
Sau đó nó sẽ tự sinh ra các class như trên và ConnectionString được lưu trong App.config
Nếu chưa làm được có thể xem tại đây.
Sau khi khai báo các đối tượng của Entity ta có thể sử dụng nó tương tự như đối với LINQ to SQL. Hướng dẫn chi tiết các điểm khác nhau tôi sẽ viết trong 2 bài khác.
Chọn các bảng/view/store để add vào Model
Sau đó nó sẽ tự sinh ra các class như trên và ConnectionString được lưu trong App.config
Nếu chưa làm được có thể xem tại đây.
Sau khi khai báo các đối tượng của Entity ta có thể sử dụng nó tương tự như đối với LINQ to SQL. Hướng dẫn chi tiết các điểm khác nhau tôi sẽ viết trong 2 bài khác.
IV. So sánh giữa Entity Framework với LINQ to SQL
Sau một thời gian sử dụng Entity tôi rút ra được một số nhận định ban đầu như sau:
LINQ to SQL
- Chỉ làm việc với CSDL của SQL Server
- Tạo ra file .dbml
- Không hỗ trợ các kiểu phức tạp
- Không thể tạo CSDL từ đối tượng
- Chỉ có kiểu ánh xạ 1-1 giữa đối tượng class với table/views
- Sử dụng DataContext
Entity Framework
- Có thể làm việc với các CSDL: Oracle, DB2, MySQL, SQL Server...
- Tạo ra file .edmx, .csdl, .msl, .ssdl hoặc các file class .cs thông thường
- Hỗ trợ các kiểu phức tạp
- Có thể tạo CSDL từ Model/Code đã thiết kế
- Có thể ánh xạ 1-1, 1-nhiều, nhiều-1, nhiều-nhiều giữa đối tượng entity với table/view
- Sử dụng DbContext, Entity SQL, ObjectContext.
Và hơn nữa mô hình Code First sinh ra các class riêng biệt => có thể dễ dàng thay đổi khi thay đổi CSDL
Các câu hỏi thường gặp
1. Hỏi: Tại sao chúng ta cần "Entity Framework" trong khi chúng tôi đã có "LINQ 2 SQL" ?
Trả lời: "Entity Framework" không phải được thiết kế để cạnh tranh với "LINQ 2 SQL", xa hơn nó được thiết kế để nhằm phục vụ một mục đích lớn hơn. Nó là một giải pháp ORM hoàn chỉnh. LINQ Provider chỉ là một khía cạnh của "LINQ 2 SQL"...
2. Hỏi: Nếu "LINQ 2 SQL" không thực sự cần thiết tại sao nó vẫn tồn tại?
Trả lời: Bây giờ, tôi không thể chính thức trả lời câu hỏi này (tôi không là đại diện cho Microsoft) nếu bạn nhìn vào sự tiến hóa về các framework và những bản phát hành của họ thì có thể không có kết hợp lý nào khác hơn so với những trình bày ở đây
Microsoft, có lẽ chưa từng có ý định đưa "LINQ 2 SQL" như là một giải pháp hoặc một framework. Có lẽ Entity framework chưa thật sự sẵn sàng tại thời điểm mà .Net 3.5 xuất xưởng. Microsoft đã đưa "LINQ 2 SQL" ra như một giải pháp điểm dừng của cách biệt hoặc chỉ đơn thuần là một mẫu cho "LINQ provider". Họ cuối cùng đã đưa ra Entity Framework với. Net 3.5 SP1. Tôi thật sự cảm thấy Entity Framework đã trở thành một thành phần của bản phát hành chỉnh thức và không phải là một phần của một gói dịch vụ. Không thể có hai nghi ngờ rằng Entity Framework là cách đề nghị đầy tham vọng cho việc truy cập dữ liệu và LINQ.
3. Hỏi: Vậy có phải kết luận rằng chúng ta nên thay thế tất cả "LINQ 2 SQL" với "Entity Framework".
Trả lời: Điều này dường như có vẻ là một kết luận hợp lý và cần phải được thực hiện trong thời gian dài. Tuy nhiên, dường như bản phát hành hiện tại của Entity Framework là chưa thật sự sẵn sàng cho nhu cầu doanh nghiệp và có lẽ chúng ta cần phải chờ ở bản phát hành của Net 4.0. Một số thử nghiệm độc lập đã cố gắng để chứng minh "LINQ 2 SQL" trong thực hiện của Entity Framework. Tôi đã không thực hiện các thử nghiệm cho một trong hai xác nhận hay mâu thuẫn với việc nghiên cứu của họ, mà chỉ chờ đợi ở phiên bản .Net 4.0.
Xem thêm tại đây.
Nguồn tham khảo: tổng hợp từ Internet.
Đăng ký:
Bài đăng (Atom)























