2 |
The new tool stack
3 |
4 | The new .NET tool stack includes the dotnet command line tool, xproj
project structure and JSON configuration.
5 |
6 |
7 | It is possible to take most existing applications, targeting .NET 4.5.1 or later and convert them to use this new structure. This is done by creating a new .NET Core project, editing the project.json
file to change the
8 | frameworks
section to target net451
(example).
9 |
10 |
11 | This website (source) uses the new tooling, but targets .NET 4.6.1 as not all our dependencies have been ported to .NET Standard.
12 | The new tooling supports targeting multiple platforms, so each project can be gradually be converted to also target .NET Standard when appropriate.
13 |
14 |
.NET Standard
15 |
16 | .NET Standard Library is a set of APIs that are intended to be available on all .NET runtimes. Applications targeting .NET Standard should run on all platforms that implement that standard.
17 | See the refer to the .NET Standard Library documentation.
18 |
19 |
How does this work?
20 |
21 | We read your packages.config
, project.json
and paket.dependencies
files and recursively lookup up those packages and their dependencies on
22 | nuget.org. We then look at whether the package targets a compatible framework (.NET Standard or PCL)
23 |
24 |
Do you keep any uploaded information?
25 |
26 | For requests using the package file upload method, we keep some statistics in a non-identifying way. We keep a count of how many time a packages
27 | found on nuget.org is appears in a result set. We do not track the names of packages that were not recognised,
28 | as these would typically be from internal nuget feeds.
29 |
30 |
31 | For requests using the GitHub repository scanning method, we keep more information about the end result. The assumption is made that the
32 | contents of these public GitHub repositories is not private.
33 |
34 |
35 | See exactly how we collect statistics
36 |
37 |
38 | We also use google analytics to track page views and time on the site.
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/source/Web/Features/faq/faq.less:
--------------------------------------------------------------------------------
1 | .faq {
2 | }
3 |
--------------------------------------------------------------------------------
/source/Web/Features/faq/faq.ts:
--------------------------------------------------------------------------------
1 | module ICanHasDotnetCore.Faq {
2 |
3 | export const state = "layout.faq";
4 |
5 | class ViewModel {
6 | }
7 |
8 | addAngularState(state, "/faq", ViewModel, "faq/faq.html",
9 | {
10 | title: "FAQ",
11 | description: "Frequently Asked Questions"
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/source/Web/Features/home/IndexController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using Microsoft.AspNetCore.Mvc;
4 |
5 | namespace ICanHasDotnetCore.Web.Features.home
6 | {
7 | [Route("{*url}")]
8 | public class IndexController : Controller
9 | {
10 | private static readonly string[] NotFoundPaths = new[] { "api", "images", "app", "Downloads" };
11 | public ActionResult Get(string url)
12 | {
13 | if (url != null && NotFoundPaths.Any(p => url.StartsWith(p, StringComparison.OrdinalIgnoreCase)))
14 | return NotFound();
15 |
16 | return File("~/index.html", "text/html");
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/source/Web/Features/home/home.html:
--------------------------------------------------------------------------------
1 |