Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 20,946
» Latest member: blackopsdlc
» Forum threads: 22,097
» Forum posts: 23,064

Full Statistics

Online Users
There are currently 913 online users.
» 0 Member(s) | 908 Guest(s)
Applebot, Baidu, Bing, Facebook, Google

Latest Threads
[WoW Retail News] Glory o...
Forum: World of Warcraft
Last Post: xSicKxBot

» Replies: 0
» Views: 7
[PS.Blog] God of War Lauf...
Forum: Sony Discussion
Last Post: xSicKxBot

» Replies: 0
» Views: 11
[Ubuntu News] How a missi...
Forum: Linux, FreeBSD, and Unix types
Last Post: xSicKxBot

» Replies: 0
» Views: 1
What is Black Ops 6 Zombi...
Forum: PC Discussion
Last Post: xSicKxBot

» Replies: 0
» Views: 15
[WoW Retail News] Winds o...
Forum: World of Warcraft
Last Post: xSicKxBot

» Replies: 0
» Views: 15
Digital Sundial 3D Print ...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 17
Modular Mounting System 3...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16
Self-Watering Planter (Sm...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16
The $30 3D scanner V7 upd...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16
V29 3D Print STL (Downloa...
Forum: Printers & CAD Projects
Last Post: xSicKxBot

» Replies: 0
» Views: 16

 
  News - Tickets For EGX 2019, The UK’s Biggest Games Show, Are On Sale Now
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Nintendo Discussion - No Replies

Tickets For EGX 2019, The UK’s Biggest Games Show, Are On Sale Now


EGX 2019 is open for business, and tickets for the event can be purchased right now.

As the UK’s biggest consumer video games show, EGX is the place to be if you want to sample the latest games and hardware. While a full list of attendees hasn’t been confirmed yet, it’s a fair bet that Nintendo will be there to show off its biggest upcoming games, as well as a selection of 2019’s hottest titles.

The 2019 event is notable for another big reason; after a few very pleasant years in Birmingham following the demolition of Earl’s Court (EGX’s former home), the show is returning to London and will take place at the ExCeL between the 17th and 20th of October.

You can order your tickets right now by heading over to this page.

Print this item

  News - Random: One Tiny Fix Could Make Sonic’s Movie Appearance So Much Better
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Nintendo Discussion - No Replies

Random: One Tiny Fix Could Make Sonic’s Movie Appearance So Much Better

How Sonic is set to look in the movie
How Sonic is set to look in the movie

As we imagine you’ve seen by now, it would appear that Sonic’s full appearance for his upcoming movie has been leaked online. Fan reaction has been pretty negative, to say the least, and even Sonic creator Yuji Naka has taken to Twitter to share his confusion at the design.



Rough translations: “Is this a sonic movie?”

“I feel that it is important to look at the whole body visual of Sonic and head body and stomach. Did you not get a little more balance?”

We have to say, something about our favourite blue hedgehog is definitely off. There are a few things we could point out, such as his white fur hands (no gloves!) and plain Nike shoes, but we’ve since realised that it’s the eyes that cause the biggest problem.

IGN Deputy Reviews Editor, Tom Marks, has ‘fixed’ this very issue in this image shared on Twitter. Gone are the strangely small, separate eyes, replaced with Sonic’s classic mega eye that spans across his whole face. You’d think the one eye approach would be the weirder of the two, but it really is how Sonic is supposed to look, isn’t it?


We doubt any changes will or even can be made to Sonic’s design in the movie at this stage, but we’d definitely prefer to see this design grace our screens than the current one.

What do you think? Does this fix work? Share your thoughts with us below.

Print this item

  Fedora - Fedora logo redesign
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Linux, FreeBSD, and Unix types - No Replies

Fedora logo redesign

The current Fedora Logo has been used by Fedora and the Fedora Community since 2005. However, over the past few months, Máirín Duffy and the Fedora Design team, along with the wider Fedora community have been working on redesigning the Fedora logo.

Far from being just an arbitrary logo change, this process is being undertaken to solve a number of issues encountered with the current logo. Some of the issues with the current logo include the lack of a single colour variant, and, consequently the logo not working well on dark backgrounds. Other challenges with the current logo is confusion with other well-known brands, and the use of a proprietary font.

The new Fedora Logo design process


Last month, Máirín posted an amazing article about the history of the Fedora logo, a detailed analysis of the challenges with the current logo, and a proposal of two candidates. A wide ranging discussion with the Fedora community followed, including input from Matt Muñoz, the designer of the current Fedora logo. After the discussions, the following candidate was chosen for further iteration:


In a follow-up post this week, Máirín summarizes the discussions and critiques that took place around the initial proposal, and details the iterations that took place as a result.

After all the discussions and iterations, the following 3 candidates are where the team is currently at:


Join the discussion on the redesign over at Máirín’s blog, and be sure to read the initial post to get the full story on the process undertaken to get to this point.

Print this item

  RISC-V Irvine
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Linux, FreeBSD, and Unix types - No Replies

RISC-V Irvine

The RISC-V Foundation will be hosting a free, Getting Started with RISC-V event in Irvine. This 1 day event will showcase innovative RISC-V implementations from members of the Foundation.

The half-day Irvine event on April 3 will feature engaging presentations, demos and networking opportunities.

Learn more

Print this item

  Microsoft - Author of ‘How to Train Your Dragon’ series offers ideas for educators
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Windows - No Replies

Author of ‘How to Train Your Dragon’ series offers ideas for educators

Hello Dragon Trainers & Wizards of Young Minds!

My name is Cressida Cowell and I’m the author and illustrator of the How to Train Your Dragon and Wizards of Once book series.

I have spent 20 years writing middle grade fiction, and over those 20 years I have lost count of the times people have asked me, “Have you ever thought of writing for adults?” as if writing for children was some sort of second-best activity, something you do before moving on to the higher level of writing for adults.

For me, writing for children is the greatest privilege on earth.

What a gift it is, to be lucky enough to write for children, and therefore to be constantly reminded to look at the world through the cool clear eyes of a child. For children are interested in the truly important things in life. Heroism, wilderness, our relationship with the natural world, death, love, spirituality, adventure.

I ask a lot of serious questions in these fantasy books – what are your responsibilities to your friends, your family, your Tribe? To nature, to the environment? All subjects that the kid emerging from childhood into adulthood is beginning to think about.

But I deliberately try and provide emotional support and wisdom for the kid reader, without being preach-y. I’m not a believer in taking children to a scary place and leaving them there. So although I tackle serious issues, and never dumb them down, my books have a strong moral framework and they seek to help children with the challenges they will face in the growing up process.

I am always very happy if someone says to me that they have been through a difficult time, of being bullied, or having a death in the family, and my books have helped them through that.

Idea for educators: Free Writing Friday to inspire student creativity


Having a safe space to explore ideas is so important for children to develop their writing – which is why I’ve started a campaign to encourage children to have a notebook they can write in which there are NO rules, NO grading or marking, just FUN! It’s called Free Writing Friday and I’m asking teachers to set aside time every Friday for their class to take part. It gives children the freedom to write, draw and doodle without worrying about their work being corrected. I hope that you will join me in this weekly experience with your own students! You can also find some of my Flipgrid writing challenges for your students here to help spark their imagination and get started with their own writing notebooks.

On the importance and impact of reading aloud to children


I write books to be read aloud, by adults, to their kids.

Reading aloud to children is a wonderful way of getting them to enjoy books, and associate books with pleasure.

So with reading-aloud in mind, I think about my books as a performance, and the mouth-feel of the words, the loudness or softness, or bellow-yness of the characters. It’s why I gave Toothless a stammer, and Squeezjoos and the sprites in Wizards of Once a bit of a his-s-sy lis-s-sp, and Sychorax a voice as mild as the point of an icicle … so that they make a joyous acting performance, particularly if you are lucky enough to have David Tennant narrate them, as he does with both the How to Train Your Dragon and Wizards of Once series.

I always say to parents, read with your kids, just ten minutes a day, way beyond the age the kid can read for themselves. Books read to you in your parents’ voice live with you all your life.

Reading a book aloud is a shared joy, and sends an important message to the children being read to: books are important, books are powerful, magical things, that can make your dad cry, or your mum laugh, and have the sort of wisdom in them that can change your life.

Connecting with students through Skype in the Classroom


 

I am so delighted for the opportunity to work with Skype in the Classroom to bring an exciting broadcast and live chat experience to your students on March 6. An author speaking directly to you in your classroom brings reading and writing alive for a student, just as a parent or teacher reading aloud to children can open up a lifetime’s enjoyment of books.

Classrooms around the world will be able to tune in to this Skype in the Classroom broadcast event as we explore together how to open imaginations and create new worlds. I’ll be answering as many questions as I can live after each event. It’s going to be a lot of fun and I hope you’ll join us with your students on March 6!

I can’t wait!


Ok, I’m in! How can I join the event and prepare my classroom?

Check out the How to Train Your Dragon Flipgrid Challenges

Print this item

  ASP.NET Core updates in .NET Core 3.0 Preview 2
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: C#, Visual Basic, & .Net Frameworks - No Replies

ASP.NET Core updates in .NET Core 3.0 Preview 2

.NET Core 3.0 Preview 2 is now available and it includes a bunch of new updates to ASP.NET Core.

Here’s the list of what’s new in this preview:

  • Razor Components
  • SignalR client-to-server streaming
  • Pipes on HttpContext
  • Generic host in templates
  • Endpoint routing updates

Get started


To get started with ASP.NET Core in .NET Core 3.0 Preview 2 install the .NET Core 3.0 Preview 2 SDK

If you’re on Windows using Visual Studio, you’ll also want to install the latest preview of Visual Studio 2019.

Upgrade an existing project


To upgrade an existing an ASP.NET Core app to .NET Core 3.0 Preview 2, follow the migrations steps in the ASP.NET Core docs.

Add package for Json.NET


As part of the work to tidy up the ASP.NET Core shared framework, Json.NET is being removed from the shared framework and now needs to be added as a package.

To add back Json.NET support to an ASP.NET Core 3.0 project:

Runtime compilation removed


As a consequence of cleaning up the ASP.NET Core shared framework to not depend on Roslyn, support for runtime compilation of pages and views has also been removed in this preview release. Instead compilation of pages and views is performed at build time. In a future preview update we will provide a NuGet packages for optionally enabling runtime compilation support in an app.

Other breaking changes and announcements


For a full list of other breaking changes and announcements for this release please see the ASP.NET Core Announcements repo.

Build modern web UI with Razor Components


Razor Components are a new way to build interactive client-side web UI with ASP.NET Core. This release of .NET Core 3.0 Preview 2 adds support for Razor Components to ASP.NET Core and for hosting Razor Components on the server. For those of you who have been following along with the experimental Blazor project, Razor Components represent the integration of the Blazor component model into ASP.NET Core along with the server-side Blazor hosting model. ASP.NET Core Razor Components is a new capability in ASP.NET Core to host Razor Components on the server over a real-time connection.

Working with Razor Components


Razor Components are self-contained chunks of user interface (UI), such as a page, dialog, or form. Razor Components are normal .NET classes that define UI rendering logic and client-side event handlers, so you can write rich interactive web apps without having to write any JavaScript. Razor components are typically authored using Razor syntax, a natural blend of HTML and C#. Razor Components are similar to Razor Pages and MVC Views in that they both use Razor. But unlike pages and views, which are built around a request/reply model, components are used specifically for handling UI composition.

To create, build, and run your first ASP.NET Core app with Razor Components run the following from the command line:

dotnet new razorcomponents -o WebApplication1
cd WebApplication1
dotnet run

Or create an ASP.NET Core Razor Components in Visual Studio 2019:

Razor Components template

The generated solution has two projects: a server project (WebApplication1.Server), and a project with client-side web UI logic written using Razor Components (WebApplication1.App). The server project is an ASP.NET Core project setup to host the Razor Components.

Razor Components solution

Why two projects? In part it’s to separate the UI logic from the rest of the application. There is also a technical limitation in this preview that we are using the same Razor file extension (.cshtml) for Razor Components that we also use for Razor Pages and Views, but they have different compilation models, so they need to kept separate. In a future preview we plan to introduce a new file extension for Razor Components (.razor) so that you can easily host your components, pages, and views all in the same project.

When you run the app you should see multiple pages (Home, Counter, and Fetch data) on different tabs. On the Counter page you can click a button to increment a counter without any page refresh. Normally this would require writing JavaScript, but here everything is written using Razor Components in C#!

Razor Components app

Here’s what the Counter component code looks like:

@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" on‌click="@IncrementCount">Click me</button>

@functions { int currentCount = 0;
void IncrementCount() { currentCount+=1; }
}

Making a request to /counter, as specified by the @page directive at the top, causes the component to render its content. Components render into an in-memory representation of the render tree that can then be used to update the UI in a very flexible and efficient way. Each time the “Click me” button is clicked the onclick event is fired and the IncrementCount method is called. The currentCount gets incremented and the component is rendered again. The runtime compares the newly rendered content with what was rendered previously and only the changes are then applied to the DOM (i.e. the updated count).

You can use components from other components using an HTML-like syntax where component parameters are specified using attributes or child content. For example, you can add a Counter component to the app’s home page like this:

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<Counter />

To add a parameter to the Counter component update the @functions block to add a property decorated with the [Parameter] attribute:

@functions {
 int currentCount = 0;
[Parameter] int IncrementAmount { get; set; } = 1;
void IncrementCount() { currentCount+=IncrementAmount; }
}

Now you can specify IncrementAmount parameter value using an attribute like this:

<Counter IncrementAmount="10" />

The Home page then has it’s own counter that increments by tens:

Count by tens

This is just an intro to what Razor Components are capable of. Razor Components are based on the Blazor component model and they support all of the same features (parameters, child content, templates, lifecycle events, component references, etc.). To learn more about Razor Components check out the component model docs and try out building your first Razor Components app yourself.

Hosting Razor Components


Because Razor Components decouple a component’s rendering logic from how the UI updates get applied, there is a lot of flexibility in how Razor Components can be hosted. ASP.NET Core Razor Components in .NET Core 3.0 adds support for hosting Razor Components on the server in an ASP.NET Core app where all UI updates are handled over a SignalR connection. The runtime handles sending UI events from the browser to the server and then applies UI updates sent by the server back to the browser after running the components. The same connection is also used to handle JavaScript interop calls.

ASP.NET Core Razor Components

Alternatively, Blazor is an experimental single page app framework that runs Razor Components directly in the browser using a WebAssembly based .NET runtime. In Blazor apps the UI updates from the Razor Components are all applied in process directly to the DOM.

Blazor

Support for the client-side Blazor hosting model using WebAssembly won’t ship with ASP.NET Core 3.0, but we are working towards shipping it with a later release.

Regardless of which hosting model you use for your Razor Components, the component model is the same. The same Razor Components can be used with either hosting model. You can even switch your app back and forth from being a client-side Blazor app or Razor Components running in ASP.NET Core using the same components as long as your components haven’t taken any server specific dependencies.

JavaScript interop


Razor Components can also use client-side JavaScript if needed. From a Razor Component you can call into any browser API or into an existing JavaScript library running in the browser. .NET library authors can use JavaScript interop to provide .NET wrappers for JavaScript APIs, so that they can be conveniently called from Razor Components.

public class ExampleJsInterop
{ public static Task<string> Prompt(this IJSRuntime js, string text) { // showPrompt is implemented in wwwroot/exampleJsInterop.js return js.InvokeAsync<string>("exampleJsFunctions.showPrompt", text); }
}
@inject IJSRuntime JS

<button onclick="@OnClick">Show prompt</button>

@functions { string name;
async Task OnClick() { name = await JS.Prompt("Hi! What's you're name?"); }
}

Both Razor Components and Blazor share the same JavaScript interop abstraction, so .NET libraries relying on JavaScript interop are usable by both types of apps. Check out the JavaScript interop docs for more details on using JavaScript interop and the Blazor community page for existing JavaScript interop libraries.

Sharing component libraries


Components can be easily shared and reused just like you would normal .NET classes. Razor Components can be built into component libraries and then shared as NuGet packages. You can find existing component libraries on the Blazor community page.

The .NET Core 3.0 Preview 2 SDK doesn’t include a project template for Razor Component Class Libraries yet, but we expect to add one in a future preview. In meantime, you can use Blazor Component Class Library template.

dotnet new -i Microsoft.AspNetCore.Blazor.Templates
dotnet new blazorlib

In this preview release ASP.NET Core Razor Components don’t yet support using static assets in component libraries, so the support for component class libraries is pretty limited. However, in a future preview we expect to add this support for using static assets from a library just like you can in Blazor today.

Integration with MVC Views and Razor Pages


Razor Components can be used with your existing Razor Pages and MVC apps. There is no need to rewrite existing views or pages to use Razor Components. Components can be used from within a view or page. When the page or view is rendered, any components used will be prerendered at the same time.

To render a component from a Razor Page or MVC View in this release, use the RenderComponentAsync<TComponent> HTML helper method:

<div id="Counter">
 @(await Html.RenderComponentAsync<Counter>(new { IncrementAmount = 10 }))
</div>

Components rendered from pages and views will be prerendered, but are not yet interactive (i.e. clicking the Counter button doesn’t do anything in this release). This will get addressed in a future preview, along with adding support for rendering components from pages and views using the normal element and attribute syntax.

While views and pages can use components the converse is not true: components can’t use views and pages specific features, like partial views and sections. If you want to use a logic from partial view in a component you’ll need to factor that logic out first as a component.

Cross platform tooling


Visual Studio 2019 comes with built-in editor support for Razor Components including completions and diagnostics in the editor. You don’t need to install any additional extensions.

Razor Components tooling

Razor Component tooling isn’t available yet in Visual Studio for Mac or Visual Studio Code, but it’s something we are actively working on.

A bright future for Blazor


In parallel with the ASP.NET Core 3.0 work, we will continue ship updated experimental releases of Blazor to support hosting Razor Components client-side in the browser (we’ll have more to share on the latest Blazor update shortly!). While in ASP.NET Core 3.0 we will only support hosting Razor Components in ASP.NET Core, we are also working towards shipping Blazor and support for running Razor Components in the browser on WebAssembly in a future release.

SignalR client-to-server streaming


With ASP.NET Core SignalR we added Streaming support, which enables streaming return values from server-side methods. This is useful for when fragments of data will come in over a period of time.

With .NET Core 3.0 Preview 2 we’ve added client-to-server streaming. With client-to-server streaming, your server-side methods can take instances of a ChannelReader<T>. In the C# code sample below, the StartStream method on the Hub will receive a stream of strings from the client.

public async Task StartStream(string streamName, ChannelReader<string> streamContent)
{ // read from and process stream items while (await streamContent.WaitToReadAsync(Context.ConnectionAborted)) { while (streamContent.TryRead(out var content)) { // process content } }
}

Clients would use the SignalR Subject (or an RxJS Subject) as an argument to the streamContent parameter of the Hub method above.

let subject = new signalR.Subject();
await connection.send("StartStream", "MyAsciiArtStream", subject);

The JavaScript code would then use the subject.next method to handle strings as they are captured and ready to be sent to the server.

subject.next("example");
subject.complete();

Using code like the two snippets above, you can create real-time streaming experiences. For a preview of what you can do with client-side streaming with SignalR, take a look at the demo site, streamr.azurewebsites.net. If you create your own stream, you can stream ASCII art representations of image data being captured by your local web cam to the server, where it will be bounced out to other clients who are watching your stream.

Client-to-server Streaming with SignalR

System.IO.Pipelines on HttpContext


In ASP.NET Core 3.0, we’re working on consuming the System.IO.Pipelines API and exposing it in ASP.NET Core to allow you to write more performant applications.

In Preview 2, we’re exposing the request body pipe and response body pipe on the HttpContext that you can directly read from and write to respectively in addition to maintaining the existing Stream-based APIs.
While these pipes are currently just wrappers over the existing streams, we will directly expose the underlying pipes in a future preview.

Here’s an example that demonstrates using both the request body and response body pipes directly.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{ if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
app.UseRouting(routes => { routes.MapGet("/", async context => { await context.Response.WriteAsync("Hello World"); });
routes.MapPost("/", async context => { while (true) { var result = await context.Request.BodyPipe.ReadAsync(); var buffer = result.Buffer;
if (result.IsCompleted) { break; }
context.Request.BodyPipe.AdvanceTo(buffer.End); } }); });
}

Generic host in templates


The templates have been updated to use the Generic Host instead of WebHostBuilder as they have in the past:

public static void Main(string[] args)
{ CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });

This is part of the ongoing plan started in 2.0 to better integrate ASP.NET Core with other server scenarios that are not web specific.

What about IWebHostBuilder?


The IWebHostBuilder interface that is used with WebHostBuilder today will be kept, and is the type of the webBuilder used in the sample code above. We intend to deprecate and eventually remove WebHostBuilder itself as its functionality will be replaced by HostBuilder, though the interface will remain.

The biggest difference between WebHostBuilder and HostBuilder is that you can no longer inject arbitrary services into your Startup.cs. Instead you will be limited to the IHostingEnvironment and IConfiguration interfaces. This removes a behavior quirk related to injecting services into Startup.cs before the ConfigureServices method is called. We will publish more details on the differences between WebHostBuilder and HostBuilder in a future deep-dive post.

Endpoint routing updates


We’re excited to start introducing more of the Endpoint Routing story that began in 2.2. Endpoint routing allows frameworks like MVC as well as other routable things to mix with middleware in a way that hasn’t been possible before. This is now present in the project templates in 3.0.0-preview-2, we’ll continue to add more richness as we move closer to a final release.

Here’s an example:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
 if (env.IsDevelopment())
 {
 app.UseDeveloperExceptionPage();
 }

 app.UseStaticFiles();

 app.UseRouting(routes =>
 {
 routes.MapApplication();

 routes.MapGet("/hello", context =>
 {
 return context.Response.WriteAsync("Hi there!"); 
 });

 routes.MapHealthChecks("/healthz");
 });

 app.UseAuthentication();
 app.UseAuthorization();
}

There’s a few things to unpack here.

First, the UseRouting(...) call adds a new Endpoint Routing middleware. UseRouting is at the core of many of the templates in 3.0 and replaces many of the features that were implemented inside UseMvc(...) in the past.

Also notice that inside UseRouting(...) we’re setting up a few things. MapApplication() brings in MVC controllers and pages for routing. MapGet(...) shows how to wire up a request delegate to routing. MapHealthChecks(...) hooks up the health check middleware, but by plugging it into routing.

What might be surprising to see is that some middleware now come after UseRouting. Let’s tweak this example to demonstrate why that is valuable.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
 if (env.IsDevelopment())
 {
 app.UseDeveloperExceptionPage();
 }

 app.UseStaticFiles();

 app.UseRouting(routes =>
 {
 routes.MapApplication();

 routes.MapGet("/hello", context =>
 {
 return context.Response.WriteAsync("Hi there! Here's your secret message"); 
 })
 .RequireAuthorization(new AuthorizeAttribute(){ Roles = "secret-messages", });

 routes.MapHealthChecks("/healthz").RequireAuthorization("admin");
 });

 app.UseAuthentication();
 app.UseAuthorization();
}

