It was recently announced by Scott Hanselman that “ASP.NET 5 is dead – Introducing ASP.NET Core 1.0 and .NET Core 1.0” which may come as a surprise to many. Most that have been following along know that ASP.NET 5 brought with it a lot of changes. While in many cases it was a next step from previous versions, it also meant a fork in the road introducing some significant changes.
I’m personally in the camp that his happy to see this name change. I’m not sure that it’s the perfect name, but it addresses the concerns about simply incrementing the version number and not addressing that this is something very different. I however have no better ideas so I’m throwing my support (whatever that’s worth) behind this decision. I feel this is significant because as ASP.Net has grown over the years, developers has enjoyed an amazing level of backwards compatibility with limited breakign changes. This has often limited the ability to do things differently. Now you may be throwing your hands up, not wanting to do things differently in which case ASP.Net Core may not be for you.
Let’s pause for a moment a look at what I just said, “ASP.Net Core may not be for you.” In other words, you may not want to choose this fork in the road. What if however without the name change I was forced to say “ASP.Net 5 may not be for you”? That wording makes it seem like the end of the road. ASP.Net 4.6 is not going away, and while there are not currently any public details on what new developments there might be, it is in no way suddenly going to stop working or stop being supported. ASP.Net Core is a new direction that enables those that want to go that direction, it’s not simply a new version of ASP.Net.
According to the information Scott published:
- ASP.NET 5 is now ASP.NET Core 1.0
- .NET Core 5 is now .NET Core 1.0
- Entity Framework 7 is now Entity Framework Core 1.0 (EF Core 1.0)
There are some extremely important details that I think are worth calling out regarding these.
- ASP.NET 4.6 requires .NET Framework 4.6 and runs only only on the windows platform.
- ASP.NET Core 1.0 runs on both .NET Framework 4.6 (Windows) and .NET Core 1.0 which runs on Linux, Mac, and Windows.
- .NET Core 1.0 is a subset of the full .NET Framework 4.6 that many are used to working with. This goes back to the new direction mentioned above, resulting in portions of the framework note being included. There are many things that are not needed for reasons such as beign windows specific, redundant, or not needed. Over time this gap may shrink, but for now it has some significat impacts.
There’s no doubt that the “Core” technology are new and bleeding edge compared to their battle tested predecessors, but this creates an opportunity to create a powerful new platform that is more in tune with today’s modern development, deployment, and hosting techniques.
Recently I encountered an issue on a project where html5 videos that had been working fine were having playback problems on Windows 7 systems in Internet Explorer 10. Further testing showed that IE11 had the same issue as well. Some time on the search engines found others with issues but no solutions.
In the end I was able to trace the issue back to the content types or mime-types that were being assigned to the files when they were being upload to Azure blob storage. I discovered that while videos with the mimetype of “video/mp4” played fine, other that had been labeled as “Video/mp4” would not play. The difference being the upper case V. Windows 8 running IE 10 and IE 11 seem to have no problem with this, but something in the Win7/IE10 combination has issues. (IE9 seemed to work fine). From what I could tell, according to RFC 2045 the standard that appears to document content types, case should not matter:
"The type, subtype, and parameter names are not case sensitive. For
example, TEXT, Text, and TeXt are all equivalent top-level media types."
Oddly, in the end it did matter. Hopefully if you’re searching for Internet Explorer 10 HTML5 video playback issues on Windows 7 you’ll find this solution sooner than I did.
If you’ve downloaded and installed the latest ASP.NET MVC 4 RC bits, you might have
noticed one of the recently added MVC4 project templates is not longer there. The
Single Page Application (SPA) project template that shipped with the ASP.NET MVC 4
Beta as an early preview, will not ship with the final MVC 4 release. It will however
continue to evolve outside of the MVC 4 release.
More information is available on the ASP.NET
SPA Home Page:
“An official release of ASP.NET SPA won’t be ready in time to ship with the final
ASP.NET MVC 4 release. You can find the source code for ASP.NET SPA and follow
the development effort on the ASP.NET CodePlex site.”
If you look closely you will also notice another change. While it appears that a new
“Basic” template has been added, the previous “Empty” template has been renamed to
“Basic” and a new, much more empty “Empty” template has been added to give a bare
bones empty starting point for an MVC4 project.
A team from Microsoft Patterns & Practices have been working to create guidance
for building “Modern Web Applications” in conjunction with an advisory group of individuals
from the developer community.
“Project Silk provides guidance for building cross-browser web applications
with a focus on client-side interactivity. These applications take advantage of the
latest web standards like HTML5, CSS3 and ECMAScript 5 along with modern web technologies
such as jQuery, Internet Explorer 9, and ASP.NET MVC3.”
To achieve this, the team is creating a reference application to give them a real
world example to build and provide a sample to learn from.
The sample application and related guidance documentation are currently available
at http://silk.codeplex.com and
are free to download. The latest update was June 3rd, 2010 with Drop 10, and updates
will continue to be made as the project continues.
I will be posting more on some specifics of the code and guidance, but wanted to share
this initial post.