markjprice / cs11dotnet7 Goto Github PK
View Code? Open in Web Editor NEWRepository for the Packt Publishing book titled "C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals" by Mark J. Price
Repository for the Packt Publishing book titled "C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals" by Mark J. Price
Chapter: 3
Page Number: 114
Section Title: Simplifying switch statements with switch expressions
Step Number: 1
Problem to fix: the first case of the switch expression in the code missing "named " while the output has the text
Suggested solution: add "named " into the string:
=> $"The cat named {fourLeggedCat.Name} has four legs.",
On page 237, chapter five, the reader encounters the operator ?? for the first time in the book and is probably unfamiliar with it. This operator is explained later in chapter six, but I think you could explain it here or let the reader know that it will be demystified later in the book.
On page 244, the concept of immutable objects is used. I think it would be a good idea to give a definition for this concept at the beginning of this section. The reader might not be aware of this already.
On page 357, by running the line WriteLine($"{c1} added to {c2} is {c3}");
I get
<4; 2> added to <3; 7> is <7; 9>
instead of
(4, 2) added to (3, 7) is (7, 9)
On page 294, the variable when
is colored #A626A4
like keywords.
Please check that your issue is not already in the errata aka list of corrections and improvements. Please note that PRs will be ignored because code in the repo must match the print book already published. Please raise an issue instead so I can handle it appropriately. All issues will be entered into the errata once closed and fixed in the next book edition.
Chapter: 5
Page Number: 366-
Section Title:
Problem to fix: output is dll not a window.
Suggested solution:
Other useful information e.g. OS, coding tools, and so on: I've tried this on a HP Pavilion laptop using the latest VS Code. and on a Desk top computer. I've gone through this particular chapter at least 5 times on each system, and still get the same result. I'm still new to programming, if I'm doing something wrong I would love to know what it is. Both systems will build the project, but when I go to run it, it gives an error. "out put is DLL now a window.
I expect to see:
Request starting HTTP/3 GET
Instead, I see:
Request starting HTTP/1.1 GET
This entire block is contained within a <p>...</p>, causing an error message on the </p> because, I think, there is another paragraph for "No weather forecasts found." I simply removed the tags at the beginning and end of the block. Doesn't seem to change anything, but it's cleaner.
Which brings me to the question of how messed up or complete the index.cshtml display should be. I see the weather forecasts, the visitor count line (with no count), no carousel, both query forms, and, after the form for querying products by price, a single brace (curly bracket).
Chapter: 4
Page Number: 156
Section Title: Calculating factorials with recursion
Step Number: 1
Problem to fix:
The last bullet point of the list after the code says "If the input parameter number is more than 1, which it will be in all other cases, ..."
Suggested solution:
Based on the else block of the code and the next phrase in the sentence that it will be in all other cases, it should be "If the input parameter number is positive, ..."
In chapter 1 when page 28 in section number 18, I did not get anything (Installing C# dependencies...) in the output windows
Would you happen to know how I install c# dependencies?
I have used visual code and my os is Microsoft Windows NT 10.0.19044.0
Chapter: 14
Page Number: 1250 - kindle edition
Section Title: Varying cached data by query string
Step Number: 1
Problem to fix: VaryByQuery renamed
Suggested solution: change to SetVaryByQuery
Other useful information e.g. OS, coding tools, and so on:
Hello!
In PracticalApps > Northwind.Mvc > Program.cs the book code shows:
options.AddPolicy("views", p => p.VaryByQuery(""));
Looks like VaryByQuery was renamed to SetVaryByQuery:
options.AddPolicy("views", p => p.SetVaryByQuery(""));
https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/7.0/output-caching-renames
Chapter: 6
Page Number: 258
Section Title: Defining and handling events
Step Number: 5
Interpolated string is not needed in the last WriteLine
statement in the code.
WriteLine("Stop it!");
Chapter 5 "Working with records" under the Init-only properties is instructing the reader to make the Records.cs in the PacktLibraryNetStandard2 but in the files in the Github repo it is located under PacktLibraryModern.
Just want to point this out for an errata corrige
The file has to be made in PacktLibraryModern or a compiler error will be presented to the user
Chapter: 15
Page Number: 694
Section Title: Getting customers as JSON in the controller/Starting the web service and MVC client projects
Step Number: 4
Problem to fix: After entering UK in the Select Country box on the Home Web Page
and pressing the associated button to select the appropriate customers. Chrome displays "InvalidOperationException: The view 'Customers' was not found. The following locations were searched:
/Views/Home/Customers.cshtml
/Views/Shared/Customers.cshtml
/Pages/Shared/Customers.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)
Suggested solution:
Other useful information e.g. OS, coding tools, and so on: The following locations were searched:
/Views/Home/Customers.cshtml
/Views/Shared/Customers.cshtml
/Pages/Shared/Customers.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)
Chrome and Visual Studio 2022
All code up to page 694 had been entered as in the book, and runs up to that point had been successful after clearing typos. I've rechecked the code I've entered as against the book. I noted that what appears to be the "missing" view in Northwind.Mvc.Views/Home/Customers.cshtml has at the head of the code:
@model IEnumerable
which may be why the Customers view is not found. However changing "Customer" to "Customers" produces a red squiggle underlining in the code editor suggesting "Customers" is not found in PACKT.SHARED
I have a vague memory that a similar error was encountered earlier and had to be rectified by creating a set from the single-version named table in the database to create an appropriate plural-named collection -- but I can't recall the exact details.
I couldn't find anything in the errata file. I've run the code from the GitHub repository which does work properly, but I've yet to find what I've done wrong in my code and could use some suggestions as to where to find the error.
Chapter: 11
Most of the sample code referring to Packt.Share, but could not find that project. Any idea? @markjprice
I have a suggestion for the section Adding a second project using Visual Studio 2022 of the first chapter on page 49 of the .pdf file. In there (in item 3) it should be noted that in the Configure your new project dialog the Add to solution option must be selected not Create new solution which is the default option.
Chapter: 6
Page Number: 277
Section Title: Making a value type nullable
Step Number: 6 and 7
The background color of the output should be changed and the output should be the following.
4
0
7
7
Step number 7 should be "The second line is blank ...."
In the section Setting a breakpoint and starting debugging of chapter four, Writing, Debugging, and Testing Functions, at the end of the subsection Using Visual Studio 2022 there's the following paragraph:
If you do not want to see how to use Visual Studio Code to start debugging, then you can skip the next
section and continue to the section titled Navigating with the debugging toolbar.
In the book, the section Using Visual Studio Code appears after the section Navigating with the debugging toolbar. I think there might be a mistake here.
Chapter: 4
Page Number: 388
Section Title: Reviewing project packages
Step Number: 6
Problem to fix: Typo in code snippet.
Hello there! Thank you for writing this book; I'm finding it very useful for filling in gaps in my knowledge so I can finally delve deeper into programming <3. I just found this typo in this section (see screenshot). It should say optional: false
(it's correct in the solution code on this repo, and when it is set to true
an error is thrown later in the code, on the Bind()
line).
Just while I'm posting this, could I also ask what exactly the optional
parameter does? I had a look at the documentation on the MSDN website, but all it says is Whether the file is optional.
, and I'm not 100% sure what that means.
On page 453, running the command in step 2 with the dotnet-ef
version 7.0.4 creates class files that aren't exactly similar to those shown in the book. For example, the Category class doesn't have a constructor, or the two DbSet<T>
properties of the Northwind class are not set to null.
In the section Requiring properties to be set during instantiation of chapter five (page: 231), it would be helpful to remind the reader that after the project PacktLibraryModern was created, it must be added as a Project Reference to the PeopleApp project. In case the reader forgets this, the class Book will be unknown in the Program.cs file.
When creating a new customer, there appears to be an intermittent concurrency issue related to the OnValidSubmit callback ('Create' in this case):
await service.CreateCustomerAsync(customer);
navigation.NavigateTo("customers");
And then, upon navigation, we are doing (in Customers.razor):
protected override async Task OnParametersSetAsync()
{
if (string.IsNullOrWhiteSpace(Country))
{
customers = await service.GetCustomersAsync();
}
else
{
customers = await service.GetCustomersAsync(Country);
}
}
Despite awaiting each async call, there is an intermittent InvalidOperationException being thrown:
System.InvalidOperationException: A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
at Microsoft.EntityFrameworkCore.Infrastructure.Internal.ConcurrencyDetector.EnterCriticalSection()
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Northwind.BlazorServer.Pages.Customers.OnParametersSetAsync() in C:\Users\chris\source\repos\PracticalApps\Northwind.BlazorServer\Pages\Customers.razor:line 61
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
I'm pretty certain the code has been copied properly.
Chapter: 6
Page Number: 279
Section Title: Declaring non-nullable variables and parameters
Step Number: 1
It says "In NullHandling.csproj, add a class file named ...", should be "In the NullHandling project, add a new class file named ...."
Chapter: 2
Page Number:
Section Title: Raw interpolated string literals
Step Number:
Problem to fix: used comma instead of colon "calculation", "{{{ 1 + 2 }}}"
Suggested solution: "calculation": "{{{ 1 + 2 }}}"
I would like to be able to use the same syntax and semantic highlighting in the Visual Studio 2022 code editor as appears in the code examples in the cs11dotnet7 book. I have looked at the Tools/Options/Environment/Fonts and Colors settings in VS 2022, but the options or settings for symbols in C# do not seem to be there. For instance, setting an option to present a line of comment in grey and italic style font does not seem to be available, or other case where your code examples appear in different colors to that in the standard VS 2022 code editor. I've searched through web pages, and it seems that there are various extensions that can be imported into VS 2022 that enable this level of syntax and semantic highlighting. I would particular like to be able just perhaps see the highlighting that has been used in the book. I wonder if you could advise on which extension to use, if that is permissible. I would think that others who may use your books may also like to see something about highlighting in code and explanations of how to achieve it either in future editions or as an addendum in the github pages for the book.
The extension name that we have been told to download has been changed from ".NET Interactive Notebook" to
---> "Polyglot Notebooks"
I was confused at first when I couldn't find it, but after looking I managed to find out this information online.
At the bottom of page 263, there is a comment in the code that reads
/// ...if they are equal...
in harmony with other comments, I think it should be
// ...if they are equal...
Hello,
On p.75, section "Chapter 2 - Speaking C# → Working with variables → Storing real numbers → Comparing double and decimal types", in the last paragraph, there is a spelling mistake, it is written IsNan
instead of IsNaN
:
They also have methods for checking for these special values like
IsInfinity
andIsNan.
Page 2, Bullet 7
Every time I run this, I receive the output "Unhealthy" and a 503 status code.
Chapter: 09
Page Number: N/D (WebReader)
Section Title: Managing the filesystem (Managing directories)
Step Number: 1
Problem to fix: The following code is shown three times
WriteLine($"Does it exist? {Path.Exists(newFolder)}");
Exixts() is a method from System.IO.Directory and not from System.IO.Path
Suggested solution: Change it to WriteLine($"Does it exist? {Directory.Exists(newFolder)}");
which also is redundant as we statically imported System.IO.Directory
Other useful information e.g. OS, coding tools, and so on: VS2022 + Resharper
On page 339, step 3, when I right-click in the Count
method and select Go To Implementation the file Enumerable [from metadata]
opens not the file Count.cs [SourceLink]
.
on page 351, the expressions "x" + i.ToString();
and "y" + i.ToString();
can be replaced by $"x{i}"
and $"y{i}"
, respectively.
On page 270:
WriteLine($"a == b: {(a == b)}");
unnecessary parentheses can be removed:
WriteLine($"a == b: {a == b}");
I cannot get past a runtime error on the line "configuration.GetSection("PacktSwitch").Bind(ts);" (see attached). The value field is populated (with "Info") in the object "configuration" but is null in the bind.
I have recreated the entire solution and copied the sample code from the book - same problem.
Please check that your issue is not already in the errata aka list of corrections and improvements. Please note that PRs will be ignored because code in the repo must match the print book already published. Please raise an issue instead so I can handle it appropriately. All issues will be entered into the errata once closed. They will also be fixed in the next book edition.
You can delete the note above after reading it. Please complete as much information below as possible so that I can understand and fix the issue quickly. Screenshots can be especially useful. You can drag and drop images into the box. Thank you!
Chapter:
Page Number: 83
Section Title: Formatting using interpolated strings
Step Number: 1
Problem to fix:
// The following statement must be all on one line.
Console.WriteLine($"{numberOfApples} apples cost {pricePerApple *
numberOfApples:C}");
Suggested solution:
As of .NET 7 interpolated strings can be broken to more lines in interpolation placeholders like in this examples. It compiles just fine. Of course with older .NET breaking lines in interpolated strings are not supported.
Other useful information e.g. OS, coding tools, and so on:
Compiled with .NET 7 / checked with .NET 6
The code for EditCustomer.razor is missing the following line at the end of the Update() task:
navigation.NavigateTo("customers");
The code is correct in the github.
on page 358, the code doesn't output anything. I suggest the code writes the generated random numbers to the console:
...
WriteLine($"dieRoll = {dieRoll}");
...
WriteLine($"randomReal = {randomReal}");
...
for (int i = 0; i < arrayOfBytes.Length; i++)
{
WriteLine($"arrayOfBytes[{i}] = {arrayOfBytes[i]}");
}
Please check that your issue is not already in the errata aka list of corrections and improvements. Please note that PRs will be ignored because code in the repo must match the print book already published. Please raise an issue instead so I can handle it appropriately. All issues will be entered into the errata once closed. They will also be fixed in the next book edition.
You can delete the note above after reading it. Please complete as much information below as possible so that I can understand and fix the issue quickly. Screenshots can be especially useful. You can drag and drop images into the box. Thank you!
Chapter: 14
Page Number: 1208 - kindle edition
Section Title: Defining a typed view
Step Number: 3
Problem to fix: Typo in data-* attribute
Suggested solution: Fix typo
Other useful information e.g. OS, coding tools, and so on:
Hello! There is a slight typo in the book code for the carousel indicators:
PracticalApps > Northwind.Mvc > Views > Home > Index.cshtml
<li data-bs-target="#categories" data-slide-to="@c" class="@currentItem"></li>
Should be:
<li data-bs-target="#categories" data-bs-slide-to="@c" class="@currentItem"></li>
The code in the github repo is correct.
The code runs without error on Page 724, bullet 3. This error first appears on Page 726, bullet 7.
An unhandled exception occurred while processing the request.
InvalidOperationException: A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
Microsoft.EntityFrameworkCore.Infrastructure.Internal.ConcurrencyDetector.EnterCriticalSection()
Northwind.BlazorServer.Pages.Customers.OnParametersSetAsync() in Customers.razor
| 59. customers = await db.Customers.ToListAsync();
I eventually copied your Northwind.BlazorServer code to my solution and it worked. I can't figure out what the difference is. Of course, your code has moved on from page 726. What I know for sure is that, between pages 724 and 726, something went wrong.
I'm attaching the server output.
BlazorServer Server Output.txt
Here is my code. It's original location is C:\cs11dotnet7\PracticalApps
Northwind.BlazorServer.zip
Bullet 6: The layout statement is not in _Host.cshtml
Bullet 7: The file _Layout.cshtml does not exist.
Never mind. Couldn't figure out how to delete this.
Chapter: 16
Page Number: 723
Section Title: Building components using Blazor Server/Defining and testing a simple Blazor Server component
Step Number: 3
Problem to fix: RZ10012 ...unexpected name 'Customers' ...
-- Results in "Customers in Germany" and "Customers Worldwide" not being displayed in step 5.
Suggested solution: Add usings statement to bottom of _Imports.razor in Shared folder as follows:
@using Packt.Shared @* Northwind entities *@
Other useful information e.g. OS, coding tools, and so on: Microsoft Visual Studio Community 2022 (64bit) Version 17.5.1, Microsoft .NET Framework version 4.8.04161 as at 29/03/2023.
Please check that your issue is not already in the errata aka list of corrections and improvements. Please note that PRs will be ignored because code in the repo must match the print book already published. Please raise an issue instead so I can handle it appropriately. All issues will be entered into the errata once closed and fixed in the next book edition.
Chapter: 10
Page Number: 926 of Kindle edition
Section Title: Modifying data with EF Core
Problem to fix: Parameter name, type does not match argument name, type
Suggested solution: Change argument name, type
Other useful information e.g. OS, coding tools, and so on:
Hello! I believe I've spotted a slight error. In Program.Modifications.cs the method signature looks as such:
static void ListProducts(int[]? productIdsToHighlight = null)
However, when it's called from Program.cs (page 929 of Kindle edition) an int value is passed instead of int[]:
ListProducts(productIdToHightlight: resultAdd.productId);
Two problems as far as I can tell: The argument name passed is singular - productIdToHighlight vs productIdsToHighlight in the method signature. Also the value passed is int rather than int[] in the method signature.
To preserve the functionality of being able to pass in int[] values I changed the calling code to:
ListProducts(productIdsToHightlight: new int[] { resultAdd.productId });
Hopefully I'm correct about this!
"An unhandled exception occurred while processing the request." Displayed on page localhost:5001/packtfeatures/employees after pressing the button "Contact our employees" on the main page.
Chapter: 13
Page Number: 587
Section Title: Creating a Razor class library
Step Number: 9
Problem to fix: An Exception occurs due to <partial name="_Employee" not found when Northwind.Web is started as per step 3 on page 588
Suggested solution: Change "_Employee" to "Employee" [i.e. remove the underscore character at the start of the string.]
Other useful information e.g. OS, coding tools, and so on: Windows 11, Microsoft Visual Studio 1922
Submitted by John Tempest (john_tempest@blueyonder,co,uk)
Full text of exception as appears on Chrome main window:
An unhandled exception occurred while processing the request.
InvalidOperationException: The partial view '_Employee' was not found. The following locations were searched:
/Areas/PacktFeatures/Pages/_Employee.cshtml
/Areas/PacktFeatures/Pages/Shared/_Employee.cshtml
/Areas/PacktFeatures/Views/Shared/_Employee.cshtml
/Pages/Shared/_Employee.cshtml
/Views/Shared/_Employee.cshtml
Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
Stack Query Cookies Headers Routing
InvalidOperationException: The partial view '_Employee' was not found. The following locations were searched: /Areas/PacktFeatures/Pages/_Employee.cshtml /Areas/PacktFeatures/Pages/Shared/_Employee.cshtml /Areas/PacktFeatures/Views/Shared/_Employee.cshtml /Pages/Shared/_Employee.cshtml /Views/Shared/_Employee.cshtml
Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, int i, int count)
AspNetCoreGeneratedDocument.Areas_PacktFeatures_Pages_Employees.ExecuteAsync() in Employees.cshtml
+
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, bool invokeViewStarts)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, string contentType, Nullable statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, string contentType, Nullable statusCode)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|30_0<TFilter, TFilterAsync>(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext<TFilter, TFilterAsync>(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
Chapter: 10 (Working with Data Using Entity Framework Core)
Page Number: 345 (epub)
Section Title: Modifying data with EF Core / Inserting entities
Step Number: 4
Problem to fix: Method ListProducts is expecting an int array, but gets a single int, so it won't compile (cannot convert from 'int' to 'int[]?'):
ListProducts(productIdToHighlight: resultAdd.productId);)
Suggested solution: Cf page 346 where it is working:
ListProducts(productIdsToHighlight: new[] { resultAdd.productId });
Bullet 2:
The app.UseMiddleware statement throws this compiler error:
Error CS0246 The type or namespace name 'SecurityHeaders' could not be found
(are you missing a using directive or an assembly reference?) Northwind.WebApi
C:\cs11dotnet7\PracticalApps\Northwind.WebApi\Program.cs
77 Active
This is another example of adding a class file (SecurityHeadersMiddleware.cs) and finding that its build action is set to "None". I don't know if this is a VS2022 problem or something I'm doing incorrectly.
On pages 242 through 244, to be able to run the flight passengers example I have to add the line using static Packt.Shared.FlightPatterns;
or prefix class names with FlightPatterns.
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.