Now I’ve added an AuthorizeAttribute to my request delegate. This is just like placing [Authorize(Roles = "secret-messages")] on an action method in a controller. We’ve also given the health checks middleware an authorization policy as well (by policy name).

This works because the following steps happen in order (ignoring what happens before routing):

  1. UseRouting(...) makes a routing decision – selecting an Endpoint
  2. UseAuthorization() looks at the Endpoint that was selected and runs the corresponding authorization policy
  3. hidden… At the end of the middleware pipeline the Endpoint is executed (if no endpoint was matched then a 404 response is returned)

So think of UseRouting(...) as making a deferred routing decision – where middleware that appear after it run in the middle. Any middleware that run after routing can see the results and read or modify the route data and chosen endpoint. When processing reaches the end of the pipeline, then the endpoint is invoked.

What is an Endpoint and why did we add this?


An Endpoint is a new primitive to help frameworks (like MVC) be friends with middleware. Fundamentally an Endpoint is a request delegate (something that can execute) plus a bag of metadata (policies).

Here’s an example middleware – you can use this to examine endpoints in the debugger or by printing to the console:

app.Use(next => (context) =>
{
 var endpoint = context.GetEndpoint();
 if (endpoint != null)
 {
 Console.WriteLine("Name: " + endpoint.DisplayName);
 Console.WriteLine("Route: " + (endpoint as RouteEndpoint)?.RoutePattern);
 Console.WriteLine("Metadata: " + string.Join(", ", endpoint.Metadata));
 }

 return next(context);
});

