MVC, WCF, EF, LINQ - Có phải tôi không? [đóng cửa]


17

... Hay mọi thứ trở nên phức tạp hơn?

Dường như với tôi rằng bạn cần biết rất nhiều thứ để 'phát triển' một ứng dụng web MS ngày nay. Trong những ngày xưa tồi tệ khi chúng ta không biết gì hơn, chúng ta có các bảng cơ sở dữ liệu, ASP.NET, ADO.NET và bạn đã xây dựng một ứng dụng web bằng các khái niệm tương đối đơn giản.

Ngày nay, dường như có rất nhiều khuôn khổ để 'giúp đỡ' bạn làm điều đó 'đúng', nhưng tôi không tin điều này làm cho tất cả dễ dàng và tốt hơn. Tôi có cảm giác tôi sẽ ở một nhóm thiểu số khá nhỏ với tình cảm này, nhưng có ai khác ngoài kia nghĩ rằng mọi thứ đã trở nên hơi điên rồ không?


MVC = ASP.Net, WCF = Dịch vụ web + .Net Remote, EF = ADO.Net, Linq là sự thay thế của một số vòng lặp foreach. Bây giờ có nhiều khung như trước đây.
cơn lốc

John tôi phải 'một phần' đồng ý với bạn. Tôi hiện đang cải thiện các kỹ năng .Net của mình, chắc chắn còn nhiều điều phải trải qua hơn 5 năm trước.
TeaDrinkingGeek

Mặc dù có thể có rất nhiều công nghệ DB trong lĩnh vực MS, nhưng câu hỏi này thực sự lạc đề trên trang web này. Nó không thực sự đặt câu hỏi và rơi thẳng vào "... tệ, phải không?" thể loại rant được liệt kê trong FAQ
Walter

Câu trả lời:


17

Tất cả những thứ đó là tùy chọn, sử dụng chúng nếu chúng hữu ích, đừng nếu chúng không. Nó đơn giản như vậy. Bạn chắc chắn có thể viết các ứng dụng web tốt / phù hợp với bất kỳ từ viết tắt nào trong giải pháp của bạn.

Cá nhân, tôi có xu hướng tìm thấy MVC là một khung công tác khá nhẹ và dễ sử dụng (dễ dàng bắt đầu hơn so với các biểu mẫu web, imo). Tương tự như vậy, LINQ cung cấp một cách phổ biến để truy vấn bất cứ điều gì; cũng tốt. EF và WCF và tôi đã có những bất đồng của chúng tôi, nhưng khi đó, tôi không sử dụng chúng.


2
+1 trên 'sử dụng chúng nếu chúng hữu ích'. Tôi cố gắng sử dụng quy tắc, cố gắng thực hiện 1 'điều' mới trong mỗi dự án. Sau một thời gian, bạn sẽ có kinh nghiệm với rất nhiều thứ và thấy mọi thứ trở nên dễ dàng hơn khi bạn sử dụng nó nhiều hơn.
Jan_V

+1 cho bạn cũng như 'cố gắng làm 1 điều mới trên mỗi dự án'. Tôi thích học hỏi và phát triển là tốt.
Paul

1
Tôi cố gắng thực hiện 1 điều mới trên mỗi dự án, nhưng đó thường là vì điều mới tôi học được trong dự án cuối cùng đã lỗi thời :)
gbjbaanb

9

Không thật sự lắm. LINQ là điều tuyệt vời nhất kể từ khi bánh mì cắt lát khi tương tác với cơ sở dữ liệu.

Điều bạn nên nhớ là những thứ này được xây dựng trên những thứ khác. LINQ không thêm vào số lượng những điều bạn cần biết để phát triển trang web ASP.NET, vì bây giờ bạn không cần biết SQL. Và LINQ là OO, phù hợp hơn nhiều với sự phát triển ứng dụng thông thường, điều này làm cho nó trở thành một shitton hoàn chỉnh dễ thực hiện hơn SQL và dễ dàng tích hợp với C # hơn nhiều.

Nếu bạn không nghĩ rằng LINQ dễ hơn SQL, có lẽ bạn nên đăng một số ví dụ về một cái gì đó khó hơn trong các mô hình mới.

Quan trọng hơn, các trang web trước đây có chức năng ít hơn nhiều. Làm thế nào bạn sẽ làm cho các trang web mới hoạt động tốt hơn, mở rộng quy mô tốt hơn và cung cấp các chức năng mới trong cùng một mã?


