- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Visual Studio 中,您至少可以创建三种不同类型的类库:
虽然第一个是我们多年来一直使用的,但我一直感到困惑的一个主要问题是何时使用 .NET Standard 和 .NET Core 类库类型。我最近在尝试 multi-target different framework versions 时被这个咬了一口。 ,和 creating a unit test project .
那么,类库(.NET Standard)Và类库(.NET Core)有什么区别,为什么两者都存在,以及我们什么时候应该使用一个比另一个?
1 Câu trả lời
When should we use one over the other?
该决定是兼容性和 API 访问之间的权衡。
当您想要增加与您的库兼容的应用程序数量,并且您可以接受减少您的库可以访问的 .NET API 表面积时,请使用 .NET 标准库。
当您想要增加您的库可以访问的 .NET API 表面积,并且您可以只允许 .NET Core 应用程序与您的库兼容时,请使用 .NET Core 库。
例如,面向 .NET Standard 1.3 will be compatible with 的库面向 .NET Framework 4.6、.NET Core 1.0、通用 Windows 平台 10.0 以及支持 .NET Standard 1.3 的任何其他平台的应用程序。不过,该库将无法访问 .NET API 的某些部分。例如,Microsoft.NETCore.CoreCLR
包与 .NET Core 兼容,但不与 .NET Standard 兼容。
What is the difference between Class Library (.NET Standard) and Class Library (.NET Core)?
兼容性:面向 .NET Standard 的库将在任何符合 .NET Standard 的运行时上运行,例如 .NET Core、.NET Framework、Mono/Xamarin 。另一方面,面向 .NET Core 的库只能在 .NET Core 运行时上运行。
API Surface Area:.NET Standard 库包含 NETStandard.Library
中的所有内容,而 .NET Core 库包含 Microsoft.NETCore.App
中的所有内容。后者包括大约 20 个附加库,其中一些我们可以手动添加到我们的 .NET 标准库中(例如 System.Threading.Thread ),而其中一些与 .NET 标准不兼容(例如 Microsoft.NETCore.CoreCLR
).
此外,.NET Core 库指定运行时并附带应用程序模型。例如,这对于使单元测试类库可运行非常重要。
Why do both exist?
暂时忽略库,.NET Standard 存在的原因是为了可移植性;它定义了.NET 平台同意实现的一组 API。任何实现 .NET 标准的平台都与面向该 .NET 标准的库兼容。 .NET Core 就是这些兼容平台之一。
回到库,.NET Standard 库模板可以在多个运行时上运行(以牺牲 API 表面积为代价)。相反,.NET Core 库模板的存在是为了访问更多 API 表面积(以牺牲兼容性为代价)并指定用于构建可执行文件的平台。
Here is an interactive matrix显示哪个 .NET 标准支持哪些 .NET 实现以及有多少 API 可用区域。
关于.net - .NET Core 和 .NET 标准类库项目类型之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939454/
Tôi đang phát triển một WebService bằng Java sử dụng NetBeans và sử dụng gradle làm công cụ quản lý phụ thuộc. Tôi tìm thấy bài viết này về việc phát triển các dự án web bằng gradle. Nó sử dụng Gr
Tôi đang di chuyển một dự án cũ từ ant sang gradle (để sử dụng tính năng quản lý phụ thuộc và xây dựng) và tôi đang gặp sự cố khi xây dựng dự án eclipse. Vấn đề lớn hiện nay là một số dự án phụ của dự án này được chia thành các gói war và jar và được triển khai để
Tôi đã vật lộn với lỗi này trong một thời gian dài. Tôi sẽ cung cấp một số hình ảnh chụp nhanh về vấn đề nếu điều đó có ích. Xin hãy hướng dẫn tôi phải làm gì? ? ? ? Với tôi, trông nó thật lộn xộn. *** glibc đã phát hiện *** /home/shivam/
Tôi đang chạy NetBeans 7.3 trên Ubuntu 12.10. Tôi đang học lớp Phát triển Web Java, vì vậy tôi có một dự án có tên là jsage8 chứa đựng những công việc tôi đã thực hiện cho lớp học.
Tôi tự hỏi liệu có bất kỳ dự án nổi bật nào trong Codeplex, GitHub, v.v. là C# và ASP.NET hay thậm chí chỉ là API C# với thử nghiệm chức năng (NUnit) và chế nhạo (RhinoMocks, NMock, v.v.) không. Nặng
Tôi đã tạo một dự án Maven với loại đóng gói "jar" có tên là "Y". Tôi đã thực hiện "cài đặt Maven" và có thể tìm thấy nó trong kho lưu trữ cục bộ của mình. Sau đó, tôi tạo một dự án khác với loại đóng gói "war" có tên là "X". Đây
Tôi đã làm theo hướng dẫn để tích hợp Facebook SDK vào ứng dụng của mình. Tôi đã biên dịch và chạy thành công tất cả các ứng dụng mẫu được đưa ra ngoại trừ 'helloFacebookSample'.
Tôi tự hỏi tại sao chúng ta (cộng đồng Java) lại cần dự án Apache Harmony khi chúng ta đã có dự án OpenJDK. Cả hai đều được phát hành theo giấy phép nguồn mở phải không? Câu trả lời hay nhất: Thực tế thì ngược lại. Harmony được thành lập
Tôi đang cố gắng lấy URL hình thu nhỏ từ một trang web bằng Jsoup HTML Parser Tôi cần trích xuất tất cả các URL có đuôi là 60x60.jpg (hoặc png) (tất cả các URL hình thu nhỏ đều có đuôi là URL này) Vấn đề là tôi đang lấy nó
Tôi không thể xây dựng dự án gradle của mình, ngay cả khi tôi chỉnh sửa các thuộc tính gradle, tôi vẫn nhận được lỗi sau: Lỗi: (22, 1) Đã xảy ra sự cố khi đánh giá dự án gốc
Tôi có đoạn mã này: var NToDel:NSArray = [] var addInNToDelArray = "Test1 \ Test2" Cách thêm addInN vào NToDel:NSArray
Cách giới hạn danh sách chủ đề xuống còn 5 (mục) sau khi nhấp vào nút Hiển thị thêm (nút). Còn 3 (mục) nữa và cứ như vậy cho đến cuối danh sách, sau đó sẽ hiện nút Hiển thị ít hơn. Ví dụ: Trong tùy chọn bộ lọc Udemy, khi bạn nhấp vào nút Xem thêm, nó chỉ hiển thị
Làm thế nào để nhập một dự án Flutter hiện có thành một dự án gradle? Trình hướng dẫn Nhập dự án sẽ yêu cầu đường dẫn trang chủ Gradle. Tôi đã cài đặt gradle vào hệ thống của mình. Nhưng cần phải thiết lập những gì ở đây (đường dẫn nào). Đây là những gì tôi đang cố gắng
Tôi có một dự án trên Bitbucket. Chỉ có nguồn được cam kết. Để lấy lại dự án vào máy mới, tôi đã sử dụng Kiểm soát phiên bản > Thanh toán từ Ve
Vì vậy, tôi muốn thay đổi một trong những dự án của công ty tôi để sử dụng một số cài đặt độc lập với IDE. Tôi có rất ít kinh nghiệm thiết lập các ứng dụng Java bằng Tomcat (tôi hầu như không nhớ nó hoạt động như thế nào). Do đó, để giúp làm cho IDE độc lập
Tôi có 2 dự án riêng biệt, một trong Cocos2dx v3.6 và một trong Swift. Tôi muốn bắt đầu một trò chơi bằng dự án Swift. Tôi có thể làm điều này bằng cách nào? Tôi đã sao chép toàn bộ dự án cocos2dx vào dự án Swift của tôi
Cordova chắc chắn là mới. Đây là các bước tôi đã hoàn thành: kiểm tra dự án hiện có chạy cordova build ios Các bước trên tạo ra lỗi build này: (node:10242) UnhandledPromiseR
Tôi đang sử dụng JQuery để ẩn/hiện li. Yêu cầu của tôi là khi tôi nhấp vào bất kỳ mục li nào, nó sẽ hiển thị nhưng ẩn tất cả các mục li khác. Khi tôi di chuột qua văn bản 'hiển thị tất cả các mục danh sách nhưng không
Tôi muốn di chuyển tất cả các dự án Java của mình (223 dự án) sang các dự án gradle. Tôi đang sử dụng plugin Gradle Eclipse do nhóm SpringSource STS phát triển. Hiện tại, tất cả các dự án java của tôi
Tôi đã tải xuống Eclipse Luna này dành cho các nhà phát triển Java EE. Như bạn có thể thấy trong phần mô tả, Eclipse Luna hỗ trợ các ứng dụng Web. Tôi không thể tìm thấy tệp -> mới -> khác -> dự án web
Tôi là một lập trình viên xuất sắc, rất giỏi!