In the past we haven’t had a good solution when we’ve wanted to implement a policy like CORS or Authorization in both middleware and MVC. Putting a middleware in the pipeline feels very good because you get to configure the order. Putting filters and attributes on methods in controllers feels really good when you need to apply policies to different parts of the application. Endpoints bring togther all of these advantages.

As an addition problem – what do you do if you’re writing the health checks middleware? You might want to secure your middleware in a way that developers can customize. Being able to leverage the ASP.NET Core features for this directly avoids the need to build in support for cross-cutting concerns in every component that serves HTTP.

In addition to removing code duplication from MVC, the Endpoint + Middleware solution can be used by any other ASP.NET Core-based technologies. You don’t even need to use UseRouting(...) – all that is required to leverage the enhancements to middleware is to set an Endpoint on the HttpContext.

What’s integrated with this?


We added the new authorize middleware so that you can start doing more powerful security things with just middleware. The authorize middleware can accept a default policy that applies when there’s no endpoint, or the endpoint doesn’t specify a policy.

CORS is also now endpoint routing aware and will use the CORS policy specified on an endpoint.

MVC also plugs in to endpoint routing and will create endpoints for all of your controllers and pages. MVC can now be used with the CORS and authorize features and will largely work the same. We’ve long had confusion about whether to use the CORS middleware or CORS filters in MVC, the updated guidance is to use both. This allows you to provide CORS support to other middleware or static files, while still applying more granular CORS policies with the existing attributes.