4
Một kết nối trái trong LINQ khó hơn trong SQL. Ngoài ra, nếu bạn đang cố gắng khắc phục sự cố cơ sở dữ liệu, bạn sẽ phải xem xét mọi cách. Cộng với việc biết SQL sẽ giúp bạn nếu bạn muốn chuyển sang nền tảng phát triển không phải của Microsoft.
btilly

10
Không có khung ORM nào mạnh như SQL. Có những truy vấn mà tôi phải thực hiện mà bên cạnh không thể thực hiện được trong khung ORM.
bit-twiddler

1
@ bit-twiddler> có, và đó là lý do tại sao hầu hết các khung ORM cũng cho phép bạn thực thi SQL thô (hoặc sprocs). Bạn có thể yêu cầu một anh chàng C # giỏi viết hầu hết các truy vấn cho người đi bộ và các chuyên gia DB như bạn có thể đóng gói những thứ cứng cho họ trong một vòng quay hoặc xem.
Paul

1
Trong khi tôi thiết kế cơ sở dữ liệu quy mô lớn và viết một tấn SQL phía máy khách và phía máy chủ, tôi không phải là một DBA. Tôi là một kỹ sư phần mềm. Tôi chưa bao giờ làm việc ở bất cứ nơi nào mà các nhà phát triển phần mềm nơi không có tay nghề cao. Vào bất kỳ ngày nào, tôi có thể viết mã bằng ngôn ngữ lắp ráp C, C ++, Java, Object Pascal, PL / SQL hoặc Intel (Tôi không tính HMTL, XML và CSS là ngôn ngữ lập trình vì chúng không phải là Turing Complete). Tôi duy trì các bộ công cụ của riêng mình và môi trường thử nghiệm dựa trên Tomcat (mọi người trong nhóm của tôi đều có máy chủ Tomcat của riêng họ).
bit-twiddler

1
Viết LINQ để tương tác với cơ sở dữ liệu (LINQ-to-SQL, LINQ-to-Entities) mà không biết SQL ...? Công thức cho thảm họa.
Kirk Broadhurst

3

Nếu các khái niệm cũ mà bạn đề cập không còn hiệu quả nữa, tôi đồng ý rằng điều đó thật điên rồ, nhưng các khung mới hơn là các lựa chọn thay thế. Chấp nhận mù quáng sẽ là điên rồ. Bạn cần phải biện minh. Cá nhân, bản thân SQL không phải là vấn đề đối với tôi. Cố gắng thêm một số chức năng của các trang web hiện đại, các biểu mẫu web sẽ không cắt nữa.

Tôi chắc chắn rằng một số người dùng ASP cổ điển cũng cảm thấy giống như vậy về .NET, nhưng ít người có thể tiếp tục tranh luận. Tôi xây dựng một vài trang web trong ASP cổ điển và sẽ không quay trở lại.


2

"Đã qua một chút điên rồ". Đó chính xác là cách tôi mô tả một DataSetgiải pháp, ADO.NET, ASP.NET. :)

Tôi đồng ý có rất nhiều thứ để tìm hiểu, nhưng mỗi khung bạn đề cập đã làm cho sự phát triển .NET trở nên tốt hơn.


0

Tôi muốn nói rằng đây là một vấn đề toàn cầu có thể ảnh hưởng đến hầu hết mọi nền tảng hoặc nền tảng (nhà phát triển). Khi khung mới được phát hành, nó trông thường nhỏ và gọn, nhưng khi thời gian trôi qua và các tính năng / chức năng / API mới được đưa vào (theo lộ trình / yêu cầu, khái niệm / xu hướng / công nghệ mới hoặc đơn giản là do tiến hóa), nó sẽ bị "cồng kềnh". Bạn đã bắt đầu với "một cách làm việc" và bây giờ có nhiều khả năng hơn mà bạn có thể chọn (và - bạn không biết / không chắc chắn - nên chọn cách nào). Có thể mất thời gian để tìm hiểu những điều mới, tuy nhiên họ có thể cung cấp cho bạn các giải pháp linh hoạt hơn / nhanh hơn / tốt hơn cho các vấn đề tương tự đã được giải quyết trước đây bằng bộ tùy chọn giới hạn.

Có lần tôi đã vấp phải một câu nói vui - "tất cả các mã biến thành đủ thời gian và bàn tay" - mà IMHO tóm tắt lý do tại sao các công cụ mới trong các khung hiện có nên xuất hiện để đưa các ý tưởng mới vào hoạt động và thực hiện tiến hóa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.