Health checks also provide methods to register the health checks middleware as a router-ware (as shown above). This allows you to specify other kinds of policies for health checks.

Finally, new in ASP.NET Core 3.0 preview 2 is host matching for routes. Placing the HostAttribute on an MVC controller or action will prompt the routing system to require the specified domain or port. Or you can use RequireHost in your Startup.cs:

app.UseRouting(routes =>
{
 routes.MapGet("/", context => context.Response.WriteAsync("Hi Contoso!"))
 .RequireHost("contoso.com");

 routes.MapGet("/", context => context.Response.WriteAsync("Hi AdventureWorks!"))
 .RequireHost("adventure-works.com");

 routes.MapHealthChecks("/healthz").RequireHost("*:8080");
});

Do you think that there are things that are missing from the endpoint story? Are there more things we should make smarter or more integrated? Please let us know what you’d like to see.

Give feedback


We hope you enjoy the new features in this preview release of ASP.NET Core! Please let us know what you think by filing issues on Github.

Print this item

  Mobile - Review: A Few Minutes of Glory
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: New Game Releases - No Replies

Review: A Few Minutes of Glory

As high concepts go, a text-based real-time strategy game might not sound like the most obvious of mash-ups. A Few Minutes of Glory may look like it dates back to the dawn of the computer age but it is still an intriguing proposition. First of all, you build a medieval army by gathering and spending resources. When you are confident that your army is strong enough, you send them into battle against the AI controlled opposing force. It may sound like Age of Empires without the graphics but each game only lasts for a maximum of four minutes, even less if you play in fast mode. The victor is the first side to earn ten glory points or to have the most glory when the time runs out.

There are four resource-generating buildings, which produce food, wood, gold and stone. Food is needed for basic military units, wood for ranged units, gold is required for advanced military units and stone can be used to construct defensive structures. You may also use wood to build new production buildings, the snag being that the cost increases with each new building. Each production building will produce one resource every second.

A few minutes of glory review 4

Players begin the game with access to five randomly determined military units. To construct one of these units simply tap the box next to it and pay the relevant resources. You will then need to deploy the new unit to either an offensive or defensive role. Constructing walls and towers can further enhance defensive capabilities. Units fall into one of three overriding categories; infantry, ranged and cavalry. There are a total of fifteen different units, each with their own strengths and weaknesses. Some of the more eclectic types include camels that are great at giving enemy cavalry the hump and monks who have the ability to convert enemy units.

Before battle commences the attacking force has the opportunity to ransack the local countryside for some additional resources. Next up is the combat screen, which displays a breakdown of the opposing forces. In each round of combat, units attack in order of their initiative values and will target a randomly determined enemy unit. The chances of success are calculated by comparing attack strength against the defending unit’s armour rating. There is a handy reference list of all of the units and their initiative attack and defensive values. If the attacking side wins then they are awarded two glory points, whilst a defensive victory only earns one point of glory. After a battle, the attacker has to wait around thirty seconds before they are allowed to initiate another assault, which gives their opponent a bit of time to recover. If either side is vastly outnumbered then they will get a substantial fury bonus added to their attacks. As further consolation, the production buildings of the losing side will be increased by one level because a fear of further defeat makes the population work even harder.

A few minutes of glory review 2

If the timer runs down to zero before either side has managed to earn ten glory points then a final mass battle takes place. The defensive and offensive units on both sides join together, with the winning side earning between two to six points of glory. The potential to earn so much glory in a single confrontation can swing the entire battle.

As the saying goes, one battle does not win a war. The ultimate goal in A Few Minutes of Glory is to win the war by being victorious in ten consecutive battles. After every successful fight, you will have access to a new power; these include resource building upgrades and improved units. Beware though, because a single defeat will bring your civilization crashing down and you will have to start all over again.

A few minutes of glory review 1

I have regularly settled down for a game of A Few Minutes of Glory, hoping that something would click. Unfortunately, I always came away feeling that I was missing something. On paper, the interplay between the abilities of the different units sounds intriguing. However, it often feels like you are poking around in the dark, throwing your limited choice of troops into battle without any real idea of how things are going to turn out. The presentation is so sparse that I could not shake the feeling that I was just toying with a spreadsheet. It is a criticism that has been leveled at the Football Manager games, but at least then the smart presentation and licensing agreements managed to hide this from the player’s view.

In a world of endless sequels and thinly disguised copycat releases, I admire the developer for trying to create something different. I like how the rules try and give a thematic reason for the design decisions. For instance, the inflationary cost of production buildings is explained in terms of the increasing scarcity of available land. I like the variety of units, the fast pace and the tough challenge (even the game’s developer cannot beat the AI on the hardest difficulty level).

A few minutes of glory review 5

Unfortunately, A Few Minutes of Glory feels like an intriguing concept transformed into a pretty dull game. It amounts to watching your resources increase and then clicking on boxes to purchase units. The decisions never feel interesting or involved and it soon becomes repetitive. The heart of A Few Minutes of Glory is the battles and these really need to be represented in a more satisfying way than just a scrolling list. The results flash by so quickly that it fails to build any sense of tension. I don’t expect fancy graphics; a little atmospheric flavour text describing the flow of battle would have done the job. As it stands, the battles feel very anticlimactic. Calculations are made, numbers flash across the screen and then you are told whether you have won or lost. It is then back to gathering more resources, buying more units and doing the whole thing all over again.

Print this item

  The Future Of The Godot Game Engine
Posted by: xSicKxBot - 03-06-2019, 07:07 AM - Forum: Game Development - No Replies

The Future Of The Godot Game Engine

With the recent release of Godot 3.1 beta, it’s a good time to look at the future.  That is exactly what Juan Linietsky, lead developer on the Godot engine has done.  On Twitter he laid out his current roadmap for development priorities in Godot 4.0/4.1.

In a pair of tweets, he first discussed general Godot improvements, mostly around the renderer:

Godot

Then in a second tweet, he discussed Physics improvements:

Physics

Keep in mind, although Juan is the lead and perhaps most important developer on the Godot team, he is by no means the only one.  This means even though you don’t see a feature on the two above lists doesn’t mean it wont happen, as there is a vibrant community of developers adding new features to Godot.

GameDev News


Print this item

  News - Bravery Network Online Delivers A Fresh Take On Pokemon Combat, In Style
Posted by: xSicKxBot - 03-05-2019, 09:08 PM - Forum: Lounge - No Replies

Bravery Network Online Delivers A Fresh Take On Pokemon Combat, In Style

Speaking to the developers from Gloam Collective about their upcoming PC and Mac game, Bravery Network Online, they raised a point that I hadn't considered before: despite its popularity, Pokemon's team-based combat system is rarely imitated, leaving a gap in the market. "It’s super specific," Gloam says, "but we found ourselves craving more games like these, and not finding any. We want to fill that void!"

Bravery Network Online won't set you off as a plucky youth on a spirited adventure--it will instead present short stories in visual novel form to clue you into the world's backstory, and the various human characters that you'll take into battle--rough-and-tumble cuties that love nothing more than a good fight. Judging by a recent demo, combat and creativity are put front and center. I've never seen a cast of characters quite like these, which run the gamut from imposing fashionable warriors to equally stylish yet seemingly frail fighters.

No Caption Provided

Gloam made a point to mention that all of the characters in Bravery Network Online are essentially immortal, a detail that explains the range of physicality among the cast, and the game's standout combat mechanic: the use of feelings and emotions as status effects. "When we made the decision to have emotional attacks, it immediately clicked that feelings could be the status effects of the game," Gloam explained. "Feeling is a vague word that can refer to a more physical feeling, like 'Dizzy' or 'Hungry' but can also just straight up be an emotion like 'Guilty' or 'Excited.' This theming gave us a ton of room to play in, and we loved it."

Though you will get to build your own teams of offbeat characters, the recent demo we played had two pre-built teams, and two distinct headcanons. "Trust Punks are kind of this ragtag team being led by their elder mentor, Ferran," says Gloam. "They are a kind of well-rounded team, with a bunch of different avenues for winning, and good for exploring a bunch of BNO’s mechanics. The Cold & The Beautiful on the other hand is a team filled with fast, gorgeous fighters. They focus on chipping their opponents away, tagging out with Escape Whip to build up charge, and then getting in the heavy hitters, Zael and Annora, to blast their foes apart."

Gloam currently plans to ready 25 fighters for launch. The ten characters available in the demo share a few moves here and there, but they are otherwise distinct, with strong visual identities that convey their individuality.

"Seyla’s one of our favourite characters at Gloam," says the team, "just because of how emotive she is. She has a super short fuse, and a constant drive to be the best Bravery fighter, so you can imagine how she is when it’s pretty clear she’s losing. Mechanically though, Seyla’s a ridiculously strong Physical attacker, and has a few ways of buffing herself up. A well-played Seyla can plow through an unprepared team."

As focused as Gloam is on delivering an interesting array of fighters, it's really all in service of making Bravery Network Online a hotbed of competition. Even though Pokemon was a direct inspiration, Gloam made some fundamental changes for Bravery Network Online's combat system. "One of the most obvious is that we removed randomness from the game, replacing them with fighting game-style meter mechanics. Flourishing is meant to represent those times you’d get a critical hit out of nowhere, or randomly have a move give a status effect. Parrying is essentially a reskin of your opponent’s moves missing, but you control when it happens instead of it being a percent-based chance."

No Caption Provided

While playing the recent demo, even against computer-controlled opponents, I had to pay very close attention to the aforementioned meters and the specific fighter matchups in order to win. Bravery Network Online is built to reward careful, considered play, and while there's no doubt benefits to the element of surprise that random blocks or heavy hits bring to the table, it's refreshing to see a team-based battler that's closer to game of chess than a roll of dice. In Gloam's own words: "If you appreciate a rich strategy game with lots of room for customization and mind games, there’s plenty to explore."

Bravery Network Online will be published by Alliance, and is currently in active development for PC and Mac, targeting a late-2019 release date.

Print this item

  News - Rumour: Looks Like Xbox Game Pass Might Not Be Coming To Switch After All
Posted by: xSicKxBot - 03-05-2019, 09:08 PM - Forum: Nintendo Discussion - No Replies

Rumour: Looks Like Xbox Game Pass Might Not Be Coming To Switch After All

Survive Together

For the past couple of weeks, rumours surrounding the possibility of Microsoft bringing the Xbox Game Pass to Nintendo Switch have been sneaking their way around the internet, devilishly teasing fans with the idea of playing Xbox games on Nintendo’s machine. Xbox head, Phil Spencer, even added fuel to the fire recently. Naturally, though, a rumour is exactly that – just a rumour – and new murmurings suggest that it might not be on the way after all.

Brad Sams, the executive editor of IT sites Petri and Thurrott, has claimed that “multiple sources” have told him that Game Pass won’t be coming to Switch. Of course, absolutely nothing has been officially confirmed either way so far (we have one rumour stating that it is coming, and now this information stating that it isn’t) so we’d urge you to take everything you hear on the matter with the largest boatload of salt you can find.

You can hear Sams talking about what he has heard in the video below (from the 8 minute mark). If you’d rather read his comments instead, check out the quote in full down below.


There has been a lot of talk about Game Pass on the Switch. I’m hearing from multiple sources that that’s not happening. Let me qualify, that’s definitely not happening in the near term. I can’t ever say ‘never’ because Microsoft wants Game Pass on TVs, they want it on PCs, they want it on Xbox, they want it everywhere with their XCloud stuff, but as of right now I am hearing from multiple people that it is not coming to the Switch. Obviously, things could change and all that good stuff, but yeah, so don’t expect Game Pass on the Switch anytime soon. At least, that’s what I’m hearing.

Even if the Game Pass doesn’t come to Switch, that doesn’t mean that the supposed collaboration between Microsoft and Nintendo won’t happen in some form in the future. There are multiple ways in which both companies could work together, but we can’t know for sure what form the partnership will take if it is indeed on the cards.

What do you think? Are Xbox games coming to Switch? Is it all a load of nonsense? Would you like it to happen one day? Share your thoughts with us below.

Print this item